/* ============================================================
   SECOYA THERAPY — style.css
   Palette: drawn from Anna's therapy room & the redwood story
   60% Orchard Cream · 30% Panel Sage · 10% Redwood Heartwood
   ============================================================ */

:root{
  /* ===== Alfie palette — dark mauve · terracotta · forest green · light coffee · cream =====
     Used with strong contrast (deep forest bands, terracotta accents, mauve) — not "all beige". */
  --cream:#F4EDE4;        /* base background — warm cream */
  --cream-2:#EAE0D1;      /* alternating sections — light coffee tint */
  --sand:#DBC8B3;         /* light coffee / tan — highlight blocks & brand banner */
  --sage:#3D5A49;         /* forest green (mid) — decorative/large */
  --sage-deep:#2E4A3D;    /* forest green (deep) — headings accents, links, borders, bands */
  --sage-mist:#D8CBB6;    /* warm tan hairline borders */
  --redwood:#B26B3E;      /* terracotta / clay — primary CTA */
  --redwood-deep:#965A30; /* terracotta deep — hover / small accent */
  --ink:#2A2722;          /* body text — warm near-black */
  --ink-soft:#5A5346;
  --white:#FFFFFF;
  /* accent family (icons, badges, bands) */
  --moss:#3D5A49;         /* forest green mid */
  --moss-deep:#2E4A3D;    /* forest green deep */
  --moss-ink:#24382D;     /* deepest forest — footer */
  --mauve:#46393E;        /* dark mauve / aubergine — banner, deep accents */
  --mauve-deep:#382E32;   /* darker mauve */
  --terracotta:#B26B3E;   /* alias of clay CTA */
  --forest:#2E4A3D;       /* alias of deep forest */
  --bark:#5C3A28;
  --gold:#A3814F;
  --gold-soft:#C9A96E;
  /* decorative leafy botanical sprig (background only) */
  --sprig:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 260' fill='none' stroke='%237E9181' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M70 256 C64 210 70 168 86 130 C94 110 104 88 112 64'/%3E%3Cpath d='M112 64 C108 48 110 32 118 18 C126 32 124 50 112 64 Z'/%3E%3Cpath d='M96 92 C82 86 72 74 70 58 C86 62 96 74 96 92 Z'/%3E%3Cpath d='M98 104 C112 98 124 98 134 90 C124 104 112 110 98 104 Z'/%3E%3Cpath d='M84 132 C70 128 58 118 56 102 C72 106 84 116 84 132 Z'/%3E%3Cpath d='M86 148 C100 144 112 146 122 140 C112 154 98 156 86 148 Z'/%3E%3Cpath d='M74 186 C60 182 50 172 48 156 C64 160 74 170 74 186 Z'/%3E%3Cpath d='M76 204 C90 200 102 202 112 196 C102 210 88 212 76 204 Z'/%3E%3Cpath d='M114 60 C112 46 113 34 117 22 M92 88 C84 78 78 70 74 60 M100 103 C110 99 118 98 126 93 M82 128 C74 120 68 112 62 104'/%3E%3Ccircle cx='118' cy='18' r='2.4'/%3E%3Ccircle cx='134' cy='90' r='2.4'/%3E%3Ccircle cx='122' cy='140' r='2.4'/%3E%3C/svg%3E");
  --sprig-cream:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 260' fill='none' stroke='%23F4EFDF' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M70 256 C64 210 70 168 86 130 C94 110 104 88 112 64'/%3E%3Cpath d='M112 64 C108 48 110 32 118 18 C126 32 124 50 112 64 Z'/%3E%3Cpath d='M96 92 C82 86 72 74 70 58 C86 62 96 74 96 92 Z'/%3E%3Cpath d='M98 104 C112 98 124 98 134 90 C124 104 112 110 98 104 Z'/%3E%3Cpath d='M84 132 C70 128 58 118 56 102 C72 106 84 116 84 132 Z'/%3E%3Cpath d='M86 148 C100 144 112 146 122 140 C112 154 98 156 86 148 Z'/%3E%3Cpath d='M74 186 C60 182 50 172 48 156 C64 160 74 170 74 186 Z'/%3E%3Cpath d='M76 204 C90 200 102 202 112 196 C102 210 88 212 76 204 Z'/%3E%3Cpath d='M114 60 C112 46 113 34 117 22 M92 88 C84 78 78 70 74 60 M100 103 C110 99 118 98 126 93 M82 128 C74 120 68 112 62 104'/%3E%3Ccircle cx='118' cy='18' r='2.4'/%3E%3Ccircle cx='134' cy='90' r='2.4'/%3E%3Ccircle cx='122' cy='140' r='2.4'/%3E%3C/svg%3E");
  /* textured brush-stroke splashes — each a distinct organic shape (background only) */
  --brush-sage:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 110'%3E%3Cdefs%3E%3Cfilter id='b' x='-30%25' y='-40%25' width='160%25' height='180%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.01 0.2' numOctaves='2' seed='6' result='n'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='n' scale='30'/%3E%3C/filter%3E%3C/defs%3E%3Cpath d='M18 56 C30 38 88 42 140 42 C200 42 244 44 246 58 C248 74 198 80 136 78 C82 76 8 80 18 56 Z' fill='%237E9181' filter='url(%23b)'/%3E%3C/svg%3E");
  --brush-gold:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 150'%3E%3Cdefs%3E%3Cfilter id='b' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.035 0.05' numOctaves='3' seed='9' result='n'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='n' scale='16'/%3E%3C/filter%3E%3C/defs%3E%3Cpath d='M90 22 C132 22 158 50 158 86 C158 122 126 138 88 138 C50 138 24 116 24 82 C24 48 50 22 90 22 Z' fill='%23A3814F' filter='url(%23b)'/%3E%3C/svg%3E");
  --brush-clay:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 250 150'%3E%3Cdefs%3E%3Cfilter id='b' x='-25%25' y='-30%25' width='150%25' height='160%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.02 0.12' numOctaves='2' seed='3' result='n'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='n' scale='32'/%3E%3C/filter%3E%3C/defs%3E%3Cpath d='M28 116 C44 84 96 62 146 48 C196 34 226 32 230 46 C234 62 198 74 150 90 C102 106 56 130 28 116 Z' fill='%239C5236' filter='url(%23b)'/%3E%3C/svg%3E");
  --brush-moss:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 150'%3E%3Cdefs%3E%3Cfilter id='b' x='-30%25' y='-30%25' width='160%25' height='160%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.05 0.06' numOctaves='2' seed='12' result='n'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='n' scale='15'/%3E%3C/filter%3E%3C/defs%3E%3Cpath d='M46 74 C40 46 80 36 106 42 C140 36 172 48 168 78 C176 108 134 118 102 112 C68 118 40 102 46 74 Z' fill='%235A6149' filter='url(%23b)'/%3E%3C/svg%3E");
  --radius:18px;
  --shadow:0 12px 32px -14px rgba(46,42,35,.30);
  --font-display:"Fraunces", Georgia, serif;
  --font-body:"Figtree", "Karla", "Segoe UI", Arial, sans-serif;
  --ease:cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:1.075rem;            /* ~17px */
  line-height:1.75;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}

