/* ============================================================================
   Union Yoga — reimagined design system (Elementis-vein editorial layer)
   ----------------------------------------------------------------------------
   One stylesheet for every reimagined page. Reusable section patterns:
     .hero  .band(marquee)  .manifesto(editorial 2-col)  .built(numbered list)
     .heat(pinned story)    .inside(principles grid)      .walk(sideways rail)
     .say(word statement)   .close(cta)   nav + footer + reveal + reduced-motion
   Colour/type tokens come from /assets/brand.css; a fallback copy is inlined
   here so the system still renders when a file is opened straight off disk.
   ============================================================================ */
/* Fallback tokens so the file also opens straight off disk. /assets/brand.css wins when served. */
:root{
  --cream:#F4EFE6; --cream-soft:#EFE7D8; --sand:#E8DFC9;
  --ink:#1F2A22; --forest:#2E4034; --moss:#5C7060;
  --clay:#B5764B; --clay-soft:#D9A47A; --terra:#8C4A2A;
  --line:rgba(31,42,34,.12); --line-strong:rgba(31,42,34,.22);
  --radius:14px; --radius-lg:22px;
  --card-corners:0 0 0 var(--radius); --card-corners-lg:0 0 0 var(--radius-lg);
  --focus-ring:0 0 0 2px var(--cream), 0 0 0 4px var(--clay);
  --font-display:"Fraunces",Georgia,serif; --font-body:"Inter",system-ui,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;overscroll-behavior:none}
body{font-family:var(--font-body);font-weight:400;font-size:17px;line-height:1.6;
  color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.03;letter-spacing:-.018em}
a{color:inherit}
img{display:block;max-width:100%}
em{font-style:italic}
.wrap{width:min(1240px,90vw);margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:4px}

/* tiny wide-tracked label — the Elementis signature */
.eyebrow{font-weight:500;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--moss)}
.on-dark .eyebrow{color:var(--clay-soft)}
.num{font-family:var(--font-body);font-weight:500;font-size:.72rem;letter-spacing:.14em;color:var(--terra)}
.on-dark .num{color:var(--clay-soft)}

/* the brand-line highlight — variant F. Ink text + clay swipe on light; cream + warm swipe on dark. */
.hl{display:inline-block;font-weight:600;padding:0 .06em;
  background:linear-gradient(180deg,transparent 0 30%,rgba(181,118,75,.34) 30% 94%,transparent 94%);
  -webkit-box-decoration-break:clone;box-decoration-break:clone}
.on-dark .hl{color:var(--cream);
  background:linear-gradient(180deg,transparent 0 30%,rgba(217,164,122,.42) 30% 94%,transparent 94%)}
/* the branded "YOU" reused in small UI labels (e.g. the Unlimited YOU tier) keeps
   the highlight marker but the label's own Inter weight — no off-kit Inter 600 */
.tier__name .hl{font-weight:inherit}
/* same-page anchor CTAs (the pricing tiers scroll to #buy) glide instead of jump */
html{scroll-behavior:smooth}

/* buttons — clay-underlined primary, squared-hairline secondary (brand rule) */
.btn{display:inline-flex;align-items:center;gap:.55rem;font-weight:500;font-size:.95rem;
  text-decoration:none;padding:.85rem .2rem;position:relative;transition:color .3s var(--ease)}
.btn--primary{color:var(--ink);box-shadow:inset 0 -2px 0 0 var(--clay);padding-inline:.1rem}
.btn--primary:hover{box-shadow:inset 0 -8px 0 0 var(--clay-soft)}
.on-dark .btn--primary{color:var(--cream)}
.btn--ghost{border:1px solid var(--line-strong);border-radius:0;padding:.85rem 1.3rem}
.btn--ghost:hover{background:var(--forest);color:var(--cream);border-color:var(--forest)}
.on-dark .btn--ghost{border-color:rgba(244,239,230,.4);color:var(--cream)}
.on-dark .btn--ghost:hover{background:rgba(244,239,230,.12)}

/* reading-progress hairline */
.progress{position:fixed;inset:0 0 auto 0;height:2px;background:var(--clay);z-index:70;
  transform:scaleX(var(--sp,0));transform-origin:0 50%}

/* ── nav ─────────────────────────────────────────────────────────────── */
.nav{position:fixed;inset:0 0 auto 0;z-index:60;padding:1.2rem 0;color:var(--cream);
  transition:background-color .5s var(--ease),padding .5s var(--ease),color .5s var(--ease)}
