/* Cheerful Heart redesign: Oct 2026 revision round (TherapyRising) */

/* 16 Back-to-top */
.to-top{position:fixed;right:20px;bottom:20px;z-index:80;width:48px;height:48px;border-radius:50%;background:var(--purple);color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px -8px rgba(45,32,82,.55);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s,transform .25s,visibility .25s,background .2s}
.to-top svg{width:22px;height:22px}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--rose-deep)}
@media (max-width:640px){.to-top{right:14px;bottom:14px;width:44px;height:44px}}

/* Header CTA: longer label fits */
.g-cta{white-space:nowrap}
@media (max-width:1280px){.g-cta{font-size:14px;padding:13px 20px}}

/* M1, M2, M3: caption boxes over hero photos */
.g-hero-note .script,.p-note .script{line-height:1.25;padding-bottom:2px}
.g-hero-note strong,.p-note strong{margin-top:8px}
.g-hero-note small{display:block;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:14px;font-weight:700;letter-spacing:.04em;color:var(--rose-deep);line-height:1.4}
@media (max-width:640px){.g-hero-note strong,.p-note strong{margin-top:10px;line-height:1.35}.g-hero-note .script,.p-note .script{line-height:1.3}}

/* 19: What We Treat / How We Help / Services headers breathing room */
.treat-card h3{margin-bottom:14px}
.treat-card .sec-title{line-height:1.25;margin:0 0 22px}
.svc-head .sec-title{margin-top:22px;line-height:1.25}

/* 20: Proverbs band spacing */
.verse .line1 .script{line-height:1.25;margin-bottom:14px}
.verse .line2{margin-top:10px;line-height:1.15}
.verse cite{margin-top:30px}