/* ---------- Typography ---------- */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.22;
  color:var(--ink);
  margin:0 0 .6em;
  letter-spacing:.01em;
  text-wrap:balance;
}
h1{font-size:clamp(2.1rem,5.4vw,3.3rem)}
h2{font-size:clamp(1.7rem,3.6vw,2.35rem)}
h3{font-size:clamp(1.25rem,2.4vw,1.45rem)}
p{margin:0 0 1.15em}
a{color:var(--sage-deep)}
a:hover{color:var(--redwood)}
strong{color:var(--ink)}
.eyebrow{
  font-family:var(--font-body);
  font-size:.82rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--redwood);
  display:block;margin-bottom:.9rem;
}
.lead{font-size:1.18rem;color:var(--ink-soft)}

/* ---------- Layout ---------- */
.wrap{max-width:1120px;margin:0 auto;padding:0 1.25rem}
.wrap-narrow{max-width:780px;margin:0 auto;padding:0 1.25rem}
section{padding:4.25rem 0}
.section-alt{background:var(--cream-2)}
.section-sand{background:var(--sand)}
.grid-2{display:grid;gap:2.5rem;align-items:center}
.grid-3{display:grid;gap:1.5rem}
@media(min-width:820px){
  .grid-2{grid-template-columns:1fr 1fr;gap:4rem}
  .grid-3{grid-template-columns:repeat(3,1fr)}
  section{padding:5.5rem 0}
}

/* ---------- Skip link & focus ---------- */
.skip-link{
  position:absolute;left:-999px;top:0;background:var(--ink);color:var(--white);
  padding:.7rem 1.2rem;z-index:200;border-radius:0 0 8px 0;
}
.skip-link:focus{left:0}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:3px solid var(--redwood);outline-offset:2px;border-radius:4px;
}