.nav.is-stuck{background:rgba(46,64,52,.94);backdrop-filter:blur(10px);padding:.75rem 0}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.nav a{text-decoration:none}
.nav__mark{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:.24em}
.nav__mark::before{content:"";width:1.55em;height:1.55em;flex:0 0 auto;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20498%20465%22%20fill%3D%22none%22%0A%20%20%20%20%20stroke%3D%22%23fff%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%229%22%3E%3Ccircle%20cx%3D%22246%22%20cy%3D%2288%22%20r%3D%2269%22%2F%3E%3Cpath%20d%3D%22M%2034.0%20166.0%20C%2038.2%20169.4%2051.2%20180.4%2059.5%20186.5%20C%2067.8%20192.6%2075.9%20198.1%2084.0%20202.8%20C%2092.1%20207.4%20100.0%20211.0%20108.0%20214.5%20C%20116.0%20218.0%20124.0%20221.0%20132.0%20223.8%20C%20140.0%20226.5%20148.0%20229.1%20156.0%20231.2%20C%20164.0%20233.4%20172.0%20235.2%20180.0%20236.8%20C%20188.0%20238.3%20196.0%20239.5%20204.0%20240.5%20C%20212.0%20241.5%20220.0%20242.2%20228.0%20242.8%20C%20236.0%20243.2%20244.0%20243.5%20252.0%20243.5%20C%20260.0%20243.5%20268.0%20243.1%20276.0%20242.5%20C%20284.0%20241.9%20292.0%20240.9%20300.0%20239.8%20C%20308.0%20238.6%20316.0%20237.2%20324.0%20235.5%20C%20332.0%20233.8%20340.0%20231.8%20348.0%20229.5%20C%20356.0%20227.2%20364.0%20224.6%20372.0%20221.5%20C%20380.0%20218.4%20388.0%20215.2%20396.0%20211.0%20C%20404.0%20206.8%20412.4%20201.6%20420.0%20196.2%20C%20427.6%20190.9%20435.2%20184.3%20441.5%20178.8%20C%20447.8%20173.2%20455.2%20165.6%20458.0%20163.0%22%2F%3E%3Cpath%20d%3D%22M%2018.0%20340.0%20C%2018.0%20334.4%2023.1%20330.1%2026.2%20326.2%20C%2029.4%20322.3%2032.8%20318.7%2037.1%20316.7%20C%2041.5%20314.6%2046.6%20313.8%2052.5%20313.9%20C%2058.4%20314.0%2065.5%20315.4%2072.8%20317.3%20C%2080.0%20319.2%2088.1%20322.1%2096.0%20325.2%20C%20103.9%20328.4%20112.0%20332.3%20120.0%20336.3%20C%20128.0%20340.4%20136.0%20344.9%20144.0%20349.6%20C%20152.0%20354.2%20160.1%20359.2%20168.0%20364.1%20C%20175.9%20369.0%20184.0%20374.2%20191.6%20379.0%20C%20199.2%20383.8%20206.7%20388.6%20213.8%20392.8%20C%20220.8%20396.9%20227.2%20400.8%20234.0%20404.2%20C%20240.8%20407.6%20247.2%20410.6%20254.2%20413.4%20C%20261.3%20416.1%20268.8%20418.6%20276.4%20420.6%20C%20284.0%20422.5%20292.1%20424.2%20300.0%20425.2%20C%20307.9%20426.2%20316.0%20426.7%20324.0%20426.7%20C%20332.0%20426.6%20340.0%20426.1%20348.0%20424.9%20C%20356.0%20423.8%20364.0%20422.2%20372.0%20419.9%20C%20380.0%20417.7%20388.1%20414.9%20396.0%20411.4%20C%20403.9%20407.8%20412.0%20403.5%20419.6%20398.8%20C%20427.2%20394.0%20434.8%20388.3%20441.5%20382.8%20C%20448.2%20377.3%20454.4%20371.4%20459.8%20365.7%20C%20465.1%20360.0%20469.5%20354.4%20473.5%20348.8%20C%20477.5%20343.1%20483.4%20336.8%20484.0%20332.0%20C%20484.6%20327.2%20479.9%20323.1%20477.0%20319.7%20C%20474.1%20316.2%20471.0%20313.2%20466.8%20311.3%20C%20462.5%20309.5%20457.4%20308.6%20451.5%20308.6%20C%20445.6%20308.6%20438.5%20309.7%20431.2%20311.4%20C%20424.0%20313.1%20415.9%20315.8%20408.0%20318.8%20C%20400.1%20321.8%20392.0%20325.6%20384.0%20329.3%20C%20376.0%20333.1%20368.0%20337.2%20360.0%20341.3%20C%20352.0%20345.4%20344.0%20349.6%20336.0%20353.7%20C%20328.0%20357.8%20320.0%20361.9%20312.0%20365.9%20C%20304.0%20370.0%20295.9%20374.0%20288.0%20377.9%20C%20280.1%20381.8%20272.0%20385.8%20264.8%20389.3%20C%20257.5%20392.8%20250.6%20396.1%20244.5%20398.9%20C%20238.4%20401.8%20233.5%20404.0%20228.0%20406.2%20C%20222.5%20408.4%20217.6%20410.2%20211.5%20412.3%20C%20205.4%20414.4%20198.5%20416.6%20191.2%20418.6%20C%20184.0%20420.5%20175.9%20422.6%20168.0%20423.9%20C%20160.1%20425.3%20152.0%20426.3%20144.0%20426.6%20C%20136.0%20426.9%20127.9%20426.6%20120.0%20425.7%20C%20112.1%20424.7%20104.0%20423.0%2096.8%20420.9%20C%2089.5%20418.9%2082.5%20416.1%2076.5%20413.3%20C%2070.5%20410.5%2065.5%20407.5%2060.8%20404.1%20C%2056.0%20400.7%2052.1%20397.3%2048.0%20392.9%20C%2043.9%20388.6%2040.0%20383.7%2036.4%20378.2%20C%2032.8%20372.7%2029.3%20366.3%2026.2%20359.9%20C%2023.2%20353.6%2018.0%20345.6%2018.0%20340.0%20Z%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20498%20465%22%20fill%3D%22none%22%0A%20%20%20%20%20stroke%3D%22%23fff%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%229%22%3E%3Ccircle%20cx%3D%22246%22%20cy%3D%2288%22%20r%3D%2269%22%2F%3E%3Cpath%20d%3D%22M%2034.0%20166.0%20C%2038.2%20169.4%2051.2%20180.4%2059.5%20186.5%20C%2067.8%20192.6%2075.9%20198.1%2084.0%20202.8%20C%2092.1%20207.4%20100.0%20211.0%20108.0%20214.5%20C%20116.0%20218.0%20124.0%20221.0%20132.0%20223.8%20C%20140.0%20226.5%20148.0%20229.1%20156.0%20231.2%20C%20164.0%20233.4%20172.0%20235.2%20180.0%20236.8%20C%20188.0%20238.3%20196.0%20239.5%20204.0%20240.5%20C%20212.0%20241.5%20220.0%20242.2%20228.0%20242.8%20C%20236.0%20243.2%20244.0%20243.5%20252.0%20243.5%20C%20260.0%20243.5%20268.0%20243.1%20276.0%20242.5%20C%20284.0%20241.9%20292.0%20240.9%20300.0%20239.8%20C%20308.0%20238.6%20316.0%20237.2%20324.0%20235.5%20C%20332.0%20233.8%20340.0%20231.8%20348.0%20229.5%20C%20356.0%20227.2%20364.0%20224.6%20372.0%20221.5%20C%20380.0%20218.4%20388.0%20215.2%20396.0%20211.0%20C%20404.0%20206.8%20412.4%20201.6%20420.0%20196.2%20C%20427.6%20190.9%20435.2%20184.3%20441.5%20178.8%20C%20447.8%20173.2%20455.2%20165.6%20458.0%20163.0%22%2F%3E%3Cpath%20d%3D%22M%2018.0%20340.0%20C%2018.0%20334.4%2023.1%20330.1%2026.2%20326.2%20C%2029.4%20322.3%2032.8%20318.7%2037.1%20316.7%20C%2041.5%20314.6%2046.6%20313.8%2052.5%20313.9%20C%2058.4%20314.0%2065.5%20315.4%2072.8%20317.3%20C%2080.0%20319.2%2088.1%20322.1%2096.0%20325.2%20C%20103.9%20328.4%20112.0%20332.3%20120.0%20336.3%20C%20128.0%20340.4%20136.0%20344.9%20144.0%20349.6%20C%20152.0%20354.2%20160.1%20359.2%20168.0%20364.1%20C%20175.9%20369.0%20184.0%20374.2%20191.6%20379.0%20C%20199.2%20383.8%20206.7%20388.6%20213.8%20392.8%20C%20220.8%20396.9%20227.2%20400.8%20234.0%20404.2%20C%20240.8%20407.6%20247.2%20410.6%20254.2%20413.4%20C%20261.3%20416.1%20268.8%20418.6%20276.4%20420.6%20C%20284.0%20422.5%20292.1%20424.2%20300.0%20425.2%20C%20307.9%20426.2%20316.0%20426.7%20324.0%20426.7%20C%20332.0%20426.6%20340.0%20426.1%20348.0%20424.9%20C%20356.0%20423.8%20364.0%20422.2%20372.0%20419.9%20C%20380.0%20417.7%20388.1%20414.9%20396.0%20411.4%20C%20403.9%20407.8%20412.0%20403.5%20419.6%20398.8%20C%20427.2%20394.0%20434.8%20388.3%20441.5%20382.8%20C%20448.2%20377.3%20454.4%20371.4%20459.8%20365.7%20C%20465.1%20360.0%20469.5%20354.4%20473.5%20348.8%20C%20477.5%20343.1%20483.4%20336.8%20484.0%20332.0%20C%20484.6%20327.2%20479.9%20323.1%20477.0%20319.7%20C%20474.1%20316.2%20471.0%20313.2%20466.8%20311.3%20C%20462.5%20309.5%20457.4%20308.6%20451.5%20308.6%20C%20445.6%20308.6%20438.5%20309.7%20431.2%20311.4%20C%20424.0%20313.1%20415.9%20315.8%20408.0%20318.8%20C%20400.1%20321.8%20392.0%20325.6%20384.0%20329.3%20C%20376.0%20333.1%20368.0%20337.2%20360.0%20341.3%20C%20352.0%20345.4%20344.0%20349.6%20336.0%20353.7%20C%20328.0%20357.8%20320.0%20361.9%20312.0%20365.9%20C%20304.0%20370.0%20295.9%20374.0%20288.0%20377.9%20C%20280.1%20381.8%20272.0%20385.8%20264.8%20389.3%20C%20257.5%20392.8%20250.6%20396.1%20244.5%20398.9%20C%20238.4%20401.8%20233.5%20404.0%20228.0%20406.2%20C%20222.5%20408.4%20217.6%20410.2%20211.5%20412.3%20C%20205.4%20414.4%20198.5%20416.6%20191.2%20418.6%20C%20184.0%20420.5%20175.9%20422.6%20168.0%20423.9%20C%20160.1%20425.3%20152.0%20426.3%20144.0%20426.6%20C%20136.0%20426.9%20127.9%20426.6%20120.0%20425.7%20C%20112.1%20424.7%20104.0%20423.0%2096.8%20420.9%20C%2089.5%20418.9%2082.5%20416.1%2076.5%20413.3%20C%2070.5%20410.5%2065.5%20407.5%2060.8%20404.1%20C%2056.0%20400.7%2052.1%20397.3%2048.0%20392.9%20C%2043.9%20388.6%2040.0%20383.7%2036.4%20378.2%20C%2032.8%20372.7%2029.3%20366.3%2026.2%20359.9%20C%2023.2%20353.6%2018.0%20345.6%2018.0%20340.0%20Z%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
.nav__links{display:flex;gap:1.7rem;list-style:none;font-weight:500;font-size:.85rem;letter-spacing:.02em}
.nav__cta{font-weight:500;font-size:.85rem;box-shadow:inset 0 -2px 0 0 var(--clay);padding-bottom:3px}
@media (max-width:900px){.nav__links{display:none}}

/* Mobile menu — hamburger toggle + full-screen panel, injected by reimagined.js.
   Toggle inherits the nav's adaptive colour (currentColor); the open panel forces
   cream so the X reads on the forest ground regardless of the section behind it. */
.nav__toggle{display:none;position:relative;z-index:2;width:44px;height:44px;margin:-.5rem -.6rem -.5rem 0;padding:0;border:0;background:none;color:inherit;cursor:pointer;-webkit-appearance:none;appearance:none}
.nav__toggle span{position:absolute;left:11px;right:11px;height:2px;background:currentColor;border-radius:2px;transition:transform .25s ease,opacity .2s ease}
.nav__toggle span:nth-child(1){top:17px}
.nav__toggle span:nth-child(2){bottom:17px}
.navmenu-open .nav__toggle{color:var(--cream)}
/* Whole header goes cream while the panel is open (beats the JS-set inline
   adaptive colour, which would otherwise leave the mark/CTA dark on forest). */
.navmenu-open .nav{color:var(--cream)!important}
.navmenu-open .nav__toggle span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.navmenu-open .nav__toggle span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
.navmenu{position:fixed;inset:0;z-index:9999;background:var(--forest);color:var(--cream);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease;display:flex;align-items:center}
.navmenu-open .navmenu{opacity:1;visibility:visible;pointer-events:auto}
.navmenu-open .nav{opacity:0;pointer-events:none}
.navmenu__inner{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:24rem;padding:6rem clamp(1.5rem,7vw,2.5rem) 2rem;transform:translateY(12px);transition:transform .35s ease}
.navmenu-open .navmenu__inner{transform:none}
.navmenu__links{list-style:none;display:flex;flex-direction:column;gap:1.15rem;margin:0;padding:0}
.navmenu__links a{font-family:var(--font-body);font-weight:500;font-size:1.7rem;line-height:1;letter-spacing:.01em;color:var(--cream);text-decoration:none;display:inline-block;padding:.15rem 0}
.navmenu__cta{align-self:flex-start;font-family:var(--font-body);font-weight:500;font-size:1.15rem;color:var(--cream);text-decoration:none;box-shadow:inset 0 -2px 0 0 var(--clay);padding:.45rem 0;margin-top:.5rem}
.navmenu__login{font-family:var(--font-body);font-weight:500;font-size:1rem;letter-spacing:.02em;color:rgba(244,239,230,.72);text-decoration:none}
html.navmenu-open,html.navmenu-open body{overflow:hidden}
@media (max-width:900px){.nav__toggle{display:inline-flex;align-items:center;justify-content:center}}
@media (min-width:901px){.navmenu{display:none}}

/* ── 1 · opening beat ────────────────────────────────────────────────── */
.open{min-height:82svh;display:grid;place-items:center;text-align:center;background:var(--cream);padding:8rem 1.5rem 4rem}
.open__mark{width:74px;height:auto;margin:0 auto 2.2rem;opacity:0;transform:translateY(10px);
  transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.open__line{font-family:var(--font-display);font-weight:600;font-size:clamp(1.6rem,3.2vw,2.5rem);
  letter-spacing:-.01em;line-height:1.25;max-width:20ch;color:var(--ink)}
/* `.open` prefix + justify-self beat the .uy-sqs-root p{margin:0} reset, which
   otherwise kills the auto side-margins and left-pins the sub on Squarespace. */
.open .open__sub{margin:1.5rem auto 0;max-width:34ch;justify-self:center;font-size:.95rem;color:var(--moss);letter-spacing:.02em;line-height:1.5;text-wrap:balance;text-align:center}
.uy-ready .open__mark{opacity:1;transform:none}
.open .word{display:inline-block;opacity:0;transform:translateY(14px);
  transition:opacity .7s var(--ease),transform .7s var(--ease)}
.uy-ready .open .word{opacity:1;transform:none}

/* ── 2 · hero ────────────────────────────────────────────────────────── */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;color:var(--cream)}
.hero__media{position:absolute;inset:-8% 0;will-change:transform}
.hero__media img{width:100%;height:100%;object-fit:cover}
.hero__scrim{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(31,42,34,.42) 0%,rgba(31,42,34,.34) 42%,rgba(31,42,34,.72) 100%)}
.hero__inner{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;
  padding-bottom:clamp(3rem,8vh,5.5rem)}
