/**
 * Kinfolk page compositions. These classes belong to the sample articles and
 * Template Studio sections; extension-owned interfaces keep their own styling.
 */

/* Only the opt-in landing article escapes the normal reading column. */
.ts-shell:has(.kf-landing) {
    inline-size: 100%;
    max-inline-size: none;
    padding: 0;
}
.kf-landing .ts-article__body { max-inline-size: none; font-size: 1rem; }
.kf-landing .ts-article__layout--full { grid-template-columns: minmax(0, 1fr); }
.kf-landing .ts-article__header:has(> *) { margin-inline: var(--page-gutter); }
.kf-landing .ts-article__header:not(:has(> *)) { display: none; }
.kf-home, .ts-pages { min-inline-size: 0; }
.kf-home :where(h1, h2, h3, h4, p, figure), .ts-pages :where(h1, h2, h3, h4, p) { margin: 0; }
.kf-home :where(p, li) { max-inline-size: none; }
.kf-home :where(a) { color: inherit; text-decoration: none; }
.kf-home :where(h1, h2, h3, h4) { line-height: 1.08; font-family: var(--font-display); }
.kf-wrap, .ts-section__inner {
    inline-size: min(100%, var(--page-max));
    margin-inline: auto;
    padding-inline: var(--page-gutter);
}
.kf-section, .ts-section { padding-block: var(--ec-sect-y); min-inline-size: 0; }
.kf-button, .ts-page-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-block-size: 52px;
    padding: 14px 25px;
    border: 1px solid var(--color-accent);
    border-radius: var(--ec-btn-radius);
    background: var(--color-accent);
    color: var(--color-accent-ink);
    font: 600 .9375rem/1.35 var(--font-body);
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--dur-short), transform var(--dur-short), box-shadow var(--dur-short);
}
.kf-home .kf-button { color: var(--color-accent-ink); }
.kf-button-light, .kf-home .kf-button-light {
    background: var(--kf-citrus);
    border-color: var(--kf-citrus);
    color: var(--kf-citrus-ink);
}
.ts-page-btn--ghost { background: transparent; color: var(--color-ink); border-color: var(--color-rule-2); }
.ts-page-btn--oncontrast { background: var(--kf-citrus); color: var(--kf-citrus-ink); border-color: var(--kf-citrus); }
.kf-button:active, .ts-page-btn:active { transform: translateY(1px); }
.kf-button[aria-disabled="true"], .ts-page-btn[aria-disabled="true"], .ts-page-btn:disabled { opacity: .5; cursor: not-allowed; pointer-events: none; }
.ts-page-btn[data-state="loading"] { cursor: progress; }
.ts-page-btn[data-state="loading"]::before { content: ""; inline-size: 1rem; block-size: 1rem; border: 2px solid currentColor; border-inline-end-color: transparent; border-radius: 50%; animation: kinfolk-spin 700ms linear infinite; }
.ts-page-btn[data-state="error"] { color: var(--color-error); background: var(--color-error-soft); border-color: currentColor; }
.ts-page-btn[data-state="success"] { color: var(--color-success); background: var(--color-success-soft); border-color: currentColor; }
.kf-quiet-link, .kf-home .kf-quiet-link {
    display: inline-flex;
    min-block-size: 44px;
    align-items: center;
    color: inherit;
    font-size: .9375rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 5px;
    text-decoration-thickness: 1px;
}
.kf-eyebrow {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: .75rem;
    letter-spacing: .14em;
    line-height: 1.5;
    font-weight: 600;
}
.kf-little-star { color: var(--color-accent); font-size: 1.35rem; line-height: 1; }
.kf-hero {
    display: grid;
    grid-template-columns: 1.06fr 1fr;
    gap: 54px;
    align-items: center;
    padding-block: 57px 66px;
}
.kf-hero-copy, .kf-hero-art { min-inline-size: 0; }
.kf-home .kf-hero h1 {
    font-size: var(--text-display);
    letter-spacing: -.067em;
    margin-block-start: 24px;
    line-height: .98;
    text-wrap: initial;
    overflow-wrap: normal;
}
.kf-hero h1 em { font-family: var(--font-outlier); font-weight: 400; color: var(--color-accent); letter-spacing: -.07em; }
.kf-underlined { position: relative; isolation: isolate; white-space: nowrap; }
.kf-underlined::after { content: ""; position: absolute; inset-inline-start: 0; inset-block-end: .01em; block-size: .13em; inline-size: 100%; background: var(--kf-citrus); z-index: -1; transform: rotate(-1deg); }
.kf-hero .kf-hero-description { color: var(--color-neutral); font-size: 1.0625rem; line-height: 1.6; margin-block-start: 28px; }
.kf-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 27px; margin-block-start: 27px; }
.kf-hero-note { display: flex; gap: 15px; align-items: center; margin-block-start: 32px; }
.kf-initial-stack { display: flex; padding-inline-start: 4px; flex-shrink: 0; }
.kf-initial-stack span { inline-size: 35px; block-size: 35px; background: #d7dcf8; color: #20221f; border: 2px solid var(--color-paper); border-radius: 50%; display: grid; place-items: center; font-size: .75rem; font-weight: 600; margin-inline-start: -4px; }
.kf-initial-stack span:nth-child(2) { background: #ffd2bf; }
.kf-initial-stack span:nth-child(3) { background: var(--kf-citrus); }
.kf-initial-stack span:nth-child(4) { background: var(--color-accent); color: var(--color-accent-ink); font-size: 1rem; }
.kf-hero-note p { font-size: .875rem; line-height: 1.4; color: var(--color-muted); }
.kf-hero-note strong { font-weight: 600; color: var(--color-ink); }
.kf-hero-art { position: relative; padding-inline-end: 25px; padding-block-end: 32px; }
.kf-image-shape { block-size: 480px; border-radius: 10px; border-start-start-radius: 160px; overflow: hidden; background: var(--color-accent); }
.kf-home .kf-image-shape img { block-size: 100%; inline-size: 100%; object-fit: cover; object-position: 49% center; border-radius: 0; }
.kf-hero-sticker { position: absolute; inset-inline-start: -38px; inset-block-end: 69px; inline-size: 150px; block-size: 150px; border-radius: 50%; background: var(--kf-citrus); color: var(--kf-citrus-ink); transform: rotate(-11deg); display: flex; align-items: center; justify-content: center; flex-direction: column; text-align: center; box-shadow: 0 4px 0 #00000008; }
.kf-hero-sticker > span { font-size: 2.7rem; line-height: 1.1; margin-block-end: 7px; }
.kf-hero-sticker b { font-size: .875rem; line-height: 1.3; }
.kf-vertical-caption { position: absolute; right: 0; top: 60px; writing-mode: vertical-rl; font-size: .75rem; letter-spacing: .09em; font-weight: 600; }
[dir="rtl"] .kf-vertical-caption { right: auto; left: 0; }
.kf-image-caption { display: flex; flex-wrap: wrap; justify-content: space-between; padding-block-start: 14px; gap: 5px 10px; font-size: .75rem; letter-spacing: .025em; }
.kf-image-caption span:last-child { letter-spacing: 0; color: var(--color-muted); font-size: .8125rem; }
.kf-ribbon { overflow: hidden; background: var(--kf-citrus); color: var(--kf-citrus-ink); padding-block: 16px; }
.kf-ribbon > div { display: flex; align-items: center; justify-content: space-around; gap: 22px; min-inline-size: 1000px; font-family: var(--font-display); font-weight: 700; font-size: 1rem; letter-spacing: .03em; }
.kf-ribbon span { color: #293deb; font-size: 1.6rem; line-height: 1; }
.kf-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-block-end: 32px; }
.kf-section-heading h2 { font-size: 2.8rem; letter-spacing: -.04em; margin-block-start: 10px; }
.kf-stories { display: grid; grid-template-columns: 1.1fr 1.1fr .84fr; gap: 26px; }
.kf-story-card { min-inline-size: 0; }
.kf-story-image { block-size: 245px; position: relative; overflow: hidden; border-radius: var(--ec-img-radius); }
.kf-home .kf-story-image img { inline-size: 100%; block-size: 100%; object-fit: cover; border-radius: 0; transition: transform var(--dur-long); }
.kf-image-tag { position: absolute; inset-block-end: 15px; inset-inline-start: 15px; font-size: .75rem; letter-spacing: .045em; font-weight: 600; padding: 6px 9px; border-radius: 3px; background: var(--color-paper-2); color: var(--color-ink); }
.kf-story-meta { font-size: .75rem; letter-spacing: .01em; color: var(--color-muted); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 9px; margin-block-start: 20px; }
.kf-story-card h3 { font-size: 1.6rem; letter-spacing: -.035em; line-height: 1.17; margin-block-start: 12px; }
.kf-story-card p { font-size: .9375rem; color: var(--color-muted); margin-block-start: 10px; }
.kf-quote-card { background: var(--color-accent); color: var(--color-accent-ink); padding: 27px 27px 22px; border-radius: var(--ec-radius); display: flex; flex-direction: column; min-inline-size: 0; }
.kf-home .kf-quote-card { color: var(--color-accent-ink); }
.kf-quote-card > .kf-eyebrow { font-size: .75rem; letter-spacing: .08em; }
.kf-quote-mark { font-family: var(--font-outlier); font-size: 5.5rem; block-size: 73px; color: var(--kf-citrus); line-height: 1.25; }
.kf-quote-card h3 { font-size: 2.55rem; letter-spacing: -.045em; line-height: 1.1; color: inherit; }
.kf-quote-bottom { margin-block-start: auto; padding-block-start: 30px; font-size: .75rem; letter-spacing: .035em; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.kf-quote-bottom > span { font-size: 2rem; color: var(--kf-citrus); }
.kf-community-callout { background: var(--color-accent); color: var(--color-accent-ink); padding-block: 75px; }
.kf-community-callout > .kf-wrap { display: grid; grid-template-columns: 1.1fr 1fr; gap: 75px; align-items: center; }
.kf-community-callout h2 { font-size: 3.6rem; letter-spacing: -.045em; margin-block-start: 22px; color: inherit; }
.kf-community-callout h2 em { font-family: var(--font-outlier); font-weight: 400; color: var(--kf-citrus); }
.kf-community-callout p:not(.kf-eyebrow) { color: var(--kf-band-muted); margin-block-start: 24px; font-size: 1.0625rem; }
.kf-community-callout .kf-button { margin-block-start: 27px; }
.kf-circle-links { display: flex; flex-direction: column; gap: 10px; }
.kf-circle-links > a { display: flex; align-items: center; gap: 20px; border-block-end: 1px solid currentColor; border-color: color-mix(in srgb, currentColor 27%, transparent); padding-block: 23px; color: inherit; }
.kf-circle-icon { inline-size: 65px; block-size: 65px; display: grid; place-items: center; border-radius: 50%; background: var(--kf-lavender); color: var(--kf-citrus-ink); font-family: var(--font-display); font-size: 1.6rem; transition: transform var(--dur-short); flex-shrink: 0; }
.kf-circle-icon.orange, .kf-circle-icon.kf-orange { background: var(--kf-coral); font-size: 2.1rem; }
.kf-circle-icon.lime, .kf-circle-icon.kf-lime { background: var(--kf-citrus); }
.kf-circle-links strong { font-family: var(--font-display); font-size: 1.5rem; letter-spacing: -.02em; display: block; line-height: 1.2; }
.kf-circle-links small { display: block; font-size: .875rem; color: var(--kf-band-muted); margin-block-start: 3px; }
.kf-circle-count { margin-inline-start: auto; font-size: .875rem; color: var(--kf-band-muted); }
.kf-learn-strip { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; align-items: center; }
.kf-learn-strip h2 { font-size: 2.8rem; letter-spacing: -.04em; margin-block-start: 15px; }
.kf-learn-strip > div > p:last-child { margin-block-start: 18px; color: var(--color-muted); }
.kf-mini-course { border: 1px solid var(--color-rule); border-radius: var(--ec-radius); position: relative; padding: 38px; display: flex; gap: 30px; align-items: flex-start; background: var(--color-paper-3); color: var(--color-ink); text-decoration: none; transition: background-color var(--dur-short); }
.kf-course-number { font-family: var(--font-display); font-size: 2.6rem; color: var(--color-accent); line-height: 1; }
.kf-mini-course h3 { font-size: 2rem; margin-block: 13px 22px; letter-spacing: -.035em; }
.kf-course-meta { font-size: .875rem; color: var(--color-muted); }
.kf-course-type { position: absolute; right: 16px; top: 20px; font-size: .75rem; writing-mode: vertical-rl; letter-spacing: .1em; }
[dir="rtl"] .kf-course-type { right: auto; left: 16px; }
.kf-mini-course > div { min-inline-size: 0; padding-inline-end: 12px; }

/* Article-sized learning sections also work without the landing composition. */
.kf-featured-class { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border-radius: var(--radius-lg); background: var(--color-accent); color: var(--color-accent-ink); }
.ts-article__body > p + .kf-learning { margin-block-start: 2rem; }
.kf-featured-class > img { inline-size: 100%; block-size: 100%; min-block-size: 460px; object-fit: cover; object-position: 40% center; border-radius: 0; }
.kf-featured-class > div { padding: 45px; min-inline-size: 0; }
.kf-featured-class h2 { font-size: clamp(2rem, 3.5vw, 3.5rem); letter-spacing: -.045em; margin-block-start: 25px; color: inherit; }
.kf-featured-class p:not(.kf-eyebrow) { margin-block-start: 22px; font-size: 1.0625rem; color: var(--kf-band-muted); }
.kf-class-facts { display: flex; gap: 19px; flex-wrap: wrap; font-size: .875rem; margin-block: 25px; }
.kf-class-facts span + span::before { content: "·"; margin-inline-end: 19px; }
.kf-curriculum-title { margin-block-start: 62px; }
.kf-lesson-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.kf-lesson-card { display: flex; flex-direction: column; align-items: flex-start; text-align: start; padding: 27px; border: 1px solid var(--color-rule); border-radius: var(--ec-radius); background: transparent; color: var(--color-ink); min-block-size: 270px; text-decoration: none; }
.kf-lesson-index { font-family: var(--font-display); font-size: 2.4rem; color: var(--color-accent); line-height: 1; margin-block-end: 30px; }
.kf-lesson-card h3 { font-size: 1.6rem; line-height: 1.16; letter-spacing: -.035em; }
.kf-lesson-card p { margin-block-start: 13px; font-size: .9375rem; color: var(--color-muted); }
.kf-lesson-open { margin-block-start: auto; padding-block-start: 24px; font-size: .875rem; color: var(--color-accent); }
.kf-editorial-note { margin-block-start: 70px; padding: 40px; border-block: 1px solid var(--color-rule); display: flex; align-items: center; gap: 30px; }
.kf-editorial-note > span { font-size: 4rem; color: var(--color-accent); line-height: 1; }
.kf-editorial-note p { font-size: 1.4rem; line-height: 1.5; }
.kf-editorial-note > .kf-quiet-link { margin-inline-start: auto; flex-shrink: 0; }
.kf-learn-page { max-inline-size: none; }
.ts-article:has(.kf-featured-class) .ts-article__body { max-inline-size: none; }
.ts-article:has(.kf-featured-class) .ts-article__layout--full { grid-template-columns: minmax(0, 1fr); }

/* Existing Template Studio sections take the same editorial visual language. */
.ts-tone-dark { background: #20221f; color: #fefef9; }
.ts-tone-accent { background: var(--color-accent); color: var(--color-accent-ink); }
.ts-tone-dark :where(h1, h2, h3, h4, p, a), .ts-tone-accent :where(h1, h2, h3, h4, p, a) { color: inherit; }
.ts-hero-sec .ts-section__inner { display: grid; grid-template-columns: 1.06fr 1fr; gap: clamp(2rem, 4vw, 4rem); align-items: center; }
.ts-hero-sec__copy, .ts-hero-sec__media { min-inline-size: 0; }
.ts-hero-sec__eyebrow { font-size: .75rem; letter-spacing: .14em; font-weight: 600; text-transform: uppercase; }
.ts-hero-sec__title { max-inline-size: 15ch; margin-block-start: 24px; font-size: var(--text-display); letter-spacing: -.055em; line-height: .98; }
.ts-hero-sec__subtitle { max-inline-size: 45ch; margin-block-start: 28px; color: var(--color-neutral); font-size: 1.125rem; line-height: 1.6; }
.ts-hero-sec__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-block-start: 28px; }
.ts-hero-sec__media { min-block-size: 400px; border-radius: 10px; border-start-start-radius: 130px; overflow: hidden; background-color: var(--color-accent-soft); background-position: center; background-size: cover; }
.ts-hero-sec__media > img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.ts-features__head, .ts-stats__head, .ts-testimonials__head, .ts-faq__head, .ts-modules__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-block-end: 32px; }
.ts-features__heading, .ts-stats__heading, .ts-testimonials__heading, .ts-faq__heading, .ts-modules__heading, .ts-showcase__heading { font-size: clamp(2.2rem, 4vw, 2.8rem); max-inline-size: 20ch; line-height: 1.08; }
.ts-features__sub, .ts-faq__intro, .ts-showcase__sub { max-inline-size: 46ch; color: var(--color-neutral); }
.ts-features__grid, .ts-modules__body { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ec-grid-gap); }
.ts-feature { display: grid; align-content: start; gap: 16px; padding: 30px; border: 1px solid var(--color-rule); border-radius: var(--ec-radius); background: var(--color-paper-2); color: var(--color-ink); }
.ts-feature__num { font-family: var(--font-display); color: var(--color-accent); font-size: 2rem; font-weight: 600; }
.ts-feature__title { font-size: 1.6rem; max-inline-size: 20ch; line-height: 1.15; }
.ts-feature__text { color: var(--color-neutral); line-height: 1.6; }
.ts-process { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: kinfolk-step; }
.ts-process__step { counter-increment: kinfolk-step; display: grid; grid-template-columns: 3.5rem 1fr 1fr; gap: 24px; padding-block: 30px; border-block-start: 1px solid var(--color-rule); }
.ts-process__step::before { content: counter(kinfolk-step, decimal-leading-zero); font-family: var(--font-display); color: var(--color-accent); font-size: 1.5rem; }
.ts-process__step h3 { font-size: 1.6rem; }
.ts-process__step p { color: var(--color-neutral); }
.ts-stats__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.ts-stat { display: grid; gap: 12px; padding-block: 28px; border-block-start: 1px solid currentColor; }
.ts-stat__value { font-family: var(--font-display); font-size: clamp(2.5rem, 4vw, 4rem); font-weight: 700; line-height: 1; color: var(--color-accent); }
.ts-stat__label { color: var(--color-neutral); }
.ts-testimonials__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ec-grid-gap); }
.ts-testimonial { display: flex; flex-direction: column; gap: 24px; margin: 0; padding: 30px; border-radius: var(--ec-radius); background: var(--color-accent); color: var(--color-accent-ink); }
.ts-testimonial__quote { font-family: var(--font-display); font-size: 1.8rem; font-weight: 600; line-height: 1.25; font-style: normal; color: inherit; }
.ts-testimonial__by { display: grid; gap: 4px; margin-block-start: auto; }
.ts-testimonial__author { font-size: .875rem; font-weight: 600; }
.ts-testimonial__role { font-size: .875rem; color: var(--kf-band-muted); }
.ts-faq__list { border-block-start: 1px solid var(--color-rule); }
.ts-faq__item { border-block-end: 1px solid var(--color-rule); }
.ts-faq__q { display: flex; min-block-size: 60px; align-items: center; justify-content: space-between; gap: 24px; padding-block: 20px; font-family: var(--font-display); font-weight: 600; font-size: 1.25rem; list-style: none; cursor: pointer; }
.ts-faq__q::-webkit-details-marker { display: none; }
.ts-faq__glyph { position: relative; inline-size: 20px; block-size: 20px; flex-shrink: 0; }
.ts-faq__glyph::before, .ts-faq__glyph::after { content: ""; position: absolute; inset: 50% 0 auto; block-size: 2px; background: var(--color-accent); transform: translateY(-50%); }
.ts-faq__glyph::after { transform: translateY(-50%) rotate(90deg); }
.ts-faq__item[open] .ts-faq__glyph::after { display: none; }
.ts-faq__a { max-inline-size: var(--measure); padding-block-end: 24px; color: var(--color-neutral); }
.ts-cta-sec { background: var(--color-accent); color: var(--color-accent-ink); }
.ts-cta-sec .ts-section__inner { display: grid; grid-template-columns: 1.3fr 1fr; gap: 32px; align-items: center; }
.ts-cta-sec__eyebrow { font-size: .75rem; letter-spacing: .14em; }
.ts-cta-sec__title { max-inline-size: 20ch; font-size: clamp(2.5rem, 4vw, 3.6rem); margin-block-start: 16px; color: inherit; }
.ts-cta-sec__body { max-inline-size: 48ch; margin-block-start: 24px; color: var(--kf-band-muted); font-size: 1.125rem; }
.ts-cta-sec__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 16px; }
.ts-cta-sec__actions .ts-page-btn { background: var(--kf-citrus); color: var(--kf-citrus-ink); border-color: var(--kf-citrus); }
.ts-richtext-sec__body { max-inline-size: var(--measure); color: var(--color-neutral); font-size: 1.125rem; line-height: 1.75; }
.ts-richtext-sec__body p + p { margin-block-start: 24px; }
.ts-richtext-sec--narrow .ts-richtext-sec__body { max-inline-size: 58ch; }
.ts-richtext-sec--wide .ts-richtext-sec__body { max-inline-size: 75ch; }
.ts-trust--bordered { border-block: 1px solid var(--color-rule); }
.ts-trust__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.ts-trust__item { display: inline-flex; align-items: center; gap: 10px; min-block-size: 44px; font-size: .875rem; font-weight: 600; }
.ts-trust__icon { color: var(--color-accent); }
.ts-showcase__sub { margin-block-start: 16px; }
.ts-showcase__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ec-grid-gap); margin-block-start: 32px; }
.ts-showcase__card { display: flex; flex-direction: column; gap: 20px; min-inline-size: 0; color: inherit; text-decoration: none; }
.ts-showcase__media { aspect-ratio: 4 / 3; border-radius: var(--ec-img-radius); background: var(--color-paper-3) center / cover; }
.ts-showcase__text { display: grid; gap: 12px; align-content: start; }
.ts-showcase__name { color: var(--color-ink); font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; line-height: 1.17; }
.ts-showcase__blurb { color: var(--color-neutral); }
.ts-showcase__cta { display: inline-flex; align-items: center; gap: 8px; min-block-size: 44px; color: var(--color-accent); font-size: .875rem; font-weight: 600; }
.ts-showcase__arrow { transition: transform var(--dur-short); }
.ts-tone-dark .ts-stat__value, .ts-tone-accent .ts-stat__value { color: var(--kf-citrus); }
.ts-tone-dark .ts-stat__label, .ts-tone-accent .ts-stat__label { color: inherit; }