/* ---------- Brand banner (large logo across the top) ---------- */
.brand-banner{
  display:block;                     /* was inline <a> — caused stray bg slivers / -19px offset */
  background:var(--sand);            /* light coffee / tan */
  border-bottom:3px solid var(--mauve);
  text-align:center;
  padding:1.5rem 1rem 1.2rem;
}
.brand-banner a{display:inline-block;text-decoration:none;line-height:0}
.brand-banner img{
  height:clamp(58px,11vw,108px);width:auto;margin:0 auto;
  filter:drop-shadow(0 3px 8px rgba(42,39,34,.18));
}
.brand-banner .banner-sub{
  display:block;margin-top:.5rem;line-height:1;
  font-family:var(--font-body);font-weight:700;
  font-size:clamp(.7rem,1.6vw,.92rem);letter-spacing:.5em;text-transform:uppercase;
  color:var(--forest);padding-left:.5em;
}

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(244,237,228,.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--sage-mist);
}
.nav-bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:.7rem 1.25rem;max-width:1180px;margin:0 auto;
}
.brand{display:flex;flex-direction:column;align-items:center;text-decoration:none;line-height:1;gap:4px}
.brand img{height:44px;width:auto}
.brand-sub{
  font-family:var(--font-body);font-weight:700;
  font-size:.66rem;letter-spacing:.52em;text-transform:uppercase;
  color:var(--forest);padding-left:.52em;
}
.nav-links{display:none;list-style:none;margin:0;padding:0;gap:1.6rem;align-items:center}
.nav-links a{
  text-decoration:none;color:var(--ink);font-weight:600;font-size:.98rem;
  position:relative;padding:.35rem 0;
}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;
  background:var(--redwood);transition:width .3s var(--ease);
}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{width:100%}
.nav-links a[aria-current="page"]{color:var(--sage-deep)}

/* dropdown (desktop) */
.has-sub{position:relative}
.has-sub>a::before{content:"";display:none}
.sub-menu{
  position:absolute;top:calc(100% + .6rem);left:50%;transform:translate(-50%,8px);
  background:var(--white);border:1px solid var(--sage-mist);border-radius:14px;
  box-shadow:var(--shadow);list-style:none;margin:0;padding:.6rem;
  min-width:260px;opacity:0;visibility:hidden;
  transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;
}
.has-sub:hover .sub-menu,.has-sub:focus-within .sub-menu{
  opacity:1;visibility:visible;transform:translate(-50%,0);
}
.sub-menu a{display:block;padding:.55rem .9rem;border-radius:9px;font-weight:500}
.sub-menu a::after{display:none}
.sub-menu a:hover{background:var(--cream-2);color:var(--redwood)}

.btn{
  display:inline-block;background:var(--redwood);color:var(--white);
  font-weight:700;font-size:1rem;text-decoration:none;
  padding:.85rem 1.7rem;border-radius:999px;border:2px solid var(--redwood);
  min-height:48px;line-height:1.4;
  transition:background .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease);
}
.btn:hover{background:var(--redwood-deep);border-color:var(--redwood-deep);color:var(--white);transform:translateY(-2px);box-shadow:var(--shadow)}
.btn-outline{background:transparent;color:var(--redwood)}
.btn-outline:hover{background:var(--redwood);color:var(--white)}
.btn-ghost{
  display:inline-block;font-weight:700;color:var(--sage-deep);text-decoration:none;
  border-bottom:2px solid var(--sage);padding-bottom:2px;
}
.btn-ghost:hover{color:var(--redwood);border-color:var(--redwood)}
.nav-cta{display:none}