.hero h1{font-size:clamp(3rem,8.2vw,7rem);margin:1rem 0 1.5rem;letter-spacing:-.02em}
.hero .lede{max-width:44ch;font-size:clamp(1.05rem,1.5vw,1.2rem);color:rgba(244,239,230,.9)}
.hero__row{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem;margin-top:2rem}
.line{display:block;overflow:hidden}
.line>span{display:block;transform:translateY(110%);
  transition:transform 1.05s var(--ease)}
.uy-ready .hero .line>span{transform:none}
.uy-ready .hero .line:nth-child(2)>span{transition-delay:.08s}
.fade{opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease) .45s,transform .9s var(--ease) .45s}
.uy-ready .hero .fade{opacity:1;transform:none}
.cue{position:absolute;right:0;bottom:clamp(3rem,8vh,5.5rem);display:flex;align-items:center;gap:.7rem;
  font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:rgba(244,239,230,.75)}
.cue i{display:block;width:56px;height:1px;background:rgba(244,239,230,.4);position:relative;overflow:hidden}
.cue i::after{content:"";position:absolute;inset:0;background:var(--clay-soft);animation:sweep 2.6s var(--ease) infinite}
@keyframes sweep{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}
@media (max-width:900px){.cue{display:none}}

/* ── marquee band ────────────────────────────────────────────────────── */
.band{background:var(--forest);color:var(--cream);padding:1.6rem 0;overflow:hidden}
.marquee{display:flex;width:max-content;will-change:transform}
.marquee span{font-family:var(--font-display);font-size:clamp(1.7rem,3.6vw,2.8rem);
  padding-inline:1.6rem;white-space:nowrap;opacity:.9}