@media (hover: hover) and (pointer: fine) {
    .kf-button:hover, .ts-page-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 0 color-mix(in srgb, var(--color-ink) 12%, transparent); }
    .kf-home .kf-quiet-link:hover, .kf-quiet-link:hover { color: var(--color-accent); }
    .kf-story-card:hover img { transform: scale(1.035); }
    .kf-circle-links > a:hover .kf-circle-icon { transform: rotate(-10deg); }
    .kf-mini-course:hover { background: var(--color-accent-soft); }
    .kf-lesson-card:hover { border-color: var(--color-accent); background: var(--color-accent-soft); }
    .ts-showcase__card:hover .ts-showcase__arrow { transform: translateX(4px); }
}
@media (min-width: 100rem) {
    .kf-home .kf-hero h1 { font-size: 6.8rem; }
    .kf-image-shape { block-size: 530px; }
}
@media (max-width: 68.75rem) {
    .kf-hero { gap: 35px; }
    .kf-home .kf-hero h1 { font-size: 5rem; }
    .kf-image-shape { block-size: 430px; }
    .kf-hero-actions { gap: 18px; }
    .kf-hero-sticker { inset-inline-start: -20px; inline-size: 130px; block-size: 130px; }
    .kf-stories { gap: 20px; }
    .kf-quote-card { padding: 22px; }
    .kf-quote-card h3 { font-size: 2.15rem; }
    .kf-community-callout > .kf-wrap { gap: 40px; }
    .kf-community-callout h2 { font-size: 3rem; }
    .kf-circle-links strong { font-size: 1.3rem; }
    .kf-learn-strip { gap: 35px; }
    .kf-mini-course { padding: 30px; gap: 20px; }
    .kf-mini-course h3 { font-size: 1.75rem; }
    .kf-featured-class > div { padding: 35px; }
    .kf-lesson-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kf-lesson-card { min-block-size: 230px; }
    .ts-features__grid, .ts-testimonials__grid, .ts-showcase__grid, .ts-modules__body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 50rem) {
    .kf-hero { gap: 30px; padding-block: 38px 40px; }
    .kf-home .kf-hero h1 { font-size: clamp(3.7rem, 7.8vw, 5rem); }
    .kf-hero-description br { display: none; }
    .kf-hero .kf-hero-description { font-size: 1rem; }
    .kf-hero-actions { flex-direction: column; align-items: flex-start; gap: 17px; }
    .kf-image-shape { block-size: 440px; border-start-start-radius: 100px; }
    .kf-hero-art { padding-inline-end: 22px; }
    .kf-hero-sticker { inline-size: 114px; block-size: 114px; inset-inline-start: -14px; inset-block-end: 80px; }
    .kf-hero-sticker b { font-size: .75rem; }
    .kf-hero-sticker > span { font-size: 2rem; }
    .kf-image-caption { flex-direction: column; gap: 3px; }
    .kf-stories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kf-quote-card { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 30px; }
    .kf-quote-card h3 { font-size: 2.5rem; grid-row: 1 / 4; grid-column: 2; }
    .kf-quote-card h3 br { display: none; }
    .kf-quote-bottom { padding: 0; }
    .kf-quote-mark { block-size: 45px; font-size: 5rem; }
    .kf-section-heading h2 { font-size: 2.2rem; }
    .kf-community-callout { padding-block: 50px; }
    .kf-community-callout > .kf-wrap { grid-template-columns: minmax(0, 1fr); gap: 25px; }
    .kf-circle-links > a { padding-block: 17px; }
    .kf-community-callout h2 { font-size: 2.8rem; }
    .kf-learn-strip { grid-template-columns: minmax(0, 1fr); gap: 30px; }
    .kf-learn-strip h2 { font-size: 2.4rem; }
    .kf-featured-class > div { padding: 28px; }
    .kf-featured-class p:not(.kf-eyebrow) { font-size: 1rem; }
    .kf-featured-class > img { min-block-size: 450px; }
    .kf-class-facts { gap: 8px; font-size: .8125rem; }
    .kf-class-facts span + span::before { margin-inline-end: 8px; }
    .kf-editorial-note { padding: 30px 0; gap: 23px; }
    .kf-editorial-note p { font-size: 1.15rem; }
    .kf-editorial-note > span { font-size: 3rem; }
    .ts-hero-sec .ts-section__inner, .ts-cta-sec .ts-section__inner { grid-template-columns: minmax(0, 1fr); }
    .ts-hero-sec__media { min-block-size: 360px; }
    .ts-cta-sec__actions { justify-content: flex-start; }
    .ts-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ts-process__step { grid-template-columns: 3rem 1fr; }
    .ts-process__step > * { grid-column: 2; }
}
@media (max-width: 35.625rem) {
    .kf-hero { grid-template-columns: minmax(0, 1fr); gap: 38px; }
    .kf-home .kf-hero h1 { font-size: clamp(3.25rem, 13.6vw, 5.8rem); }
    .kf-hero .kf-hero-description { max-inline-size: 330px; }
    .kf-hero-actions { flex-direction: row; align-items: center; gap: 12px 23px; }
    .kf-hero-actions .kf-button { padding-inline: 20px; }
    .kf-hero-actions .kf-quiet-link { font-size: .875rem; }
    .kf-hero-note { margin-block-start: 25px; }
    .kf-hero-art { margin-inline-start: 15px; padding-inline-end: 22px; }
    .kf-image-shape { block-size: 355px; border-start-start-radius: 110px; }
    .kf-image-caption { flex-direction: row; font-size: .75rem; }
    .kf-image-caption span:last-child { font-size: .75rem; }
    .kf-hero-sticker { inset-block-end: 64px; inset-inline-start: -20px; inline-size: 123px; block-size: 123px; }
    .kf-stories { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    .kf-story-image { block-size: 265px; }
    .kf-quote-card { grid-column: auto; display: flex; min-block-size: 310px; }
    .kf-quote-card h3 { max-inline-size: 280px; font-size: 2.8rem; }
    .kf-quote-mark { block-size: 65px; }
    .kf-quote-bottom { padding-block-start: 25px; }
    .kf-section-heading { gap: 15px; align-items: flex-start; }
    .kf-section-heading h2 { font-size: 2.15rem; }
    .kf-section-heading > .kf-quiet-link { flex-shrink: 0; margin-block-start: 30px; font-size: .8125rem; }
    .kf-community-callout h2 { font-size: 2.55rem; }
    .kf-community-callout p:not(.kf-eyebrow) { font-size: 1rem; }
    .kf-community-callout p br { display: none; }
    .kf-circle-links > a { gap: 15px; }
    .kf-circle-icon { inline-size: 55px; block-size: 55px; }
    .kf-circle-links strong { font-size: 1.3rem; }
    .kf-circle-links small { font-size: .8125rem; }
    .kf-learn-strip h2 { font-size: 2.2rem; }
    .kf-mini-course { padding: 27px 22px; gap: 18px; }
    .kf-mini-course h3 { font-size: 1.7rem; }
    .kf-mini-course .kf-eyebrow { font-size: .75rem; letter-spacing: .08em; }
    .kf-course-type { right: 8px; }
    [dir="rtl"] .kf-course-type { left: 8px; right: auto; }
    .kf-course-number { font-size: 2.2rem; }
    .kf-featured-class { grid-template-columns: minmax(0, 1fr); }
    .kf-featured-class > img { min-block-size: 0; block-size: 250px; }
    .kf-featured-class h2 { font-size: 2.6rem; }
    .kf-featured-class > div { padding: 30px 25px; }
    .kf-lesson-grid { gap: 12px; }
    .kf-lesson-card { padding: 20px 17px; min-block-size: 245px; }
    .kf-lesson-card h3 { font-size: 1.3rem; }
    .kf-curriculum-title { align-items: flex-start; flex-direction: column; margin-block-start: 45px; gap: 12px; }
    .kf-editorial-note { margin-block-start: 45px; flex-wrap: wrap; gap: 18px; }
    .kf-editorial-note > .kf-quiet-link { margin-inline-start: 65px; }
    .kf-editorial-note p { font-size: 1.05rem; }
    .ts-features__grid, .ts-testimonials__grid, .ts-showcase__grid, .ts-modules__body { grid-template-columns: minmax(0, 1fr); }
    .ts-feature, .ts-testimonial { padding: 25px; }
}
@media (max-width: 22rem) {
    .kf-home .kf-hero h1 { font-size: 3rem; }
    .kf-lesson-grid { grid-template-columns: minmax(0, 1fr); }
    .kf-circle-count { display: none; }
}
[dir="rtl"] .kf-hero-sticker { transform: rotate(11deg); }
[dir="rtl"] .kf-underlined::after { transform: rotate(1deg); }
[dir="rtl"] .ts-showcase__arrow { transform: scaleX(-1); }
[data-color-scheme="dark"] .kf-community-callout h2 em,
[data-color-scheme="dark"] .kf-quote-mark,
[data-color-scheme="dark"] .kf-quote-bottom > span { color: var(--color-accent-ink); }
@media (prefers-reduced-motion: reduce) {
    .kf-home *, .kf-home *::before, .kf-home *::after,
    .ts-page-btn, .ts-page-btn::before, .ts-showcase__arrow { animation: none; transition: none; }
}

/* Kinfolk Neighbourhood: editable editorial sections around real community modules. */
.kf-neighbourhood .kf-hero { padding-block: clamp(38px, 5vw, 76px); gap: clamp(32px, 5vw, 76px); }
.kf-home.kf-neighbourhood .kf-hero h1 { font-size: clamp(3.6rem, 5.65vw, 6.4rem); line-height: 1.02; letter-spacing: -.06em; }
.kf-neighbourhood .kf-hero-description { max-inline-size: 45ch; font-size: 1.08rem; line-height: 1.7; }
.kf-neighbourhood .kf-image-shape { block-size: clamp(340px, 34vw, 490px); border-start-start-radius: 130px; border-end-end-radius: 62px; }
.kf-neighbourhood .kf-image-shape img { object-position: 53% center; }
.kf-open-dot { flex: 0 0 9px; block-size: 9px; border-radius: 50%; background: var(--color-accent); box-shadow: 0 0 0 5px var(--color-accent-soft); }
.kf-note-doodle { font-size: 2.6rem; line-height: 1; color: var(--color-accent); transform: rotate(12deg); }
.kf-image-caption a { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.kf-neighbourhood .kf-hero-sticker { inline-size: 137px; block-size: 137px; inset-inline-start: -25px; inset-block-end: 66px; }
.kf-avenues { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding-block: 32px; border-block-end: 1px solid var(--color-rule); }
.kf-avenues > a { display: grid; grid-template-columns: 36px 1fr 16px; align-items: center; gap: 13px; padding: 20px; border-inline-end: 1px solid var(--color-rule); transition: background-color .2s; min-inline-size: 0; }
.kf-avenues > a:first-child { padding-inline-start: 0; }
.kf-avenues > a:last-child { border: 0; }
.kf-avenues > a:hover { background: var(--color-accent-soft); }
.kf-avenue-icon { font: 2.3rem/1 var(--font-display); color: var(--color-accent); }
.kf-avenues strong { display: block; font-size: .98rem; line-height: 1.35; }
.kf-avenues small { display: block; color: var(--color-muted); font-size: .8rem; line-height: 1.4; margin-block-start: 5px; }
.kf-avenue-arrow { align-self: start; color: var(--color-accent); }
.kf-live-section:not(:has(.kf-live-slot > *)), .kf-community-grid:not(:has(.kf-live-slot > *)) { display: none; }
.kf-live-slot { min-inline-size: 0; }
.kf-live-slot > :first-child { margin-block-start: 0; }
.kf-live-slot > :last-child { margin-block-end: 0; }
.kf-pulse-strip { padding-block: 26px 0; }
.kf-pulse-strip .ts-pulse { background: transparent; border: 0; }
.kf-community-grid { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(280px, 1fr); gap: clamp(28px, 5vw, 72px); padding-block: 72px; align-items: start; }
.kf-community-grid:has(> :first-child .kf-live-slot:empty) { grid-template-columns: 1fr; }
.kf-community-grid:not(:has(> :last-child .kf-live-slot > *)) { grid-template-columns: 1fr; }
.kf-neighbourhood .kf-section-heading { margin-block-end: 30px; gap: 28px; }
.kf-neighbourhood .kf-section-heading h2 { font-size: clamp(2rem, 3.25vw, 3.05rem); max-inline-size: none; letter-spacing: -.045em; margin-block-start: 12px; }
.kf-section-description { margin-block-start: 16px !important; max-inline-size: 54ch !important; font-size: 1rem; line-height: 1.6; color: var(--color-muted); }
.kf-poll-panel { position: relative; padding: 30px; background: var(--kf-citrus); color: var(--kf-citrus-ink); border-radius: 8px 8px 55px 8px; overflow: hidden; }
.kf-poll-panel .kf-section-heading { margin-block-end: 18px; }
.kf-poll-panel .kf-eyebrow { font-size: .65rem; letter-spacing: .11em; }
.kf-panel-intro { font-size: .94rem; line-height: 1.65; margin-block-end: 24px !important; }
.kf-panel-spark { display: block; text-align: end; font-size: 3rem; margin-block-start: 22px; }
.kf-circles-band { padding-block: 66px; background: var(--color-accent); color: var(--color-accent-ink); }
.kf-circles-band .kf-section-description { color: inherit; opacity: .85; }
.kf-neighbourhood .kf-circles-band h2, .kf-neighbourhood .kf-join-band h2 { color: inherit; }
.kf-circles-band .kf-live-slot { color: var(--color-ink); }
.kf-circles-band .sgroups-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 25px !important; }
.kf-circles-band .sgroup-card__cover { height: 205px !important; }
.kf-circles-band .sgroup-card__body { padding: 23px !important; }
.kf-circles-band .sgroup-card__name { white-space: normal !important; font: 600 1.45rem/1.25 var(--font-display) !important; margin-block-end: 12px; }
.kf-circles-band .mod-sociable-groups__view-all { color: var(--color-accent-ink) !important; margin-block-start: 24px !important; }
.kf-circles-band .mod-sociable-groups__view-all:hover { background: #ffffff18 !important; }
.kf-gatherings { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 7vw, 100px); padding-block: 80px; align-items: center; }
.kf-gatherings-story h2 { font-size: clamp(2.6rem, 4.3vw, 4.25rem); letter-spacing: -.05em; margin-block: 20px; }
.kf-gatherings-story h2 em { font-family: var(--font-outlier); font-weight: 400; color: var(--color-accent); }
.kf-gatherings-story > p:not(.kf-eyebrow) { color: var(--color-muted); line-height: 1.7; max-inline-size: 43ch; }
.kf-gathering-image { display: block; margin-block-start: 30px; position: relative; }
.kf-gathering-image img { display: block; inline-size: 100%; block-size: 240px; object-fit: cover; border-radius: 8px 80px 8px 8px; }
.kf-gathering-image > span { position: absolute; inset: auto 15px 15px; display: flex; justify-content: space-between; padding: 12px 16px; background: var(--color-paper); border-radius: 4px; font-size: .72rem; letter-spacing: .06em; }
.kf-gatherings-events > .kf-eyebrow { padding-block-end: 20px; border-block-end: 1px solid var(--color-rule); margin-block-end: 22px; }
.kf-gatherings .ts-event { padding-block: 25px; }
.kf-gatherings .ts-event__title { font-family: var(--font-display); font-size: 1.35rem; line-height: 1.25; letter-spacing: -.025em; }
.kf-gatherings .ts-event__date { background: var(--color-accent-soft); color: var(--color-accent); padding: 12px; border-radius: 6px; min-inline-size: 70px; }
.kf-people-section { padding-block: 15px 70px; }
.kf-journal-section { border-block-start: 1px solid var(--color-rule); }
.kf-neighbourhood .kf-stories { grid-template-columns: 1fr 1fr .83fr; align-items: stretch; gap: 26px; }
.kf-story-read { display: flex; justify-content: space-between; font-weight: 600; font-size: .87rem; margin-block-start: 20px; }
.kf-thought-panel { display: flex; flex-direction: column; min-inline-size: 0; background: #e8e0fb; color: #292136; border-radius: 8px; padding: 30px; }
.kf-thought-panel .kf-eyebrow { font-size: .65rem; letter-spacing: .12em; }
.kf-quote-mark { display: block; font-family: Georgia, serif; font-size: 5rem; line-height: 1; margin-block-start: 30px; color: #61449a; }
.kf-thought-panel blockquote { border: 0; padding: 0; margin: 0; font: 500 clamp(1.7rem, 2.2vw, 2.3rem)/1.12 var(--font-display); letter-spacing: -.045em; color: inherit; }
.kf-thought-credit { margin-block-start: 24px !important; font-size: .65rem; letter-spacing: .1em; }
.kf-thought-link { display: flex; justify-content: space-between; gap: 20px; margin-block-start: auto; padding-block-start: 34px; font-size: .8rem; font-weight: 600; }
.kf-thought-panel:has(.kf-live-slot > *) .kf-thought-fallback { display: none; }
.kf-thought-panel .cq-module-quote-text { font-family: var(--font-display); }
.kf-help-grid { padding-block-start: 0; }
.kf-recognition { padding: 32px; border: 1px solid var(--color-rule); border-radius: 8px; background: var(--color-paper-2); }
.kf-recognition .kf-section-heading h2 { font-size: 2.3rem; }
.kf-recognition .kf-panel-intro { color: var(--color-muted); }
.kf-recognition .ts-leaders { margin-block-start: 20px; }
.kf-join-band { background: var(--color-accent); color: var(--color-accent-ink); padding-block: 64px; }
.kf-join-band > .kf-wrap { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.kf-join-spark { color: var(--kf-citrus); font-size: clamp(5rem, 10vw, 9rem); line-height: 1; }
.kf-join-band h2 { font-size: clamp(2rem, 3.5vw, 3.3rem); letter-spacing: -.045em; margin-block-start: 16px; }
.kf-join-band h2 em { font: italic 400 1.13em/1 var(--font-outlier); color: var(--kf-citrus); }
.kf-join-band .kf-button { flex-shrink: 0; }
.kf-neighbourhood .ts-thread { padding-block: 23px; border-block-end: 1px solid var(--color-rule); }
.kf-neighbourhood .ts-thread__title { font-family: var(--font-display); font-size: 1.2rem; font-weight: 600; letter-spacing: -.02em; }
.kf-neighbourhood :where(.ts-more, .ts-sec__more) { display: inline-flex; margin-block-start: 18px; font-weight: 600; color: var(--color-accent); }
.kf-community-page :where(p, h2, h3) { margin-block-start: 0; }
.kf-community-intro { font: 400 clamp(1.3rem, 2.6vw, 2rem)/1.4 var(--font-display); max-inline-size: 44ch; }
.kf-welcome-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-block: 55px; }
.kf-welcome-grid > section { padding-block-start: 25px; border-block-start: 1px solid var(--color-rule); min-inline-size: 0; }
.kf-welcome-number { font: 400 1.7rem/1 var(--font-outlier); color: var(--color-accent); }
.kf-welcome-grid h2 { font-size: 1.8rem; margin-block: 20px 16px; }
.kf-welcome-grid p { color: var(--color-muted); }
.kf-welcome-grid .kf-live-slot { margin-block-start: 24px; }
.kf-community-values { display: flex; gap: 30px; padding: 36px; background: var(--color-accent-soft); border-radius: 8px; }
.kf-community-values > span { font-size: 4rem; color: var(--color-accent); }
.kf-community-values h2 { font-size: 2rem; }
.kf-community-values .kf-button { margin-block-start: 15px; }
.ts-article:has(.kf-community-page) .ts-article__body { max-inline-size: none; }
[data-color-scheme="dark"] .kf-thought-panel { background: #302642; color: #f0e7ff; }
[data-color-scheme="dark"] .kf-thought-panel .kf-quote-mark { color: #c5a9ff; }
[data-color-scheme="dark"] .kf-poll-panel { background: var(--color-paper-2); color: var(--color-ink); border: 1px solid var(--color-rule); }
[data-color-scheme="dark"] .kf-poll-panel .kf-panel-spark { color: var(--color-accent); }
@media (max-width: 1050px) {
    .kf-avenues { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kf-avenues > a { padding: 20px; }
    .kf-avenues > a:nth-child(2) { border: 0; }
    .kf-avenues > a:first-child { padding-inline-start: 20px; }
    .kf-community-grid { gap: 30px; grid-template-columns: minmax(0, 1.4fr) minmax(270px, 1fr); }
    .kf-gatherings { gap: 36px; }
    .kf-neighbourhood .kf-stories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kf-thought-panel { grid-column: 1 / -1; min-block-size: 280px; }
    .kf-thought-panel blockquote { max-inline-size: 27ch; }
    .kf-join-spark { display: none; }
}
@media (max-width: 760px) {
    .kf-neighbourhood .kf-hero { grid-template-columns: 1fr; gap: 45px; padding-block: 36px 42px; }
    .kf-home.kf-neighbourhood .kf-hero h1 { font-size: clamp(3.5rem, 11vw, 5rem); }
    .kf-neighbourhood .kf-image-shape { block-size: 350px; border-start-start-radius: 95px; }
    .kf-neighbourhood .kf-hero-art { padding-inline: 15px; }
    .kf-neighbourhood .kf-hero-sticker { inset-inline-start: 0; inset-block-end: 86px; inline-size: 112px; block-size: 112px; }
    .kf-neighbourhood .kf-hero-sticker > span { font-size: 2rem; }
    .kf-neighbourhood .kf-hero-sticker b { font-size: .8rem; }
    .kf-community-grid, .kf-gatherings, .kf-welcome-grid { grid-template-columns: 1fr; }
    .kf-circles-band .sgroups-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
    .kf-community-grid, .kf-gatherings, .kf-circles-band { padding-block: 45px; }
    .kf-people-section { padding-block: 0 45px; }
    .kf-neighbourhood .kf-section-heading { align-items: start; flex-direction: column; gap: 15px; }
    .kf-neighbourhood .kf-stories { grid-template-columns: 1fr; gap: 36px; }
    .kf-thought-panel { grid-column: auto; }
    .kf-gathering-image img { block-size: 230px; }
    .kf-gatherings-story h2 { font-size: 3rem; }
    .kf-join-band { padding-block: 45px; }
    .kf-join-band > .kf-wrap { align-items: start; flex-direction: column; gap: 25px; }
    .kf-community-values { padding: 25px; gap: 16px; flex-direction: column; }
}
@media (max-width: 460px) {
    .kf-avenues { padding-block: 15px; }
    .kf-avenues > a, .kf-avenues > a:first-child { grid-template-columns: 24px 1fr; gap: 8px; padding: 16px 10px; }
    .kf-avenues strong { font-size: .83rem; }
    .kf-avenues small { font-size: .73rem; }
    .kf-avenue-icon { font-size: 1.9rem; }
    .kf-avenue-arrow { display: none; }
    .kf-neighbourhood .kf-image-shape { block-size: 295px; }
    .kf-image-caption { gap: 12px; font-size: .62rem; }
    .kf-poll-panel, .kf-recognition { padding: 25px; }
}