/* hamburger */
.nav-toggle{
  display:inline-flex;flex-direction:column;justify-content:center;gap:5px;
  width:48px;height:48px;padding:11px;background:none;border:0;cursor:pointer;
}
.nav-toggle span{
  display:block;height:2.5px;width:100%;background:var(--ink);border-radius:2px;
  transition:transform .35s var(--ease),opacity .25s var(--ease);
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* mobile drawer */
.mobile-nav{
  position:fixed;inset:0;top:0;z-index:90;background:var(--cream);
  padding:6.2rem 1.6rem 2rem;overflow-y:auto;
  transform:translateX(100%);visibility:hidden;
  transition:transform .42s var(--ease),visibility .42s;
}
.mobile-nav.open{transform:translateX(0);visibility:visible}
/* when the drawer is open, pin the nav to the top and hide the banner so the first item clears the header */
body.nav-open .brand-banner{display:none}
body.nav-open .site-header{position:fixed;top:0;left:0;right:0}
.mobile-nav ul{list-style:none;margin:0;padding:0}
.mobile-nav>ul>li{
  border-bottom:1px solid var(--sage-mist);
  opacity:0;transform:translateY(14px);
  transition:opacity .4s var(--ease),transform .4s var(--ease);
}
.mobile-nav.open>ul>li{opacity:1;transform:translateY(0)}
.mobile-nav.open>ul>li:nth-child(1){transition-delay:.06s}
.mobile-nav.open>ul>li:nth-child(2){transition-delay:.11s}
.mobile-nav.open>ul>li:nth-child(3){transition-delay:.16s}
.mobile-nav.open>ul>li:nth-child(4){transition-delay:.21s}
.mobile-nav.open>ul>li:nth-child(5){transition-delay:.26s}
.mobile-nav.open>ul>li:nth-child(6){transition-delay:.31s}
.mobile-nav.open>ul>li:nth-child(7){transition-delay:.36s}
.mobile-nav.open>ul>li:nth-child(8){transition-delay:.41s}
.mobile-nav a{
  display:block;padding:1.05rem .25rem;text-decoration:none;
  color:var(--ink);font-family:var(--font-display);font-size:1.35rem;
}
.mobile-nav .m-sub a{font-family:var(--font-body);font-size:1.02rem;padding:.6rem .25rem .6rem 1.2rem;color:var(--ink-soft)}
.mobile-nav .m-cta{margin-top:1.6rem;text-align:center}
.mobile-nav .m-cta .btn{width:100%}

@media(min-width:980px){
  .nav-links{display:flex}
  .nav-toggle,.mobile-nav{display:none}
  .nav-cta{display:inline-block;padding:.65rem 1.4rem;font-size:.95rem}
}

/* ---------- Hero ---------- */
.hero{padding:4.5rem 0 4rem;overflow:hidden;position:relative}
.hero::after{content:"";position:absolute;left:-14px;bottom:-12px;width:150px;height:282px;background:var(--sprig) no-repeat center/contain;opacity:.55;pointer-events:none;z-index:0}
.hero-grid{display:grid;gap:2.8rem;align-items:center;position:relative;z-index:1}
@media(min-width:880px){.hero-grid{grid-template-columns:1.15fr .85fr;gap:4.5rem}.hero{padding:6rem 0 5.5rem}}
.hero h1{margin-bottom:1.1rem}
.hero .lead{font-size:1.2rem;max-width:34em}
.hero-ctas{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin:1.8rem 0 .8rem}
.reassure{font-size:.95rem;color:var(--ink-soft);font-style:italic}
.cred-strip{
  display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:center;
  margin-top:1.9rem;padding-top:1.4rem;border-top:1px solid var(--sage-mist);
  font-size:.92rem;color:var(--ink-soft);font-weight:600;
}
.cred-strip span{display:inline-flex;align-items:center;gap:.45rem}
.cred-strip svg{flex:none}

/* arched portrait — echoes the garden arch */
.arch-frame{
  position:relative;max-width:430px;margin:0 auto;
  border-radius:999px 999px var(--radius) var(--radius);
  overflow:hidden;box-shadow:var(--shadow);
  border:6px solid var(--white);
}
.arch-frame img{width:100%;object-fit:cover;aspect-ratio:4/4.6}
.arch-caption{
  text-align:center;margin-top:1.2rem;
  font-family:var(--font-display);font-size:1.3rem;font-weight:600;
  letter-spacing:.005em;color:var(--forest);
}
/* circular headshot variant (home hero) */
.arch-frame.is-round{border-radius:999px;max-width:380px;aspect-ratio:1/1}
.arch-frame.is-round img{aspect-ratio:1/1}

/* ---------- Root divider (signature motif) ---------- */
.root-divider{display:block;width:min(420px,70%);margin:0 auto;color:var(--sage)}
section .root-divider{margin-bottom:3rem}

/* ---------- Quote banner ---------- */
.quote-banner{
  background:var(--sage-deep);color:var(--cream);text-align:center;
  padding:3.6rem 1.25rem;
}
.quote-banner blockquote{
  margin:0 auto;max-width:720px;
  font-family:var(--font-display);font-size:clamp(1.4rem,3vw,1.9rem);
  line-height:1.45;font-style:italic;
}
.quote-banner cite{display:block;margin-top:1rem;font-family:var(--font-body);font-size:.95rem;font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--sage-mist)}
.quote-banner.on-photo{
  position:relative;background:var(--ink);
}
.quote-banner.on-photo .qb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.42}
.quote-banner.on-photo .wrap-narrow{position:relative}

