
@import url('https://fonts.googleapis.com/css2?family=Alegreya+Sans:wght@500;700;800&family=Source+Sans+3:wght@400;500;600;700&display=swap');

:root {
  --bg: #fbf8ff;
  --surface: #fffdfc;
  --surface-soft: #f4eff8;
  --ink: #332f39;
  --muted: #68606f;
  --line: #e6deec;
  --lavender-50: #fbf8ff;
  --lavender-100: #f4eff8;
  --lavender-200: #ebe4f1;
  --lavender-300: #d8cede;
  --lavender-400: #b8abc5;
  --lavender-500: #8b7b99;
  --lavender-600: #65596f;
  --lavender-700: #4b4354;
  --sage: #cbc1d4;
  --sage-dark: #7d718a;
  --sage-deep: #5b5364;
  --clay: #a99aa9;
  --rose: #d4c9da;
  --gold: #c9bca7;
  --mist: #f3eef7;
  --focus: #81708f;
  --shadow: 0 22px 62px rgba(83, 76, 91, 0.12);
  --soft-shadow: 0 12px 32px rgba(83, 76, 91, 0.07);
  --max: 1160px;
  --measure: 760px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: 'Source Sans 3', Arial, Helvetica, sans-serif;
  font-size: 18px;
  line-height: 1.78;
  letter-spacing: .005em;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at top left, rgba(232,224,238,.42), transparent 34rem),
    radial-gradient(circle at 90% 20%, rgba(203,193,212,.20), transparent 28rem),
    radial-gradient(circle at 30% 85%, rgba(212,201,218,.18), transparent 30rem),
    linear-gradient(180deg, #fbf8ff, #f7f2fb 48%, #fffdfb);
}
a { color: #6f657a; text-decoration-thickness: .08em; text-underline-offset: .2em; }
a:hover { color: #58505f; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
img { display: block; max-width: 100%; height: auto; }
p { margin-top: 0; }
p:last-child { margin-bottom: 0; }
.skip-link { position: absolute; left: 1rem; top: 1rem; z-index: 50; padding: .55rem .8rem; background: var(--surface); color: var(--ink); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.site-header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid rgba(229,217,235,.9); background: rgba(251,248,255,.92); backdrop-filter: blur(14px); }
.header-inner, .section, .footer-inner { width: min(var(--max), calc(100% - 2rem)); margin-inline: auto; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 0; }
.brand { color: var(--ink); text-decoration: none; }
.brand-name { display: block; font-family: 'Alegreya Sans', 'Source Sans 3', Arial, sans-serif; font-size: 1.42rem; font-weight: 700; line-height: 1.12; letter-spacing: .01em; }
.brand-role { display: block; color: var(--muted); font-size: .74rem; letter-spacing: .065em; text-transform: uppercase; }
.site-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; font-size: .92rem; }
.site-nav a { border-radius: 999px; color: var(--ink); padding: .48rem .78rem; text-decoration: none; }
.site-nav a[aria-current="page"], .site-nav a:hover { background: rgba(203,193,212,.18); color: #5f5868; }
.header-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; white-space: nowrap; border-radius: 999px; background: var(--lavender-600); color: #fffdfc; padding: .5rem .95rem; font-size: .9rem; font-weight: 700; text-decoration: none; box-shadow: var(--soft-shadow); }
.header-cta:hover { color: #fffdfc; background: var(--lavender-700); }
.page-main { background: transparent; }
.hero { position: relative; isolation: isolate; min-height: 690px; display: grid; align-items: end; overflow: hidden; color: #fff; background: #5b5364; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -3; background: var(--hero-image) var(--hero-position, center) / cover; transform: scale(1.02); }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(52,47,58,.84), rgba(91,83,100,.50) 56%, rgba(91,83,100,.18)); }
.hero::marker { display: none; }
.hero .section { padding-block: 6rem 4.3rem; }
.hero-content { max-width: 850px; }
.eyebrow { margin: 0 0 .85rem; color: #ded6e5; font-size: .76rem; font-weight: 700; letter-spacing: .065em; text-transform: uppercase; }
.subtle-heading { display: inline-block; width: fit-content; border: 1px solid rgba(216,206,222,.78); border-radius: 8px; background: rgba(244,239,248,.86); color: var(--lavender-700); padding: .22rem .54rem; line-height: 1.25; }
h1, h2, h3 { font-family: 'Alegreya Sans', 'Source Sans 3', Arial, sans-serif; line-height: 1.12; font-weight: 700; }
h1 { max-width: 920px; margin: 0; font-size: clamp(2.25rem, 5vw, 3.95rem); letter-spacing: -.01em; }
.hero-copy { max-width: 760px; margin: 1.25rem 0 0; color: rgba(255,255,255,.93); font-size: clamp(1.12rem, 2vw, 1.34rem); line-height: 1.62; }
.hero-note { max-width: 760px; margin: 1rem 0 0; color: rgba(255,255,255,.84); font-size: .96rem; }
.trust-row { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.4rem; }
.trust-pill { border: 1px solid rgba(255,255,255,.36); border-radius: 999px; background: rgba(255,255,255,.12); padding: .38rem .7rem; color: rgba(255,255,255,.92); font-size: .9rem; }
.actions, .quick-links { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.8rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; border: 1px solid var(--lavender-600); border-radius: 999px; padding: .72rem 1.16rem; background: var(--lavender-600); color: #fffdfc; font-size: .95rem; font-weight: 700; letter-spacing: .005em; text-decoration: none; box-shadow: var(--soft-shadow); }
.button:hover { background: var(--lavender-700); border-color: var(--lavender-700); color: #fffdfc; }
.button.secondary { border-color: var(--lavender-400); background: rgba(255,253,252,.72); box-shadow: none; color: var(--lavender-700); }
.button.secondary:hover { background: var(--lavender-200); border-color: var(--lavender-500); color: var(--lavender-700); }
.hero .button { background: #f5f1f8; border-color: rgba(255,255,255,.82); color: #443b4d; }
.hero .button:hover { background: #fffdfc; border-color: #fffdfc; color: #332f39; }
.hero .button.secondary { border-color: rgba(255,255,255,.62); background: rgba(255,255,255,.16); color: #fff; }
.hero .button.secondary:hover { background: rgba(255,255,255,.27); color: #fff; }
.button.secondary.dark { border-color: var(--lavender-400); background: transparent; color: var(--lavender-700); }
.button.secondary.dark:hover { background: var(--lavender-200); color: var(--lavender-700); }
.section { padding-block: 5.4rem; }
.section.compact { padding-block: 3.2rem; }
.section-header { max-width: var(--measure); margin-bottom: 2rem; }
.section h2 { margin: 0 0 1rem; font-size: clamp(1.7rem, 2.9vw, 2.45rem); letter-spacing: -.005em; }
.section h3 { margin: 1.4rem 0 .55rem; font-size: 1.22rem; }
.lead { color: #625a6c; font-size: clamp(1.1rem, 1.9vw, 1.28rem); line-height: 1.66; }
.measure { max-width: var(--measure); }
.intro-grid, .contact-grid, .feature-grid, .problem-grid, .path-grid, .reassurance-grid { display: grid; gap: 2rem; }
.intro-grid { grid-template-columns: minmax(0,1.28fr) minmax(300px,.72fr); align-items: start; }
.contact-grid { grid-template-columns: minmax(0,1fr) minmax(290px,.58fr); align-items: center; }
.feature-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.problem-grid { grid-template-columns: repeat(4, minmax(0,1fr)); margin-top: 1.6rem; }
.path-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.reassurance-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.panel, .contact-panel, .service-card, .problem-card, .path-card, .quote-card, .soft-card { border: 1px solid rgba(229,217,235,.92); border-radius: 24px; background: rgba(255,253,252,.9); box-shadow: var(--soft-shadow); }
.problem-card, .path-card, .soft-card, .quote-card { padding: 1.35rem; }
.problem-card { border-top: 4px solid #e0d8e7; }
.problem-card h3, .path-card h3, .soft-card h3 { margin-top: 0; }
.path-card .number { display: inline-grid; place-items: center; width: 2.2rem; height: 2.2rem; margin-bottom: .9rem; border-radius: 50%; background: var(--lavender-600); color: #fffdfc; font-weight: 700; }
.panel, .contact-panel { padding: 2rem; }
.contact-panel { background: linear-gradient(145deg, #f2edf7, #e8e1ee); color: #403a48; }
.contact-panel h2, .contact-panel h3 { color: #403a48; }
.contact-panel a { color: #5b5364; }
.contact-list { display: grid; gap: .95rem; margin: 1.25rem 0 0; }
.contact-item { display: grid; gap: .1rem; }
.contact-label { color: #746980; font-size: .76rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.contact-value { font-size: 1.08rem; font-weight: 700; overflow-wrap: anywhere; }
.portrait { border: 10px solid #fffdfc; border-radius: 28px; box-shadow: var(--shadow); }
.band { background: rgba(243,238,247,.74); border-block: 1px solid rgba(229,217,235,.84); }
.warm-band { background: linear-gradient(135deg, rgba(244,239,248,.95), rgba(251,248,255,.9)); border-block: 1px solid rgba(229,217,235,.9); }
.service-card { overflow: hidden; transition: transform .18s ease, box-shadow .18s ease; }
.service-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.service-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.service-card div { padding: 1.35rem; }
.service-card h3 { margin-top: 0; }
.anchor-nav { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.4rem; }
.anchor-nav a { border: 1px solid var(--line); border-radius: 999px; background: var(--surface); padding: .52rem .82rem; text-decoration: none; }
.therapy-section { border-top: 1px solid var(--line); }
.media-row { display: grid; grid-template-columns: 310px minmax(0,1fr); gap: 2.7rem; align-items: start; }
.media-row img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; border-radius: 26px; box-shadow: var(--shadow); }
.columns { columns: 2 320px; column-gap: 2.25rem; }
.columns p { break-inside: avoid; margin-top: 0; }
.top-link { display: inline-block; margin-top: 1.25rem; font-size: .9rem; }
.cta-strip { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; border: 1px solid #e1d7e8; border-radius: 30px; background: linear-gradient(145deg, #f4eff8, #ece6f2); color: #403a48; padding: 2rem; margin-block: 5rem; box-shadow: var(--shadow); }
.cta-strip .eyebrow { color: #746980; }
.cta-strip h2 { max-width: 720px; margin-bottom: 0; font-size: clamp(1.75rem,2.7vw,2.3rem); color: #403a48; }
.cta-strip p { color: #665c70; }
.site-footer { border-top: 1px solid var(--line); background: #4b4652; color: rgba(255,255,255,.80); }
.footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding: 1.35rem 0; font-size: .9rem; }
.footer-inner a { color: #fff; }
.faq-list { display: grid; gap: .9rem; max-width: 870px; }
details { border: 1px solid rgba(229,217,235,.92); border-radius: 18px; background: rgba(255,253,248,.9); padding: 1rem 1.2rem; box-shadow: 0 8px 24px rgba(31,47,42,.06); }
summary { cursor: pointer; font-weight: 700; color: #625a6c; }


/* Whole-site calmness refinements */
.brand-role, .eyebrow, .contact-label { letter-spacing: .055em; }
.site-nav a { color: #423c49; }
.site-nav a[aria-current="page"], .site-nav a:hover { background: var(--lavender-200); color: var(--lavender-700); }
.lead { color: var(--lavender-600); }
.panel, .contact-panel, .service-card, .problem-card, .path-card, .quote-card, .soft-card, details { background: rgba(255,253,252,.94); }
.contact-panel { background: linear-gradient(145deg, #f3eff7, #e9e2ef); border-color: #ddd3e5; }
.cta-strip { background: linear-gradient(145deg, #f3eff7, #e9e2ef); border-color: #ddd3e5; }
.service-card:hover { transform: translateY(-2px); }
.anchor-nav a:hover, .service-card a:hover, .top-link:hover { color: var(--lavender-700); }

.sticky-mobile-cta { display:none; }
@media (max-width: 820px) {
  body { font-size: 16px; padding-bottom: 76px; }
  .header-inner { align-items: flex-start; flex-direction: column; gap: .65rem; }
  .site-nav { justify-content: flex-start; width: 100%; font-size: .9rem; }
  .site-nav a { padding-inline: .55rem; }
  .header-cta { display:none; }
  .intro-grid, .contact-grid, .feature-grid, .problem-grid, .path-grid, .reassurance-grid, .media-row { grid-template-columns: 1fr; }
  .hero { min-height: 640px; }
  .hero .section { padding-block: 4.5rem 3.4rem; }
  .hero::after { background: linear-gradient(180deg, rgba(50,43,57,.26), rgba(50,43,57,.88)); }
  .section { padding-block: 3.6rem; }
  .actions, .quick-links { flex-direction: column; }
  .button { width: 100%; }
  .contact-panel, .panel { padding: 1.35rem; border-radius: 20px; }
  .cta-strip { align-items: stretch; flex-direction: column; margin-block: 3.5rem; padding: 1.35rem; border-radius: 22px; }
  .sticky-mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: .6rem; background: rgba(251,248,255,.96); border-top: 1px solid var(--line); backdrop-filter: blur(10px); }
  .sticky-mobile-cta a { display: flex; align-items: center; justify-content: center; min-height: 46px; border: 1px solid var(--lavender-600); border-radius: 999px; background: var(--lavender-600); color: #fffdfc; font-weight: 700; text-decoration: none; }
  .sticky-mobile-cta a:nth-child(2) { background: #fffdfc; border-color: var(--lavender-400); color: var(--lavender-700); }
}
@media (min-width: 821px) and (max-width: 1080px) {
  .problem-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .feature-grid, .path-grid, .reassurance-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