.marquee span::after{content:"·";margin-left:3.2rem;color:var(--clay-soft)}

/* ── section scaffold ────────────────────────────────────────────────── */
.section{padding:clamp(5rem,13vh,9rem) 0}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .85s var(--ease),transform .85s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}

/* ── 3 · manifesto ───────────────────────────────────────────────────── */
.manifesto{background:var(--cream)}
.manifesto__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,7vw,7rem);align-items:start}
.manifesto h2{font-size:clamp(2.4rem,5.2vw,4.4rem);letter-spacing:-.02em}
.manifesto__body{max-width:52ch;display:grid;gap:1.4rem;font-size:1.075rem;color:var(--ink)}
.manifesto__body p:first-child{font-size:1.25rem;line-height:1.5}
.manifesto__body .muted{color:var(--moss)}
@media (max-width:860px){.manifesto__grid{grid-template-columns:1fr;gap:1.8rem}}

/* ── 4 · numbered chapter ────────────────────────────────────────────── */
.built{background:var(--cream-soft)}
.built__head{max-width:60ch;margin-bottom:3.5rem}
.built__head h2{font-size:clamp(2.2rem,4.6vw,3.6rem);margin:.7rem 0 1rem}
.built__head p{color:var(--moss);font-size:1.075rem;max-width:52ch}
.built__list{display:grid;gap:0}
.built__item{display:grid;grid-template-columns:4rem minmax(0,15ch) minmax(0,1fr);gap:clamp(1rem,4vw,4rem);
  padding:2rem 0;border-top:1px solid var(--line);align-items:baseline}
