/* ============================================================
   INNER CIRCLE PARTNERS / spec
   Display   Archivo 600, wdth 110, uppercase, lh .85, tracking -.02em
   Body      Inter 400, lh 1.45
   Scale     display 172 / 96 / 52   body 21 / 17 / 13
   Radius    sharp; 50% on avatars only
   Ground    #0D0B09   Ink #F0EFE4   Accent #C2953F
   Sequence  ink > cream > ink > cream > ink > cream > ink > cream > ink
   Container full bleed, gutter clamp(18px,2.35vw,34px)
   ============================================================ */

:root{
  --ground:#0D0B09;
  --cream:#F0EFE4;
  --gold:#C2953F;
  --gold-cream:#8A6520;   /* gold that passes contrast on the cream ground */
  --on-gold:#171004;
  --dim-on-dark:#9A9184;
  --dim-on-cream:#5E574C;
  --rule-dark:rgba(240,239,228,.16);
  --rule-cream:rgba(13,11,9,.16);

  --display:'Archivo',system-ui,sans-serif;
  --sans:'Inter',system-ui,-apple-system,sans-serif;

  /* six steps. nothing else. */
  --d1:clamp(56px,12vw,172px);
  --d2:clamp(34px,6vw,96px);
  --d3:clamp(24px,3.4vw,52px);
  --b1:clamp(18px,1.5vw,21px);
  --b2:17px;
  --b3:13px;

  --gut:clamp(18px,2.35vw,34px);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--ground);
  color:var(--cream);
  font-family:var(--sans);
  font-size:var(--b1);
  line-height:1.45;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}

h1,h2,h3,.dsp{
  font-family:var(--display);
  font-variation-settings:'wdth' 110;
  font-weight:600;
  text-transform:uppercase;
  line-height:.85;
  letter-spacing:-.02em;
  margin:0;
  text-wrap:balance;
}
h1{font-size:var(--d1)}
h2{font-size:var(--d2)}
h3{font-size:var(--d3)}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}

.gut{padding-left:var(--gut);padding-right:var(--gut)}
.blk{padding-top:clamp(72px,10vw,150px);padding-bottom:clamp(72px,10vw,150px)}
.cream{background:var(--cream);color:var(--ground)}
.cream .meta{color:var(--dim-on-cream)}
.meta{
  font-family:var(--sans);
  font-size:var(--b3);
  line-height:1.4;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--dim-on-dark);
  font-weight:500;
}
.lede{font-size:var(--b1);max-width:62ch}
.small{font-size:var(--b2)}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:60;
  background:var(--ground);
  border-bottom:1px solid var(--rule-dark);
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;
  padding-top:16px;padding-bottom:16px;
}
.wordmark{
  font-family:var(--display);font-variation-settings:'wdth' 110;
  font-weight:600;text-transform:uppercase;letter-spacing:-.01em;
  font-size:var(--b2);text-decoration:none;white-space:nowrap;
}
.navlinks{display:flex;gap:clamp(14px,2vw,30px);align-items:center;flex-wrap:nowrap}
.navlinks a{
  font-size:var(--b3);letter-spacing:.12em;text-transform:uppercase;
  text-decoration:none;color:var(--dim-on-dark);font-weight:500;
  transition:color .2s;white-space:nowrap;
}
.navlinks a:hover{color:var(--cream)}
@media(max-width:1040px){.navlinks a:not(.navcta){display:none}}
@media(max-width:500px){
  .wordmark{font-size:13px}
  .navlinks a.navcta{font-size:10.5px;letter-spacing:.06em;padding-bottom:2px}
  .nav{gap:8px;padding-left:14px;padding-right:14px}
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  background:var(--gold);color:var(--on-gold);
  font-family:var(--display);font-variation-settings:'wdth' 110;
  font-weight:600;text-transform:uppercase;letter-spacing:-.01em;
  font-size:var(--b2);
  padding:.85em 1.5em;
  text-decoration:none;border:0;cursor:pointer;
  transition:transform .18s ease, filter .18s ease;
}
.btn:hover{filter:brightness(1.07);transform:translateY(-2px)}
.btn.ghost{
  background:transparent;color:var(--cream);
  box-shadow:inset 0 0 0 1px var(--rule-dark);
}
.cream .btn.ghost{color:var(--ground);box-shadow:inset 0 0 0 1px var(--rule-cream)}