/* ---------- Cards ---------- */
.card{
  background:var(--white);border:1px solid var(--sage-mist);
  border-radius:var(--radius);padding:1.8rem 1.6rem;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.card h3{margin-bottom:.5rem}
.card h3 a{text-decoration:none;color:var(--ink)}
.card h3 a:hover{color:var(--redwood)}
.card p{font-size:1rem;color:var(--ink-soft);margin-bottom:.8rem}
.card .more{font-weight:700;font-size:.95rem;text-decoration:none;color:var(--redwood)}
.card-leaf{width:34px;height:34px;color:var(--sage-deep);margin-bottom:.9rem}

/* client reviews */
.reviews{display:grid;gap:1.3rem;margin-top:2.4rem}
@media(min-width:760px){.reviews{grid-template-columns:repeat(3,1fr)}}
.review{
  background:var(--white);border:1px solid var(--sage-mist);
  border-radius:var(--radius);padding:1.5rem 1.5rem 1.6rem;
  display:flex;flex-direction:column;margin:0;
}
.review-quote{font-family:var(--font-display);color:var(--sage);font-size:2.4rem;line-height:.7;margin-bottom:.4rem}
.review p{font-size:1rem;color:var(--ink-soft);font-style:italic;margin:0 0 1.1rem}
.review cite{margin-top:auto;font-style:normal;font-weight:600;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sage-deep)}
.reviews-single{grid-template-columns:1fr!important;max-width:760px;margin-left:auto;margin-right:auto}
.reviews-single .review{padding:2.2rem 2.2rem 2.4rem}
.reviews-single .review p{font-size:1.12rem;line-height:1.65}

/* credentials / trust badges */
.creds-band{background:var(--cream-2)}
.creds-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem}
.cred{
  flex:0 1 300px;max-width:340px;text-align:center;
  background:rgba(255,255,255,.55);border:1px solid var(--sage-mist);
  border-radius:20px;padding:2rem 1.5rem 1.7rem;
}
.cred-ic{
  width:88px;height:88px;border-radius:50%;
  background:var(--moss);color:#F4EFDF;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 1.1rem;box-shadow:0 10px 22px -12px rgba(46,42,35,.45);
}
.cred-ic svg{width:42px;height:42px}
.cred-ic--outline{background:transparent;border:2px solid var(--moss);color:var(--moss);box-shadow:none}
.cred-txt{font-family:var(--font-display);font-weight:600;font-size:1.2rem;letter-spacing:.04em}
.cred h3{font-size:.98rem;letter-spacing:.07em;text-transform:uppercase;margin-bottom:.5rem;color:var(--ink)}
.cred p{font-size:.9rem;line-height:1.55;color:var(--ink-soft);margin:0}

/* approach list */
.approach{display:grid;gap:1.1rem}
@media(min-width:760px){.approach{grid-template-columns:1fr 1fr}}
.approach-item{
  background:var(--white);border-left:4px solid var(--sage);
  border-radius:0 14px 14px 0;padding:1.25rem 1.4rem;
}
.approach-item h3{font-size:1.15rem;margin-bottom:.35rem}
.approach-item p{font-size:.98rem;color:var(--ink-soft);margin:0}

/* steps */
.steps{display:grid;gap:1.4rem;counter-reset:step}
@media(min-width:760px){.steps{grid-template-columns:repeat(3,1fr)}}
.step{position:relative;background:var(--white);border-radius:var(--radius);padding:2rem 1.5rem 1.6rem;border:1px solid var(--sage-mist)}
.step::before{
  counter-increment:step;content:counter(step,decimal-leading-zero);
  font-family:var(--font-display);font-size:2rem;color:var(--sage);
  display:block;margin-bottom:.4rem;
}
.step h3{font-size:1.15rem}
.step p{font-size:.98rem;color:var(--ink-soft);margin:0}

/* fee card */
.fee-card{
  background:var(--white);border:1px solid var(--sage-mist);border-radius:var(--radius);
  padding:2.4rem 2rem;text-align:center;max-width:520px;margin:0 auto;box-shadow:var(--shadow);
}
.fee-amount{font-family:var(--font-display);font-size:3rem;color:var(--sage-deep);line-height:1}
.fee-amount small{font-size:1.05rem;font-family:var(--font-body);color:var(--ink-soft);font-weight:600}