.built__item:last-child{border-bottom:1px solid var(--line)}
.built__item h3{font-size:clamp(1.35rem,2.4vw,1.8rem)}
.built__item p{color:var(--moss)}
@media (max-width:820px){.built__item{grid-template-columns:2.6rem 1fr;gap:.6rem 1rem}.built__item p{grid-column:2}}

/* ── 5 · pinned heat chapter ─────────────────────────────────────────── */
.heat{background:var(--forest);color:var(--cream);position:relative}
.heat__pin{height:340vh}
.heat__stage{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center}
.heat__bg{position:absolute;inset:-6% 0}
.heat__bg img{width:100%;height:100%;object-fit:cover;will-change:transform}
.heat__scrim{position:absolute;inset:0;background:rgba(31,42,34,.82)}
.heat__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);
  gap:clamp(2rem,6vw,6rem);align-items:center;width:100%}
.temp{position:relative;height:clamp(120px,17vw,210px);overflow:hidden}
.temp b{position:absolute;inset:0;font-family:var(--font-display);font-weight:600;
  font-size:clamp(4.5rem,13vw,11rem);line-height:1;letter-spacing:-.03em;
  transform:translateY(100%);opacity:0;transition:transform .8s var(--ease),opacity .6s var(--ease)}
.temp b.in{transform:none;opacity:1}
.temp b.out{transform:translateY(-100%);opacity:0}
.temp-note{margin-top:.5rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:.72rem;color:var(--clay-soft)}
.ticks{display:flex;gap:.5rem;margin-top:2rem}
.ticks span{height:2px;width:46px;background:rgba(244,239,230,.22)}
.ticks span.on{background:var(--clay-soft)}
.panels{position:relative;min-height:clamp(240px,36vh,340px)}
.panel{position:absolute;inset:0;opacity:0;transform:translateY(22px);
  transition:opacity .6s var(--ease),transform .7s var(--ease);pointer-events:none}