/* ---------- hero ---------- */
.hero{padding-top:clamp(48px,7vw,96px);padding-bottom:0;overflow:hidden}
.hero h1{font-size:clamp(46px,9.4vw,132px);max-width:16ch}
.hero .sub{
  margin-top:clamp(20px,2.4vw,32px);
  max-width:46ch;
  color:var(--dim-on-dark);
}
.hero .acts{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(24px,3vw,40px)}
.heroshots{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,1.2vw,18px);
  margin-top:clamp(48px,6vw,88px);
}
.heroshots figure{margin:0;position:relative}
.heroshots img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 20%}
/* Nicole and Stefan share the same crop position now that both figures have overflow-hidden framing */
.heroshots figure:first-child img{object-position:center 20%}
.heroshots figcaption{
  position:absolute;left:0;bottom:0;right:0;
  padding:14px 16px;
  background:linear-gradient(to top,rgba(13,11,9,.86),rgba(13,11,9,0));
  color:var(--cream);
}
.heroshots .nm{
  font-family:var(--display);font-variation-settings:'wdth' 110;font-weight:600;
  text-transform:uppercase;font-size:var(--b2);letter-spacing:-.01em;line-height:1;
}
.heroshots .rl{font-size:var(--b3);color:var(--dim-on-dark);margin-top:5px;letter-spacing:.08em;text-transform:uppercase}
@media(min-width:1200px){
  .heroshots{grid-template-columns:repeat(2,minmax(0,340px));justify-content:end;margin-top:clamp(-70px,-4.4vw,-40px)}
}

/* ---------- logos ---------- */
.logos{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:clamp(28px,4vw,56px) clamp(24px,3.4vw,48px);
  align-items:center;margin-top:clamp(36px,4.5vw,64px);
}
@media(min-width:640px){.logos{grid-template-columns:repeat(3,1fr)}}
.logos img{
  /* Each logo sits in the same box and is scaled to fit inside it. Capping
     BOTH dimensions is what stops a wide script mark like Marisa Peer reading
     twice the size of a compact one like Tony Robbins at the same height. */
  height:clamp(76px,8.6vw,124px);
  width:100%;
  max-width:clamp(230px,26vw,360px);
  object-fit:contain;object-position:center;
  margin:0 auto;opacity:.9;
}
/* per-logo optical correction, because equal boxes are not equal presence */
@media(min-width:900px){
  .logos img[alt="Rythmia"]             { transform:scale(1.32) }
  .logos img[alt="Sunlighten"]          { transform:scale(1.01) }
  .logos img[alt="Jim Kwik"]            { transform:scale(0.94) }
  .logos img[alt="Tony Robbins"]        { transform:scale(0.99) }
  .logos img[alt="Natural Heart Doctor"]{ transform:scale(1.00) }
  .logos img[alt="Marisa Peer"]         { transform:scale(0.88) }
}
.lifeco{
  font-family:var(--display);font-variation-settings:'wdth' 110;font-weight:600;
  text-transform:uppercase;font-size:var(--d3);letter-spacing:-.02em;line-height:.85;
  opacity:.82;
}

/* ---------- numbers row ---------- */
.figs{display:grid;gap:clamp(28px,3.4vw,56px);margin-top:clamp(48px,6vw,88px);border-top:1px solid var(--rule-cream);padding-top:clamp(28px,3vw,44px)}
@media(min-width:760px){.figs{grid-template-columns:repeat(3,1fr)}}
.figs .n{
  font-family:var(--display);font-variation-settings:'wdth' 110;font-weight:600;
  font-size:var(--d3);line-height:.85;letter-spacing:-.02em;text-transform:uppercase;
}
.figs .l{font-size:var(--b2);color:var(--dim-on-cream);margin-top:10px;max-width:26ch}

