/* Heart to Heart additions (Oct 2026): e-book download form, testimonial carousel,
   quick facts, related resources. Uses the site's existing colour tokens. */

/* ---------- E-book download form ---------- */
dialog.ebook-dialog{border:0;border-radius:14px;padding:0;width:min(470px,calc(100% - 28px));background:var(--paper);color:var(--ink);box-shadow:0 30px 80px -20px #3e293566}
dialog.ebook-dialog::backdrop{background:#3e2935a6}
.ebook-dialog .dlg-in{padding:34px 30px 28px;position:relative}
.ebook-dialog .dlg-close{position:absolute;top:12px;right:12px;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--ink)}
.ebook-dialog h2{font:500 2rem/1.1 var(--serif);margin:6px 44px 6px 0;color:var(--ink)}
:is(.ebook-dialog,.ebook-inline) .dlg-book{color:var(--green);font-weight:700;margin:0 0 20px}
:is(.ebook-dialog,.ebook-inline) .dlg-field{margin-bottom:16px}
:is(.ebook-dialog,.ebook-inline) label{display:block;font-weight:700;font-size:.92rem;margin-bottom:6px}
:is(.ebook-dialog,.ebook-inline) input{width:100%;min-height:50px;border:1px solid #cdb4bd;border-radius:8px;padding:11px 14px;font:inherit;font-size:1rem;background:#fff;color:var(--ink)}
:is(.ebook-dialog,.ebook-inline) input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #64364c26}
:is(.ebook-dialog,.ebook-inline) .dlg-hint{font-size:.8rem;color:var(--muted);margin-top:5px}
:is(.ebook-dialog,.ebook-inline) .dlg-err{font-size:.85rem;color:#a4262c;margin-top:5px;min-height:0}
:is(.ebook-dialog,.ebook-inline) .invalid input{border-color:#a4262c}
:is(.ebook-dialog,.ebook-inline) .btn{width:100%;justify-content:center;margin-top:6px;border:0;cursor:pointer;font:inherit;font-weight:600}
:is(.ebook-dialog,.ebook-inline) .dlg-small{font-size:.8rem;color:var(--muted);margin:14px 0 0;line-height:1.6}
:is(.ebook-dialog,.ebook-inline) .dlg-hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
:is(.ebook-dialog,.ebook-inline) .dlg-ok{width:52px;height:52px;border-radius:50%;background:var(--pink);color:var(--green);display:grid;place-items:center;font-size:1.6rem;margin-bottom:12px}

/* ---------- Testimonials: featured story + carousel ---------- */
.testimonial-feature{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;margin-top:25px;min-width:0}
.quote.featured-quote{padding:40px 44px 34px}
.quote.featured-quote p{font-size:clamp(1.3rem,2.2vw,1.65rem);line-height:1.5}
.quote-carousel{position:relative;min-width:0;box-sizing:border-box;max-width:820px;width:100%;margin:0 auto;padding:12px;background:#e9ddd8;border:1px solid #ddcccf;border-radius:12px;box-shadow:0 18px 36px -24px #49283970}
.quote-carousel .quote-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;border-radius:8px}
.quote-carousel .quote-track::-webkit-scrollbar{display:none}
.quote-carousel .quote{flex:0 0 100%;scroll-snap-align:start;margin:0;min-height:100%;box-shadow:none;display:flex;flex-direction:column;justify-content:space-between}
.quote-carousel .carousel-controls{display:flex;align-items:center;justify-content:center;gap:20px;padding-top:12px}
.quote-carousel-label{text-align:center;font-size:.8rem;color:var(--muted);margin:0 0 4px}
@media (prefers-reduced-motion:reduce){.quote-carousel .quote-track{scroll-behavior:auto}}
@media (max-width:640px){.quote.featured-quote{padding:30px 24px 26px}}

/* ---------- Quick facts & work (About) ---------- */
.facts-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px;margin:28px 0 0}
.facts-list div{padding:16px 0;border-bottom:1px solid var(--line)}
.facts-list dt{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--moss);font-weight:700;margin-bottom:4px}
.facts-list dd{margin:0;color:var(--ink)}
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:28px}
.work-card{background:#fffaf6;border-radius:10px;padding:28px 30px;box-shadow:0 10px 45px #4b263b08;border-top:2px solid #c28d98}
.work-card h3{font:500 1.55rem/1.2 var(--serif);margin:6px 0 10px}
.work-card ul{margin:0;padding-left:1.1em}
.work-card li{margin:6px 0}
@media (max-width:820px){.facts-list,.work-grid{grid-template-columns:1fr}}

/* ---------- Related resources (keeps pages connected) ---------- */
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:25px}
.related-card{display:flex;flex-direction:column;background:#fffaf6;border-radius:10px;padding:26px 26px 24px;box-shadow:0 10px 45px #4b263b08;border-top:2px solid #c28d98;text-decoration:none;color:var(--ink)}
.related-card:hover{box-shadow:0 14px 40px #4b263b14}
.related-card .eyebrow{margin-bottom:8px}
.related-card h3{font:500 1.45rem/1.25 var(--serif);margin:0 0 10px}
.related-card p{color:var(--muted);font-size:.95rem;margin:0 0 14px}
.related-card .text-link{margin-top:auto}
@media (max-width:900px){.related-grid{grid-template-columns:1fr}}

/* ---------- Program extras ---------- */
.program-steps{counter-reset:s;list-style:none;padding:0;margin:0 0 1em}
.program-steps li{counter-increment:s;position:relative;padding:12px 0 12px 48px;border-bottom:1px solid var(--line)}
.program-steps li::before{content:counter(s);position:absolute;left:0;top:10px;width:32px;height:32px;border-radius:50%;background:var(--pink);color:var(--green);font-weight:700;display:grid;place-items:center;font-size:.9rem}
.new-badge{display:inline-block;background:var(--green);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.08em;padding:4px 10px;border-radius:999px;margin-left:8px;vertical-align:middle}
.podcast-grid .podcast-card.podcast-latest{grid-column:1/-1}

/* ---------- Share-link landing pages (/free/...) ---------- */
.free-landing{padding:56px 0 80px}
.free-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center}
.free-cover{background:var(--cream);border-radius:14px;padding:34px;display:grid;place-items:center}
.free-cover img{max-height:520px;width:auto;filter:drop-shadow(10px 14px 10px #49303933)}
.free-landing h1{font:500 clamp(2.2rem,4.6vw,3.6rem)/1.05 var(--serif);margin:10px 0 14px}
.free-landing .lead{font-size:1.06rem;color:var(--muted);margin-bottom:24px}
.ebook-inline{background:#fffaf6;border-radius:12px;padding:28px 28px 22px;box-shadow:0 18px 50px -24px #4b263b40;border-top:2px solid #c28d98}
.ebook-inline .dlg-done h2{font:500 1.9rem/1.15 var(--serif);margin:4px 0 8px}
.free-more{margin-top:18px;font-size:.92rem;color:var(--muted)}
@media (max-width:860px){.free-grid{grid-template-columns:1fr;gap:28px}.free-cover img{max-height:340px}.free-landing{padding:28px 0 56px}}

/* ---------- Share buttons ---------- */
.share-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:18px;font-size:.88rem}
.share-row .share-label{color:var(--muted)}
.share-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid #c9aab5;background:#fff;color:var(--green);border-radius:999px;padding:8px 14px;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;text-decoration:none}
.share-btn:hover{background:var(--cream)}
.book-card .share-btn{margin-top:10px;align-self:flex-start}

.free-cta{font-size:1.05rem;padding:16px 30px;min-height:56px;justify-content:center;margin:8px 0 10px}
.free-note{font-size:.9rem;color:var(--muted);margin:0 0 22px}
.free-cover{display:flex;flex-direction:column;align-items:center;gap:20px}
.free-cta-2{justify-content:center}
.req{color:#a4262c;font-weight:700}
.dlg-required{font-size:.82rem;color:var(--muted);margin:2px 0 8px}
@media (max-width:860px){
  .free-landing h1{font-size:2.1rem;margin:6px 0 14px}
  .free-cta{display:flex;width:100%}
  .free-cover{padding:24px}
}