/* ---------- FAQ accordion ---------- */
.faq details{
  background:var(--white);border:1px solid var(--sage-mist);border-radius:14px;
  margin-bottom:.85rem;overflow:hidden;
}
.faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:1.1rem 1.3rem;font-weight:700;font-size:1.05rem;min-height:48px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";font-family:var(--font-display);font-size:1.5rem;color:var(--redwood);
  transition:transform .3s var(--ease);flex:none;
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .faq-body{padding:0 1.3rem 1.2rem;color:var(--ink-soft);font-size:1rem}

/* ---------- Forms ---------- */
.form-grid{display:grid;gap:1.1rem;max-width:560px}
label{font-weight:700;font-size:.95rem;display:block;margin-bottom:.35rem}
input[type=text],input[type=email],input[type=tel],textarea{
  width:100%;padding:.85rem 1rem;font:inherit;color:var(--ink);
  background:var(--white);border:1.5px solid var(--sage-mist);border-radius:12px;
  transition:border-color .25s var(--ease);
}
input:focus,textarea:focus{border-color:var(--sage-deep)}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.93rem;color:var(--ink-soft)}
.consent input{width:22px;height:22px;margin-top:3px;accent-color:var(--redwood);flex:none}
.form-note{font-size:.93rem;color:var(--ink-soft)}

/* contact options */
.contact-opts{display:grid;gap:1rem;margin:1.5rem 0}
.contact-opt{
  display:flex;gap:1rem;align-items:flex-start;background:var(--white);
  border:1px solid var(--sage-mist);border-radius:14px;padding:1.1rem 1.2rem;
}
.contact-opt svg{flex:none;color:var(--sage-deep);margin-top:3px}
.contact-opt a{font-weight:700;word-break:break-word}

