/* ============================================================
   Tribal Kite School — section design system
   The reusable visual language shared by every content page:
   section shells, headings, pills, cards, backdrop decor.
   Page-specific section CSS stays with its own page.
   ============================================================ */

html{scroll-behavior:smooth}
.rsec{--r-ink:#0D2233;--r-navy:#0A1D2A;--r-sun:#FFC93C;--r-goldD:#C7972E;--r-gold:#D8A62A;
  --r-display:"Playfair Display",Georgia,serif;
  --r-body:"Manrope",system-ui,sans-serif;
  --r-mono:"Manrope",system-ui,sans-serif;
  position:relative;overflow:hidden;font-family:var(--r-body);
  min-height:100svh;display:flex;align-items:center;
  padding:clamp(64px,7vw,92px) 0 clamp(44px,5vw,64px)}
.rsec *,.rsec *::before,.rsec *::after{box-sizing:border-box}
.rsec--light{background:#F1EFE9;color:var(--r-ink)}
.rsec--navy{background:var(--r-navy);color:#fff}
.r-wrap{position:relative;z-index:1;width:min(1240px,100% - clamp(20px,5vw,72px)*2);margin-inline:auto}
.r-eyebrow{font-family:var(--r-mono);font-size:11.5px;font-weight:500;letter-spacing:.30em;
  text-transform:uppercase;margin:0 0 10px;text-align:center;
  display:flex;align-items:center;justify-content:center;gap:12px}
.r-eyebrow::before,.r-eyebrow::after{content:"";width:26px;height:1px;background:currentColor;opacity:.5}
.ch .r-eyebrow{justify-content:flex-start}
.rsec--light .r-eyebrow{color:var(--r-goldD)}
.rsec--navy .r-eyebrow{color:var(--r-sun)}
.r-h2{font-family:var(--r-display);font-weight:800;text-transform:uppercase;
  font-size:clamp(30px,4.2vw,52px);line-height:1.02;letter-spacing:-.02em;margin:0;text-align:center}
.r-ul{width:56px;height:3px;border-radius:2px;background:var(--r-gold);margin:14px auto 0;
  transform:scaleX(0);transition:transform .8s cubic-bezier(.2,.7,.3,1) .25s}
.rz2.in .r-ul,.r-ul.in{transform:scaleX(1)}
.r-sub{text-align:center;font-size:14.5px;margin:14px auto 0;max-width:52ch}
.rsec--light .r-sub{color:#5A6672}
.rsec--navy .r-sub{color:rgba(255,255,255,.72)}
.rz2{opacity:0;transform:translate3d(0,26px,0);
  transition:opacity .85s cubic-bezier(.2,.7,.3,1),transform .85s cubic-bezier(.2,.7,.3,1)}
.rz2.in{opacity:1;transform:none}
.r-pill{display:inline-flex;align-items:center;gap:10px;font-family:var(--r-mono);
  font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  border-radius:999px;text-decoration:none;position:relative;overflow:hidden;
  padding:12px 24px;transition:background-position .35s cubic-bezier(.2,.7,.3,1),color .3s,transform .25s}
.r-pill svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.6;transition:transform .3s}
.r-pill:hover{transform:translateY(-1px)}
.r-pill:hover svg{transform:translateX(5px)}
.r-pill--gold{color:#13212B;background-image:linear-gradient(to top,#fff 50%,var(--r-sun) 50%);
  background-size:100% 200%;background-position:0 0}
.r-pill--gold:hover{background-position:0 100%}
.r-pill--line{color:var(--r-goldD);border:1.5px solid var(--r-gold);
  background-image:linear-gradient(to top,var(--r-gold) 50%,rgba(216,166,42,0) 50%);
  background-size:100% 200%;background-position:0 0}
.r-pill--line:hover{background-position:0 100%;color:#13212B}


/* ============ MEMBERSHIP ============ */
.mb{padding:clamp(44px,4.5vw,60px) 0}
.mb__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.5vw,20px);
  margin-top:30px;align-items:stretch;max-width:940px;margin-inline:auto}
.mb__card{position:relative;background:#fff;border-radius:16px;padding:26px 24px 22px;text-align:left;
  box-shadow:0 14px 36px rgba(13,34,51,.08);display:flex;flex-direction:column;
  border:1px solid rgba(13,34,51,.07);
  transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s,border-color .35s}
.mb__card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(13,34,51,.13);
  border-color:rgba(199,151,46,.4)}