/* ---------- the moment: pinned case ---------- */
.case{background:var(--cream);color:var(--ground);position:relative}
.case .track{height:260vh}
.case .pin{
  position:sticky;top:0;height:100vh;
  display:flex;flex-direction:column;justify-content:center;
  padding-left:var(--gut);padding-right:var(--gut);
}
.case .kick{margin-bottom:clamp(20px,3vw,40px);color:var(--dim-on-cream)}
.case .fig{
  font-family:var(--display);font-variation-settings:'wdth' 110;font-weight:600;
  text-transform:uppercase;letter-spacing:-.03em;line-height:.82;
  font-size:var(--d1);
  display:flex;align-items:baseline;gap:.28em;flex-wrap:wrap;
}
.case .from{color:var(--ground);opacity:.28;transition:opacity .45s ease}
.case .arrow{color:var(--ground);opacity:.28;font-size:.5em;transition:opacity .45s ease}
.case .to{color:var(--gold-cream);opacity:.16;transition:opacity .6s ease}
.case.lit .from{opacity:.34}
.case.lit .arrow{opacity:.34}
.case.lit .to{opacity:1}
.case .say{
  margin-top:clamp(24px,3vw,44px);
  max-width:52ch;font-size:var(--b1);
}
.case .bar{margin-top:clamp(24px,3vw,40px);height:2px;background:var(--rule-cream);position:relative;max-width:520px}
.case .bar i{position:absolute;inset:0 auto 0 0;width:0;background:var(--gold-cream);transition:width .1s linear}

/* ---------- process ---------- */
.steps{margin-top:clamp(40px,5vw,72px);border-top:1px solid var(--rule-dark)}
.step{
  display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,3vw,48px);
  align-items:start;
  padding:clamp(24px,3.4vw,44px) 0;
  border-bottom:1px solid var(--rule-dark);
}
@media(min-width:900px){.step{grid-template-columns:90px 1fr 1.15fr;align-items:baseline}}
.step .ix{
  font-family:var(--display);font-variation-settings:'wdth' 110;font-weight:600;
  font-size:var(--b2);color:var(--gold);letter-spacing:.06em;line-height:1;
}
.step p{color:var(--dim-on-dark);font-size:var(--b2);grid-column:1/-1}
.step p b{color:var(--cream);font-weight:600}
.cream .step p b{color:var(--ground)}
@media(min-width:900px){.step p{grid-column:auto}}

