/* Cairn Design System — generated from tokens.json */
:root, [data-theme="default"] {
  --color-midnight: #1f2d3d;
  --color-midnight-90: #2a3c4f;
  --color-slate: #436074;
  --color-sage: #a7b5a6;
  --color-sage-light: #d6ddd4;
  --color-white-granite: #f8f6f2;
  --color-river-stone: #e8e2d8;
  --color-morning-light: #e8d6b5;
  --color-warm-gold: #ddaf59;
  --color-warm-gold-dark: #c79640;
  --color-charcoal: #2e2b27;
  --color-ivory: #fbf9f5;
  --surface-page: var(--color-ivory);
  --surface-alt: var(--color-river-stone);
  --surface-card: #ffffff;
  --surface-inverse: var(--color-midnight);
  --surface-stone: var(--color-river-stone);
  --text-primary: var(--color-charcoal);
  --text-heading: var(--color-midnight);
  --text-muted: var(--color-slate);
  --text-on-dark: var(--color-ivory);
  --text-on-dark-muted: var(--color-sage-light);
  --border-hairline: rgba(31,45,61,0.12);
  --border-hairline-on-dark: rgba(248,246,242,0.18);
  --accent-primary: var(--color-warm-gold);
  --accent-primary-hover: var(--color-warm-gold-dark);
  --accent-secondary: var(--color-sage);
  --focus-ring: rgba(221,175,89,0.45);
  --shadow-soft: 0 2px 4px rgba(31,45,61,0.04),0 8px 24px rgba(31,45,61,0.08);
  --shadow-card: 0 2px 4px rgba(31,45,61,0.04),0 8px 24px rgba(31,45,61,0.08);
  --shadow-hover: 0 4px 8px rgba(31,45,61,0.06),0 16px 32px rgba(31,45,61,0.12);
  --shadow-lifted: 0 8px 16px rgba(31,45,61,0.08),0 24px 48px rgba(31,45,61,0.16);
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  --space-11: 180px;
  --container-max: 1280px;
  --container-narrow: 760px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 20px;
  --radius-pill: 999px;
  --ease-standard: cubic-bezier(.4,0,.2,1);
  --duration-fade: 600ms;
  --duration-quick: 250ms;
  --text-display-1: clamp(3rem,2.2rem + 3.2vw,5.5rem);
  --text-display-2: clamp(2.25rem,1.8rem + 2vw,3.75rem);
  --text-h1: clamp(2rem,1.6rem + 1.6vw,3rem);
  --text-h2: clamp(1.5rem,1.3rem + 0.8vw,2.125rem);
  --leading-display: 1.05;
  --leading-heading: 1.18;
  --leading-tight: 1.3;
  --tracking-caps: 0.14em;
  --tracking-tight: -0.01em;
  --weight-serif-regular: 400;
  --weight-serif-medium: 500;
  --weight-sans-regular: 400;
  --weight-sans-medium: 500;
  --weight-sans-semibold: 600;
  --font-serif-display: 'EB Garamond', 'Times New Roman', serif;
  --font-serif-fallback: 'EB Garamond', 'Times New Roman', serif;
  --font-sans-body: 'Montserrat', -apple-system, 'Helvetica Neue', Arial, sans-serif;
  --text-text-h3: 400 1.5rem/1.4 inherit;
  --text-text-eyebrow: 400 0.8125rem/1.4 inherit;
  --text-text-body-lg: 400 1.1875rem/1.4 inherit;
  --text-text-body: 400 1.0625rem/1.65 inherit;
  --text-text-small: 400 0.9375rem/1.4 inherit;
  --text-text-caption: 400 0.8125rem/1.4 inherit;
  --text-body: 400 17px/1.65 var(--font-sans-body); /* From `body,p,.font-body` · `body` in tokens/typography.css, tokens/base.css. */
  --text-eyebrow: 600 13px/1.65 var(--font-sans-body); /* From `.eyebrow` in tokens/typography.css — uppercase. */
}
.text-h3 {
  font-size: 1.5rem;
  line-height: 1.4;
  font-weight: 400;
  letter-spacing: 0;
}
.text-eyebrow {
  font-size: 0.8125rem;
  line-height: 1.4;
  font-weight: 400;
  letter-spacing: 0.16em;
}
.text-body-lg {
  font-size: 1.1875rem;
  line-height: 1.4;
  font-weight: 400;
  letter-spacing: 0;
}
.text-body {
  font-size: 1.0625rem;
  line-height: 1.65;
  font-weight: 400;
  letter-spacing: 0;
}
.text-small {
  font-size: 0.9375rem;
  line-height: 1.4;
  font-weight: 400;
  letter-spacing: 0;
}
.text-caption {
  font-size: 0.8125rem;
  line-height: 1.4;
  font-weight: 400;
  letter-spacing: 0;
}
.body {
  font-family: var(--font-sans-body);
  font-size: 17px;
  line-height: 1.65;
  font-weight: 400;
  letter-spacing: 0;
}
.eyebrow {
  font-family: var(--font-sans-body);
  font-size: 13px;
  line-height: 1.65;
  font-weight: 600;
  letter-spacing: 0.16em;
}

