/* Freq of Nurture — v3
   Built as a like-for-like static rebuild of the live WordPress/Elementor home page (freq-of-nurture.com,
   captured 23 Sep 2026), then refined in two polish passes (23 and 27 Sep): same layout, photographs, words,
   colours and fonts; refined type, contrast, buttons, cards, icons, navigation, motion and large-screen composition.
   Section spacing still uses the live page's Elementor percentages, capped on very wide screens.
   Breakpoints: tablet ≤1024px, phone ≤767px. */

/* ---------- Fonts: the same Google Fonts files the live site loads, self-hosted (latin subset) ---------- */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300 700;font-display:swap;src:url("../fonts/cormorant-garamond-normal-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:300 700;font-display:swap;src:url("../fonts/cormorant-garamond-italic-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:200 900;font-stretch:100%;font-display:swap;src:url("../fonts/nunito-sans-normal-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Nunito Sans";font-style:italic;font-weight:200 900;font-stretch:100%;font-display:swap;src:url("../fonts/nunito-sans-italic-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- Tokens ---------- */
:root{
  /* the live site's Elementor palette */
  --sage:#8B9D83;         /* brand sage: fills, dots, tints */
  --secondary:#C5CFC0;    /* sage band */
  --pale:#E8EDE5;         /* pale sage band */
  --accent:#5A6B54;       /* deep sage headings */
  --cream:#FAF6F0;
  --taupe:#7A6B5D;
  --page:#F6F7F7;
  --espresso:#3A3330;
  --cocoa:#6B5E56;
  --white:#FFFFFF;
  --contact:#27211F;
  --footer:#1D1917;
  /* refinements: deeper sages that keep small text and button labels at 4.5:1 or better */
  --sage-deep:#627559;    /* buttons: cream label 4.6:1 */
  --sage-deep-hover:#55684E;
  --sage-ink:#5F7358;     /* small sage text on the page: 4.8:1 */
  --moss:#4F5F4A;         /* eyebrow tags: 5.8:1 on their tint */
  --ink-soft:#4A4340;     /* answers and long reading text */
  --error-on-dark:#F2A7A0;
  --success-on-dark:#A5CFA0;
  --hairline:rgba(90,107,84,.16);
  --display:"Cormorant Garamond",serif;
  --sans:"Nunito Sans",sans-serif;
  /* layout: the 1440px composition, held on wider screens */
  --container:1240px;
  --container-hero:1720px;
  --gutter:max(20px,5vw,env(safe-area-inset-left),env(safe-area-inset-right));
  --nav-offset:92px;
  /* motion: one rhythm for the whole site */
  --ease:cubic-bezier(.32,.72,0,1);         /* settle */
  --ease-out:cubic-bezier(.16,1,.3,1);      /* arrive */
  --ease-in:cubic-bezier(.5,0,.75,0);       /* leave */
  --dur-press:140ms;
  --dur-hover:240ms;
  --dur-ui:420ms;
  --dur-nav:640ms;
  --dur-reveal:900ms;
  /* elevation */
  --shadow-photo:0 1px 2px rgba(58,51,48,.05),0 24px 48px -24px rgba(58,51,48,.30),0 60px 100px -60px rgba(58,51,48,.28);
  --shadow-soft:0 1px 2px rgba(58,51,48,.05),0 18px 40px -28px rgba(58,51,48,.32);
  --shadow-hero:0 2px 4px rgba(58,51,48,.06),0 30px 60px -30px rgba(58,51,48,.45),0 70px 120px -70px rgba(58,51,48,.40);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{line-height:1.15;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--nav-offset)}
body{margin:0;font-family:var(--sans);font-size:1rem;font-weight:400;line-height:1.6;color:var(--espresso);background:var(--page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3{margin:0;padding:0;line-height:1;font-weight:400}
p{margin:0 0 .9rem}
ul,ol{margin:0}
b,strong{font-weight:bolder}
img{border-style:none;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
hr{margin:0}
a,button,summary,input,textarea{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:60;padding:12px 18px;background:var(--espresso);color:var(--white);font:600 14px/1 var(--sans);border-radius:999px;transition:top var(--dur-ui) var(--ease)}
.skip-link:focus{top:12px}
:focus-visible{outline:2px solid var(--sage-deep);outline-offset:3px}
/* on the photograph and the dark sections the focus ring turns cream so it stays visible (3:1 or better) */
.hero :focus-visible,.contact :focus-visible,.site-footer :focus-visible{outline-color:var(--cream)}
::selection{background:rgba(139,157,131,.35)}
.anchor{height:0}

/* ---------- Type ---------- */
.title{margin:0;font-family:var(--display);font-size:clamp(2.75rem,1.25rem + 4.2vw,4.0625rem);font-weight:300;line-height:1.04;letter-spacing:-.01em;color:var(--espresso);text-wrap:balance}
.title--accent{color:var(--accent)}
.title--white{color:var(--white)}
.title--center{text-align:center}
.title i{font-style:italic}
i.accent{color:var(--accent)}
.subtitle{margin:0;font-family:var(--sans);font-size:13px;font-weight:700;line-height:1.5;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-ink)}
/* a two-sentence subtitle breaks between its sentences where it can */
.subtitle > span{display:inline-block;text-wrap:balance}
/* eyebrow tags: small pills above the section headings */
.eyebrow{display:inline-flex;align-items:center;align-self:flex-start;margin:0;padding:8px 15px;border-radius:999px;background:rgba(90,107,84,.07);box-shadow:inset 0 0 0 1px rgba(90,107,84,.15);color:var(--moss);font-family:var(--sans);font-size:11px;font-weight:700;line-height:1;letter-spacing:.2em;text-transform:uppercase}
.section-head .eyebrow,.invite-col .eyebrow{align-self:center}
.eyebrow--on-sage{background:rgba(255,255,255,.38);box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);color:#3F4D3A}
.eyebrow--on-dark{background:rgba(232,237,229,.07);box-shadow:inset 0 0 0 1px rgba(232,237,229,.16);color:var(--pale)}
.text{font-family:var(--sans);font-size:18px;font-weight:400;line-height:1.6}
.text p,.text li,.faq-text p,.credentials-intro p,.disclaimer p{text-wrap:pretty}
.text p:last-child{margin-bottom:0}
.text--cream{color:var(--cream)}
.text--taupe{color:var(--taupe)}
.text--accent{color:var(--accent)}
.text--cocoa{color:var(--cocoa)}
.text--pale{color:var(--pale)}
.text--center{text-align:center}
.measure{max-width:46rem}
.label{margin:.4rem 0 .6rem;font-family:var(--sans);font-size:11px;font-weight:700;line-height:1.3;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-ink)}
.dots{list-style:none;margin:0 0 .9rem;padding:0}
.dots li{position:relative;padding-left:22px;margin-bottom:.35rem}
.dots li::before{content:"";position:absolute;left:1px;top:.66em;width:6px;height:6px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 3px rgba(139,157,131,.18)}

/* Hairline dividers; the short centred ones carry a small sage dot */
.rule{flex:none;width:100%;height:0;margin:2px 0;border:0;border-top:1px solid var(--hairline)}
.rule--short{position:relative;width:76px;margin-left:auto;margin-right:auto;overflow:visible;border-top-color:rgba(90,107,84,.4)}
.rule--short::after{content:"";position:absolute;left:50%;top:-3.5px;width:6px;height:6px;border-radius:50%;background:var(--sage);transform:translateX(-50%)}
.rule--hero{width:88px;margin-right:auto;border-top-color:rgba(250,246,240,.42)}
.rule--on-sage{border-top-color:rgba(58,51,48,.32)}
.rule--on-sage::after{background:#4F5F4A}
.rule--on-dark{border-top-color:rgba(232,237,229,.16)}

/* ---------- Buttons: pill with a nested icon ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:48px;margin:0;padding:6px 6px 6px 24px;border:0;border-radius:999px;background:var(--sage-deep);color:var(--cream);font-family:var(--sans);font-size:13px;font-weight:700;line-height:1.25;letter-spacing:.02em;text-align:left;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 14px 28px -16px rgba(58,51,48,.55);transition:background-color var(--dur-hover) var(--ease),box-shadow var(--dur-hover) var(--ease),color var(--dur-hover) var(--ease),transform var(--dur-press) var(--ease)}
.btn-icon{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(250,246,240,.15);transition:transform var(--dur-ui) var(--ease),background-color var(--dur-hover) var(--ease)}
.btn-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.btn:active{transform:scale(.97)}
.btn--sm{min-height:42px;gap:10px;padding:4px 4px 4px 18px;font-size:12.5px}
.btn--sm .btn-icon{width:34px;height:34px}
.btn--block{width:100%;justify-content:space-between}
/* secondary: the header's booking link, so the hero's button stays the one primary action on screen */
.btn--ghost{background:rgba(255,255,255,.35);color:var(--sage-deep);box-shadow:inset 0 0 0 1px rgba(95,115,88,.38)}
.btn--ghost .btn-icon{background:rgba(90,107,84,.1)}
.header-cta,.island-cta,.menu-cta{white-space:nowrap}
.nowrap{white-space:nowrap}
.btn-row{display:flex;justify-content:center}
.band-inner .btn-row{margin-top:10px}

/* ---------- Photographs: a framed print (double bezel) ---------- */
.photo{display:block;width:100%;padding:8px;border-radius:32px;background:rgba(250,246,240,.72);box-shadow:inset 0 0 0 1px rgba(90,107,84,.12),var(--shadow-photo)}
.photo img{display:block;width:100%;height:auto;border-radius:24px}

/* ---------- Cards: double bezel (tray + core) ---------- */
.bezel{padding:6px;border-radius:30px;background:rgba(255,255,255,.45);box-shadow:inset 0 0 0 1px rgba(90,107,84,.14),var(--shadow-soft)}
.bezel-core{height:100%;border-radius:24px;background:var(--white);box-shadow:inset 0 1px 1px rgba(255,255,255,.9),0 1px 2px rgba(58,51,48,.05)}

/* ---------- Header ---------- */
.site-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:20px;margin:min(1%,16px) 0;padding:0 max(5%,calc((100% - var(--container-hero)) / 2 + 28px))}
.logo{display:block;flex:none;width:325px;max-width:100%}
.logo img{display:block;width:325px;max-width:100%;height:auto;aspect-ratio:1500/439;mix-blend-mode:darken}

/* ---------- Floating navigation (appears once the header has scrolled away) ---------- */
.island{position:fixed;top:max(14px,env(safe-area-inset-top));left:50%;z-index:40;display:flex;width:max-content;max-width:calc(100vw - 24px);align-items:center;gap:4px;padding:5px;border-radius:999px;background:rgba(246,247,247,.82);-webkit-backdrop-filter:saturate(160%) blur(16px);backdrop-filter:saturate(160%) blur(16px);box-shadow:inset 0 0 0 1px rgba(90,107,84,.15),0 1px 2px rgba(58,51,48,.06),0 18px 40px -20px rgba(58,51,48,.38);opacity:0;pointer-events:none;transform:translate(-50%,calc(-100% - 28px));transition:transform calc(var(--dur-nav) / 2) var(--ease-in),opacity calc(var(--dur-nav) / 2.5) var(--ease-in)}
.island.is-shown,.island:focus-within,.menu-open .island{opacity:1;pointer-events:auto;transform:translate(-50%,0);transition:transform var(--dur-nav) var(--ease),opacity calc(var(--dur-nav) / 1.6) var(--ease)}
.island-brand{display:flex;align-items:center;gap:10px;height:42px;padding:0 14px 0 10px;border-radius:999px;color:var(--accent);font-family:var(--display);font-size:21px;font-weight:500;line-height:1;white-space:nowrap}
.island-brand img{display:block;width:auto;max-width:none;height:32px}
.island-links{display:flex;gap:2px;margin:0;padding:0 6px;list-style:none}
.island-links a{position:relative;display:block;padding:13px 15px;border-radius:999px;color:var(--espresso);font-size:13px;font-weight:600;line-height:1;white-space:nowrap;transition:background-color var(--dur-hover) var(--ease),color var(--dur-hover) var(--ease)}
/* the section you are reading is marked in the navigation */
.island-links a[aria-current="true"]{background:rgba(90,107,84,.12);color:var(--moss)}
.island-cta{margin-left:4px}

/* Menu button: two lines that fold into an X */
.menu-toggle{position:relative;display:none;flex:none;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:50%;background:rgba(90,107,84,.09);color:var(--espresso);cursor:pointer;transition:background-color var(--dur-hover) var(--ease),transform var(--dur-press) var(--ease)}
.menu-toggle:active{transform:scale(.94)}
.menu-toggle .bar{position:absolute;top:calc(50% - .75px);left:14px;right:14px;height:1.5px;border-radius:2px;background:currentColor;transition:transform var(--dur-ui) var(--ease)}
.menu-toggle .bar:nth-of-type(2){transform:translateY(-4px)}
.menu-toggle .bar:nth-of-type(3){transform:translateY(4px)}
.menu-toggle[aria-expanded="true"] .bar:nth-of-type(2){transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] .bar:nth-of-type(3){transform:rotate(-45deg)}
.no-js .menu-toggle{display:none!important}

/* Full-screen menu (phones and tablets) */
.menu{position:fixed;inset:0;z-index:35;display:flex;align-items:center;justify-content:center;padding:max(96px,calc(env(safe-area-inset-top) + 84px)) var(--gutter) max(40px,env(safe-area-inset-bottom));background:rgba(246,247,247,.93);-webkit-backdrop-filter:saturate(140%) blur(28px);backdrop-filter:saturate(140%) blur(28px);opacity:0;transition:opacity 280ms var(--ease-in)}
.menu[hidden]{display:none}
.menu.is-open{opacity:1;transition:opacity 480ms var(--ease)}
.menu-inner{display:flex;flex-direction:column;align-items:center;gap:40px}
.menu-links{display:grid;gap:4px;margin:0;padding:0;list-style:none;text-align:center}
.menu-links li,.menu-cta,.menu-social{opacity:0;transform:translateY(40px);transition:opacity 200ms var(--ease-in),transform 280ms var(--ease-in)}
.menu-links a{position:relative;display:inline-block;padding:6px 14px;color:var(--espresso);font-family:var(--display);font-size:clamp(2.5rem,1.5rem + 5vw,4rem);font-weight:300;line-height:1.12;transition:color var(--dur-hover) var(--ease)}
.menu-links a[aria-current="true"]{color:var(--accent);font-style:italic}
.menu.is-open .menu-links li,.menu.is-open .menu-cta,.menu.is-open .menu-social{opacity:1;transform:none;transition:opacity 560ms var(--ease),transform 760ms var(--ease)}
.menu.is-open .menu-links li:nth-child(2){transition-delay:50ms}
.menu.is-open .menu-links li:nth-child(3){transition-delay:100ms}
.menu.is-open .menu-links li:nth-child(4){transition-delay:150ms}
.menu.is-open .menu-cta{transition-delay:210ms}
.menu.is-open .menu-social{transition-delay:260ms}
.menu-social{display:flex;gap:12px}
html.menu-open{overflow:hidden}

/* ---------- Hero ---------- */
.hero-wrap{display:flex;flex-direction:column;gap:20px;margin:min(1%,16px) 0 min(5%,80px);padding:0 max(3%,calc((100% - var(--container-hero)) / 2))}
.hero{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:150px;min-height:70vh;padding:6%;border-radius:28px;box-shadow:var(--shadow-hero);background-color:#2c2a26}
.hero-media{position:absolute;inset:0;z-index:-2;border-radius:inherit;background-color:#2c2a26;background-image:url("../img/hero-ashley-1920.jpg");background-image:image-set(url("../img/hero-ashley-1920.avif") type("image/avif"),url("../img/hero-ashley-1920.webp") type("image/webp"),url("../img/hero-ashley-1920.jpg") type("image/jpeg"));background-position:50% 0;background-repeat:no-repeat;background-size:cover}
/* the shade is her warm espresso rather than plain black */
.hero::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:rgb(22,17,14);opacity:.5}
.hero-content{position:relative;display:flex;flex-direction:column;gap:20px;flex:0 0 auto;width:100%;min-width:0}
.hero-title{font-family:var(--display);font-size:70px;font-weight:700;line-height:1.02;letter-spacing:-.01em;color:var(--white);text-wrap:balance;text-shadow:0 1px 28px rgba(16,12,10,.28)}
.hero-text{max-width:36em;text-shadow:0 1px 18px rgba(16,12,10,.3)}
.hero-text p{margin:0}
.hero-text strong{font-weight:700}
/* her tagline breaks only between its sentences */
.hero-text .hero-tagline{margin-top:16px;text-wrap:balance}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;width:100%;margin-top:10px}
/* the "In-person & virtual sessions available" line: was faint sage on the photograph; now a quiet pill */
.hero-note{display:inline-flex;align-items:center;gap:10px;margin:0;color:var(--cream);font-family:var(--sans);font-size:13px;font-weight:600;line-height:1.3;letter-spacing:.04em;text-shadow:0 1px 12px rgba(16,12,10,.45)}
.hero-note-dot{flex:none;width:7px;height:7px;border-radius:50%;background:#A5BD9D;box-shadow:0 0 0 3px rgba(165,189,157,.28)}
@media (prefers-reduced-motion:no-preference){
  .hero-media{animation:hero-settle 2.4s var(--ease-out) both}
  .hero-content>*{animation:hero-rise 1.1s var(--ease-out) both;animation-delay:calc(var(--rise,0) * 110ms + 80ms)}
  .hero-content>.hero-title{--rise:0}
  .hero-content>.rule--hero{--rise:1;transform-origin:0 50%;animation-name:hero-draw}
  .hero-content>.hero-text{--rise:2}
  .hero-content>.hero-actions{--rise:3}
}
@keyframes hero-settle{from{transform:scale(1.06)}}
@keyframes hero-rise{from{opacity:0;transform:translateY(18px)}}
@keyframes hero-draw{from{opacity:0;transform:scaleX(0)}}

/* ---------- Origin ---------- */
.intro{display:flex;flex-direction:column;align-items:center;gap:150px;margin:min(7%,104px) 0 min(7%,110px);padding:0 10%}
.intro-inner{display:flex;flex-direction:column;align-items:center;gap:18px;width:100%;max-width:760px}
.intro-quote{font-family:var(--display);font-size:clamp(28px,1.2rem + 1.4vw,38px);font-weight:500;line-height:1.36;color:var(--accent);text-align:center;text-wrap:balance;hanging-punctuation:first}
.intro-quote p{margin:0}
.intro-quote strong{font-weight:inherit}
/* a small sage ornament between her words and the paragraph that explains them */
.intro-rule{margin:10px 0 6px}
.intro-text{max-width:40rem;text-align:center}
.intro-text p{text-wrap:balance}

/* ---------- Two-column sections ---------- */
.split{display:flex;flex-direction:row;gap:150px;padding:0 max(10%,calc((100% - var(--container)) / 2))}
.split > .col{display:flex;flex-direction:column;justify-content:center;gap:20px;flex:0 1 auto;width:100%;min-width:0}
.split--child{margin:min(7%,110px) 0 min(10%,154px)}
.split--how{margin:min(10%,154px) 0}
.split--why{margin:min(7%,110px) 0 min(10%,154px)}
.split--bio{margin:min(10%,154px) 0}
/* How it works: three numbered steps joined by a hairline, each with its own serif title */
.steps{display:grid;gap:30px;margin:0;padding:0;list-style:none;counter-reset:step}
.steps li{position:relative;padding-left:62px;counter-increment:step}
.steps li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:-6px;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--page);box-shadow:inset 0 0 0 1px rgba(90,107,84,.34);color:var(--accent);font-family:var(--display);font-size:18px;font-weight:600;line-height:1;font-variant-numeric:lining-nums}
.steps li:not(:last-child)::after{content:"";position:absolute;left:20.5px;top:42px;bottom:-18px;width:1px;background:linear-gradient(rgba(90,107,84,.3),rgba(90,107,84,.12))}
.step-title{margin:0 0 6px;color:var(--espresso);font-family:var(--display);font-size:25px;font-weight:600;line-height:1.2;text-wrap:balance}
.steps p{margin:0}
@media (prefers-reduced-motion:no-preference){
  .js [data-reveal] .steps li::after{transform:scaleY(0);transform-origin:50% 0;transition:transform 1.2s var(--ease-out)}
  .js [data-reveal].is-in .steps li::after{transform:none}
  .js [data-reveal].is-in .steps li:nth-child(1)::after{transition-delay:.5s}
  .js [data-reveal].is-in .steps li:nth-child(2)::after{transition-delay:.85s}
}

/* Your guide */
.split > .col--bio-left{align-items:center;justify-content:flex-start;gap:32px}
.split > .col--bio-right{justify-content:flex-start;gap:16px}
.bio-quote{margin:0;max-width:30rem;color:var(--accent);font-family:var(--display);font-size:clamp(23px,1.1rem + .6vw,27px);font-style:italic;font-weight:500;line-height:1.42;text-align:center;text-wrap:balance;hanging-punctuation:first last}
.bio-quote p{margin:0}
.credentials-intro{width:100%;font-size:17px;line-height:1.7}
.credentials{width:100%}
.credentials-core{padding:30px 30px 20px;color:var(--cocoa);font-size:16px;line-height:1.6}
.credentials-title{margin:0 0 4px;color:var(--espresso);font-family:var(--display);font-size:27px;font-weight:600;line-height:1.15}
.credentials-sub{margin:0 0 18px;font-size:15px}
.credentials .label{margin-top:.9rem}
.credentials .dots li{margin-bottom:.3rem}
.story{line-height:1.7}
.story-turn{padding-left:18px;border-left:1px solid rgba(90,107,84,.38);color:var(--accent);font-family:var(--display);font-size:25px;font-style:italic;font-weight:500;line-height:1.35;text-wrap:balance}
/* the turn inside a section's text (her reframe) gets a little air around it */
/* each sentence of a turn on its own line, each wrapped evenly */
.story-turn > span{display:block;text-wrap:balance}
.text p + .story-turn{margin-top:1.25rem}
.text .story-turn + p{margin-top:1.25rem}
/* a section's closing line reads as a firm statement, like her tagline in the hero */
.text p.closing{margin-top:1.25rem;color:var(--espresso);font-weight:700}

/* ---------- Full-width bands with the tilted edges ---------- */
.band{position:relative;display:flex;flex-direction:column;margin:0}
.band-inner{display:flex;flex-direction:column;gap:20px;width:100%;margin:0 auto}
.band-inner > :not(.shape){position:relative}
.shape{position:absolute;left:0;width:100%;overflow:hidden;line-height:0;direction:ltr;pointer-events:none}
.shape--top{top:-1px}
.shape--bottom{bottom:-1px;transform:rotate(180deg)}
.shape svg{display:block;position:relative;left:50%;width:calc(100% + 1.3px);height:auto;transform:translateX(-50%);fill:var(--page)}
.band--gentle{padding:0 15%;background:var(--pale)}
.band--gentle .band-inner{align-items:center;width:70%;max-width:760px;padding:min(15%,190px) 0}
.gentle-title{font-style:italic;line-height:1.12;text-align:center}
/* her emphasis, "sacred role you came here to hold", in espresso: the two-tone of the other headings */
.gentle-title strong{font-weight:400;color:var(--espresso)}
.band--imagine{padding:0 max(10%,calc((100% - var(--container)) / 2));background:var(--pale)}
.band--imagine .band-inner{align-items:center;max-width:1140px;padding:min(10%,140px) 0}
.imagine-text{max-width:42rem}
.imagine-text p{margin-bottom:1.1rem}
.lede{color:var(--accent);font-family:var(--display);font-size:clamp(24px,1.1rem + 1vw,30px);font-style:italic;font-weight:500;line-height:1.35;text-wrap:balance}
.lede--close{margin-top:1.6rem;color:var(--espresso)}
.text p.lede{text-wrap:balance}
/* a lede opening a card or a column of reading text */
.card--intro .lede,.story .lede{margin-bottom:1.15rem;font-size:clamp(23px,1rem + .9vw,28px)}
.band--invite{margin-top:min(10%,154px);background:var(--secondary)}
.band--invite .band-inner{gap:150px;max-width:1140px;padding:min(10%,160px) 0}
.band--invite .shape--bottom svg{fill:var(--contact)}
.invite-col{display:flex;flex-direction:column;align-items:center;gap:22px;width:100%}
.invite-title{color:var(--espresso)}
.invite-text{max-width:42rem;margin:0;color:#45533F}
/* her paragraph in three beats: the line that completes the heading, the invitation, and her reassurance */
.invite-text > span{display:block;text-wrap:balance}
.invite-text > .invite-lede{margin-bottom:14px;color:#3F4D3A;font-family:var(--display);font-size:clamp(24px,1.1rem + 1vw,30px);font-style:italic;font-weight:500;line-height:1.3}
.invite-text > .invite-close{margin-top:14px;color:var(--espresso);font-weight:700}

/* ---------- Boxed sections (content held to 1140px) ---------- */
.boxed{display:flex;flex-direction:column}
.boxed-inner{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%;max-width:1140px;margin:0 auto}
.boxed--fit{margin:min(10%,154px) 0;padding:0 10%}
.fit-title{width:81%}
.boxed--faq{margin:min(10%,154px) 0}
.section-head{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%}
/* about 70 characters a line (it was 46rem, about 85); each statement is ticked with a thin check in the site's
   line-icon style, so the list reads as "yes, this is me" */
.fit-list{display:grid;gap:16px;max-width:40rem;margin:14px 0 0;padding:0;list-style:none;text-align:left}
.fit-list li{position:relative;padding:0 0 16px 42px;border-bottom:1px solid rgba(90,107,84,.12)}
.fit-list li:last-child{padding-bottom:0;border-bottom:0}
.fit-list li::before{content:"";position:absolute;left:0;top:.18em;width:26px;height:26px;border-radius:50%;background:rgba(139,157,131,.1) center / 14px 14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23627559' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");box-shadow:inset 0 0 0 1px rgba(90,107,84,.3)}

/* ---------- Sessions ---------- */
.sessions{display:flex;flex-direction:column;gap:20px;margin:min(10%,154px) 0;padding:0 max(10%,calc((100% - var(--container)) / 2))}
.sessions-box{container:sessions / inline-size;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:28px;padding:5% 4%;background:var(--pale);border-radius:40px;box-shadow:inset 0 0 0 1px rgba(90,107,84,.10),0 50px 90px -60px rgba(58,51,48,.45)}
.bezel--wide{width:100%}
.card--intro{padding:clamp(28px,5%,56px)}
/* about 70 characters a line (it was 46rem, about 90) */
.card--intro .measure{max-width:38rem;margin:0 auto}
/* The three sessions sit side by side only where each card keeps its button label on one line (about 240px of
   card width). In between, two cards share a row and the third is centred below them at the same width. */
.offer-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;width:100%;margin:12px 0 10px}
@container sessions (min-width:560px){
  .offer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .offer:last-child{grid-column:1 / -1;justify-self:center;width:calc(50% - 12px)}
  .offer-title{min-height:2.24em}
}
@container sessions (min-width:960px){
  .offer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .offer:last-child{grid-column:auto;justify-self:stretch;width:auto}
  .offer-title{min-height:3.36em}
}
.offer{min-width:0}
.offer-core{display:flex;flex-direction:column;gap:18px;padding:30px 24px 24px}
.offer .btn{padding-left:20px;gap:12px}
.offer-title{color:var(--espresso);font-family:var(--display);font-size:28px;font-weight:600;line-height:1.12;text-wrap:balance}
.offer-text{font-size:16px;line-height:1.6}
.offer-text p:not(.label){margin-bottom:.9rem}
.offer-foot{display:flex;flex-direction:column;gap:18px;margin-top:auto}
.price{display:flex;align-items:baseline;gap:10px;margin:0;padding-top:18px;border-top:1px solid rgba(90,107,84,.14)}
.price-label{color:var(--sage-ink);font-size:11px;font-weight:700;line-height:1;letter-spacing:.18em;text-transform:uppercase}
.price-figure{color:var(--espresso);font-family:var(--display);font-size:36px;font-weight:500;line-height:1;font-variant-numeric:lining-nums tabular-nums}

/* ---------- FAQ ---------- */
.faq-row{display:flex;flex-direction:row;gap:clamp(40px,7vw,110px);width:100%;margin-top:40px}
.faq-col{flex:1 1 0;min-width:0;border-top:1px solid var(--hairline)}
.faq{display:flex;flex-direction:column;border-bottom:1px solid var(--hairline)}
.faq summary{display:flex;flex-direction:row;align-items:flex-start;gap:18px;padding:22px 12px;cursor:pointer;list-style:none;border-radius:14px;transition:background-color var(--dur-hover) var(--ease)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:active{background:rgba(90,107,84,.05)}
.faq-icon{flex:none;width:26px;height:26px;margin-top:2px;color:var(--sage-deep);transition:transform var(--dur-ui) var(--ease),color var(--dur-hover) var(--ease)}
.faq-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round}
.faq[open] .faq-icon{transform:rotate(45deg)}
.faq-q{color:var(--espresso);font-family:var(--display);font-size:clamp(21px,1.05rem + .45vw,25px);font-weight:600;line-height:1.3;text-wrap:balance;transition:color var(--dur-hover) var(--ease)}
.faq[open] .faq-q{color:var(--accent)}
.faq-a{overflow:hidden}
.faq-text{padding:0 12px 26px 56px;color:var(--ink-soft);font-family:var(--sans);font-size:17px;font-weight:400;line-height:1.7}
.faq-text p:last-child{margin-bottom:0}

/* ---------- Contact ---------- */
.contact{display:flex;flex-direction:column;padding:0 max(10%,calc((100% - var(--container)) / 2));background:var(--contact)}
.contact-inner{display:flex;flex-direction:row;gap:100px;width:100%;padding:min(8%,112px) 0}
.contact-col{display:flex;flex-direction:column;justify-content:center;gap:20px;flex:0 1 auto;width:100%;min-width:0}
.contact-col .eyebrow{align-self:flex-start}
.contact-lede{margin:0}
.social{display:flex;flex-wrap:wrap;gap:12px}
.social-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(232,237,229,.24);color:var(--pale);transition:background-color var(--dur-hover) var(--ease),transform var(--dur-ui) var(--ease)}
.social-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.social-icon:active{transform:scale(.94)}
.menu-social .social-icon{box-shadow:inset 0 0 0 1px rgba(90,107,84,.3);color:var(--sage-deep)}
.contact-form{display:flex;flex-direction:column}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.field label{color:rgba(232,237,229,.8);font-size:11px;font-weight:700;line-height:1;letter-spacing:.18em;text-transform:uppercase}
.field-shell{display:block;padding:4px;border-radius:20px;background:rgba(232,237,229,.06);box-shadow:inset 0 0 0 1px rgba(232,237,229,.12);transition:box-shadow var(--dur-hover) var(--ease)}
.contact-form input,.contact-form textarea{display:block;width:100%;min-height:50px;margin:0;padding:13px 18px;border:0;border-radius:16px;background:var(--cream);color:var(--espresso);font-family:var(--sans);font-size:17px;font-weight:400;line-height:1.5;box-shadow:inset 0 1px 2px rgba(58,51,48,.08);transition:box-shadow var(--dur-hover) var(--ease);-webkit-appearance:none;appearance:none}
.contact-form textarea{min-height:140px;resize:vertical}
.contact-form input:focus,.contact-form textarea:focus{outline:0;box-shadow:inset 0 1px 2px rgba(58,51,48,.08),0 0 0 3px rgba(165,189,157,.55)}
.field-shell:has([aria-invalid="true"]){box-shadow:inset 0 0 0 1px rgba(242,167,160,.75)}
.field-error{display:flex;align-items:center;gap:8px;margin:0;color:var(--error-on-dark);font-size:14px;font-weight:600;line-height:1.4}
.field-error::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:currentColor}
.field-error[hidden]{display:none}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:6px}
.contact-form button[aria-busy="true"]{opacity:.8;cursor:progress}
.contact-form button[aria-busy="true"] .btn-icon svg{animation:nudge 1.1s var(--ease) infinite}
@keyframes nudge{50%{transform:translateX(3px)}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{margin:0;color:var(--success-on-dark);font-size:16px;line-height:1.4}
.form-msg.is-error{color:var(--error-on-dark)}

/* ---------- Footer ---------- */
/* one warm dark footer under the contact section: her disclaimer as quiet fine print in two columns that line up
   with the contact columns above, then a hairline and the copyright row */
.site-footer{padding:0 max(10%,calc((100% - var(--container)) / 2));background:var(--footer)}
.disclaimer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 100px;padding:min(6%,88px) 0 min(4.5%,64px)}
.disclaimer p{margin:0;color:rgba(250,246,240,.66);font-family:var(--sans);font-size:14px;font-weight:400;line-height:1.75}
.footer-bar{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:12px 24px;padding:20px 0 calc(20px + env(safe-area-inset-bottom))}
.disclaimer + .footer-bar{border-top:1px solid rgba(250,246,240,.1)}
.footer-note{margin:0;color:rgba(250,246,240,.62);font-family:var(--sans);font-size:11px;font-weight:600;line-height:1.5;letter-spacing:.14em;text-transform:uppercase}
.footer-note--end{text-align:end}
.footer-note a{display:inline-block;padding:7px 0;transition:color var(--dur-hover) var(--ease)}
.footer-note strong{color:var(--cream);font-weight:800}

/* ---------- 404 ---------- */
.page-404{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}
.not-found{flex:1 0 auto;justify-content:center;padding:8% 10% 12%}
.not-found .text{margin:0}
.not-found .eyebrow{align-self:center}

/* ---------- Hover effects only where a pointer can hover (no sticky hovers on touch) ---------- */
@media (hover:hover){
  .btn:hover{background:var(--sage-deep-hover);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 18px 32px -16px rgba(58,51,48,.6)}
  .btn:hover .btn-icon{background:rgba(250,246,240,.26)}
  .btn[href^="#"]:hover .btn-icon,.btn[href^="/#"]:hover .btn-icon{transform:translateY(2px) scale(1.06)}
  .btn[target="_blank"]:hover .btn-icon{transform:translate(2px,-2px) scale(1.06)}
  button.btn:hover .btn-icon,.btn[href="/"]:hover .btn-icon{transform:translateX(3px) scale(1.06)}
  .btn--ghost:hover{background:rgba(90,107,84,.08);color:var(--sage-deep-hover);box-shadow:inset 0 0 0 1px rgba(95,115,88,.55)}
  .btn--ghost:hover .btn-icon{background:rgba(90,107,84,.16)}
  .island-links a:hover{background:rgba(90,107,84,.09);color:var(--accent)}
  .menu-toggle:hover{background:rgba(90,107,84,.16)}
  .menu-links a:hover{color:var(--accent)}
  .faq summary:hover{background:rgba(90,107,84,.05)}
  .faq summary:hover .faq-q{color:var(--accent)}
  .faq summary:hover .faq-icon{color:var(--accent)}
  .social-icon:hover{background:rgba(232,237,229,.08);transform:translateY(-2px)}
  .menu-social .social-icon:hover{background:rgba(90,107,84,.08)}
  .footer-note a:hover{color:var(--white)}
}

/* ---------- Scroll reveals (only when JS runs; none for reduced motion) ---------- */
.js [data-reveal]{opacity:0;transform:translateY(24px);filter:blur(6px);transition:opacity var(--dur-reveal) var(--ease-out),transform 1s var(--ease-out),filter var(--dur-reveal) var(--ease-out);transition-delay:calc(var(--i,0) * 60ms)}
.js [data-reveal="photo"]{filter:none;transform:translateY(24px) scale(.985)}
.js [data-reveal].is-in{opacity:1;transform:none;filter:none}

/* ---------- Tablet and up (Elementor "min-width:768px" rules) ---------- */
@media (min-width:768px){
  .hero-content{width:58.966%;max-width:740px}
  /* the card keeps to the screen: padding and headline ease down on shorter windows so the button stays in view */
  .hero{padding:clamp(36px,min(5.6vh,6vw),80px) 6%}
  .intro-inner{width:60%}
  /* the headline keeps its five-line shape at every width: 70px at 1228px and wider, scaling down below that */
  .hero-title{max-width:9.4em;font-size:clamp(42px,min(5.7vw,12vh - 40px),70px)}
  .hero-text{max-width:min(34em,85%)}
  /* the shade sits behind the words and lifts over her face */
  .hero::before{opacity:1;background:linear-gradient(0deg,rgba(22,17,14,.3) 0%,rgba(22,17,14,0) 42%),linear-gradient(90deg,rgba(22,17,14,.7) 0%,rgba(22,17,14,.58) 34%,rgba(22,17,14,.34) 58%,rgba(22,17,14,.18) 80%,rgba(22,17,14,.14) 100%)}
}

@media (min-width:1025px){
  .hero{min-height:min(calc(100svh - 150px),62rem)}
}

/* ---------- Navigation breakpoints ---------- */
@media (max-width:959px){
  .island-links{display:none}
  .island-brand span{display:none}
  .island-brand{padding:0 8px}
  .island .menu-toggle{display:block}
}

/* ---------- Tablet (≤1024px) ---------- */
@media (max-width:1024px){
  .site-header{margin:2% 0 0;padding:0 4%}
  .hero-wrap{margin:2% 0 15%;padding:0 2%}
  .hero{gap:0}
  .intro{gap:50px;margin:15% 0;padding:2%}
  .split{gap:50px;margin:15% 0;padding:2%}
  .band--gentle{padding:0 2%}
  .band--gentle .band-inner{padding:15% 0}
  .sessions{margin:15% 0;padding:0 2%}
  .boxed--fit{margin:0;padding:0 2%}
  .boxed--fit .boxed-inner{padding:15% 0}
  .fit-title{width:100%}
  .band--imagine{padding:0 2%}
  .band--imagine .band-inner{padding:15% 0}
  .boxed--faq{margin:0;padding:0 2%}
  .boxed--faq .boxed-inner{padding:15% 0}
  .faq-row{margin-top:25px}
  .band--invite{margin:0;padding:0 2%}
  .band--invite .band-inner{gap:50px;padding:15% 0}
  .contact{padding:0 2%}
  .contact-inner{gap:50px;padding:8% 0}
  .site-footer{padding:0 2%}
  .disclaimer{column-gap:50px;padding:6% 0 4.5%}
}

/* ---------- Phones (≤767px): single column, 20px+ gutters ---------- */
/* One vertical rhythm for every section: 58px above and below at 390px (117px between sections; it was 20%, 156px,
   and 234px under the sessions). The bands add a little for their tilted edges. */
@media (max-width:767px){
  :root{--sec-y:clamp(48px,15vw,64px)}
  .site-header{flex-wrap:nowrap;margin:0;padding:14px var(--gutter)}
  .logo,.logo img{width:min(325px,calc(100vw - 2 * var(--gutter) - 56px))}
  .header-cta{display:none}
  .header-toggle{display:block}
  .hero-wrap{margin:0;padding:6px var(--gutter) var(--sec-y)}
  .hero{min-height:75vh;flex-direction:column-reverse;flex-wrap:wrap;gap:20px;padding:12% 7%;border-radius:24px}
  .hero-title{font-size:clamp(32px,9vw,40px)}
  .rule--hero{width:64px}
  .hero-actions{flex-wrap:wrap}
  .intro{margin:0;padding:var(--sec-y) var(--gutter)}
  .split{flex-wrap:wrap;margin:0;padding:var(--sec-y) var(--gutter)}
  .split--how{flex-direction:row-reverse;flex-wrap:wrap-reverse}
  .band--gentle{padding:0 var(--gutter)}
  .band--gentle .band-inner{width:100%;padding:calc(var(--sec-y) + 10px) 0}
  .sessions{margin:0;padding:var(--sec-y) var(--gutter)}
  .sessions-box{padding:28px 14px;border-radius:32px}
  .offer-grid{gap:20px}
  .offer-core{padding:28px 22px 22px}
  .boxed--fit .boxed-inner{padding:var(--sec-y) 0}
  .boxed--fit{padding:0 var(--gutter)}
  .bio-quote{max-width:none}
  .credentials-core{padding:26px 22px 16px}
  .band--imagine{padding:0 var(--gutter)}
  .band--imagine .band-inner{padding:calc(var(--sec-y) + 10px) 0}
  .boxed--faq{padding:0 var(--gutter)}
  .boxed--faq .boxed-inner{padding:var(--sec-y) 0}
  .faq-row{flex-wrap:wrap;gap:0}
  .faq-col{flex-basis:100%}
  .faq-col + .faq-col{border-top:0}
  .faq-text{padding-left:12px}
  .band--invite{padding:0 var(--gutter)}
  .band--invite .band-inner{padding:calc(var(--sec-y) + 10px) 0}
  .contact{margin:0;padding:0 var(--gutter)}
  .contact-inner{flex-wrap:wrap;gap:40px;padding:var(--sec-y) 0}
  .form-foot .btn{width:100%;justify-content:space-between}
  .site-footer{padding:0 var(--gutter)}
  .disclaimer{grid-template-columns:minmax(0,1fr);gap:14px;padding:48px 0 32px}
  .footer-bar{flex-direction:column;align-items:flex-start;gap:0;padding:14px 0 calc(22px + env(safe-area-inset-bottom))}
  .footer-note,.footer-note--end{text-align:start}
  .not-found{padding:var(--sec-y) var(--gutter)}
}

/* Upright phones get a 900×1080 crop of the hero photograph (x 510–1410 of 1920): the only part they ever show
   (366–579px around the centre), at under half the bytes. Foldables and sideways phones keep the full photograph. */
@media (max-width:767px) and (max-aspect-ratio:2/3){
  .hero-media{background-image:url("../img/hero-ashley-phone-900.jpg");background-image:image-set(url("../img/hero-ashley-phone-900.avif") type("image/avif"),url("../img/hero-ashley-phone-900.webp") type("image/webp"),url("../img/hero-ashley-phone-900.jpg") type("image/jpeg"))}
}

/* People who ask for less transparency get solid navigation */
@media (prefers-reduced-transparency:reduce){
  .island{background:var(--page);-webkit-backdrop-filter:none;backdrop-filter:none}
  .menu{background:var(--page);-webkit-backdrop-filter:none;backdrop-filter:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
  .js [data-reveal]{opacity:1;transform:none;filter:none}
}
@media print{
  .island,.menu,.menu-toggle{display:none!important}
  .js [data-reveal]{opacity:1!important;transform:none!important;filter:none!important}
  .hero-media,.hero-content>*{animation:none!important}
}