/* ---------- diagnostic ---------- */
.diag{max-width:900px;margin-top:clamp(36px,4.5vw,64px)}
.q{display:none}
.q.on{display:block;animation:qin .42s cubic-bezier(.2,.7,.3,1) both}
@keyframes qin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.q h3{margin-bottom:clamp(18px,2.2vw,30px);max-width:20ch}
.opts{display:grid;gap:10px}
.opt{
  text-align:left;width:100%;
  background:transparent;color:inherit;
  border:1px solid var(--rule-cream);
  padding:clamp(14px,1.7vw,20px) clamp(16px,2vw,24px);
  font-family:var(--sans);font-size:var(--b2);line-height:1.35;
  cursor:pointer;
  display:flex;align-items:center;gap:14px;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.opt:hover{background:rgba(13,11,9,.05);border-color:var(--ground);transform:translateX(4px)}
.opt b{
  font-family:var(--display);font-variation-settings:'wdth' 110;font-weight:600;
  color:var(--gold-cream);font-size:var(--b3);letter-spacing:.06em;flex:none;
}
.prog{display:flex;gap:6px;margin-bottom:clamp(24px,3vw,40px)}
.prog i{height:2px;flex:1;background:var(--rule-cream);transition:background .3s}
.prog i.done{background:var(--gold-cream)}
.result{display:none}
.result.on{display:block;animation:qin .5s cubic-bezier(.2,.7,.3,1) both}
.result .path{color:var(--gold-cream);margin-bottom:clamp(16px,2vw,26px)}
.result .why{max-width:56ch;margin-bottom:clamp(24px,3vw,38px)}
.restart{
  background:none;border:0;padding:0;margin-top:22px;cursor:pointer;
  font-family:var(--sans);font-size:var(--b3);letter-spacing:.12em;text-transform:uppercase;
  color:var(--dim-on-cream);text-decoration:underline;text-underline-offset:4px;
}

/* ---------- people ---------- */
.people{display:grid;gap:clamp(40px,5vw,80px);margin-top:clamp(40px,5vw,72px)}
@media(min-width:880px){.people{grid-template-columns:1fr 1fr}}
.person img{width:100%;max-width:340px;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;margin-bottom:clamp(20px,2.4vw,32px)}
.person .rl{margin:10px 0 18px}
.person p{color:var(--dim-on-dark);font-size:var(--b2)}

/* ---------- testimonials ---------- */
.pull{
  font-family:var(--display);font-variation-settings:'wdth' 110;font-weight:600;
  text-transform:uppercase;line-height:.85;letter-spacing:-.02em;
  font-size:var(--d2);
  max-width:16ch;
  margin:clamp(36px,4.5vw,64px) 0 clamp(28px,3vw,44px);
}
.pull .mk{color:var(--gold-cream)}
.attrib{display:flex;align-items:center;gap:14px}
.attrib img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none}
.quotes{display:grid;gap:clamp(24px,3vw,44px);margin-top:clamp(48px,6vw,88px);border-top:1px solid var(--rule-cream);padding-top:clamp(32px,3.6vw,52px)}
@media(min-width:820px){.quotes{grid-template-columns:repeat(3,1fr)}}
.quote p{font-size:var(--b2);margin-bottom:18px}

/* ---------- criteria ---------- */
.crit{margin-top:clamp(40px,5vw,72px);border-top:1px solid var(--rule-dark)}
.crit li{
  list-style:none;
  padding:clamp(20px,2.6vw,32px) 0;
  border-bottom:1px solid var(--rule-dark);
  display:grid;gap:6px;
}
@media(min-width:820px){.crit li{grid-template-columns:1fr 1.4fr;gap:clamp(20px,3vw,48px);align-items:baseline}}
.crit ul{margin:0;padding:0}
.crit .t{
  font-family:var(--display);font-variation-settings:'wdth' 110;font-weight:600;
  text-transform:uppercase;font-size:var(--d3);line-height:.9;letter-spacing:-.02em;
}
.crit .d{color:var(--dim-on-dark);font-size:var(--b2)}

/* ---------- close ---------- */
.close h2{max-width:12ch}
.closewrap{display:grid;gap:clamp(36px,4.5vw,64px);align-items:center}
@media(min-width:940px){.closewrap{grid-template-columns:1fr 1.05fr}}
.vidwrap{position:relative;background:#000}
.vidwrap video{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.vidnote{font-size:var(--b3);color:var(--dim-on-dark);letter-spacing:.1em;text-transform:uppercase;margin-top:12px}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--rule-dark);padding-top:32px;padding-bottom:40px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}

/* ---------- reveal ---------- */
[data-rv]{opacity:1}
.rv-armed [data-rv]{opacity:0;transform:translateY(22px)}
.rv-armed [data-rv].in{opacity:1;transform:none;transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1)}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .rv-armed [data-rv]{opacity:1;transform:none}
  .case .track{height:auto}
  .case .pin{position:static;height:auto;padding-top:clamp(72px,10vw,150px);padding-bottom:clamp(72px,10vw,150px)}
  .case .to{opacity:1}
}