/* ── Base ─────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-sans-body);font-size:17px;line-height:1.65}
h1,h2,h3{font-family:var(--font-serif-display);font-weight:400;letter-spacing:var(--tracking-tight);color:var(--text-heading)}
a{color:var(--color-slate);text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--color-morning-light);color:var(--color-midnight)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:2px}

/* ── Motion tokens ────────────────────────────────── */
:root{
  /* accessible text shades of the brand sage and gold (4.5:1+ on ivory, river stone and white) */
  --sage-text:#566655;
  --gold-text:#7f5c1c;
  --ease-calm:cubic-bezier(.22,.61,.36,1);
  --ease-out-soft:cubic-bezier(.16,1,.3,1);
  --reveal-dist:16px;
  --reveal-dur:900ms;
}

/* ── 2 · Header settles on scroll ─────────────────── */
.site-header{position:sticky!important;top:0;z-index:50;background:var(--surface-page);
  transition:background 500ms var(--ease-calm),box-shadow 500ms var(--ease-calm),padding 500ms var(--ease-calm),border-color 500ms var(--ease-calm)}
.site-header img{transition:height 500ms var(--ease-calm)}
.site-header.is-scrolled{background:rgba(251,249,245,.78)!important;-webkit-backdrop-filter:saturate(1.2) blur(14px);backdrop-filter:saturate(1.2) blur(14px);
  box-shadow:0 1px 0 rgba(31,45,61,.06),0 10px 30px -18px rgba(31,45,61,.18);padding-top:10px!important;padding-bottom:10px!important}
.site-header.is-scrolled img{height:44px!important}

/* ── 7 · Nav underline draw-in ────────────────────── */
.site-nav a:not(:last-child){position:relative}
.site-nav a:not(:last-child)::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left center;transition:transform 420ms var(--ease-out-soft)}
.site-nav a:not(:last-child):hover::after,.site-nav a[aria-current]::after{transform:scaleX(1)}
.arr{display:inline-block;transition:transform 320ms var(--ease-out-soft)}
a:hover .arr{transform:translateX(3px)}
a[style*="padding:16px 34px"],a[style*="padding:11px 20px"],a[style*="padding:14px 30px"]{display:inline-block}

/* ── 1 · Hero drift + logo intro ──────────────────── */
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-img{width:100%;height:100%;object-fit:cover;transform:scale(1);transform-origin:60% 45%;will-change:transform}
body.hero-settled .hero-img{animation:heroDrift 26s var(--ease-calm) forwards}
@keyframes heroDrift{from{transform:scale(1)}to{transform:scale(1.05)}}
[data-hero-veil] img{max-width:72vw}

/* ── Reveal system (sections, staged text, staggered cards) ── */
html.js [data-reveal]{opacity:0;transition:opacity var(--reveal-dur) var(--ease-calm)}
html.js [data-reveal].in{opacity:1}
html.js .stage,html.js .stagger{opacity:0;transform:translateY(var(--reveal-dist));
  transition:opacity var(--reveal-dur) var(--ease-calm),transform var(--reveal-dur) var(--ease-calm);transition-delay:var(--d,0ms)}
html.js .in .stage,html.js .in .stagger,html.js .stage.in,html.js .stagger.in{opacity:1;transform:none}
/* staggered cards keep their own hover transitions after reveal */
html.js .stagger.done{transition:box-shadow 260ms ease,transform 260ms ease;transition-delay:0ms}

/* ── 4 · Cairn Process connecting line ────────────── */
.process-grid{position:relative}
.process-grid>div{position:relative;overflow:hidden}
.process-grid>div::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--color-warm-gold);
  transform:scaleX(0);transform-origin:left center;transition:transform 900ms var(--ease-out-soft);transition-delay:calc(var(--d,0ms) + 350ms)}