.mb__badge{display:inline-block;font-family:var(--r-mono);font-size:9.5px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:#7A8590;background:rgba(13,34,51,.05);
  border-radius:999px;padding:5px 11px;margin:0 0 14px}
.mb__card h3{font-family:var(--r-display);font-weight:800;text-transform:uppercase;
  font-size:17px;margin:0 0 10px;letter-spacing:-.01em}
.mb__price{font-family:var(--num-font);font-weight:var(--num-weight);
  font-size:var(--num-lg);line-height:var(--num-lh);
  letter-spacing:var(--num-track);font-variant-numeric:tabular-nums;
  display:flex;align-items:baseline;gap:7px}
.mb__price span{font-family:var(--r-mono);font-weight:500;font-size:11px;letter-spacing:.08em;
  color:#8A94A0;text-transform:uppercase}
.mb__ksh{font-family:var(--r-mono);font-size:10.5px;color:#9AA4AE;margin:6px 0 16px}
.mb__feats{list-style:none;margin:0 0 18px;padding:12px 0 0;flex-grow:1}
.mb__feats li{font-size:13px;color:#4A5560;padding:5px 0;display:flex;gap:9px;align-items:center}
.mb__feats svg{width:14px;height:14px;flex:0 0 14px;stroke:var(--r-gold);fill:none;
  stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.mb__card .r-pill{align-self:stretch;justify-content:center;padding:11px 18px;font-size:10.5px}
.mb__card--pop{background:var(--r-navy);color:#fff;border-color:rgba(255,201,60,.5)}
.mb__card--pop::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,transparent 8%,var(--r-sun) 50%,transparent 92%);
  border-radius:16px 16px 0 0}
.mb__card--pop .mb__badge{color:#0D2233;background:var(--r-sun)}
.mb__card--pop .mb__price span,.mb__card--pop .mb__ksh{color:rgba(255,255,255,.55)}
.mb__card--pop .mb__feats li{color:rgba(255,255,255,.85)}
.mb__card--pop .mb__feats svg{stroke:var(--r-sun)}
.mb__note{font-family:var(--r-mono);font-size:10.5px;letter-spacing:.1em;color:#9AA4AE;
  text-align:center;margin:20px 0 0}
@media(max-width:900px){.mb__grid{grid-template-columns:1fr;max-width:400px}}

/* ============ LESSON LEVELS ============ */
.ls__hrs{position:absolute;right:10px;top:10px;z-index:1;font-family:var(--r-mono);font-size:10px;
  font-weight:700;letter-spacing:.14em;color:#fff;background:rgba(10,29,42,.85);
  border:1px solid rgba(255,201,60,.5);padding:6px 11px;border-radius:999px}
.ls__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px);margin-top:32px}
.ls__card{background:#fff;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 16px 40px rgba(13,34,51,.10);
  transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s}
.ls__card:hover{transform:translateY(-6px);box-shadow:0 26px 56px rgba(13,34,51,.16)}
.ls__ph{position:relative;height:clamp(170px,17vw,215px);overflow:hidden;background:#DCE4E8}
.ls__ph img{position:absolute;inset:0;width:100%;height:100%;display:block}
.ls__phbg{object-fit:cover;filter:blur(12px) saturate(1.05) brightness(.97);transform:scale(1.16)}
.ls__phfit{object-fit:contain;transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.ls__card:hover .ls__phfit{transform:scale(1.045)}
.ls__body{padding:20px 22px 24px;display:flex;flex-direction:column;flex-grow:1}
.ls__tag{font-family:var(--r-mono);font-size:11px;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--r-goldD);margin:0 0 6px}
.ls__card h3{font-family:var(--r-display);font-weight:800;font-size:21px;
  text-transform:uppercase;letter-spacing:-.01em;margin:0 0 12px}
.ls__card p{font-size:14px;line-height:1.62;color:#5A6672;margin:0 0 18px;flex-grow:1}
.ls__card .r-pill{align-self:center;padding:10px 20px}


/* ============ SHARED BACKDROP DECOR ============ */
.r-deco{position:absolute;pointer-events:none}
.r-palm{left:-70px;top:-46px;width:380px;opacity:.10;filter:blur(2px);
  animation:rPalm 13s ease-in-out infinite alternate}
.r-palm svg{width:100%;height:auto;fill:#7C868E}
@keyframes rPalm{from{transform:rotate(-11deg)}to{transform:rotate(-7deg) translateY(8px)}}
.r-blob{right:-90px;top:-64px;width:460px;opacity:.85}
.r-blob svg{width:100%;height:auto;fill:#D9E9EF}
.r-mark{right:-64px;bottom:6%;width:400px;opacity:.07;
  animation:rFloat 15s ease-in-out infinite alternate}
.r-mark svg{width:100%;height:100%;stroke:#C7972E;fill:none;stroke-width:2}
.rsec--navy .r-mark svg{stroke:#FFC93C}
.rsec--navy .r-mark{opacity:.05}
@keyframes rFloat{
  0%{transform:translateY(-10px) rotate(-1deg) scale(1)}
  50%{transform:translateY(2px) rotate(.4deg) scale(1.04)}
  100%{transform:translateY(12px) rotate(1.2deg) scale(1)}}
.r-dots{width:140px;height:88px;opacity:.5;
  background-image:radial-gradient(rgba(13,34,51,.30) 1px,transparent 1.4px);
  background-size:15px 15px}
.rsec--navy .r-dots{background-image:radial-gradient(rgba(255,255,255,.30) 1px,transparent 1.4px);opacity:.4}
.r-glow{position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(46% 42% at 20% 28%, rgba(18,165,184,.10), transparent 70%),
    radial-gradient(40% 42% at 84% 74%, rgba(255,201,60,.07), transparent 72%)}
.r-gusts{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.r-gusts svg{position:absolute;stroke:#D8A62A;fill:none;stroke-width:2;stroke-linecap:round}
.r-gusts path{opacity:0;stroke-dasharray:620}
.r-gusts .g1{top:16%;left:-4%;width:52%}
.r-gusts .g2{bottom:14%;right:-6%;width:46%}
.r-gusts .g1 path{animation:rGust 13s linear 1s infinite}
.r-gusts .g2 path{animation:rGust 16s linear 7s infinite}
@keyframes rGust{
  0%{stroke-dashoffset:620;opacity:0}
  5%{opacity:.28}
  15%{stroke-dashoffset:0;opacity:.22}
  23%{stroke-dashoffset:-620;opacity:0}
  100%{stroke-dashoffset:-620;opacity:0}}

@media(prefers-reduced-motion:reduce){
  .rz2{opacity:1!important;transform:none!important}
  .r-ul{transform:scaleX(1)!important}
  .r-palm,.r-mark{animation:none}
  .r-gusts{display:none}
}



/* signature display tuning */
.r-h2{font-weight:640;letter-spacing:-.005em;text-transform:none;
  /* Descender room. -webkit-background-clip:text paints no further
     than this box, and at this line-height the tail of a "g" hangs
     below it and disappears. The padding gives it something to show
     through; the equal negative margin keeps the layout identical. */
  padding-bottom:.24em;margin-bottom:-.24em;
}
.rsec--light .r-h2{
  background:linear-gradient(180deg,#0D2233 35%,#155A66);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.rsec--navy .r-h2{
  background:linear-gradient(180deg,#FFFFFF 30%,#BFE7EC);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.mb__card h3,.ls__card h3{font-weight:600;letter-spacing:0;text-transform:none}
/* The signature-tuning block below re-weights the display face on
   the home page. Prices are excluded: they carry the site's one
   number weight and tracking, set in site.css. */

/* ============================================================
   PAGE FURNITURE — shared by every interior page
   .pb  page banner   .stp step path
   .rt  rate table    .pcta closing call to action
   ============================================================ */

/* ---------- page banner ---------- */
.pb{position:relative;overflow:hidden;background:var(--r-navy);color:#fff;
  font-family:var(--r-body);padding:clamp(56px,7vw,92px) 0 clamp(48px,6vw,76px)}
.pb *,.pb *::before,.pb *::after{box-sizing:border-box}
.pb__sky{position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(52% 46% at 18% 22%, rgba(18,165,184,.20), transparent 70%),
    radial-gradient(44% 46% at 86% 70%, rgba(255,201,60,.11), transparent 72%)}
.pb__wrap{position:relative;z-index:1;
  width:min(1240px,100% - clamp(20px,5vw,72px)*2);margin-inline:auto;text-align:center}
.pb__title{font-family:var(--r-display);font-weight:640;letter-spacing:-.005em;
  font-size:clamp(38px,6.6vw,84px);line-height:1.0;margin:0;
  /* Descender room. -webkit-background-clip:text paints no further
     than this box, and at this line-height the tail of a "g" hangs
     below it and disappears. The padding gives it something to show
     through; the equal negative margin keeps the layout identical. */
  padding-bottom:.24em;margin-bottom:-.24em;
  background:linear-gradient(180deg,#FFFFFF 32%,#BFE7EC);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.pb__title em{font-style:normal;-webkit-text-fill-color:var(--r-sun);color:var(--r-sun)}
.pb__lead{max-width:56ch;margin:20px auto 0;font-size:15.5px;line-height:1.7;
  color:rgba(255,255,255,.76)}
.pb__cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.pb .r-eyebrow{color:var(--r-sun)}
/* ghost pill reads correctly on the navy banner */
.pb .r-pill--line{color:var(--r-sun);border-color:rgba(255,201,60,.55)}
.pb .r-pill--line:hover{color:#13212B}

.pb__facts{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.6vw,22px);
  max-width:900px;margin:clamp(38px,4.5vw,54px) auto 0}
.pb__fact{text-align:center;padding:16px 10px;border-radius:14px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10)}
.pb__fact b{display:block;font-family:var(--num-font);
  font-weight:var(--num-weight);font-size:var(--num-md);
  line-height:var(--num-lh);letter-spacing:var(--num-track);
  font-variant-numeric:tabular-nums;color:var(--r-sun)}
.pb__fact span{display:block;margin-top:7px;font-family:var(--r-mono);font-size:10px;
  font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.58)}
@media(max-width:760px){.pb__facts{grid-template-columns:repeat(2,1fr)}}

/* ---------- step path ---------- */
.stp{padding:clamp(56px,6.5vw,86px) 0}
.stp__row{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,24px);
  margin-top:44px;position:relative}
.stp__row::before{content:"";position:absolute;left:12%;right:12%;top:27px;height:2px;
  background:linear-gradient(90deg,rgba(255,201,60,.15),rgba(255,201,60,.55),rgba(255,201,60,.15))}
.stp__row--3{grid-template-columns:repeat(3,1fr)}
.stp__item{position:relative;text-align:center}
.stp__dot{width:56px;height:56px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;
  background:var(--r-navy);border:2px solid rgba(255,201,60,.55);
  font-family:var(--r-display);font-weight:640;font-size:20px;color:var(--r-sun);
  position:relative;z-index:1}
.stp__item h4{font-family:var(--r-display);font-weight:600;font-size:17px;margin:0 0 8px;
  color:inherit}
.stp__item p{font-size:13px;line-height:1.6;margin:0 auto;max-width:30ch}
.rsec--light .stp__item p{color:#5A6672}
.rsec--navy .stp__item p{color:rgba(255,255,255,.72)}
@media(max-width:820px){
  .stp__row,.stp__row--3{grid-template-columns:repeat(2,1fr);gap:32px}
  .stp__row::before{display:none}
}
@media(max-width:460px){.stp__row,.stp__row--3{grid-template-columns:1fr}}

/* ---------- rate table ---------- */
.rt{padding:clamp(56px,6.5vw,86px) 0}
.rt__table{margin-top:38px;border-radius:18px;overflow:hidden;background:#fff;
  border:1px solid rgba(13,34,51,.08);box-shadow:0 16px 40px rgba(13,34,51,.08);
  max-width:960px;margin-inline:auto}
.rt__row{display:grid;grid-template-columns:1.5fr 1fr 1fr;align-items:center;
  padding:16px clamp(18px,2.4vw,30px);border-bottom:1px solid rgba(13,34,51,.07);
  transition:background .25s}
.rt__row:last-child{border-bottom:0}
.rt__row:not(.rt__row--head):hover{background:rgba(255,201,60,.06)}
.rt__row--head{background:var(--r-navy)}
.rt__row--head span{font-family:var(--r-mono);font-size:10px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(255,255,255,.62)}
.rt__row--head span:first-child{color:var(--r-sun)}
.rt__item{font-family:var(--r-display);font-weight:600;font-size:16px;color:var(--r-ink)}
.rt__cell{text-align:right}
.rt__cell b{font-family:var(--r-display);font-weight:640;font-size:19px;color:var(--r-ink);
  display:block;line-height:1.1}
.rt__cell i{font-family:var(--r-mono);font-style:normal;font-size:10.5px;color:#9AA4AE}
.rt__note,.r-note{font-family:var(--r-mono);font-size:10.5px;letter-spacing:.1em;color:#9AA4AE;
  text-align:center;margin:22px 0 0}
@media(max-width:620px){
  .rt__row{grid-template-columns:1fr 1fr;gap:6px 12px}
  .rt__item{grid-column:1 / -1;margin-bottom:4px}
  .rt__cell{text-align:left}
  .rt__row--head span:first-child{grid-column:1 / -1}
}

/* ---------- closing call to action ---------- */
.pcta{padding:clamp(60px,7vw,96px) 0;text-align:center}
.pcta__in{position:relative;z-index:1;max-width:720px;margin-inline:auto}
.pcta__cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.rsec--navy .r-pill--line{color:var(--r-sun);border-color:rgba(255,201,60,.55)}
.rsec--navy .r-pill--line:hover{color:#13212B}

/* ---------- icon feature grid ---------- */
.fx__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,1.8vw,22px);margin:0}
.fx__grid--4{grid-template-columns:repeat(4,1fr)}
.fx__item{background:#fff;border:1px solid rgba(13,34,51,.08);border-radius:14px;
  padding:20px 20px 18px;
  transition:transform .32s cubic-bezier(.2,.7,.3,1),box-shadow .32s,border-color .32s}
.fx__item:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(13,34,51,.10);
  border-color:rgba(199,151,46,.4)}
.fx__ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,201,60,.14);margin:0 0 13px}
.fx__ic svg{width:18px;height:18px;stroke:var(--r-goldD);fill:none;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.fx__item h4{font-family:var(--r-display);font-weight:600;font-size:16px;margin:0 0 7px;
  color:var(--r-ink)}
.fx__item p{font-size:13px;line-height:1.6;color:#5A6672;margin:0}
/* on navy the cards invert */
.rsec--navy .fx__item{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.11)}
.rsec--navy .fx__item:hover{border-color:rgba(255,201,60,.45);box-shadow:0 18px 40px rgba(0,0,0,.22)}
.rsec--navy .fx__ic{background:rgba(255,201,60,.16)}
.rsec--navy .fx__ic svg{stroke:var(--r-sun)}
.rsec--navy .fx__item h4{color:#fff}
.rsec--navy .fx__item p{color:rgba(255,255,255,.72)}
@media(max-width:900px){.fx__grid--4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.fx__grid,.fx__grid--4{grid-template-columns:1fr}}

/* ---------- split: copy beside a highlight panel ---------- */
.spl__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(26px,4vw,58px);
  align-items:center;margin-top:38px;max-width:1080px;margin-inline:auto}
.spl__copy h3{font-family:var(--r-display);font-weight:600;
  font-size:clamp(24px,3vw,34px);line-height:1.14;margin:0 0 16px}
.spl__copy p{font-size:15px;line-height:1.72;margin:0 0 16px;max-width:52ch}
.spl__copy .r-pill{margin-top:12px}
.rsec--navy .spl__copy h3{color:#fff}
.rsec--navy .spl__copy p{color:rgba(255,255,255,.76)}
.rsec--light .spl__copy h3{color:var(--r-ink)}
.rsec--light .spl__copy p{color:#5A6672}
.spl__panel{position:relative;border-radius:20px;padding:32px 30px}
.spl__panel::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,transparent 8%,var(--r-sun) 50%,transparent 92%);
  border-radius:20px 20px 0 0}
.rsec--navy .spl__panel{background:rgba(255,255,255,.05);border:1px solid rgba(255,201,60,.28)}
.rsec--light .spl__panel{background:#fff;border:1px solid rgba(199,151,46,.30);
  box-shadow:0 16px 40px rgba(13,34,51,.08)}
.spl__panel h4{font-family:var(--r-mono);font-size:10.5px;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--r-goldD);margin:0 0 18px}
.rsec--navy .spl__panel h4{color:var(--r-sun)}
.spl__list{list-style:none;margin:0;padding:0}
.spl__list li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;
  font-size:13.5px;line-height:1.56}
.spl__list li:last-child{border-bottom:0}
.rsec--navy .spl__list li{color:rgba(255,255,255,.85);border-bottom:1px solid rgba(255,255,255,.09)}
.rsec--light .spl__list li{color:#4A5560;border-bottom:1px solid rgba(13,34,51,.08)}
.spl__list svg{width:15px;height:15px;flex:0 0 15px;margin-top:2px;fill:none;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round;stroke:var(--r-gold)}
.rsec--navy .spl__list svg{stroke:var(--r-sun)}
@media(max-width:880px){.spl__grid{grid-template-columns:1fr;gap:30px}}

/* three-across feature grid */
.fx__grid--3{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.fx__grid--3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.fx__grid--3{grid-template-columns:1fr}}

/* --- label font compensation (Barlow Condensed is narrower) --- */
.r-eyebrow{font-size:11.5px;letter-spacing:.2em;font-weight:700}
.r-pill{font-size:11.5px;letter-spacing:.1em;font-weight:700}
.mb__badge,.ls__tag{font-size:11px;letter-spacing:.14em}
.mb__price span,.mb__ksh{font-size:12px}
.ft h4,.ft__c b{font-size:12px;letter-spacing:.16em}
.ft__bar{font-size:12px;letter-spacing:.1em}

/* ============================================================
   HOME PAGE REFINEMENTS
   ============================================================ */

/* cards now carry a real photo that fills its frame, rather than a
   contained graphic floating on a blurred copy of itself */
.cy__cover,.ls__cover{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block;
  transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.cy__card:hover .cy__cover,.ls__card:hover .ls__cover{transform:scale(1.05)}
.cy__ph,.ls__ph{position:relative;overflow:hidden}
/* soften the bottom of the photo into the card body */
.cy__ph::after,.ls__ph::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(13,34,51,0) 62%,rgba(13,34,51,.30) 100%)}

/* Choose Your Adventure and Membership share the same cream, so the join
   needs no blend — the old fade was washing out the card bottoms. */


/* With the hero's own nav hidden the copy still needs to clear the
   sticky header that sits over it - but this cannot be padding. .ui is a
   space-between column and the nav used to be its top item; padding takes
   the room without taking a slot, so with only the copy and the cards
   left as items every pixel of slack piled into one gap between them
   (190px of dead water at 1670x944). A spacer the height of the header
   that is actually on screen puts the slot back, and the slack splits
   above and below the copy the way it did when the nav was there. */
.hero .ui::before{content:"";flex:0 0 calc(var(--snav-h) + 18px)}
@media(max-width:860px){.hero .ui::before{flex-basis:calc(var(--snav-h) + 8px)}}

/* home page: same clutter reduction */
.r-gusts,.r-deco.r-dots,.r-deco.r-palm,.r-deco.r-blob{display:none}
.r-deco.r-mark{opacity:.04}

/* Shilling price under a converted one, on the home page cards. */
.mb__base,.ls__base{display:block;font-family:var(--r-mono);font-size:10.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:#8A94A0;margin:2px 0 0}
.mb__card--pop .mb__base{color:rgba(255,255,255,.55)}
/* The three lesson cards now carry their price, as the lesson page does. */
.ls__price{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 6px;margin:0 0 12px;
  font-family:var(--r-display);font-weight:800;font-size:22px;color:#0D2233;
  font-variant-numeric:tabular-nums}
.ls__price small{font-family:var(--r-mono);font-size:10px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:#8A94A0}
.ls__price .ls__base{flex-basis:100%}