.panel.on{opacity:1;transform:none;pointer-events:auto}
.panel h2{font-size:clamp(1.9rem,3.6vw,3rem);margin-bottom:.9rem}
.panel p{color:rgba(244,239,230,.82);max-width:46ch}
.panel ul{list-style:none;margin-top:1.4rem;display:grid;gap:.55rem}
.panel li{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.55rem;
  border-bottom:1px solid rgba(244,239,230,.16);font-size:.98rem}
.panel li i{font-style:normal;color:var(--clay-soft);font-weight:500}
@media (max-width:860px){.heat__grid{grid-template-columns:1fr;gap:1.5rem;align-content:center}.heat__pin{height:320vh}}

/* ── 6 · principles grid ─────────────────────────────────────────────── */
.inside{background:var(--cream)}
.inside__head{max-width:60ch;margin-bottom:3.5rem}
.inside__head h2{font-size:clamp(2.2rem,4.6vw,3.6rem);margin-top:.7rem}
.inside__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.6rem 3rem}
.principle{display:grid;gap:.5rem;align-content:start}
.principle h3{font-size:1.35rem}
.principle p{color:var(--moss);font-size:.98rem;max-width:34ch}
.principle--photo{grid-row:span 1;padding:0;border:1px solid var(--line);border-radius:var(--card-corners-lg);overflow:hidden}
.principle--photo img{width:100%;height:100%;object-fit:cover;min-height:220px}
@media (max-width:860px){.inside__grid{grid-template-columns:1fr;gap:2rem}.principle--photo{display:none}}

/* ── 7 · the walk (rail) ─────────────────────────────────────────────── */
.walk{background:var(--sand)}
.walk__pin{height:340vh}
.walk__stage{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:2.2rem}
.walk__head{width:min(1240px,90vw);margin-inline:auto}
.walk__head h2{font-size:clamp(2rem,4.4vw,3.4rem);margin-top:.6rem}
.walk__track{display:flex;gap:1.3rem;padding-left:max(5vw,calc((100vw - 1240px)/2));will-change:transform}
.stop{flex:0 0 clamp(260px,27vw,340px);background:var(--cream);border:1px solid var(--line);
  border-radius:var(--card-corners-lg);overflow:hidden;display:flex;flex-direction:column}
.stop img{width:100%;height:clamp(180px,24vh,230px);object-fit:cover;background:var(--sand)}
.stop__body{padding:1.25rem 1.35rem 1.6rem}
.stop__n{font-weight:500;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--terra)}
.stop h3{font-size:1.3rem;line-height:1.15;margin:.3rem 0 .5rem}
.stop p{color:var(--moss);font-size:.93rem}
@media (max-width:860px){.walk__pin{height:auto}.walk__stage{position:static;height:auto;padding:4rem 0}
  .walk__track{flex-wrap:nowrap;overflow-x:auto;padding:0 5vw 1rem;scroll-snap-type:x mandatory;transform:none!important}
  .stop{scroll-snap-align:start}}