.in .process-grid>div::before{transform:scaleX(1)}

/* ── 6 · Portrait reveal ──────────────────────────── */
.portrait{position:relative}
.portrait img{width:100%;height:100%;object-fit:cover}
html.js .portrait img{clip-path:inset(100% 0 0 0);transform:scale(1.06);
  transition:clip-path 1400ms var(--ease-out-soft),transform 1800ms var(--ease-out-soft)}
html.js .portrait.in img{clip-path:inset(0 0 0 0);transform:scale(1)}

/* ── FAQ accordion ────────────────────────────────── */
.faq{border-top:1px solid var(--border-hairline)}
.faq-item{border-bottom:1px solid var(--border-hairline)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 0}
.faq-item summary::-webkit-details-marker{display:none}
.faq-q{font-family:var(--font-serif-display);font-size:22px;color:var(--text-heading);line-height:1.3}
.faq-plus{font-size:20px;color:var(--color-sage);transition:transform 300ms var(--ease-out-soft);flex-shrink:0}
.faq-item[open] .faq-plus{transform:rotate(45deg)}
.faq-a{overflow:hidden}
.faq-a p{margin:0;padding-bottom:24px;max-width:640px;font-size:17px;line-height:1.65;color:var(--text-muted)}
details summary{list-style:none}
details summary::-webkit-details-marker{display:none}

/* ── Mobile navigation ────────────────────────────── */
.nav-toggle{display:none;width:44px;height:44px;border:0;background:transparent;cursor:pointer;position:relative;z-index:60;padding:0}
.nav-toggle span{position:absolute;left:11px;right:11px;height:1px;background:var(--color-midnight);transition:transform 380ms var(--ease-out-soft),top 380ms var(--ease-out-soft)}
.nav-toggle span:first-child{top:18px}
.nav-toggle span:last-child{top:26px}
.nav-open .nav-toggle span:first-child{top:22px;transform:rotate(45deg)}
.nav-open .nav-toggle span:last-child{top:22px;transform:rotate(-45deg)}

