
/* Elementor container neutraliser — keep above the design CSS */
.e-con{
  --display:block;--flex-direction:row;--width:auto;--content-width:none;
  --gap:0px;--row-gap:0px;--column-gap:0px;--min-height:0px;--flex-wrap:nowrap;
  --padding-block-start:0px;--padding-block-end:0px;--padding-inline-start:0px;--padding-inline-end:0px;
  --margin-block-start:0px;--margin-block-end:0px;--margin-inline-start:0px;--margin-inline-end:0px;
  --widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;
  display:block;width:auto;max-width:none;min-width:0;min-height:0;
  padding:0;margin:0;gap:0;flex-wrap:nowrap;
}
.e-con-inner{display:block;width:auto;max-width:none;min-height:0;padding:0;margin:0;gap:0}
.e-child{--width:auto}
.elementor-widget{margin:0;width:auto;max-width:100%}
.elementor-widget-container{margin:0;padding:0}
.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px}

:root{
  --ink:       #0E2240;  
  --blue:      #2F8F85;  
  --blue-dark: #256F67;  
  --teal:      #2F8F85;  
  --teal-wash: #EAF5F3;

  --paper:     #FCFDFE;  
  --wash:      #F2F6FB;  
  --wash-grey: #F6F8FA;  
  --hairline:  #E2EAF3;  

  --body:      #3D4C66;  
  --faint:     #71809B;

  --serif: "Newsreader", "Iowan Old Style", Georgia, serif;
  --sans:  "Archivo", -apple-system, "Segoe UI", sans-serif;

  --r-sm: 12px;
  --r-lg: 20px;
  --wrap: 1200px;
  --pad-y: clamp(92px, 11vw, 158px);
  --sh-soft: 0 1px 2px rgba(14,34,64,.04), 0 14px 34px -18px rgba(14,34,64,.14);
  --sh-deep: 0 2px 6px rgba(14,34,64,.05), 0 28px 60px -24px rgba(14,34,64,.22);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);color:var(--body);background:var(--paper);
  font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;
}
.elementor h1,.elementor h1.elementor-heading-title,.elementor h2,.elementor h2.elementor-heading-title,.elementor h3,.elementor h3.elementor-heading-title,.elementor h4,.elementor h4.elementor-heading-title{font-family:var(--serif);color:var(--ink);font-weight:500;line-height:1.08;letter-spacing:-.015em}
.elementor h1,.elementor h1.elementor-heading-title{font-size:clamp(2.9rem,6vw,5rem)}
.elementor h2,.elementor h2.elementor-heading-title{font-size:clamp(2.1rem,4vw,3.3rem)}
.elementor h3,.elementor h3.elementor-heading-title{font-size:1.5rem;line-height:1.25}
.elementor i.tone,.elementor em.tone{font-family:var(--serif);font-style:italic;color:var(--teal);font-weight:400}
.elementor a{color:var(--blue);text-decoration:none}
.elementor img{max-width:100%;display:block}
.elementor ul{list-style:none}
.elementor .wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.elementor .sect{padding:var(--pad-y) 0}
.elementor .sect--wash{background:var(--wash)}
.elementor .sect--grey{background:var(--wash-grey)}
.elementor .btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--sans);font-weight:600;font-size:.94rem;letter-spacing:.01em;
  padding:16px 32px;border-radius:10px;cursor:pointer;border:1px solid transparent;
  transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s;
}
.elementor .btn--fill{background:var(--blue);color:#fff}
.elementor .btn--fill:hover{background:var(--blue-dark);transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(47,143,133,.55)}
.elementor .btn--line{background:transparent;color:var(--ink);border-color:#C9D5E6}
.elementor .btn--line:hover{border-color:var(--blue);color:var(--blue);background:#F5F9FD;transform:translateY(-1px)}
.elementor .btn--white{background:#fff;color:var(--ink);border-color:transparent}
.elementor .btn--white:hover{color:var(--blue)}
.elementor .btn--teal{background:var(--teal);color:#fff}
.elementor .btn--teal:hover{background:#256F67}
.elementor .btn .arr{transition:transform .2s}
.elementor .btn:hover .arr{transform:translateX(4px)}
.elementor .rv{opacity:0;transform:translateY(26px);transition:opacity .75s ease,transform .75s ease}
.elementor .rv.on{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.elementor .rv{opacity:1;transform:none;transition:none}
html{scroll-behavior:auto}}
.elementor :focus-visible{outline:3px solid rgba(47,143,133,.4);outline-offset:3px;border-radius:4px}
.elementor .hd{
  position:sticky;top:0;z-index:90;background:rgba(252,253,254,.88);
  backdrop-filter:blur(14px);border-bottom:1px solid transparent;
  transition:border-color .25s,box-shadow .25s;
}
.elementor .hd.on{border-bottom-color:var(--hairline);box-shadow:0 8px 30px -22px rgba(14,34,64,.3)}
.elementor .hd__in{display:flex;align-items:center;justify-content:space-between;height:80px;gap:28px}
.elementor .brand{display:flex;align-items:center;gap:13px;color:var(--ink)}
.elementor .brand__seal{
  width:42px;height:42px;flex:none;border-radius:50%;
  border:1.5px solid var(--blue);color:var(--blue);
  display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:1.3rem;
  background:#fff;
}
.elementor .brand__name{font-family:var(--serif);font-size:1.1rem;font-weight:500;line-height:1.05}
.elementor .brand__name small{display:block;font-family:var(--sans);font-size:.6rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--teal);margin-top:3px}
.elementor .hd__nav{display:flex;gap:34px}
.elementor .hd__nav a{color:var(--body);font-size:.92rem;font-weight:500;position:relative;padding:4px 0}
.elementor .hd__nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;background:var(--teal);transition:width .25s}
.elementor .hd__nav a:hover{color:var(--ink)}
.elementor .hd__nav a:hover::after{width:100%}
.elementor .hd__cta{display:flex;gap:12px;align-items:center}
.elementor .hd__cta .btn{padding:11px 22px;font-size:.86rem}
.elementor .burger{display:none;width:46px;height:46px;border:1px solid var(--hairline);background:#fff;border-radius:10px;cursor:pointer;flex-direction:column;gap:5px;align-items:center;justify-content:center}
.elementor .burger .bar{width:19px;height:2px;background:var(--ink);border-radius:2px}
.elementor .m-nav{display:none;background:#fff;border-bottom:1px solid var(--hairline);padding:16px 28px 28px}
.elementor .m-nav.open{display:block}
.elementor .m-nav a{display:block;padding:13px 0;border-bottom:1px solid var(--wash);color:var(--ink);font-weight:500}
.elementor .m-nav .btn{width:100%;margin-top:16px}
.elementor .hero{position:relative;overflow:hidden}
.elementor .hero::before{ 
  content:"";position:absolute;right:-320px;top:-260px;width:820px;height:820px;
  border-radius:50%;border:1px solid var(--hairline);
  background:radial-gradient(closest-side,#F5F9FD 0%,rgba(245,249,253,0) 75%);
}
.elementor .hero__grid{
  position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  gap:clamp(40px,6vw,90px);align-items:center;
  padding:clamp(70px,8vw,120px) 0 clamp(90px,9vw,130px);
}
.elementor .kicker{
  display:inline-flex;align-items:baseline;gap:14px;margin-bottom:26px;
  font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);
}
.elementor .kicker b{color:var(--teal);font-family:var(--serif);font-style:italic;font-weight:500;font-size:1rem;letter-spacing:0;text-transform:none}
.elementor .hero h1,.elementor .hero h1.elementor-heading-title{margin-bottom:30px;max-width:13ch}
.elementor .hero__lede{font-size:1.13rem;max-width:54ch;margin-bottom:14px}
.elementor .hero__oath{
  font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--ink);
  border-left:2px solid var(--teal);padding-left:16px;margin:22px 0 36px;
}
.elementor .hero__btns{display:flex;flex-wrap:wrap;gap:14px}
.elementor .collage{position:relative;min-height:520px}
.elementor .collage__photo{
  position:absolute;top:0;right:0;width:78%;height:78%;
  border-radius:var(--r-lg);box-shadow:var(--sh-deep);
  background:linear-gradient(155deg,#E9F1F9 0%,#CFDEEF 100%);
  transform:rotate(1.5deg);
}
.elementor .collage__photo::after{
  content:"HERO IMAGE — strip on tongue";position:absolute;inset:auto 16px 14px auto;
  font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:#93A7C2;
}
.elementor .collage__strip{
  position:absolute;left:0;bottom:8%;width:52%;padding:20px;
  background:#fff;border:1px solid var(--hairline);border-radius:var(--r-sm);
  box-shadow:var(--sh-deep);transform:rotate(-2deg);
}
.elementor .collage__strip .mock{
  height:88px;border-radius:10px;
  background:linear-gradient(115deg,#DCF1EE 0%,#F4FBFA 50%,#C8E7E2 100%);
  border:1px solid #BCE0DA;position:relative;
}
.elementor .collage__strip .mock::after{content:"";position:absolute;inset:9px;border:1px dashed rgba(47,143,133,.45);border-radius:6px}
.elementor .collage__strip .collage__cap{margin-top:12px;font-size:.8rem;color:var(--faint)}
.elementor .collage__strip .collage__cap b{display:block;color:var(--ink);font-size:.9rem;font-weight:600}
.elementor .collage__badge{
  position:absolute;top:6%;left:4%;display:flex;align-items:center;gap:11px;
  background:#fff;border:1px solid var(--hairline);border-radius:99px;
  padding:11px 20px 11px 12px;box-shadow:var(--sh-soft);
}
.elementor .collage__badge .dot{
  width:30px;height:30px;border-radius:50%;background:var(--teal-wash);
  display:grid;place-items:center;color:var(--teal);font-weight:700;font-size:.9rem;
}
.elementor .collage__badge span{font-size:.8rem;font-weight:600;color:var(--ink);letter-spacing:.04em}
.elementor .ribbon{position:relative;z-index:2;margin-top:-34px;padding-bottom:6px}
.elementor .ribbon__in{
  background:var(--ink);color:#B9C8E0;border-radius:99px;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px clamp(24px,4vw,52px);box-shadow:var(--sh-deep);gap:18px;flex-wrap:wrap;
}
.elementor .ribbon__item{display:flex;align-items:baseline;gap:10px}
.elementor .ribbon__item b{font-family:var(--serif);font-size:1.35rem;color:#fff;font-weight:500}
.elementor .ribbon__item span{font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.elementor .ribbon__sep{width:1px;height:26px;background:rgba(255,255,255,.16)}
.elementor .story{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,80px);align-items:center}
.elementor .story__copy h2,.elementor .story__copy h2.elementor-heading-title{margin:0 0 22px}
.elementor .story__copy p{margin-bottom:30px;max-width:46ch}
.elementor .story__stage{position:relative;padding:0 0 46px 46px}
.elementor .story__photo{
  border-radius:var(--r-lg);min-height:460px;box-shadow:var(--sh-deep);
  background:
    radial-gradient(400px 280px at 72% 26%,rgba(47,143,133,.16),transparent 65%),
    linear-gradient(150deg,#F0F6FB 0%,#D9E7F4 100%);
  position:relative;
}
.elementor .story__photo::after{
  content:"STORY IMAGE — dissolving strip close-up";position:absolute;right:18px;bottom:14px;
  font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:#93A7C2;
}
.elementor .float-card{
  position:absolute;background:#fff;border:1px solid var(--hairline);border-radius:var(--r-sm);
  box-shadow:var(--sh-deep);padding:18px 22px;max-width:250px;
}
.elementor .float-card b{display:block;font-family:var(--serif);font-size:1.15rem;color:var(--ink);font-weight:500;margin-bottom:3px}
.elementor .float-card span{font-size:.8rem;color:var(--faint);line-height:1.5;display:block}
.elementor .float-card--a{left:0;bottom:0}
.elementor .float-card--b{right:-14px;top:-24px}
.elementor .proof{
  margin-top:clamp(56px,7vw,84px);display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--hairline);
}
.elementor .proof__item{padding:30px 28px 6px;border-left:1px solid var(--hairline)}
.elementor .proof__item:first-child{border-left:none;padding-left:0}
.elementor .proof__item b{font-family:var(--serif);font-size:clamp(2.2rem,3.4vw,3rem);color:var(--ink);font-weight:500;line-height:1}
.elementor .proof__item b i{font-style:italic;font-size:.55em;color:var(--teal)}
.elementor .proof__item span{display:block;margin-top:10px;font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.elementor .cat-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end;margin-bottom:54px}
.elementor .cat-head p{color:var(--faint);max-width:44ch;justify-self:end;text-align:right}
.elementor .featured{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:26px}
.elementor .f-card{
  display:grid;grid-template-columns:180px 1fr;background:#fff;
  border:1px solid var(--hairline);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--sh-soft);transition:box-shadow .25s,transform .25s;
}
.elementor .f-card:hover{transform:translateY(-4px);box-shadow:var(--sh-deep)}
.elementor .f-card__art{
  position:relative;background:linear-gradient(160deg,var(--tint,#E8F0F9) 0%,#FFFFFF 130%);
  display:grid;place-items:center;
}
.elementor .f-card__art::before{ 
  content:"";width:86px;height:118px;border-radius:12px;background:#fff;
  border:1px solid var(--hairline);box-shadow:var(--sh-soft);
}
.elementor .f-card__art::after{
  content:"";position:absolute;width:60px;height:16px;border-radius:99px;
  background:var(--chip,#CFE0F2);opacity:.85;
}
.elementor .f-card__body{padding:28px 30px;display:flex;flex-direction:column;gap:10px}
.elementor .f-card__flag{font-size:.66rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--teal)}
.elementor .f-card h3,.elementor .f-card h3.elementor-heading-title{font-size:1.7rem}
.elementor .f-card p{font-size:.94rem;color:var(--faint);flex-grow:1}
.elementor .f-card__row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--wash);padding-top:16px}
.elementor .price{font-family:var(--serif);font-size:1.5rem;color:var(--ink)}
.elementor .price small{font-family:var(--sans);font-size:.76rem;color:var(--faint)}
.elementor .f-card .btn{padding:12px 24px;font-size:.88rem}
.elementor .shelf{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.elementor .p-card{
  background:#fff;border:1px solid var(--hairline);border-radius:var(--r-lg);overflow:hidden;
  display:flex;flex-direction:column;box-shadow:var(--sh-soft);
  transition:transform .25s,box-shadow .25s;
}
.elementor .p-card:hover{transform:translateY(-5px);box-shadow:var(--sh-deep);border-color:#CBD9EA}
.elementor .p-card__head{
  padding:20px 24px;display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(180deg,var(--tint,#EEF3FA) 0%,rgba(255,255,255,0) 160%);
}
.elementor .chip{
  font-size:.64rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);background:#fff;border:1px solid var(--hairline);
  border-radius:99px;padding:6px 13px;
}
.elementor .p-card__dose{font-size:.76rem;font-weight:600;color:var(--faint)}
.elementor .p-card__body{padding:20px 24px 26px;display:flex;flex-direction:column;gap:10px;flex-grow:1}
.elementor .p-card h3,.elementor .p-card h3.elementor-heading-title{font-size:1.32rem}
.elementor .p-card__desc{font-size:.9rem;color:var(--faint);flex-grow:1}
.elementor .p-card__row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--wash);padding-top:15px;gap:10px}
.elementor .p-card__row .price{font-size:1.25rem}
.elementor .p-card__row .btn{padding:10px 20px;font-size:.82rem}
.elementor .soon{
  font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--teal);background:var(--teal-wash);border-radius:99px;padding:9px 18px;
}
.elementor .t-beauty{--tint:#F7EDF1;--chip:#E3C3CF}
.elementor .t-energy{--tint:#F8F2E6;--chip:#E8D3A6}
.elementor .t-immune{--tint:#ECF4EC;--chip:#BCDCC2}
.elementor .t-intimacy{--tint:#F1EDF7;--chip:#CFC0E4}
.elementor .t-rebuild{--tint:#F8EFEC;--chip:#E5C0B4}
.elementor .t-strength{--tint:#EAF1FA;--chip:#B7CCEC}
.elementor .t-vitality{--tint:#E9F5F2;--chip:#AFDCD2}
.elementor .t-sleep{--tint:#EDEFF8;--chip:#BFC8E8}
.elementor .t-focus{--tint:#EAF4F8;--chip:#B3D6E4}
.elementor .t-metab{--tint:#E7F3F1;--chip:#9CCFC7}
.elementor .opp{position:relative}
.elementor .opp__panel{
  position:relative;background:#fff;border:1px solid var(--hairline);
  border-radius:var(--r-lg);box-shadow:var(--sh-deep);
  padding:clamp(36px,5.5vw,64px);
  display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:48px;align-items:center;
}
.elementor .opp__panel::before{ 
  content:"";position:absolute;left:0;top:26px;bottom:26px;width:4px;border-radius:99px;background:var(--teal);
}
.elementor .opp__panel h2,.elementor .opp__panel h2.elementor-heading-title{margin-bottom:18px;max-width:16ch}
.elementor .opp__panel p{max-width:56ch}
.elementor .opp__panel p b{color:var(--ink)}
.elementor .opp__aside{position:relative;display:flex;flex-direction:column;gap:16px;align-items:stretch}
.elementor .opp__stat{
  background:var(--ink);color:#fff;border-radius:var(--r-sm);padding:26px 28px;
  box-shadow:var(--sh-deep);transform:rotate(1.6deg);
}
.elementor .opp__stat b{font-family:var(--serif);font-size:2.4rem;font-weight:500;line-height:1}
.elementor .opp__stat span{display:block;margin-top:6px;font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#9FB2D2}
.elementor .opp__aside .btn{justify-content:center}
.elementor .mosaic{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:26px;grid-auto-rows:auto}
.elementor .aud{
  background:#fff;border:1px solid var(--hairline);border-radius:var(--r-lg);
  overflow:hidden;box-shadow:var(--sh-soft);display:flex;flex-direction:column;
  transition:box-shadow .25s;
}
.elementor .aud:hover{box-shadow:var(--sh-deep)}
.elementor .aud--tall{grid-row:span 2}
.elementor .aud__img{position:relative;min-height:230px;background:linear-gradient(150deg,#E3EDF7 0%,#CBDCEE 100%);flex:none}
.elementor .aud--tall .aud__img{min-height:300px}
.elementor .aud--row{flex-direction:row}
.elementor .aud--row .aud__img{width:42%;min-height:100%}
.elementor .aud__img .aud__tag{
  position:absolute;left:18px;top:16px;
  background:rgba(14,34,64,.82);color:#fff;border-radius:99px;padding:7px 15px;
  font-size:.64rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;backdrop-filter:blur(4px);
}
.elementor .aud__body{padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:12px}
.elementor .aud__body h3,.elementor .aud__body h3.elementor-heading-title{font-size:1.45rem}
.elementor .aud__body p{font-size:.93rem;color:var(--faint)}
.elementor .list-line{display:flex;flex-direction:column;margin-top:4px}
.elementor .list-line li{
  display:flex;gap:12px;align-items:baseline;padding:10px 0;
  border-top:1px solid var(--wash);font-size:.92rem;font-weight:500;color:var(--ink);
}
.elementor .list-line li::before{content:"";flex:none;width:18px;height:2px;background:var(--teal);align-self:center;border-radius:2px}
.elementor .ledger{
  position:relative;display:grid;grid-template-columns:1fr 1fr;
  background:#fff;border:1px solid var(--hairline);border-radius:var(--r-lg);
  overflow:hidden;box-shadow:var(--sh-deep);margin:54px 0 70px;
}
.elementor .ledger__side{padding:clamp(30px,4.5vw,52px)}
.elementor .ledger__side--aff{background:var(--wash-grey)}
.elementor .ledger__side--rep{background:linear-gradient(170deg,#F0FAF8 0%,#FFFFFF 80%)}
.elementor .ledger__side h4,.elementor .ledger__side h4.elementor-heading-title{
  font-family:var(--sans);font-size:.74rem;font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;margin-bottom:26px;
}
.elementor .ledger__side--aff h4,.elementor .ledger__side--aff h4.elementor-heading-title{color:var(--faint)}
.elementor .ledger__side--rep h4,.elementor .ledger__side--rep h4.elementor-heading-title{color:var(--teal)}
.elementor .ledger__side li{display:flex;gap:14px;padding:13px 0;border-top:1px solid rgba(14,34,64,.07);font-size:.96rem;align-items:baseline}
.elementor .ledger__side--aff li{color:var(--faint)}
.elementor .ledger__side--aff li::before{content:"✕";color:#C08A93;font-size:.78rem;font-weight:700}
.elementor .ledger__side--rep li{color:var(--ink);font-weight:500}
.elementor .ledger__side--rep li::before{content:"✓";color:var(--teal);font-weight:700}
.elementor .ledger__vs{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:58px;height:58px;border-radius:50%;background:var(--ink);color:#fff;
  display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:1.05rem;
  box-shadow:var(--sh-deep);z-index:2;
}
.elementor .window{
  position:relative;border-radius:var(--r-lg);overflow:visible;
  background:linear-gradient(140deg,#0E2240 0%,#256F67 60%,#2F8F85 100%);
  padding:clamp(44px,6vw,76px) clamp(28px,5vw,72px) 0;color:#AFC1DE;
}
.elementor .window .kicker{color:#7E93B8}
.elementor .window .kicker b{color:#7FCEC4}
.elementor .window h2,.elementor .window h2.elementor-heading-title{color:#fff;max-width:19ch;margin-bottom:18px}
.elementor .window h2 em,.elementor .window h2.elementor-heading-title em{font-style:italic;color:#7FCEC4;font-weight:400}
.elementor .window .win-lede p{max-width:62ch;padding-bottom:clamp(44px,6vw,72px)}
.elementor .window__card{
  position:relative;transform:translateY(56px);margin-top:-8px;
  background:#fff;border-radius:var(--r-sm);box-shadow:var(--sh-deep);
  padding:clamp(26px,4vw,40px);display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;
}
.elementor .window__card h3,.elementor .window__card h3.elementor-heading-title{font-size:1.45rem;margin-bottom:8px}
.elementor .window__card h3 em,.elementor .window__card h3.elementor-heading-title em{font-style:italic;color:var(--teal);font-weight:400}
.elementor .window__card p{color:var(--faint);max-width:58ch;font-size:.95rem}
.elementor .window-spacer{height:56px}
.elementor .faq-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(40px,6vw,90px);align-items:start}
.elementor .faq-grid__intro{position:sticky;top:110px}
.elementor .faq-grid__intro h2,.elementor .faq-grid__intro h2.elementor-heading-title{margin:14px 0 18px}
.elementor .faq-grid__intro p{color:var(--faint);max-width:34ch}
.elementor .qa{border-top:1px solid var(--hairline)}
.elementor .qa__item{border-bottom:1px solid var(--hairline)}
.elementor .qa__q{
  width:100%;background:none;border:none;cursor:pointer;text-align:left;
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:28px 4px;font-family:var(--serif);font-size:1.26rem;color:var(--ink);font-weight:500;
  transition:color .2s;
}
.elementor .qa__q:hover{color:var(--blue)}
.elementor .qa__mark{
  flex:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--hairline);
  display:grid;place-items:center;color:var(--blue);font-family:var(--sans);font-size:1.15rem;
  transition:transform .3s,background .2s,color .2s,border-color .2s;
}
.elementor .qa__item.open .qa__mark{transform:rotate(45deg);background:var(--blue);border-color:var(--blue);color:#fff}
.elementor .qa__a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.elementor .qa__a p{padding:0 48px 30px 4px;color:var(--body);font-size:.97rem;max-width:64ch}
.elementor .close{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(44px,6vw,90px);align-items:start}
.elementor .close__essay h2,.elementor .close__essay h2.elementor-heading-title{margin:14px 0 26px}
.elementor .close__essay p{margin-bottom:18px}
.elementor .close__essay p b{color:var(--ink)}
.elementor .close__essay .lede::first-letter{
  font-family:var(--serif);font-size:3.4em;float:left;line-height:.82;
  padding:6px 12px 0 0;color:var(--teal);
}
.elementor .form-panel{
  background:#fff;border:1px solid var(--hairline);border-radius:var(--r-lg);
  box-shadow:var(--sh-deep);padding:clamp(30px,4vw,44px);
}
.elementor .form-panel h3,.elementor .form-panel h3.elementor-heading-title{font-size:1.4rem;margin-bottom:8px}
.elementor .form-panel .fp-desc p{font-size:.92rem;color:var(--faint);margin-bottom:28px}
.elementor .fld{margin-bottom:24px}
.elementor .fld label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);margin-bottom:8px}
.elementor .fld input,.elementor .fld select,.elementor .fld textarea{
  width:100%;border:none;border-bottom:1.5px solid var(--hairline);border-radius:0;
  background:transparent;padding:10px 2px 12px;font-family:var(--sans);font-size:1rem;color:var(--ink);
  transition:border-color .2s;
}
.elementor .fld textarea{min-height:88px;resize:vertical}
.elementor .fld input:focus,.elementor .fld select:focus,.elementor .fld textarea:focus{outline:none;border-bottom-color:var(--blue)}
.elementor .fld input::placeholder,.elementor .fld textarea::placeholder{color:#A9B6CB}
.elementor .form-panel .btn{width:100%;margin-top:8px}
.elementor .form-panel small{display:block;text-align:center;margin-top:16px;font-size:.78rem;color:var(--faint)}
.elementor .ft{border-top:1px solid var(--hairline);background:var(--wash-grey);padding:72px 0 40px;font-size:.92rem}
.elementor .ft__grid{display:grid;grid-template-columns:minmax(0,4.4fr) minmax(0,2.4fr) minmax(0,2.6fr) minmax(0,2.6fr);gap:44px;padding-bottom:48px;border-bottom:1px solid var(--hairline)}
.elementor .ft .brand{margin-bottom:18px}
.elementor .ft h5,.elementor .ft h5.elementor-heading-title{font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);margin-bottom:18px}
.elementor .ft ul li{margin-bottom:11px}
.elementor .ft a{color:var(--body)}
.elementor .ft a:hover{color:var(--blue)}
.elementor .ft__legal{padding-top:30px;font-size:.78rem;line-height:1.75;color:var(--faint)}
.elementor .ft__legal p + p{margin-top:10px}
@media (max-width:1080px){.elementor .hero__grid{grid-template-columns:1fr;gap:56px}
.elementor .collage{min-height:440px;max-width:560px}
.elementor .story{grid-template-columns:1fr}
.elementor .cat-head{grid-template-columns:1fr}
.elementor .cat-head p{justify-self:start;text-align:left}
.elementor .shelf{grid-template-columns:repeat(3,1fr)}
.elementor .featured{grid-template-columns:1fr}
.elementor .mosaic{grid-template-columns:1fr}
.elementor .aud--tall{grid-row:auto}
.elementor .faq-grid{grid-template-columns:1fr}
.elementor .faq-grid__intro{position:static}
.elementor .close{grid-template-columns:1fr}
.elementor .hd__nav{display:none}}
@media (max-width:840px){.elementor .shelf{grid-template-columns:repeat(2,1fr)}
.elementor .proof{grid-template-columns:1fr 1fr}
.elementor .proof__item{border-left:none;padding-left:0}
.elementor .ledger{grid-template-columns:1fr}
.elementor .ledger__vs{top:50%;left:50%}
.elementor .opp__panel{grid-template-columns:1fr}
.elementor .window__card{grid-template-columns:1fr}
.elementor .ribbon__in{border-radius:24px;justify-content:flex-start}
.elementor .ribbon__sep{display:none}
.elementor .ribbon__item{width:calc(50% - 18px)}
.elementor .aud--row{flex-direction:column}
.elementor .aud--row .aud__img{width:100%;min-height:210px}
.elementor .burger{display:flex}
.elementor .hd__cta .btn--line{display:none}}
@media (max-width:560px){.elementor .shelf{grid-template-columns:1fr}
.elementor .f-card{grid-template-columns:1fr}
.elementor .f-card__art{min-height:150px}
.elementor .hero__btns .btn{width:100%}
.elementor .hd__cta .btn--fill{display:none}
.elementor .collage__strip{width:64%}
body{font-size:16px}}
.elementor .eyebrow{
  display:inline-flex;align-items:center;gap:12px;margin-bottom:20px;
  font-size:.72rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--teal);
}
.elementor .eyebrow::before{content:"";width:22px;height:2px;background:var(--teal);border-radius:2px}
.elementor .hero__points{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:28px}
.elementor .hero__points li{display:flex;align-items:center;gap:9px;font-size:.87rem;font-weight:600;color:var(--ink)}
.elementor .hero__points li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--teal)}
.elementor .two-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end;margin-bottom:52px}
.elementor .two-head p{color:var(--faint);max-width:46ch;justify-self:end;text-align:right}
.elementor .trio{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.elementor .t-card{
  background:#fff;border:1px solid var(--hairline);border-radius:var(--r-lg);
  padding:36px 32px;box-shadow:var(--sh-soft);transition:transform .25s,box-shadow .25s,border-color .25s;
}
.elementor .t-card:hover{transform:translateY(-4px);box-shadow:var(--sh-deep);border-color:#CBD9EA}
.elementor .t-card__rule{display:block;width:30px;height:3px;border-radius:3px;background:var(--teal);margin-bottom:22px}
.elementor .t-card h3,.elementor .t-card h3.elementor-heading-title{font-size:1.32rem;margin-bottom:10px}
.elementor .t-card p{font-size:.94rem;color:var(--faint)}
.elementor .goals{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.elementor .g-card{
  border:1px solid var(--hairline);border-radius:var(--r-lg);padding:32px 28px;
  background:linear-gradient(180deg,var(--tint,#EEF3FA) 0%,#FFFFFF 60%);
  box-shadow:var(--sh-soft);display:flex;flex-direction:column;gap:10px;
  transition:transform .25s,box-shadow .25s;
}
.elementor .g-card:hover{transform:translateY(-4px);box-shadow:var(--sh-deep)}
.elementor .g-card h3,.elementor .g-card h3.elementor-heading-title{font-size:1.22rem}
.elementor .g-card p{font-size:.9rem;color:var(--faint);flex-grow:1}
.elementor .g-card a{font-weight:600;font-size:.88rem;display:inline-flex;gap:6px;align-items:center}
.elementor .g-card a .arr{transition:transform .2s}
.elementor .g-card a:hover .arr{transform:translateX(4px)}
.elementor .fineprint{margin-top:28px;font-size:.78rem;color:var(--faint);max-width:82ch;line-height:1.7}
.elementor .pract{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,84px);align-items:center}
.elementor .pract__copy h2,.elementor .pract__copy h2.elementor-heading-title{margin:0 0 20px;max-width:20ch}
.elementor .pract__copy p{margin-bottom:14px;max-width:52ch}
.elementor .check-panel{
  background:#fff;border:1px solid var(--hairline);border-radius:var(--r-lg);
  box-shadow:var(--sh-deep);padding:clamp(28px,3.5vw,42px);
}
.elementor .check-panel h4,.elementor .check-panel h4.elementor-heading-title{font-family:var(--sans);font-size:.74rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--teal);margin-bottom:14px}
.elementor .check-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}
.elementor .check-grid li{
  display:flex;gap:12px;align-items:baseline;padding:14px 0;
  border-bottom:1px solid var(--wash);font-size:.94rem;font-weight:500;color:var(--ink);
}
.elementor .check-grid li::before{content:"\2713";color:var(--teal);font-weight:700;flex:none}
.elementor .flow{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.elementor .flow__card{
  background:#fff;border:1px solid var(--hairline);border-radius:var(--r-lg);
  padding:34px 30px;box-shadow:var(--sh-soft);transition:transform .25s,box-shadow .25s,border-color .25s;
}
.elementor .flow__card:hover{transform:translateY(-4px);box-shadow:var(--sh-deep);border-color:#CBD9EA}
.elementor .flow__tag{
  display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--teal);background:var(--teal-wash);border-radius:99px;padding:7px 15px;margin-bottom:20px;
}
.elementor .flow__card h3,.elementor .flow__card h3.elementor-heading-title{font-size:1.28rem;margin-bottom:8px}
.elementor .flow__card p{font-size:.93rem;color:var(--faint)}
@media (max-width:1080px){.elementor .two-head{grid-template-columns:1fr}
.elementor .two-head p{justify-self:start;text-align:left}
.elementor .trio{grid-template-columns:1fr}
.elementor .goals{grid-template-columns:1fr 1fr}
.elementor .pract{grid-template-columns:1fr}}
@media (max-width:840px){.elementor .flow{grid-template-columns:1fr}
.elementor .check-grid{grid-template-columns:1fr}}
@media (max-width:560px){.elementor .goals{grid-template-columns:1fr}}

/* ---- native widget skin ---- */
.elementor .e-con .elementor-widget-text-editor{color:var(--body);font-size:17px;line-height:1.7;font-family:var(--sans)}
@media(max-width:560px){.elementor .e-con .elementor-widget-text-editor{font-size:16px}}
.elementor .window .elementor-widget-text-editor,
.elementor .window__card .elementor-widget-text-editor{color:inherit}
.elementor .grow{flex-grow:1}
.elementor .rep-h2 .elementor-heading-title{max-width:18ch}
.elementor .rep-lede p{max-width:64ch;margin-top:18px}
.elementor .win-lede p{max-width:62ch;padding-bottom:clamp(44px,6vw,72px)}
.elementor .mosaic{margin-top:26px}
.elementor .aud--row > .e-con{flex:1 1 0;min-width:0}

/* BUTTONS: shrink-to-content inside flex rows (fixes hero button wrapping) */
.elementor .wbtn{flex:0 0 auto;width:auto}
.elementor .wbtn .elementor-widget-container{display:inline-flex;width:auto}
.elementor .wbtn .elementor-button-wrapper{display:inline-flex;width:auto}
.elementor .wbtn .elementor-button,
.elementor .wbtn .elementor-button:visited{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;
  font-family:var(--sans);font-weight:600;font-size:.94rem;letter-spacing:.01em;
  padding:16px 32px;border-radius:10px;cursor:pointer;border:1px solid transparent;
  background:transparent;box-shadow:none;color:var(--ink);text-decoration:none;width:auto;
  transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s;
}
.elementor .wbtn .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:10px}
.elementor .wbtn.btn--fill .elementor-button{background:var(--blue);color:#fff}
.elementor .wbtn.btn--fill .elementor-button:hover{background:var(--blue-dark);transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(47,143,133,.55)}
.elementor .wbtn.btn--line .elementor-button{color:var(--ink);border-color:#C9D5E6}
.elementor .wbtn.btn--line .elementor-button:hover{border-color:var(--blue);color:var(--blue);background:#F5F9FD;transform:translateY(-1px)}
.elementor .wbtn.btn--teal .elementor-button{background:var(--teal);color:#fff}
.elementor .wbtn.btn--teal .elementor-button:hover{background:#256F67}
.elementor .wbtn.btn-sm .elementor-button{padding:11px 22px;font-size:.86rem}
.elementor .wbtn.btn-md .elementor-button{padding:12px 24px;font-size:.88rem}
.elementor .wbtn.btn-xs .elementor-button{padding:10px 20px;font-size:.82rem}
.elementor .wbtn.btn-arr .elementor-button-text::after{content:"\2192";display:inline-block;margin-left:10px;transition:transform .2s}
.elementor .wbtn.btn-arr .elementor-button:hover .elementor-button-text::after{transform:translateX(4px)}
/* full-width buttons in the aside + form panel */
.elementor .opp__aside .wbtn,.elementor .form-panel .wbtn{width:100%}
.elementor .opp__aside .wbtn .elementor-widget-container,.elementor .opp__aside .wbtn .elementor-button-wrapper,
.elementor .form-panel .wbtn .elementor-widget-container,.elementor .form-panel .wbtn .elementor-button-wrapper{display:block;width:100%}
.elementor .opp__aside .wbtn .elementor-button,.elementor .form-panel .wbtn .elementor-button{width:100%}
.elementor .form-panel .wbtn{margin-top:8px}
@media(max-width:840px){.elementor .hd__cta .wbtn.btn--line{display:none}}
@media(max-width:560px){
  .elementor .hd__cta .wbtn.btn--fill{display:none}
  .elementor .hero__btns .wbtn{width:100%;flex:1 1 100%}
  .elementor .hero__btns .wbtn .elementor-widget-container,
  .elementor .hero__btns .wbtn .elementor-button-wrapper{display:block;width:100%}
  .elementor .hero__btns .wbtn .elementor-button{width:100%}
}

/* rows that mix a container + a button */
.elementor .window__card > .e-con{flex:1 1 auto;min-width:0}

/* badge / caption wrappers (were single html blobs, now text widgets) */
.elementor .collage__badge .elementor-widget-text-editor{display:flex;align-items:center;gap:11px;color:inherit;font-size:inherit}
.elementor .collage__strip .collage__cap{margin-top:12px;font-size:.8rem;color:var(--faint)}
.elementor .collage__strip .collage__cap b{display:block;color:var(--ink);font-size:.9rem;font-weight:600}
.elementor .brand{text-decoration:none}
.elementor .brand .elementor-widget-text-editor{color:inherit;font-size:inherit;line-height:inherit;font-family:inherit}

/* FAQ accordion (heading + text widgets) */
.elementor .qa__q{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 4px;cursor:pointer}
.elementor .qa__q .elementor-heading-title{font-family:var(--serif);font-size:1.26rem;color:var(--ink);font-weight:500;line-height:1.3;transition:color .2s}
.elementor .qa__q:hover .elementor-heading-title{color:var(--blue)}
.elementor .qa__q::after{content:"+";flex:none;width:34px;height:34px;border-radius:50%;
  border:1px solid var(--hairline);display:grid;place-items:center;color:var(--blue);
  font-family:var(--sans);font-size:1.15rem;line-height:1;
  transition:transform .3s,background .2s,color .2s,border-color .2s}
.elementor .qa__item.open .qa__q::after{transform:rotate(45deg);background:var(--blue);border-color:var(--blue);color:#fff}
.elementor .qa__a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.elementor .qa__a p{padding:0 48px 30px 4px;color:var(--body);font-size:.97rem;max-width:64ch}


/* Elementor variable neutraliser - higher specificity than .e-con.e-flex, which
   otherwise forces --flex-direction:column on every flex container.
   Only CSS VARIABLES are set here, so the design CSS can still override real properties. */
.elementor .e-con,.elementor .e-con.e-flex,.elementor .e-con.e-grid,.elementor .e-con-inner,.elementor .e-con.e-flex.e-con-full,.elementor .e-child{--display:block;--flex-direction:row;--flex-wrap:nowrap;--justify-content:normal;--align-items:normal;--align-self:auto;--width:auto;--content-width:none;--min-height:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--padding-block-start:0px;--padding-block-end:0px;--padding-inline-start:0px;--padding-inline-end:0px;--margin-block-start:0px;--margin-block-end:0px;--margin-inline-start:0px;--margin-inline-end:0px;--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px}

/* Theme margin reset. The standalone design relied on a global *{margin:0;padding:0};
   the WP theme re-adds p/ul/heading margins. Specificity (0,1,1): beats the theme,
   loses to every design rule (0,2,0+), so intentional spacing is preserved. */
.elementor p,.elementor ul,.elementor ol,.elementor li,.elementor figure,.elementor blockquote,.elementor h1,.elementor h2,.elementor h3,.elementor h4,.elementor h5,.elementor h6,.elementor small,.elementor b,.elementor span{margin:0;padding:0}

/* Real images: drop the gradient placeholders + their caption pseudo-elements.
   Elementor's per-element background rule is more specific, so it supplies the image. */
.elementor .collage__photo,.elementor .story__photo,.elementor .aud__img{background-image:none;background-color:#E9EEF5}
.elementor .collage__photo::after,.elementor .story__photo::after{content:none}

/* Image slots: native Image widgets fill their container (click any of them in Elementor to swap). */
.elementor .story__photo{position:relative}
.elementor .collage__photo,.elementor .story__photo,.elementor .aud__img{overflow:hidden}
.elementor .slot-img{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.elementor .slot-img .elementor-widget-container,.elementor .slot-img .elementor-image,.elementor .slot-img figure,.elementor .slot-img a{display:block;height:100%;width:100%;margin:0}
.elementor .slot-img img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}
.elementor .aud__img .aud__tag{z-index:2}
.elementor .collage__badge,.elementor .collage__strip{z-index:3}

/* Scroll-reveal safety: .rv used to start at opacity:0 and only appear when JS added .on.
   Elementor's editor does not run frontend JS, so whole sections looked missing.
   Now visible by default; hidden only once JS is confirmed running (html.fw-js), never in the editor. */
.elementor .rv{opacity:1;transform:none}
html.fw-js .elementor .rv{opacity:0;transform:translateY(26px);transition:opacity .75s ease,transform .75s ease}
html.fw-js .elementor .rv.on{opacity:1;transform:none}
body.elementor-editor-active .elementor .rv,body.elementor-editor-active .elementor .rv.on{opacity:1 !important;transform:none !important;transition:none !important}
body.elementor-editor-active .elementor .hd{position:relative}

/* ============================================================
   QA FIXES
   1. Laptop/tablet tier (841-1080px): the source design hid .hd__nav
      at 1080 but only showed .burger at 840 -> NO navigation at all
      in that whole range. Burger now appears from 1080.
   2. .trio stacked all 3 cards into one column at 1080; now 2-up.
   3. Elementor editor: reveal things that are collapsed/hidden on the
      frontend so every section is visible and clickable in the editor.
   ============================================================ */

@media (max-width:1080px){
  .elementor .burger{display:flex}
  .elementor .hd__cta .wbtn.btn--line{display:none}
  .elementor .trio{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .elementor .trio{grid-template-columns:1fr}
}

/* --- Elementor editor only --- */
body.elementor-editor-active .qa__a{max-height:none;overflow:visible}
body.elementor-editor-active .qa__a p{padding-bottom:20px}
body.elementor-editor-active .rv{opacity:1;transform:none}
body.elementor-editor-active .m-nav{display:block;position:static;box-shadow:none;
  border-top:1px dashed #C9D5E6;background:#F7FAFD}
body.elementor-editor-active .burger{display:flex}
body.elementor-editor-active .hd{position:static}
/* ============================================================
   NEW SECTIONS v5 - How It Works / Comparison / The Standard / Peptides 101
   Selectors carry the .elementor prefix so they beat the container reset.
   ============================================================ */

.elementor .sec{padding:var(--pad-y) 0}
.elementor .sec--light{background:#fff;border-top:1px solid var(--hairline)}
.elementor .sec--dark{background-color:var(--blue-dark);color:#fff;border-top:0}

/* shared section head */
.elementor .sec__lede{font-size:17px;line-height:1.75;color:var(--muted);max-width:520px}
.elementor .note__p{font-size:15.5px;line-height:1.75;color:var(--muted)}
.elementor .note__p b{color:var(--ink);font-weight:600}

/* ---------- 1. HOW IT WORKS ---------- */
.elementor .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.elementor .step{position:relative;padding:34px 30px 32px;background:var(--wash);
  border:1px solid var(--hairline);border-radius:18px}
.elementor .step__badge{display:block;margin-bottom:18px}
.elementor .step__num{display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid var(--hairline);
  font-family:Newsreader,Georgia,serif;font-size:17px;color:var(--teal)}
.elementor .step__h{font-family:Newsreader,Georgia,serif;font-weight:400;font-size:22px;
  line-height:1.3;color:var(--ink);margin-bottom:10px}
.elementor .step__p{font-size:15.5px;line-height:1.75;color:var(--muted)}
.elementor .how__note{margin-top:26px;padding:22px 26px;border:1px dashed var(--hairline);
  border-radius:14px;background:#fff}

/* ---------- 2. COMPARISON TABLE ---------- */
.elementor .ctable{margin-top:44px;border:1px solid var(--hairline);border-radius:18px;overflow:hidden}
.elementor .ctable__head,.elementor .ctable__row{display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;align-items:center}
.elementor .ctable__head{background:var(--wash);border-bottom:1px solid var(--hairline)}
.elementor .ctable__row{border-bottom:1px solid var(--hairline)}
.elementor .ctable__row:last-child{border-bottom:0}
.elementor .ctable__feat,.elementor .ctable__cell{padding:16px 20px}
.elementor .ctable__feat{font-size:15px;font-weight:600;color:var(--ink)}
.elementor .ctable__cell{font-size:14.5px;line-height:1.6;color:var(--muted);
  border-left:1px solid var(--hairline)}
.elementor .ctable__cell--own{background:rgba(47,143,133,.06);color:var(--ink);font-weight:500}
.elementor .ctable__head .ctable__cell,.elementor .ctable__head .ctable__feat{
  font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.elementor .ctable__head .ctable__cell--own{color:var(--teal)}
.elementor .compare__foot{display:flex;align-items:center;justify-content:space-between;
  gap:24px;margin-top:26px;flex-wrap:wrap}

/* ---------- 3. THE STANDARD (dark green) ---------- */
.elementor .sec--dark .eyebrow--light{color:rgba(255,255,255,.7)}
.elementor .sec--dark .h2--light{color:#fff}
.elementor .sec--dark .h2--light em{color:#9BD8CF;font-style:italic}
.elementor .dark__head{max-width:760px}
.elementor .dark__lede{margin-top:18px;font-size:17.5px;line-height:1.75;color:rgba(255,255,255,.78)}

.elementor .dstats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:46px;
  border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}
.elementor .dstat{padding:28px 20px;border-right:1px solid rgba(255,255,255,.18)}
.elementor .dstat:last-child{border-right:0}
.elementor .dstat__val{display:block;font-family:Newsreader,Georgia,serif;font-weight:400;
  font-size:38px;line-height:1;color:#fff}
.elementor .dstat__lab{display:block;margin-top:9px;font-size:12px;font-weight:500;
  letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.62)}

.elementor .pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.elementor .pillar{padding:32px 28px;border:1px solid rgba(255,255,255,.18);border-radius:18px;
  background:rgba(255,255,255,.05)}
.elementor .pillar__num{display:block;margin-bottom:16px}
.elementor .pillar__n{font-family:Newsreader,Georgia,serif;font-size:15px;color:#9BD8CF;
  letter-spacing:.1em}
.elementor .pillar__h{font-family:Newsreader,Georgia,serif;font-weight:400;font-size:22px;
  line-height:1.3;color:#fff;margin-bottom:10px}
.elementor .pillar__p{font-size:15.5px;line-height:1.75;color:rgba(255,255,255,.72)}

.elementor .dark__cta{display:flex;align-items:center;justify-content:space-between;gap:24px;
  margin-top:44px;padding-top:34px;border-top:1px solid rgba(255,255,255,.18);flex-wrap:wrap}
.elementor .dark__ctap{font-size:16.5px;line-height:1.7;color:rgba(255,255,255,.8);max-width:560px}
.elementor .wbtn.btn--white .elementor-button{background:#fff;color:var(--blue-dark);border:0}
.elementor .wbtn.btn--white .elementor-button:hover{background:#EAF4F2}

/* ---------- 4. PEPTIDES 101 ---------- */
.elementor .ecards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:44px}
.elementor .ecard{padding:30px 26px;background:#fff;border:1px solid var(--hairline);border-radius:18px;
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.elementor .ecard:hover{border-color:#CFDAE8;box-shadow:0 14px 34px rgba(14,34,64,.07);transform:translateY(-2px)}
.elementor .ecard__chip{display:block;margin-bottom:14px}
.elementor .ecard__tag{font-family:Newsreader,Georgia,serif;font-size:14px;color:var(--teal);letter-spacing:.1em}
.elementor .ecard__h{font-family:Newsreader,Georgia,serif;font-weight:400;font-size:20px;
  line-height:1.32;color:var(--ink);margin-bottom:10px}
.elementor .ecard__p{font-size:14.8px;line-height:1.75;color:var(--muted)}
.elementor .edu__foot{margin-top:28px;padding:20px 24px;background:var(--wash);
  border:1px solid var(--hairline);border-radius:14px}
.elementor .edu__note{font-size:14px;line-height:1.75;color:var(--muted)}
.elementor .edu__note b{color:var(--ink);font-weight:600}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .elementor .steps{grid-template-columns:1fr}
  .elementor .pillars{grid-template-columns:1fr}
  .elementor .ecards{grid-template-columns:repeat(2,1fr)}
  .elementor .dstats{grid-template-columns:repeat(2,1fr)}
  .elementor .dstat:nth-child(2){border-right:0}
  .elementor .dstat:nth-child(1),.elementor .dstat:nth-child(2){border-bottom:1px solid rgba(255,255,255,.18)}
}
@media (max-width:840px){
  .elementor .ctable__head{display:none}
  .elementor .ctable__row{grid-template-columns:1fr;padding:6px 0}
  .elementor .ctable__feat{padding-bottom:6px;font-size:13px;letter-spacing:.06em;
    text-transform:uppercase;color:var(--muted)}
  .elementor .ctable__cell{border-left:0;padding:8px 20px;display:flex;align-items:center;gap:10px}
  .elementor .ctable__cell::before{content:"Injection";flex:0 0 118px;font-size:12px;font-weight:600;
    letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
  .elementor .ctable__cell--own::before{content:"Strip";color:var(--teal)}
  .elementor .ctable__row .ctable__cell:last-child::before{content:"Capsule"}
  .elementor .compare__foot{flex-direction:column;align-items:flex-start}
  .elementor .dark__cta{flex-direction:column;align-items:flex-start}
}
@media (max-width:560px){
  .elementor .ecards{grid-template-columns:1fr}
  .elementor .dstats{grid-template-columns:1fr}
  .elementor .dstat{border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}
  .elementor .dstat:last-child{border-bottom:0}
  .elementor .step{padding:28px 22px}
  .elementor .ctable__cell::before{flex:0 0 96px}
}
/* ============================================================
   SECTION REDESIGN v6
   1. Dark section: the skin colours .elementor .e-con .elementor-widget-text-editor
      at (0,3,0), which outranked the (0,2,0) rules below - so body copy rendered
      slate-on-green. Light text is re-applied here at matching specificity.
   2. Each of the four sections gets its own layout language:
      How It Works = horizontal step rail   |  Comparison   = table
      The Standard = dark spec-sheet rows   |  Peptides 101 = ruled two-column index
   ============================================================ */

/* ---------- DARK SECTION: legible text ---------- */
.elementor .sec--dark .elementor-widget-text-editor,
.elementor .sec--dark .elementor-widget-text-editor p,
.elementor .sec--dark .elementor-widget-text-editor span,
.elementor .sec--dark .elementor-widget-text-editor b,
.elementor .sec--dark .elementor-widget-text-editor a{color:rgba(255,255,255,.80)}
.elementor .sec--dark .elementor-widget-heading .elementor-heading-title{color:#fff}
.elementor .sec--dark .elementor-heading-title em{color:#9BD8CF;font-style:italic}
.elementor .sec--dark .eyebrow--light,
.elementor .sec--dark .eyebrow--light span{color:rgba(255,255,255,.68)}
.elementor .sec--dark .dark__lede,
.elementor .sec--dark .dark__lede p{color:rgba(255,255,255,.82)}
.elementor .sec--dark .dark__ctap,
.elementor .sec--dark .dark__ctap p{color:rgba(255,255,255,.78)}

/* deepen the green a touch so white copy has room to breathe */
.elementor .sec--dark{background:#1F5F58}

/* ---------- 1. HOW IT WORKS -> horizontal step rail (no cards) ---------- */
.elementor .steps{position:relative;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:52px}
.elementor .steps::before{content:"";position:absolute;top:27px;left:16%;right:16%;height:1px;
  background:linear-gradient(90deg,transparent,var(--hairline) 12%,var(--hairline) 88%,transparent);z-index:0}
.elementor .step{position:relative;z-index:1;background:none;border:0;border-radius:0;
  padding:0 18px;text-align:center}
.elementor .step__badge{display:flex;justify-content:center;margin-bottom:22px}
.elementor .step__num{width:56px;height:56px;background:#fff;border:1px solid var(--teal);
  color:var(--teal);font-size:18px;box-shadow:0 0 0 6px #fff}
.elementor .step__h{font-size:23px;margin-bottom:12px}
.elementor .step__p{max-width:300px;margin:0 auto}

/* storage note -> tinted band with a teal rule */
.elementor .how__note{margin-top:54px;padding:24px 28px;background:rgba(47,143,133,.06);
  border:0;border-left:3px solid var(--teal);border-radius:0 12px 12px 0}

/* ---------- 3. THE STANDARD -> dark spec-sheet rows (no cards) ---------- */
.elementor .pillars{grid-template-columns:1fr;gap:0;margin-top:52px}
.elementor .pillar{display:grid;grid-template-columns:110px 1fr;column-gap:30px;row-gap:8px;
  align-items:start;padding:32px 0;background:none;border:0;border-radius:0;
  border-top:1px solid rgba(255,255,255,.16)}
.elementor .pillar:last-child{border-bottom:1px solid rgba(255,255,255,.16)}
.elementor .pillar__num{grid-column:1;grid-row:1 / span 2;margin:0}
.elementor .pillar__n{font-size:40px;line-height:1;color:rgba(255,255,255,.30);letter-spacing:0}
.elementor .pillar__h{grid-column:2;grid-row:1;margin-bottom:0;font-size:24px}
.elementor .pillar__p{grid-column:2;grid-row:2;max-width:660px}

/* stat rail sits above the rows */
.elementor .dstats{margin-top:44px;border-color:rgba(255,255,255,.16)}
.elementor .dstat{border-right-color:rgba(255,255,255,.16)}
.elementor .dstat__val,.elementor .sec--dark .dstat__val span{font-size:40px;color:#fff}
.elementor .sec--dark .dstat__lab,.elementor .sec--dark .dstat__lab span{color:rgba(255,255,255,.6)}
.elementor .sec--dark .pillar__num span{color:rgba(255,255,255,.30)}

/* ---------- 4. PEPTIDES 101 -> ruled two-column index (no cards) ---------- */
.elementor .ecards{grid-template-columns:repeat(2,1fr);gap:34px 46px;margin-top:50px}
.elementor .ecard{padding:4px 0 4px 22px;background:none;border:0;border-radius:0;
  border-left:2px solid var(--teal);box-shadow:none;transform:none}
.elementor .ecard:hover{transform:none;box-shadow:none;border-left-color:var(--ink)}
.elementor .ecard__chip{margin-bottom:10px}
.elementor .ecard__tag{font-family:Archivo,system-ui,sans-serif;font-size:11.5px;font-weight:600;
  letter-spacing:.16em;color:var(--teal)}
.elementor .ecard__h{font-size:21px;margin-bottom:9px}
.elementor .edu__foot{margin-top:44px;padding:22px 26px;background:#fff;
  border:1px solid var(--hairline);border-radius:14px}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .elementor .steps{grid-template-columns:1fr;gap:34px;margin-top:40px}
  .elementor .steps::before{display:none}
  .elementor .step{text-align:left;padding:0}
  .elementor .step__badge{justify-content:flex-start}
  .elementor .step__num{box-shadow:none}
  .elementor .step__p{margin:0;max-width:560px}
  .elementor .pillar{grid-template-columns:72px 1fr;column-gap:20px}
  .elementor .pillar__n{font-size:30px}
  .elementor .ecards{grid-template-columns:repeat(2,1fr);gap:30px 34px}
}
@media (max-width:560px){
  .elementor .ecards{grid-template-columns:1fr;gap:26px}
  .elementor .pillar{grid-template-columns:1fr;row-gap:6px}
  .elementor .pillar__num{grid-row:1;grid-column:1;margin-bottom:4px}
  .elementor .pillar__h,.elementor .pillar__p{grid-column:1}
  .elementor .how__note{padding:20px 22px}
}
/* ============================================================
   AUDIENCE TAG FIX
   The mosaic pills (MEDICAL / FITNESS & WELLNESS / RECOVERY & ADJACENT) sit on a
   dark navy pill, but the skin colours .elementor .e-con .elementor-widget-text-editor
   at (0,3,0) - so they rendered slate-on-navy at the skin's 17px body size.
   Re-declared at matching specificity as a small white caps label.
   ============================================================ */
.elementor .aud__img .aud__tag,
.elementor .aud__img .aud__tag p,
.elementor .aud__img .aud__tag span,
.elementor .aud__img .aud__tag b{
  color:#fff;
  font-family:Archivo,system-ui,sans-serif;
  font-size:11px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.elementor .aud__img .aud__tag{
  padding:8px 14px;
  border-radius:999px;
  background:rgba(14,34,64,.82);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
  white-space:nowrap;
  width:auto;
}
@media (max-width:560px){
  .elementor .aud__img .aud__tag,
  .elementor .aud__img .aud__tag p,
  .elementor .aud__img .aud__tag span{font-size:10px;letter-spacing:.14em}
  .elementor .aud__img .aud__tag{padding:7px 12px}
}
/* ============================================================
   SECTION RHYTHM v7
   --pad-y was clamp(92px, 11vw, 158px) applied to the TOP and BOTTOM of every
   section, so the gap between any two sections was double it:
     1600px -> 316px   1280px -> 278px   390px -> 184px
   Retuned to one consistent scale that stays proportional on every screen.
   Every section (.sect and .sec) reads from this single variable, so the
   rhythm is identical page-wide.
   ============================================================ */
:root{--pad-y:clamp(58px, 6vw, 104px)}

/* phones: tighten further so sections do not feel like separate pages */
@media (max-width:600px){
  :root{--pad-y:52px}
}

/* belt and braces: no section may add its own vertical margin */
.elementor > .e-con[id]{margin-top:0;margin-bottom:0}

/* two light sections in a row previously ran together as one white void.
   Keep the hairline visible so the boundary still reads. */
.elementor .sec--light{border-top:1px solid var(--hairline)}

/* inner rhythm: scale the big internal offsets with the section padding */
@media (max-width:600px){
  .elementor .proof{margin-top:40px}
  .elementor .steps{margin-top:34px}
  .elementor .pillars{margin-top:32px}
  .elementor .dstats{margin-top:30px}
  .elementor .ecards{margin-top:30px}
  .elementor .ctable{margin-top:30px}
  .elementor .how__note{margin-top:32px}
  .elementor .compare__foot,.elementor .dark__cta,.elementor .edu__foot{margin-top:28px}
}
/* ============================================================
   WIDGET SPACING FIX v8
   Elementor applies `.e-con > .elementor-widget:not(:last-child){
   margin-block-end: var(--widgets-spacing) }` at specificity (0,3,0), and the
   container reset sets that variable to 0. Every margin declared on a widget
   WRAPPER at (0,2,0) therefore lost the cascade and collapsed to zero - which is
   why the 01/02/03 numerals sat flush against their headings, and the headings
   flush against their body copy.
   Re-declared here at (0,3,0) so they actually apply. Both the physical and the
   logical property are set, because Elementor writes the logical one.
   ============================================================ */
.elementor .e-con .step__badge{margin-bottom:20px;margin-block-end:20px}
.elementor .e-con .step__h{margin-bottom:12px;margin-block-end:12px}
.elementor .e-con .pillar__h{margin-bottom:8px;margin-block-end:8px}
.elementor .e-con .pillar__num{margin-bottom:0;margin-block-end:0}
.elementor .e-con .dstat__lab{margin-top:10px;margin-block-start:10px}
.elementor .e-con .ecard__chip{margin-bottom:12px;margin-block-end:12px}
.elementor .e-con .ecard__h{margin-bottom:10px;margin-block-end:10px}
.elementor .e-con .dark__lede{margin-top:20px;margin-block-start:20px}
.elementor .e-con .ctable__feat,
.elementor .e-con .ctable__cell{margin:0}

/* eyebrow -> heading breathing room in the four new sections */
.elementor .e-con .two-head__l .elementor-widget-text-editor{margin-bottom:14px;margin-block-end:14px}
.elementor .e-con .dark__head .elementor-widget-text-editor:first-child{margin-bottom:14px;margin-block-end:14px}

@media (max-width:600px){
  .elementor .e-con .step__badge{margin-bottom:16px;margin-block-end:16px}
  .elementor .e-con .dark__lede{margin-top:16px;margin-block-start:16px}
}
/* ============================================================
   MOBILE FIXES v9
   1. Button wrappers carried the fill/border AND a 0 radius, so the square
      wrapper showed behind the rounded inner button. All visuals now live on
      the inner .elementor-button only.
   2. .mosaic kept its desktop fixed row heights (700px 260px 260px) once it
      collapsed to one column, so the stacked row cards were locked to 260px
      with overflow:hidden - the "Recovery & Adjacent" copy was cut off.
   3. The proof strip ran 222px tall on a phone. Compacted.
   ============================================================ */

/* ---------- 1. button wrappers ---------- */
.elementor .wbtn{background:none;border:0;box-shadow:none;padding:0;border-radius:0}
.elementor .wbtn .elementor-button{border-radius:10px}
.elementor .wbtn.btn--fill .elementor-button{background:var(--teal);color:#fff;border:0}
.elementor .wbtn.btn--fill .elementor-button:hover{background:var(--blue-dark)}
.elementor .wbtn.btn--line .elementor-button{background:transparent;color:var(--ink);
  border:1px solid var(--hairline)}
.elementor .wbtn.btn--line .elementor-button:hover{border-color:var(--ink)}
.elementor .wbtn.btn--white .elementor-button{background:#fff;color:var(--blue-dark);border:0}

/* ---------- 2. audience mosaic ---------- */
@media (max-width:1080px){
  .elementor .mosaic{grid-template-rows:auto auto auto;grid-auto-rows:auto}
  .elementor .aud{height:auto;min-height:0}
  .elementor .aud--row{flex-direction:column}
  .elementor .aud--row .aud__img{width:100%;min-height:210px}
  .elementor .aud--tall .aud__img{min-height:260px}
  .elementor .aud__body{padding:22px 22px 24px}
}
@media (max-width:560px){
  .elementor .aud--row .aud__img,
  .elementor .aud--tall .aud__img{min-height:190px}
  .elementor .aud__body{padding:20px 18px 22px}
}

/* ---------- 3. proof strip: compact on mobile ---------- */
@media (max-width:600px){
  .elementor .proof{grid-template-columns:repeat(2,1fr);gap:0;margin-top:36px;
    border-top:1px solid var(--hairline);border-left:1px solid var(--hairline);border-radius:12px;overflow:hidden}
  .elementor .proof__item{padding:14px 12px;border-right:1px solid var(--hairline);
    border-bottom:1px solid var(--hairline);text-align:left}
  .elementor .e-con .proof__item{margin:0}
  .elementor .proof__item .proof__n,
  .elementor .proof__item b{font-size:20px;line-height:1.1;display:block}
  .elementor .proof__item small,
  .elementor .proof__item span{font-size:9.5px;letter-spacing:.1em;line-height:1.3;display:block;margin-top:4px}
}
@media (max-width:380px){
  .elementor .proof__item{padding:12px 10px}
  .elementor .proof__item .proof__n,
  .elementor .proof__item b{font-size:18px}
}
/* ---- MOBILE FIXES v9b: audience cards ----
   The card is a column flex box whose image AND body both carry `flex:1 1 0`.
   The container reset sets min-height:0, so the body was free to shrink below its
   own content: it needed 345px and was given 42px, then overflow:hidden chopped it.
   On narrow screens the card leaves flex layout entirely - image at a fixed height,
   body at natural height - so nothing can be clipped. */
@media (max-width:1080px){
  .elementor .aud{display:block;height:auto;min-height:0}
  .elementor .aud__img{display:block;width:100%;flex:none;height:220px;min-height:220px}
  .elementor .aud--tall .aud__img{height:260px;min-height:260px}
  .elementor .aud__body{display:block;flex:none;height:auto;min-height:0;padding:22px 22px 24px}
}
@media (max-width:560px){
  .elementor .aud__img,
  .elementor .aud--tall .aud__img{height:190px;min-height:190px}
  .elementor .aud__body{padding:20px 18px 22px}
}
/* ============================================================
   MOBILE FIXES v10
   1. Dark section pillars: the mobile rule reset grid-column but not grid-row, so
      .pillar__num and .pillar__h both landed in cell 1/1 and the numeral rendered
      UNDERNEATH the heading. Dropped out of grid entirely on phones.
   2. The navy ribbon stayed a flex row on mobile, so "3rd Party" wrapped onto a
      second line and the band ran 300px tall. Now a compact 2x2 grid, one line
      per item, separators hidden.
   NOTE: font sizes must be declared at (0,3,0) - the skin sets
   .elementor .e-con .elementor-widget-text-editor{font-size:17px} and would win otherwise.
   ============================================================ */

/* ---------- 1. dark section pillars ---------- */
@media (max-width:560px){
  .elementor .pillar{display:block;padding:26px 0}
  .elementor .e-con .pillar__num{display:block;margin-bottom:6px;margin-block-end:6px}
  .elementor .pillar__n{font-size:26px;line-height:1}
  .elementor .e-con .pillar__h{margin-bottom:8px;margin-block-end:8px}
  .elementor .pillar__h{font-size:21px}
  .elementor .pillar__p{max-width:none}
}

/* ---------- 2. navy ribbon ---------- */
@media (max-width:760px){
  .elementor .ribbon__in{display:grid;grid-template-columns:1fr 1fr;gap:16px 10px;
    padding:20px 18px;align-items:center}
  /* the dot separators between items are their own widgets - not needed once stacked */
  .elementor .ribbon__in > .elementor-widget:not(.ribbon__item){display:none}
  .elementor .ribbon__item{display:flex;align-items:baseline;gap:6px;white-space:nowrap;min-width:0}
  .elementor .e-con .ribbon__item{font-size:11px;letter-spacing:.04em;line-height:1.25}
  .elementor .e-con .ribbon__item b{font-size:16px;line-height:1.2;white-space:nowrap}
}
@media (max-width:359px){
  .elementor .ribbon__in{grid-template-columns:1fr;gap:12px}
  .elementor .e-con .ribbon__item b{font-size:15px}
}
/* ---- MOBILE FIXES v10b: navy ribbon ----
   Separator widgets still held grid cells (three 144x27 blanks) and the flex items
   collapsed to 54px with text spilling. Each item is now a stacked block: serif value
   over a small caps label, in a 2x2 grid. Nothing wraps badly or overflows. */
@media (max-width:760px){
  .elementor .ribbon__in{display:grid;grid-template-columns:1fr 1fr;gap:18px 12px;padding:22px 18px;align-items:start}
  .elementor .ribbon__in > *:not(.ribbon__item){display:none}
  .elementor .ribbon__item{display:block;min-width:0;white-space:normal;text-align:left}
  .elementor .e-con .ribbon__item{font-size:10.5px;letter-spacing:.09em;line-height:1.35;text-transform:uppercase;color:rgba(255,255,255,.62)}
  .elementor .e-con .ribbon__item b{display:block;font-family:Newsreader,Georgia,serif;font-weight:400;font-size:20px;line-height:1.15;margin-bottom:3px;color:#fff;text-transform:none;letter-spacing:0}
}
@media (max-width:359px){
  .elementor .e-con .ribbon__item b{font-size:18px}
  .elementor .e-con .ribbon__item{font-size:10px}
}

/* ---- v10c: ribbon items were sizing to 54px inside a 143px grid track, so the
   label text spilled outside its cell. Force each item to fill its column. */
@media (max-width:760px){
  .elementor .ribbon__in{justify-items:stretch}
  .elementor .ribbon__in > .ribbon__item{width:100%;max-width:100%;justify-self:stretch;flex:none}
  .elementor .e-con .ribbon__item{overflow-wrap:anywhere}
}

/* ACCENT RULE FIX v11
   .opp__panel is an Elementor CONTAINER, and Elementor already uses .e-con::before for
   its background overlay with width/height 100%. The design rule set top:26px + bottom:26px
   but never declared a height, so Elementor height:100% survived - the teal rule started 26px
   down yet still ran the full height, hanging 25px below the card and cutting through its
   rounded bottom-left corner. Height is now derived from the insets. */
.elementor .e-con.opp__panel::before,
.elementor .opp__panel::before{
  content:"";
  position:absolute;
  left:0;
  top:26px;
  bottom:26px;
  height:auto;
  width:4px;
  border-radius:99px;
  background:var(--teal);
}
@media (max-width:768px){
  .elementor .e-con.opp__panel::before,
  .elementor .opp__panel::before{top:20px;bottom:20px}
}

/* ITALIC + STAT FIX v12
   1. The 40% in .opp__stat sits on a navy card but inherited the skin colour
      rgb(61,76,102) - slate on navy, barely legible. Forced white at (0,3,0).
      The other bold ("40% commission on every sale") is on white and stays ink.
   2. Heading italics are coloured per-heading-class in the original design, so the
      headings added later (how-it-works, compare, lineup, peptides-101) had no rule
      and rendered ink instead of teal. Fixed by section, which leaves the two
      already-correct light-teal italics on dark backgrounds untouched. */

.elementor .e-con .opp__stat,
.elementor .e-con .opp__stat p,
.elementor .e-con .opp__stat b{color:#fff}
.elementor .e-con .opp__stat small,
.elementor .e-con .opp__stat span{color:rgba(255,255,255,.72)}

.elementor #how-it-works .elementor-heading-title em,
.elementor #compare .elementor-heading-title em,
.elementor #lineup .elementor-heading-title em,
.elementor #peptides-101 .elementor-heading-title em{
  color:var(--teal);
  font-style:italic;
}

/* ============================================================
   STANDARD REDESIGN v13
   - Doubled dividers: the stat band already draws a bottom border and the first
     pillar drew a top border (two lines, 52px apart). Same at the bottom: the last
     pillar drew a bottom border and the CTA drew a top border. One line each now.
   - .ledger__vs was slate-on-navy (contrast 1.83). Forced white.
   - Section reworked: depth via layered glows, the stat band as a framed panel,
     spec rows with a teal accent on hover, CTA as its own panel.
   NOTE: .pillar is an Elementor container, so any ::before must set height:auto,
   otherwise Elementor height:100% wins (same trap as the opportunity panel).
   ============================================================ */

/* ---- the vs badge in the rep ledger ---- */
.elementor .e-con .ledger__vs,
.elementor .e-con .ledger__vs span,
.elementor .e-con .ledger__vs p{
  color:#fff;
  font-size:12px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  opacity:.75;
}

/* ---- section depth ---- */
.elementor .sec--dark.standard{
  position:relative;
  overflow:hidden;
  background-color:#1B534E;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.elementor .sec--dark.standard::after{
  content:"";
  position:absolute;
  inset:0;
  height:auto;
  pointer-events:none;
  z-index:0;
  background:
    radial-gradient(900px 460px at 10% -10%, rgba(47,143,133,.30), transparent 62%),
    radial-gradient(760px 420px at 96% 108%, rgba(26,79,196,.16), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.05), transparent 22%);
}
.elementor .standard .wrap{position:relative;z-index:1}

/* ---- stat band as a framed panel ---- */
.elementor .standard .dstats{
  margin-top:50px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:18px;
  background:rgba(255,255,255,.055);
  overflow:hidden;
  backdrop-filter:blur(2px);
}
.elementor .standard .dstat{
  padding:30px 24px;
  border-right:1px solid rgba(255,255,255,.15);
  border-bottom:0;
}
.elementor .standard .dstat:last-child{border-right:0}
.elementor .e-con .standard .dstat__val,
.elementor .standard .dstat__val{font-size:44px;color:#fff;line-height:1}
.elementor .e-con .standard .dstat__lab{color:rgba(255,255,255,.6);margin-top:10px}

/* ---- spec rows: one divider between rows, none top or bottom ---- */
.elementor .standard .pillars{margin-top:54px}
.elementor .standard .pillar{
  position:relative;
  padding:34px 0 34px 18px;
  border-top:1px solid rgba(255,255,255,.15);
  border-bottom:0;
  transition:background .25s ease;
}
.elementor .standard .pillar:first-child{border-top:0;padding-top:0}
.elementor .standard .pillar:last-child{border-bottom:0}
.elementor .standard .pillar::before{
  content:"";
  position:absolute;
  left:0;
  top:30px;
  bottom:30px;
  height:auto;
  width:2px;
  border-radius:99px;
  background:#7FCEC4;
  opacity:0;
  transition:opacity .25s ease;
}
.elementor .standard .pillar:first-child::before{top:4px}
.elementor .standard .pillar:hover::before{opacity:1}
.elementor .standard .pillar__n{font-size:44px;color:rgba(255,255,255,.20);line-height:1}
.elementor .standard .pillar__h{font-size:25px}

/* ---- CTA as its own panel, no stray rule above it ---- */
.elementor .standard .dark__cta{
  margin-top:54px;
  padding:28px 30px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:18px;
  background:rgba(255,255,255,.055);
}

@media (max-width:768px){
  .elementor .standard .dstat{padding:22px 18px}
  .elementor .e-con .standard .dstat__val,
  .elementor .standard .dstat__val{font-size:32px}
  .elementor .standard .pillar{padding:26px 0 26px 14px}
  .elementor .standard .pillar:first-child{padding-top:0}
  .elementor .standard .pillar__n{font-size:30px}
  .elementor .standard .dark__cta{padding:22px 20px;margin-top:40px}
}

/* LEDGER VS FIX v14
   On desktop the ledger is two columns and the vs badge is absolutely centred on the
   divide. Once it stacks to one column the badge stayed absolute at top:50%, so the
   58px circle straddled the seam between the two lists and sat right on top of the
   "FASTIDIOUS REP" heading (overlapping 29px above and below).
   On narrow screens it becomes a normal grid item in the flow, so it can never collide
   with the copy - and it stays correct even if the two lists are different heights. */
@media (max-width:900px){
  .elementor .e-con .ledger__vs{
    position:static !important;
    transform:none !important;
    margin:30px auto !important;
    justify-self:center;
    align-self:center;
  }
}

/* ============================================================
   TYPE CONSISTENCY v15
   1. Proof strip: the design flushes the FIRST item left (padding-left:0) so it lines
      up with the wrap on desktop. Once it becomes a boxed 2x2 grid on mobile that rule
      leaves cell 1 with no left padding while the other three have 12px.
   2. The dark stat values rendered in Archivo, not Newsreader: the skin sets
      .elementor .e-con .elementor-widget-text-editor{font-family} at (0,3,0) and the
      design rule sat at (0,2,0). Same reason the labels stayed at the 17px body size.
   3. That stat panel ran full height on a phone. Now a compact 2x2.
   ============================================================ */

/* ---- 1. proof strip: even padding once it is a boxed grid ---- */
@media (max-width:600px){
  .elementor .proof__item,
  .elementor .proof__item:first-child{padding:14px 12px !important}
}

/* ---- 2. dark stat panel: serif values, small-caps labels ---- */
.elementor .e-con .standard .dstat__val,
.elementor .e-con .standard .dstat__val span{
  font-family:Newsreader,Georgia,serif;
  font-weight:400;
  font-size:44px;
  line-height:1;
  color:#fff;
}
.elementor .e-con .standard .dstat__lab,
.elementor .e-con .standard .dstat__lab span{
  font-family:Archivo,system-ui,sans-serif;
  font-size:12px;
  font-weight:500;
  line-height:1.3;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:rgba(255,255,255,.6);
}

/* ---- 3. compact stat panel on phones ---- */
@media (max-width:768px){
  .elementor .standard .dstats{grid-template-columns:repeat(2,1fr);margin-top:36px}
  .elementor .standard .dstat{padding:20px 16px;border-bottom:1px solid rgba(255,255,255,.15)}
  .elementor .standard .dstat:nth-child(2n){border-right:0}
  .elementor .standard .dstat:nth-child(n+3){border-bottom:0}
  .elementor .e-con .standard .dstat__val,
  .elementor .e-con .standard .dstat__val span{font-size:30px}
  .elementor .e-con .standard .dstat__lab,
  .elementor .e-con .standard .dstat__lab span{font-size:10px;letter-spacing:.08em}
  .elementor .e-con .standard .dstat__lab{margin-top:6px}
}
@media (max-width:380px){
  .elementor .e-con .standard .dstat__val,
  .elementor .e-con .standard .dstat__val span{font-size:26px}
  .elementor .standard .dstat{padding:16px 12px}
}

/* ---- 4. practitioners heading joins the italic-accent set ---- */
.elementor #practitioners .elementor-heading-title em{
  color:var(--teal);
  font-style:italic;
}

/* v15b: the v15 rules used ".e-con .standard", but .standard IS the .e-con (the same
   element, not a descendant), so those selectors never matched and the stat values kept
   rendering in Archivo at the skin body size. Correct form is .elementor .standard .x,
   which is still (0,3,0) and wins on order. */
.elementor .standard .dstat__val,
.elementor .standard .dstat__val span,
.elementor .standard .dstat__v{
  font-family:Newsreader,Georgia,serif !important;
  font-weight:400;
  line-height:1;
  color:#fff;
}
.elementor .standard .dstat__lab,
.elementor .standard .dstat__lab span,
.elementor .standard .dstat__l{
  font-family:Archivo,system-ui,sans-serif !important;
  font-size:12px !important;
  font-weight:500;
  line-height:1.3;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:rgba(255,255,255,.6);
}
@media (max-width:768px){
  .elementor .standard .dstat__lab,
  .elementor .standard .dstat__lab span,
  .elementor .standard .dstat__l{font-size:10px !important;letter-spacing:.08em}
}

/* ============================================================
   COPY SCALE v16
   Body copy was running anywhere from 12.5px to 18.1px depending on the section:
   the hero lede won its own rule at 18.1px, while most other ledes fell back to the
   skin default of 17px, and card paragraphs landed at 14.4 / 14.7 / 15 / 15.5.
   One fluid scale now drives every description, declared high enough that the skin
   (.elementor .e-con .elementor-widget-text-editor at 0,3,0) cannot override it.
   Badges, eyebrows, stats and captions are excluded and keep their own sizes.
   ============================================================ */
:root{
  --fw-copy:clamp(15.5px, 0.28vw + 14.6px, 17px);
  --fw-copy-lh:1.72;
}
.elementor .e-con .elementor-widget-text-editor:not(.eyebrow):not(.m-nav):not(.brand__name):not(.brand__seal):not(.collage__cap):not(.ribbon__item):not(.proof__item):not(.dstat__val):not(.dstat__lab):not(.dstat):not(.ledger__vs):not(.step__badge):not(.pillar__num):not(.ecard__chip):not(.aud__tag):not(.opp__stat):not(.qa__q):not(.float-card):not(.fp-badge):not(.ft__about),
.elementor .e-con .elementor-widget-text-editor:not(.eyebrow):not(.m-nav):not(.brand__name):not(.brand__seal):not(.collage__cap):not(.ribbon__item):not(.proof__item):not(.dstat__val):not(.dstat__lab):not(.dstat):not(.ledger__vs):not(.step__badge):not(.pillar__num):not(.ecard__chip):not(.aud__tag):not(.opp__stat):not(.qa__q):not(.float-card):not(.fp-badge):not(.ft__about) p,
.elementor .e-con .elementor-widget-text-editor:not(.eyebrow):not(.m-nav):not(.brand__name):not(.brand__seal):not(.collage__cap):not(.ribbon__item):not(.proof__item):not(.dstat__val):not(.dstat__lab):not(.dstat):not(.ledger__vs):not(.step__badge):not(.pillar__num):not(.ecard__chip):not(.aud__tag):not(.opp__stat):not(.qa__q):not(.float-card):not(.fp-badge):not(.ft__about) li{
  font-size:var(--fw-copy);
  line-height:var(--fw-copy-lh);
}

/* BUTTON HOVER FIX v17
   At rest the wrapper is transparent, but its transition list includes background and
   border-radius, and on hover something paints a background on it. The wrapper is a
   full-width block with radius 0, so that background renders as a hard-edged bar behind
   the rounded button. All visuals belong to the inner <a>; the wrapper is now forced
   transparent in every state so nothing can paint on it. */
.elementor .wbtn,
.elementor .wbtn:hover,
.elementor .wbtn:focus,
.elementor .wbtn:focus-within,
.elementor .wbtn:active,
.elementor .wbtn > .elementor-widget-container,
.elementor .wbtn > .elementor-widget-container:hover,
.elementor .wbtn .elementor-button-wrapper,
.elementor .wbtn .elementor-button-wrapper:hover{
  background:none !important;
  background-color:transparent !important;
  background-image:none !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:10px !important;
  transition:none !important;
}

/* the rounded corners must survive every state of the button itself */
.elementor .wbtn .elementor-button,
.elementor .wbtn .elementor-button:hover,
.elementor .wbtn .elementor-button:focus,
.elementor .wbtn .elementor-button:focus-visible,
.elementor .wbtn .elementor-button:active{
  border-radius:10px !important;
}
.elementor .wbtn .elementor-button::before,
.elementor .wbtn .elementor-button::after{
  border-radius:inherit;
}

/* ============================================================
   SECTION RHYTHM v18
   Backgrounds had drifted: 9 white sections, three pairs of adjacent whites merging
   into one slab (format+how-it-works, compare+goals, rep+window), and TWO near-identical
   greys in circulation (#F2F6FB and #F6F8FA, about 2% apart - reads as an accident).
   One wash tone now, strictly alternating, with the dark section as the anchor.
   ============================================================ */
:root{--fw-wash:#F2F6FB}

/* white */
.elementor #format,
.elementor #why-strips,
.elementor #goals,
.elementor #rep,
.elementor #practitioners,
.elementor #faq{background-color:#fff !important}

/* wash */
.elementor #lineup,
.elementor #how-it-works,
.elementor #compare,
.elementor #opportunity,
.elementor #window,
.elementor #peptides-101,
.elementor #join{background-color:var(--fw-wash) !important}

/* #standard keeps its photo + dark overlay - untouched */

/* HERO BOTTOM GAP v19
   The hero carried padding-bottom:0 and the navy ribbon sat flush on its bottom edge,
   so the card ran straight into the next section with no gap. Every other section pads
   top AND bottom from --pad-y; the hero now does the same. */
.elementor #top{padding-bottom:var(--pad-y)}
@media (max-width:600px){
  .elementor #top{padding-bottom:var(--pad-y)}
}

/* HERO BACKGROUND OVERLAY v20
   Adds the uploaded 22114.jpg as a subtle textural layer behind the hero content.
   Uses ::after so the existing ::before decorative circle keeps working untouched.
   .hero__grid already has position:relative; giving it z-index:1 lifts every text
   element above the image layer. Tune --hero-overlay-opacity to taste (0 to 1). */
.elementor .hero{--hero-overlay-opacity:.15}
.elementor .hero::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url('/wp-content/uploads/2026/07/22114.jpg') center/cover no-repeat;
  opacity:var(--hero-overlay-opacity);
}
.elementor .hero__grid{z-index:1}


/* Timing section (#window) — add extra bottom padding to compensate for the overlapping .window__card that translates 56px downward */
.elementor #window{padding-bottom:calc(var(--pad-y) + 72px)}
@media (max-width:1024px){.elementor #window{padding-bottom:calc(var(--pad-y) + 56px)}}
@media (max-width:640px){.elementor #window{padding-bottom:calc(var(--pad-y) + 48px)}}