/* ── 8 · teachers ────────────────────────────────────────────────────── */
.teachers{background:var(--cream-soft)}
.teachers__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.teachers h2{font-size:clamp(2.2rem,4.6vw,3.6rem)}
.teachers p{color:var(--moss);font-size:1.075rem;max-width:46ch;margin-top:1.2rem}
/* teacher gallery wall — every teacher's face, tidy small grid */
.faces{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:.3rem}
.faces figure{margin:0}
.faces img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;filter:grayscale(.15)}
@media (max-width:860px){.teachers__grid{grid-template-columns:1fr;gap:2rem}}

/* ── area we serve (illustrated line-art map) ────────────────────────── */
.area{background:var(--cream)}
.area__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.area__grid h2{font-size:clamp(2rem,4.4vw,3.2rem);margin:.6rem 0 1rem}
.area__grid p{color:var(--moss);font-size:1.05rem;max-width:44ch}
.area__towns{margin-top:1.4rem;font-size:.95rem;line-height:1.7;color:var(--forest);max-width:46ch}
.area__towns b{color:var(--ink);font-weight:500}
.area__map{margin:0}
.area__map svg{width:100%;height:auto;overflow:visible}
.area__map .ring{fill:none;stroke:var(--line-strong);stroke-dasharray:2 6;opacity:.55}
.area__map .spokes line{stroke:var(--moss);stroke-width:1;opacity:.3}
.area__map .dots circle{fill:var(--moss)}
.area__map .labels text{font-family:var(--font-body);font-size:14px;fill:var(--moss)}
.area__map .home{fill:none;stroke:var(--forest);stroke-width:2}
.area__map .home-dot{fill:var(--forest)}
.area__map .home-label{font-family:var(--font-display);font-weight:600;font-size:17px;fill:var(--ink)}
@media (max-width:820px){.area__grid{grid-template-columns:1fr;gap:1.5rem}.area__map{max-width:460px}}

/* ── 9 · statement ───────────────────────────────────────────────────── */
.say{position:relative;overflow:hidden;padding:clamp(6rem,16vh,11rem) 0;background:var(--forest)}
.say__bg{position:absolute;inset:-8% 0}.say__bg img{width:100%;height:100%;object-fit:cover;will-change:transform}
.say__scrim{position:absolute;inset:0;background:rgba(31,42,34,.85)}
.say .wrap{position:relative;z-index:1}
.say p{font-family:var(--font-display);font-weight:600;font-size:clamp(2rem,4.8vw,3.6rem);
  line-height:1.16;letter-spacing:-.02em;max-width:24ch;color:var(--cream)}
.say w{display:inline-block;opacity:.22;transition:opacity .45s var(--ease)}
.say w.on{opacity:1}
.say .who{font-weight:500;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--clay-soft);margin-top:2.4rem}

/* ── 10 · close ──────────────────────────────────────────────────────── */
.close{background:var(--cream);padding:clamp(5rem,14vh,9rem) 0}
.close__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(2rem,6vw,6rem);align-items:end}
.close h2{font-size:clamp(2.6rem,6vw,5rem);letter-spacing:-.02em;max-width:14ch}
.close p{color:var(--moss);font-size:1.075rem;max-width:40ch;margin:1.3rem 0 2rem}
.close__aside{border-left:1px solid var(--line);padding-left:clamp(1.5rem,3vw,2.5rem)}
.close__aside dt{font-weight:500;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-bottom:.3rem}
.close__aside dd{margin-bottom:1.4rem;font-size:1.05rem}
@media (max-width:860px){.close__grid{grid-template-columns:1fr;gap:2.2rem;align-items:start}}

/* ── footer ──────────────────────────────────────────────────────────── */
.foot{background:var(--forest);color:rgba(244,239,230,.62);padding:clamp(3rem,7vh,5rem) 0 3rem}
.foot__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem;align-items:end;
  padding-bottom:2.4rem;border-bottom:1px solid rgba(244,239,230,.16)}
.foot__promise{font-family:var(--font-display);font-weight:600;font-size:clamp(1.6rem,3vw,2.4rem);color:var(--cream);line-height:1.15}
.foot__links{display:flex;gap:1.6rem;list-style:none;flex-wrap:wrap;font-weight:500;font-size:.85rem}
.foot__links a{color:var(--cream);text-decoration:none;opacity:.85}
.ig__head h2 a{color:var(--terra);text-decoration:none;box-shadow:inset 0 -2px 0 0 var(--clay);white-space:nowrap}
.reviews__head p{color:var(--moss);margin-top:1rem;max-width:56ch}
.ig__feed,.reviews__wall{margin-top:.4rem}
.foot__geo{margin-top:1.8rem;padding-top:1.4rem;border-top:1px solid rgba(244,239,230,.14);font-size:.82rem;color:rgba(244,239,230,.55);max-width:70ch}
.foot__bottom{padding-top:1.2rem;font-size:.8rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}
/* footer brand lockup — full Union Yoga Studio logo (cream), injected by reimagined.js
   as a closing mark above the bottom bar (not stacked over the promise headline) */