/* ── Responsive ───────────────────────────────────── */
@media (max-width:1100px){
  [style*="grid-template-columns:repeat(5,1fr)"]{grid-template-columns:repeat(3,1fr)!important;row-gap:44px!important}
  .site-nav{gap:16px!important}
}
@media (max-width:960px){
  header.site-header{padding:14px 20px!important}
  .nav-toggle{display:block}
  .site-nav{position:fixed!important;inset:0;flex-direction:column;justify-content:center;align-items:flex-start!important;gap:6px!important;
    padding:96px 32px 40px;background:var(--surface-page);opacity:0;visibility:hidden;transform:translateY(-8px);
    transition:opacity 400ms var(--ease-calm),transform 400ms var(--ease-calm),visibility 0s linear 400ms;z-index:55}
  .nav-open .site-nav{opacity:1;visibility:visible;transform:none;transition:opacity 400ms var(--ease-calm),transform 400ms var(--ease-calm),visibility 0s}
  .site-nav a{font-size:15px!important;padding:12px 0}
  .site-nav a:last-child{margin-top:18px;padding:14px 26px!important}
  .site-nav a:not(:last-child)::after{bottom:6px}
  body.nav-open{overflow:hidden}
  .site-header.is-scrolled img{height:40px!important}
  .site-header img{height:44px!important}
  [style*="grid-template-columns:0.8fr 1.2fr"]{grid-template-columns:1fr!important;gap:40px!important}
  [style*="grid-template-columns:repeat(3,1fr)"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:repeat(2,1fr)"]{grid-template-columns:1fr!important}
  [style*="gap:72px"]{gap:44px!important}
}
@media (max-width:720px){
  section,footer,article{padding-left:20px!important;padding-right:20px!important}
  section[style*="padding:100px"],section[style*="padding:110px"],section[style*="padding:120px"]{padding-top:72px!important;padding-bottom:72px!important}
  section[style*="padding:96px 56px"]{padding-top:56px!important}
  #top{min-height:88svh!important}
  #top [data-hero-content]{padding:56px 0!important}
  [style*="grid-template-columns:repeat(5,1fr)"],[style*="grid-template-columns:repeat(3,1fr)"]{grid-template-columns:1fr!important}
  [style*="width:400px;height:400px"]{width:min(300px,78vw)!important;height:min(300px,78vw)!important}
  [style*="width:400px;height:400px"]>div[style*="width:84px"]{width:62px!important;height:62px!important}
  [style*="min-width:360px"]{min-width:0!important;flex:1 1 100%!important;width:100%}
  [style*="min-width:240px"],[style*="min-width:200px"]{min-width:42%!important}
  [style*="justify-content:space-between;flex-wrap:wrap"] [style*="text-align:right"]{text-align:left!important}
  .faq-q{font-size:19px}
  .process-grid{gap:14px!important}
  .site-nav a:last-child{align-self:stretch;text-align:center}
}
@media (max-width:420px){
  [style*="min-width:240px"],[style*="min-width:200px"]{min-width:100%!important}
}

/* ── Reduced motion ───────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:1ms!important;transition-delay:0ms!important}
  html.js [data-reveal],html.js .stage,html.js .stagger{opacity:1!important;transform:none!important}
  html.js .portrait img{clip-path:none!important;transform:none!important}
  .process-grid>div::before{transform:scaleX(1)!important}
}

/* mobile menu: keep logo + close button above the panel; no blur containing-block while open */
.site-header>a:first-child{position:relative;z-index:60}
.nav-open .site-header{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:var(--surface-page)!important;box-shadow:none!important}

/* ── Waitlist form ────────────────────────────────── */
#waitlist-form input:focus,#waitlist-form select:focus,#waitlist-form textarea:focus{outline:none;border-color:var(--color-warm-gold)!important;box-shadow:0 0 0 3px var(--focus-ring)!important}
#waitlist-form [aria-invalid="true"]{border-color:#9a3b2e!important}
#waitlist-form button[disabled]{opacity:.6;cursor:default}
#waitlist-thanks{animation:none}
html.js #waitlist-thanks.in-view{animation:thanksIn 900ms var(--ease-out-soft) both}
@keyframes thanksIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.preview-note{margin:16px 0 0;font-size:13px;color:var(--text-muted)}
@media (max-width:720px){#waitlist-form [style*="grid-template-columns:repeat(2,1fr)"]{grid-template-columns:1fr!important}}
[hidden]{display:none!important}
.site-nav a{white-space:nowrap}

/* ── Footer + crisis band ─────────────────────────── */
footer a[href^="tel:"],footer a[href^="mailto:"]{border-bottom:1px solid transparent;transition:border-color 300ms var(--ease-calm)}
footer a[href^="tel:"]:hover,footer a[href^="mailto:"]:hover{border-color:currentColor}
@media (max-width:960px){[data-footer-grid]{grid-template-columns:1fr 1fr!important;gap:40px!important}[data-footer-grid]>div:first-child{grid-column:1/-1}}
@media (max-width:720px){[data-crisis-band]{padding:20px!important}[data-crisis-band] p{text-align:left!important}}
@media (max-width:420px){[data-footer-grid]{grid-template-columns:1fr!important}}

/* Cairn Process cards: centered rows */
@media (max-width:720px){[data-process-grid]>div{flex-basis:100%!important;min-width:0!important}}
.site-nav a:not(:last-child)[aria-current="page"]{color:var(--gold-text)!important}
@media (max-width:720px){[data-trust-strip]{padding:20px!important}[data-trust-strip]>div{flex-direction:column!important;gap:8px!important;font-size:11px!important;letter-spacing:.1em!important}[data-trust-strip] [data-dot]{display:none}}
body{overflow-wrap:break-word}
[data-trust-strip] [data-dot]{display:none}[data-trust-strip]>div{gap:10px 34px!important}

@media (max-width:720px){[data-tile-row]>div{flex-basis:100%!important;max-width:340px}}
@media (max-width:1240px) and (min-width:721px){[data-tile-row]{max-width:700px!important}}
/* Approach page (layout B) */
@media (max-width:900px){[data-approach-cards],[data-approach-cols]{grid-template-columns:1fr!important;gap:24px!important}[data-approach-band]{min-height:58vh!important}[data-approach-band-text]{padding:0 20px 40px!important}}

/* Cairn Process: four phases + alongside band */
.cp-wrap{max-width:1180px;margin:0 auto}
.cp-path{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:40px;position:relative}
.cp-path:before{content:"";position:absolute;left:8px;right:8px;top:8px;height:1px;background:var(--border-hairline)}
.cp-path:after{content:"";position:absolute;left:8px;right:8px;top:8px;height:1px;background:var(--color-warm-gold);transform:scaleX(0);transform-origin:left;transition:transform 1600ms var(--ease-out-soft) 300ms}
.in .cp-path:after{transform:scaleX(1)}
.cp-phase{position:relative;padding-top:40px}
.cp-stone{position:absolute;left:0;top:0;width:17px;height:17px;border-radius:50%;background:var(--surface-page);border:2px solid var(--color-warm-gold)}
.cp-num{font-family:var(--font-serif-display);font-size:22px;color:var(--gold-text);margin-bottom:6px}
.cp-h{font-family:var(--font-serif-display);font-size:28px;line-height:1.2;margin:0 0 12px;color:var(--text-heading)}
.cp-p{font-family:var(--font-sans-body);font-size:15px;line-height:1.75;color:var(--text-muted);margin:0}
.cp-along{margin-top:48px;background:var(--surface-alt);border-radius:var(--radius-md);padding:26px 32px;display:grid;grid-template-columns:260px 1fr;gap:32px;align-items:center;border-left:3px solid var(--color-sage)}
.cp-along-label{font-family:var(--font-sans-body);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-text);line-height:1.6}
@media (max-width:960px){.cp-path{grid-template-columns:1fr 1fr;row-gap:48px}.cp-path:before,.cp-path:after{display:none}}
@media (max-width:620px){.cp-path{grid-template-columns:1fr;gap:36px;padding-left:34px}
 .cp-path:before{display:block;left:8px;right:auto;top:8px;bottom:8px;width:1px;height:auto}
 .cp-phase{padding-top:0}.cp-stone{left:-34px}
 .cp-along{grid-template-columns:1fr;gap:10px;padding:22px}}
@media (prefers-reduced-motion:reduce){.cp-path:after{transform:scaleX(1)}}


/* hover states from templates */
.hv0:hover{color:var(--gold-text) !important}
.hv1:hover{background:var(--color-warm-gold-dark) !important;transform:translateY(-1px) !important}
.hv2:hover{color:var(--color-midnight) !important}
.hv3:hover{box-shadow:var(--shadow-hover) !important;transform:translateY(-2px) !important}
.hv4:hover{box-shadow:var(--shadow-hover) !important;transform:translateY(-3px) !important}
.hv5:hover{color:var(--text-on-dark) !important}
.hv6:hover{border-color:var(--color-warm-gold) !important;box-shadow:0 0 0 3px var(--focus-ring) !important}

/* ── WordPress additions ───────────────────────────── */
.site-nav a:not(:last-child)[aria-current="page"]{color:var(--color-warm-gold-dark)!important}
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
.cairn-prose{max-width:760px;margin:0 auto;padding:96px 56px 110px;font-family:var(--font-sans-body);font-size:16.5px;line-height:1.8;color:var(--text-muted)}
.cairn-prose h1{font-family:var(--font-serif-display);font-size:var(--text-display-2);line-height:1.2;margin:0 0 28px;color:var(--text-heading)}
.cairn-prose h2{font-family:var(--font-serif-display);font-size:26px;line-height:1.25;margin:40px 0 14px;color:var(--text-heading)}
.cairn-prose h3{font-family:var(--font-serif-display);font-size:21px;margin:32px 0 10px;color:var(--text-heading)}
.cairn-prose a{color:var(--color-warm-gold-dark);border-bottom:1px solid currentColor}
.cairn-prose ul,.cairn-prose ol{padding-left:22px}
@media (max-width:720px){.cairn-prose{padding:56px 20px 72px}}
/* third-party form embeds on the Waitlist page */
.waitlist-embed{margin:0}
.waitlist-embed iframe{width:100%;border:0}
.waitlist-embed input[type=text],.waitlist-embed input[type=email],.waitlist-embed input[type=tel],.waitlist-embed textarea,.waitlist-embed select{width:100%;box-sizing:border-box;font:16px/1.5 var(--font-sans-body);color:var(--text-primary);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-sm);padding:13px 14px}
.waitlist-embed label{font:600 12px var(--font-sans-body);letter-spacing:.1em;text-transform:uppercase;color:var(--text-heading)}
.waitlist-embed button,.waitlist-embed input[type=submit]{font:600 13px var(--font-sans-body);letter-spacing:.06em;text-transform:uppercase;background:var(--accent-primary);color:var(--color-midnight);padding:16px 34px;border:0;border-radius:var(--radius-sm);cursor:pointer}