/* ---------- Location strip ---------- */
.loc-figure{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.loc-figure img{width:100%;object-fit:cover}
.chip-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.chip{
  background:var(--cream-2);border:1px solid var(--sage-mist);border-radius:999px;
  padding:.4rem 1rem;font-size:.92rem;font-weight:600;color:var(--ink-soft);
}

/* ---------- CTA band ---------- */
.cta-band{background:linear-gradient(160deg,var(--moss) 0%,var(--moss-deep) 100%);color:var(--cream);text-align:center}
.cta-band h2{max-width:18em;margin-left:auto;margin-right:auto;color:#F4EFDF}
.cta-band p{color:rgba(244,239,223,.86)}
.cta-band .reassure{color:rgba(244,239,223,.72)}
.cta-band .reassure a,.cta-band p a{color:var(--gold-soft);text-decoration:underline}
.cta-band .btn{margin-top:1rem}

/* ---------- Footer ---------- */
.site-footer{background:var(--moss-ink);color:#D9DCD4;font-size:.97rem}
.site-footer a{color:#E8EBE2}
.site-footer a:hover{color:#F2C9B8}
.footer-grid{display:grid;gap:2.2rem;padding:3.5rem 0 2.5rem}
@media(min-width:820px){.footer-grid{grid-template-columns:1.5fr 1fr 1fr 1fr 1.6fr}}
.site-footer h4{color:var(--white);font-family:var(--font-body);font-weight:700;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:.55rem}
.crisis{
  background:#222721;border-radius:14px;padding:1.3rem 1.4rem;margin:0 0 .5rem;
  border:1px solid #3A3F38;
}
.crisis strong{color:var(--white)}
.foot-about{list-style:none;margin:0;padding:0}
.foot-about li{margin-bottom:.5rem;line-height:1.5}
.crisis-list{list-style:none;margin:.6rem 0 .4rem;padding:0}
.crisis-list li{margin-bottom:.4rem}
.confidential{
  text-align:center;padding:1rem 1.25rem;border-top:1px solid #3A3F38;color:#B9BFB2;font-size:.92rem;
}
.copyright{text-align:center;padding:0 1.25rem 5.4rem;color:#9AA193;font-size:.88rem}
@media(min-width:980px){.copyright{padding-bottom:1.4rem}}

/* ---------- Mobile sticky CTA ---------- */
.sticky-cta{
  position:fixed;bottom:0;left:0;right:0;z-index:80;
  background:rgba(248,246,239,.96);backdrop-filter:blur(8px);
  border-top:1px solid var(--sage-mist);
  padding:.65rem 1rem calc(.65rem + env(safe-area-inset-bottom));
  display:flex;gap:.7rem;justify-content:center;
  transform:translateY(110%);transition:transform .4s var(--ease);
}
.sticky-cta.visible{transform:translateY(0)}
.sticky-cta .btn{flex:1;max-width:340px;text-align:center;padding:.7rem 1rem;font-size:.97rem}
@media(min-width:980px){.sticky-cta{display:none}}

/* ---------- Cookie / privacy notice ---------- */
.cookie-notice{
  position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:85;
  max-width:560px;margin:0 auto;background:var(--white);
  border:1px solid var(--sage-mist);border-radius:16px;box-shadow:var(--shadow);
  padding:1.2rem 1.3rem;font-size:.95rem;color:var(--ink-soft);
  display:none;
}
.cookie-notice.show{display:block;animation:rise .5s var(--ease)}
.cookie-notice .btn{padding:.55rem 1.3rem;font-size:.92rem;margin-top:.7rem}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- Legal pages ---------- */
.legal h2{font-size:1.45rem;margin-top:2.2rem}
.legal ul{padding-left:1.3rem}
.legal li{margin-bottom:.5rem}
.updated{font-size:.9rem;color:var(--ink-soft);font-style:italic}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{padding:3.6rem 0 2.6rem;background:var(--cream-2)}
.page-hero p{max-width:42em}

/* page hero with setting photo (e.g. How I Work) */
.page-hero--photo{position:relative;overflow:hidden;background:var(--sage-deep);padding:5rem 0 4.5rem}
.page-hero--photo .ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;opacity:.5}
.page-hero--photo::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(44,49,42,.9) 0%,rgba(44,49,42,.66) 48%,rgba(78,95,78,.4) 100%)}
.page-hero--photo .wrap{position:relative;z-index:2}
.page-hero--photo .eyebrow{color:#F2C9B8}
.page-hero--photo h1{color:var(--cream)}
.page-hero--photo .lead{color:#E8EBE2}

/* method grid — animated approach cards (How I Work) */
.method-grid{display:grid;gap:1.3rem;margin-top:2.6rem}
@media(min-width:680px){.method-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.method-grid{grid-template-columns:repeat(3,1fr)}}
.method{
  position:relative;background:var(--white);border:1px solid var(--sage-mist);
  border-radius:var(--radius);padding:2rem 1.55rem 1.6rem;overflow:hidden;
  transition:transform .38s var(--ease),box-shadow .38s var(--ease),border-color .38s var(--ease);
}
.method::before{
  content:"";position:absolute;top:0;left:0;height:4px;width:0;
  background:linear-gradient(90deg,var(--redwood),var(--sage));
  transition:width .5s var(--ease);
}
.method:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}
.method:hover::before{width:100%}
.method-num{
  display:block;font-family:var(--font-display);font-weight:600;
  font-size:2.5rem;line-height:1;color:var(--sage);opacity:.5;margin-bottom:.5rem;
  transition:color .38s var(--ease),opacity .38s var(--ease),transform .38s var(--ease);
}
.method:hover .method-num{color:var(--redwood);opacity:.95;transform:translateY(-3px)}
.method-badge{
  display:flex;align-items:center;justify-content:center;
  width:54px;height:54px;border-radius:50%;
  color:#F6F2E3;margin-bottom:1.05rem;
  transition:transform .38s var(--ease),box-shadow .38s var(--ease);
}
.method-badge svg{width:25px;height:25px}
.method:hover .method-badge{transform:translateY(-4px);box-shadow:0 8px 18px -8px rgba(46,42,35,.5)}
.method-grid>.method:nth-child(7n+1) .method-badge{background:var(--moss-deep)}
.method-grid>.method:nth-child(7n+2) .method-badge{background:var(--gold)}
.method-grid>.method:nth-child(7n+3) .method-badge{background:var(--moss)}
.method-grid>.method:nth-child(7n+4) .method-badge{background:var(--redwood)}
.method-grid>.method:nth-child(7n+5) .method-badge{background:var(--bark)}
.method-grid>.method:nth-child(7n+6) .method-badge{background:var(--gold)}
.method-grid>.method:nth-child(7n+7) .method-badge{background:var(--moss)}
.method h3{font-size:1.2rem;margin-bottom:.5rem}
.method p{font-size:.98rem;color:var(--ink-soft);margin:0}
.method-grid>.reveal:nth-child(1){transition-delay:.05s}
.method-grid>.reveal:nth-child(2){transition-delay:.10s}
.method-grid>.reveal:nth-child(3){transition-delay:.15s}
.method-grid>.reveal:nth-child(4){transition-delay:.20s}
.method-grid>.reveal:nth-child(5){transition-delay:.25s}
.method-grid>.reveal:nth-child(6){transition-delay:.30s}
.method-grid>.reveal:nth-child(7){transition-delay:.35s}

/* ---------- Decorative background: botanical sketches & pastel washes (behind content, non-interactive) ---------- */
.section-alt{position:relative;overflow:hidden}
/* paint-mark brush splashes removed at client request — line-drawing sprigs kept (::after) */
.section-alt::before{display:none}
.section-alt::after{
  content:"";position:absolute;right:6px;bottom:-22px;width:150px;height:280px;
  background:var(--sprig) no-repeat center/contain;opacity:.5;pointer-events:none;z-index:0;
  transform:scaleX(-1);
}
/* every other alternating section: mirrored sprig */
.section-alt:nth-of-type(even)::after{right:auto;left:6px;transform:none}
.section-alt > .wrap,.section-alt > .wrap-narrow{position:relative;z-index:1}

.page-hero:not(.page-hero--photo){position:relative;overflow:hidden}
.page-hero:not(.page-hero--photo)::before{display:none}
.page-hero:not(.page-hero--photo)::after{
  content:"";position:absolute;right:0;bottom:-14px;width:140px;height:262px;
  background:var(--sprig) no-repeat center/contain;opacity:.5;pointer-events:none;z-index:0;
  transform:scaleX(-1);
}
.page-hero:not(.page-hero--photo) > .wrap{position:relative;z-index:1}

.cta-band{position:relative;overflow:hidden}
.cta-band::before{display:none}
.cta-band::after{
  content:"";position:absolute;left:2%;bottom:-30px;width:150px;height:280px;
  background:var(--sprig-cream) no-repeat center/contain;opacity:.34;pointer-events:none;z-index:0;
}
.cta-band .wrap{position:relative;z-index:1}

@media(max-width:640px){
  .section-alt::after,.page-hero:not(.page-hero--photo)::after,.cta-band::after{width:104px;height:200px}
}

/* ============================================================
   Alfie-palette contrast additions (v2)
   ============================================================ */

/* deep forest-green band — high-contrast section */
.section-forest{background:var(--forest);color:#E9F0E8;position:relative;overflow:hidden}
.section-forest h1,.section-forest h2,.section-forest h3{color:#fff}
.section-forest p{color:rgba(233,240,232,.92)}
.section-forest .eyebrow{color:var(--gold-soft)}
.section-forest strong{color:#fff}
.section-forest a:not(.btn){color:var(--gold-soft)}

/* tan / light-coffee band */
.section-sand{background:var(--sand)}

/* palette-coloured leaf in the hero credential strip */
.cs-leaf{width:18px;height:18px;color:var(--forest);flex:none}

/* tall media (redwood tree blocking half a section) */
.media-tall{margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.media-tall img{width:100%;height:100%;min-height:340px;max-height:560px;object-fit:cover;display:block}

/* photo pair (where we meet — inside + outside) */
.media-pair{display:grid;gap:1rem;margin-top:0}
@media(min-width:560px){.media-pair{grid-template-columns:1fr 1fr}}
.media-pair .loc-figure{margin:0}
.media-pair .loc-figure img{aspect-ratio:4/3;width:100%;height:100%;object-fit:cover}

/* less-prominent photo quote bar */
.quote-banner.on-photo.subtle{background:var(--forest)}
.quote-banner.on-photo.subtle .qb-img{opacity:.22}

/* coloured core-belief boxes (About) */
.beliefs .approach-item{border-left-width:5px}
.beliefs .approach-item h3{color:var(--ink)}
.beliefs .approach-item:nth-child(1){border-left-color:var(--forest);background:#E8EFE8}
.beliefs .approach-item:nth-child(2){border-left-color:var(--terracotta);background:#F7EADF}
.beliefs .approach-item:nth-child(3){border-left-color:var(--mauve);background:#EFE7E9}
.beliefs .approach-item:nth-child(4){border-left-color:var(--gold);background:#F4ECDB}

/* specialism page photo band (breaks up the text) */
.issue-photo{position:relative;margin:0;overflow:hidden}
.issue-photo img{width:100%;height:clamp(220px,32vw,340px);object-fit:cover;display:block}
.issue-photo figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:1.1rem 1.25rem;
  background:linear-gradient(0deg,rgba(36,56,45,.82),rgba(36,56,45,0));
  color:#F4EDE4;font-family:var(--font-display);font-size:1.05rem;
}

/* terracotta inline accent rule */
.accent-rule{width:64px;height:4px;border:0;border-radius:4px;background:var(--terracotta);margin:0 0 1.4rem}
.cta-band .accent-rule,.section-forest .accent-rule{background:var(--gold-soft)}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
}

/* ---------- Print ---------- */
@media print{.site-header,.sticky-cta,.cookie-notice{display:none}}