.foot__brand{margin:2rem 0 1.5rem}
.foot__mark{display:inline-block;line-height:0}
.foot__mark img{display:block;width:132px;height:auto}

/* ── reduced motion ──────────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  .open__mark,.open .word,.line>span,.fade,.reveal,.panel,.temp b,.say w{opacity:1!important;transform:none!important;transition:none!important}
  .temp b{position:relative;inset:auto}.temp{height:auto;display:flex;gap:1.5rem}
  .panel{position:relative;inset:auto}.panels{display:grid;gap:2.5rem}
  .heat__pin,.walk__pin{height:auto}.heat__stage,.walk__stage{position:static;height:auto;padding:4rem 0}
  .walk__track{flex-wrap:wrap;transform:none!important;padding-left:0}
  .cue i::after{animation:none}.marquee{transform:none!important}
  .heat__bg img,.say__bg img,.hero__media{transform:none!important}
}


/* ── reusable inner-page header (no full-bleed photo) ────────────────── */
.phead{position:relative;overflow:hidden;color:var(--cream);background:var(--forest);
  padding:calc(clamp(5rem,13vh,9rem) + 3.5rem) 0 clamp(3rem,8vh,5rem)}
.phead__bg{position:absolute;inset:-8% 0}
.phead__bg img{width:100%;height:100%;object-fit:cover;opacity:.5;will-change:transform}
.phead__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,42,34,.72),rgba(31,42,34,.9))}
.phead .wrap{position:relative;z-index:1}
.phead h1{font-size:clamp(2.6rem,6.5vw,5.4rem);letter-spacing:-.02em;margin:1rem 0 0;max-width:16ch}
.phead p.sub{max-width:52ch;margin-top:1.4rem;font-size:clamp(1.05rem,1.5vw,1.2rem);color:rgba(244,239,230,.86)}
.phead .crumbs{font-weight:500;font-size:.78rem;letter-spacing:.08em;color:rgba(244,239,230,.7)}
.phead .crumbs a{color:inherit;text-decoration:none}

/* a plain content wrap for long-form (faq, legal) inside the system */
.prose{max-width:70ch}
.prose h2{font-size:clamp(1.7rem,3vw,2.4rem);margin:2.4rem 0 .8rem}
.prose h3{font-size:1.2rem;margin:1.8rem 0 .5rem}
.prose p{margin:.7rem 0;color:var(--ink)}
.prose p.muted{color:var(--moss)}

/* Sticky mobile "Text us" bar — injected into <body> by reimagined.js. Mobile only.
   Solid forest ground, clay-soft underline on the label (clay itself fails contrast
   on forest), the number reads quietly beside it. Replaces Squarespace's own native
   mobile info bar (Map/Call), which is enabled site-wide and would otherwise sit on
   top of ours — hidden only where reimagined.css loads (the V2 pages). */
.sqs-mobile-info-bar{display:none !important}

/* ── mobile menu bar: logo + explicit close, inside the overlay ──────────── */
.navmenu__bar{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:1.1rem clamp(1.2rem,6vw,2rem)}
.navmenu__logo{color:var(--cream);text-decoration:none}
.navmenu__close{position:relative;width:44px;height:44px;margin:-.5rem -.6rem -.5rem 0;padding:0;border:0;background:none;color:var(--cream);cursor:pointer;-webkit-appearance:none;appearance:none}
.navmenu__close span{position:absolute;left:11px;right:11px;top:21px;height:2px;background:currentColor;border-radius:2px}
.navmenu__close span:nth-child(1){transform:rotate(45deg)}
.navmenu__close span:nth-child(2){transform:rotate(-45deg)}
.navmenu__close:focus-visible{outline:2px solid var(--clay);outline-offset:2px}
/* content sits below the bar and centres in the remaining space */
.navmenu__inner{padding-top:5.5rem}

/* ── hero eyebrow: legible over the photo (was hard to read) ─────────────── */
.hero .eyebrow{font-size:.8rem;letter-spacing:.2em;color:var(--cream);text-shadow:0 1px 3px rgba(31,42,34,.92),0 2px 18px rgba(31,42,34,.8)}

/* ── hero headline fits on small phones (two lines, no horizontal clip) ──── */
@media (max-width:600px){.hero h1{font-size:clamp(2.5rem,11vw,4rem)}}