/* 21: CTA card text area wider */
.cta-card{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.cta-body h2{line-height:1.25}
.cta-body h2 .script{display:inline-block;margin-top:6px}
@media (max-width:1080px){.cta-card{grid-template-columns:minmax(0,1fr)}}

/* M4: Let's talk consult card */
.a-consult .script{line-height:1.25;margin-bottom:8px}
.a-consult h2{margin:6px 0 14px;line-height:1.3}

/* M5: newsletter */
.news h2{line-height:1.25;margin-bottom:18px}
.news p{margin-top:16px}

/* M16, M7, M11, M12, M14: enlarged, stylized subheadings */
.prose h2.sub-h{font-family:var(--script);font-weight:400;font-size:clamp(40px,4vw,54px);line-height:1.2;color:var(--purple);letter-spacing:0;margin:56px 0 16px;text-wrap:balance}
.prose h2.sub-h::before{display:none}
.prose h2.sub-h.sub-long{font-family:var(--sans);font-weight:700;font-size:clamp(28px,2.8vw,36px);color:var(--plum);line-height:1.2}
.prose h2.sub-h.sub-long::before{content:"";display:block;width:36px;height:3px;border-radius:3px;background:var(--rose);margin-bottom:16px}
.prose .p-sec>h2.sub-h:first-child,.prose .p-col>h2.sub-h:first-child{margin-top:0}
.prose h3.sub-label{font-family:var(--script);font-weight:400;font-size:36px;line-height:1.2;color:var(--purple);margin:26px 0 6px}
.prose h3.sub-label:first-child{margin-top:0}
@media (max-width:640px){.prose h2.sub-h{font-size:42px;margin-top:44px}.prose h2.sub-h.sub-long{font-size:28px}}

/* M8: About callouts */
.prose .about-callout{background:var(--blush);border:1px solid rgba(205,95,154,.18);border-radius:26px;padding:30px 32px 14px;margin:40px 0}
.prose .about-callout>h2.sub-h{margin-top:0;color:var(--rose-deep)}
@media (max-width:640px){.prose .about-callout{padding:24px 20px 8px}}

/* M10: upcoming engagements */
.prose .engage{display:grid;gap:16px;margin:10px 0 30px}
.prose .engage-card{background:linear-gradient(150deg,var(--purple),var(--plum));color:#fff;border-radius:24px;padding:28px 30px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.prose .engage-card::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(228,147,188,.4),rgba(228,147,188,0) 70%)}
.prose .engage-card .e-date{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#FBD3E7;margin-bottom:8px}
.prose .engage-card h3{color:#fff;margin:0 0 8px;font-size:24px}
.prose .engage-card p{color:rgba(255,255,255,.9);margin:0 0 16px}
.prose .engage-card .btn{position:relative;z-index:1}
.prose .engage-list{list-style:none;padding:0;margin:10px 0 30px;display:grid;gap:12px}
.prose .engage-list li{background:#fff;border:1px solid var(--line);border-left:5px solid var(--rose);border-radius:16px;padding:16px 20px;margin:0}
.prose .engage-list li::before{display:none}
.prose .engage-list strong{display:block;color:var(--plum)}
.prose .engage-list span{font-size:15px;color:var(--ink-soft)}

/* 8: Amber photo smaller on desktop only */
@media (min-width:861px){.prose img.amber-photo{max-width:360px;display:block;border-radius:26px}}

/* M13: All services grid */
.prose .svc-col-link{display:block;text-align:center;font-weight:700;color:var(--plum);font-size:19px;line-height:1.35;margin-top:14px;text-decoration:none}
.prose .svc-col-link small{display:block;font-weight:400;font-size:15px;color:var(--ink-soft);margin-top:4px}
.prose .svc-col-link:hover{color:var(--rose-deep)}

/* 26: PayPal Pay Later message full width */
.chi-pp-wrap{margin:22px 0 0;padding:16px 20px;background:#fff;border-radius:16px;box-shadow:0 8px 28px rgba(45,32,82,.08);overflow:visible;min-height:44px}
.chi-pp-wrap iframe{max-width:100%!important}
.chi-pay-item{overflow:visible}

/* 30: Blog table of contents scrolls on its own */
@media (min-width:1081px){.p-aside .a-toc{max-height:calc(100vh - 170px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}
@media (min-width:1081px){.p-aside:has(.a-toc){max-height:calc(100vh - 150px)}}

/* 23: Groups page photo crop */
.prose img.crop-fix{aspect-ratio:4/3;object-fit:cover;object-position:center 30%}

/* Announcement bar */
.g-topbar .tb-announce{display:inline-flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.g-topbar .tb-announce a{color:inherit;text-decoration:underline;text-underline-offset:3px;font-weight:700}
.g-topbar .tb-announce .tb-dot{opacity:.6}

/* 15: Rest guide FAQ accordion + rebuilt landing content */
.ych-host{padding:0}
.ych-lp details.ych-faq-item{padding:0;overflow:hidden}
.ych-lp details.ych-faq-item summary{list-style:none;cursor:pointer;padding:22px 56px 22px 28px;font-weight:700;font-size:18px;color:var(--ink,#2E2A5E);position:relative}
.ych-lp details.ych-faq-item summary::-webkit-details-marker{display:none}
.ych-lp details.ych-faq-item summary::after{content:"+";position:absolute;right:24px;top:50%;transform:translateY(-50%);font-size:26px;color:#CD5F9A;font-weight:400}
.ych-lp details.ych-faq-item[open] summary::after{content:"\2013"}
.ych-lp details.ych-faq-item p{padding:0 28px 22px;margin:0}
@media (max-width:760px){.ych-lp .ych-hero-grid,.ych-lp .ych-about-inner{grid-template-columns:1fr!important;gap:36px}.ych-lp .ych-rest-grid,.ych-lp .ych-inside ul{grid-template-columns:1fr!important}.ych-lp section{padding:56px 0}.ych-lp .ych-form-card{padding:36px 22px}}

/* 7: Old-site women photo in the Proverbs band (text on the tinted left side) */
.verse-bg.verse-women{background:url("images/band-women.jpg?v=1") 70% center/cover no-repeat}
.verse-bg.verse-women::after{background:linear-gradient(90deg,rgba(45,32,82,.94) 0%,rgba(45,32,82,.82) 30%,rgba(45,32,82,.25) 55%,rgba(45,32,82,0) 75%)}
.verse.verse-left .verse-inner{justify-content:flex-start}
@media (max-width:640px){.verse-bg.verse-women{background-position:72% center}.verse-bg.verse-women::after{background:linear-gradient(180deg,rgba(45,32,82,.15) 0%,rgba(45,32,82,.55) 45%,rgba(45,32,82,.92) 100%)}}

/* ych-font: rest guide uses site fonts */
.ych-lp,.ych-lp h1,.ych-lp h2,.ych-lp h3,.ych-lp h4,.ych-lp #mc_embed_signup input{font-family:var(--sans)!important}
.ych-lp .ych-script,.ych-lp .ych-letter{font-family:var(--script)!important}
.book-btns{margin:6px 0 10px}

/* Oct 23: blog TOC first on mobile/tablet */
@media (max-width:1100px){.p-grid:has(.a-toc)>.p-aside{display:contents}.p-grid:has(.a-toc) .a-toc{order:-1}.p-grid:has(.a-toc) .a-toc ol{gap:0}}
/* Oct 23: grief group + Amber announcement visible on mobile */
@media (max-width:860px){.g-topbar-inner{flex-direction:column;gap:6px;padding:9px 18px;text-align:center}.g-topbar-inner>span.tb-announce{display:inline-flex;justify-content:center}}
@media (max-width:640px){.g-topbar .tb-announce{flex-direction:column;gap:4px;font-size:13px;line-height:1.4}.g-topbar .tb-announce .tb-dot{display:none}}