/* ---------- lead form ---------- */
.leadform{display:grid;gap:14px;max-width:560px;margin-top:clamp(24px,3vw,38px)}
.leadform .row{display:grid;gap:14px}
@media(min-width:620px){.leadform .row{grid-template-columns:1fr 1fr}}
.leadform label{display:grid;gap:7px}
.leadform .lb{
  font-size:var(--b3);letter-spacing:.12em;text-transform:uppercase;
  color:var(--dim-on-dark);font-weight:500;
}
.cream .leadform .lb{color:var(--dim-on-cream)}
.leadform input,.leadform select,.leadform textarea{
  font-family:var(--sans);font-size:var(--b2);line-height:1.4;
  background:transparent;color:var(--cream);
  border:1px solid var(--rule-dark);border-radius:0;
  padding:13px 14px;width:100%;
  transition:border-color .16s ease;
}
.cream .leadform input,.cream .leadform select,.cream .leadform textarea{
  color:var(--ground);border-color:var(--rule-cream);
}
.leadform input:focus,.leadform select:focus,.leadform textarea:focus{
  outline:none;border-color:var(--gold);
}
.cream .leadform input:focus,.cream .leadform select:focus,.cream .leadform textarea:focus{border-color:var(--gold-cream)}
.leadform textarea{min-height:96px;resize:vertical}
.leadform select{appearance:none;cursor:pointer}
.leadform option{background:var(--ground);color:var(--cream)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formnote{font-size:var(--b3);color:var(--dim-on-dark);letter-spacing:.06em}
.formmsg{font-size:var(--b2);margin-top:12px;display:none}
.formmsg.on{display:block}
.formmsg.err{color:#E4785F}
.formmsg.ok{color:var(--gold)}
.leadform button[type=submit]{width:auto;justify-self:start}
.leadform button[disabled]{opacity:.55;cursor:default;transform:none}

/* ---------- form success state ---------- */
.sent{
  display:none;
  border:1px solid var(--gold);
  background:rgba(194,149,63,.07);
  padding:clamp(28px,3.6vw,48px);
  max-width:560px;
  margin-top:clamp(24px,3vw,38px);
  animation:sentIn .5s cubic-bezier(.2,.7,.3,1) both;
}
.sent.on{display:block}
@keyframes sentIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.sent .tick{
  width:52px;height:52px;border-radius:50%;
  background:var(--gold);color:var(--on-gold);
  display:flex;align-items:center;justify-content:center;
  font-size:26px;line-height:1;margin-bottom:clamp(18px,2.2vw,26px);
}
.sent h3{
  font-size:var(--d3);color:var(--gold);
  margin:0 0 clamp(14px,1.8vw,20px);
}
.sent p{font-size:var(--b2);color:var(--dim-on-dark);margin:0 0 .9em;max-width:46ch}
.sent p:last-child{margin-bottom:0}
.sent b{color:var(--cream);font-weight:600}
.cream .sent p{color:var(--dim-on-cream)}
.cream .sent b{color:var(--ground)}
.cream .sent h3{color:var(--gold-cream)}
.cream .sent .tick{background:var(--gold-cream);color:var(--cream)}

/* ---------- bare deliverables list, Soulutions landing page pattern ---------- */
.deliver{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-dark)}
.deliver li{
  border-bottom:1px solid var(--rule-dark);
  padding:clamp(16px,2vw,24px) 0;
  font-size:var(--b1);
  max-width:56ch;
}
.cream .deliver{border-top-color:var(--rule-cream)}
.cream .deliver li{border-bottom-color:var(--rule-cream)}


/* ---------- centred standfirst under the hero ---------- */
.center{text-align:center}
.center .logos{justify-items:center}
.center .figs{text-align:center}
.center .figs > div{align-items:center}
.standfirst{
  font-family:var(--display);
  font-variation-settings:'wdth' 110;
  font-weight:600;
  text-transform:none;
  font-size:var(--d3);
  line-height:1.08;
  letter-spacing:-.015em;
  max-width:24ch;
  margin:0 auto clamp(44px,5.5vw,80px);
  text-wrap:balance;
}

/* ---------- anchor pull quote above the standfirst ---------- */
.pull.anchor{
  font-size:clamp(26px,3.4vw,44px);line-height:1.12;letter-spacing:-.01em;
  max-width:32ch;margin:0 auto clamp(22px,2.6vw,36px);
  text-transform:none;font-variation-settings:'wdth' 100;font-weight:600;
  text-wrap:balance;
}
.attrib.anchor-attrib{justify-content:center;margin-bottom:clamp(48px,6vw,88px)}

/* ---------- portrait zoom for tighter framing ---------- */
.heroshots figure.zoom{overflow:hidden}
.heroshots figure.zoom img{transform:scale(1.14);transform-origin:center 30%;transition:transform .55s cubic-bezier(.2,.7,.3,1)}
.person.zoom{overflow:hidden;position:relative}
.person.zoom img{transform:scale(1.12);transform-origin:center 30%;transition:transform .55s cubic-bezier(.2,.7,.3,1)}
.heroshots figure:hover img{transform:scale(1.03)}
.heroshots figure.zoom:hover img{transform:scale(1.18)}
.person.zoom:hover img{transform:scale(1.16)}

/* ---------- testimonials, masonry wall layout ---------- */
.qwall{
  columns:1;column-gap:clamp(28px,3vw,52px);
  margin-top:clamp(48px,6vw,88px);
  border-top:1px solid var(--rule-cream);padding-top:clamp(32px,3.6vw,52px);
}
@media(min-width:720px){.qwall{columns:2}}
@media(min-width:1200px){.qwall{columns:3}}
.qwall .quote{
  break-inside:avoid;page-break-inside:avoid;
  display:block;margin:0 0 clamp(28px,3vw,44px);padding:0 0 clamp(24px,2.6vw,36px);
  border-bottom:1px solid var(--rule-cream);
}
.qwall .quote:last-child{border-bottom:0}
.qwall blockquote{
  margin:0;padding:0;
  font-family:var(--display);font-variation-settings:'wdth' 100;font-weight:500;
  font-size:clamp(20px,1.7vw,26px);line-height:1.28;letter-spacing:-.008em;color:var(--ground);
  text-wrap:balance;
}
.qwall blockquote::before{content:'\201C';color:var(--gold-cream);margin-right:2px}
.qwall blockquote::after{content:'\201D';color:var(--gold-cream);margin-left:2px}
.qwall figcaption{
  margin-top:clamp(16px,1.8vw,24px);
  display:grid;grid-template-columns:auto 1fr;column-gap:14px;row-gap:2px;align-items:center;
}
.qwall figcaption img{
  width:44px;height:44px;border-radius:50%;object-fit:cover;
  grid-row:1 / span 2;
}
.qwall figcaption img + .qname{grid-column:2}
.qwall .qname{
  font-family:var(--display);font-variation-settings:'wdth' 110;font-weight:600;
  font-size:var(--b2);letter-spacing:-.005em;color:var(--ground);line-height:1.1;
}
.qwall .qrole{
  font-size:var(--b3);color:var(--dim-on-cream);letter-spacing:.02em;line-height:1.3;
}

/* ---------- section eyebrow rule reveal ---------- */
.meta{position:relative}
.blk .meta[data-rv]{padding-bottom:14px}
.blk .meta[data-rv]::after{
  content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;opacity:.35;
  transition:width 1s cubic-bezier(.2,.7,.3,1) .35s
}
.center .meta[data-rv]::after{left:50%;transform:translateX(-50%)}
.blk .meta[data-rv].in::after{width:56px}
@media(prefers-reduced-motion:reduce){.blk .meta[data-rv]::after{width:56px;transition:none}}

/* ---------- nav + footer link underline draw hover ---------- */
.navlinks a:not(.navcta),.foot a{
  background-image:linear-gradient(currentColor,currentColor);
  background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;
  padding-bottom:4px;
  transition:color .18s ease,background-size .45s cubic-bezier(.2,.7,.3,1)
}
.navlinks a:not(.navcta):hover,.foot a:hover{background-size:100% 1px}
.navlinks .navcta{
  background-image:linear-gradient(currentColor,currentColor);
  background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;
  padding-bottom:4px;
  transition:background-size .45s cubic-bezier(.2,.7,.3,1)
}
.navlinks .navcta:hover{background-size:100% 1px}

/* ---------- Lenis smooth scroll compatibility ---------- */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth iframe{pointer-events:none}

/* ---------- global focus-visible ---------- */
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.btn:focus-visible{outline-offset:4px}
