/* Reusable document components. Page-specific documents should combine these classes instead of embedding style tags. */
.ks-prose { max-width: 900px; font-size: 1.0625rem; line-height: 1.9; }
.ks-prose > :first-child { margin-top: 0; }
.ks-prose h3, .ks-prose h4 { font-family: var(--ks-font-heading); line-height: 1.45; letter-spacing: -.025em; }
.ks-prose h3 { margin: 2.6em 0 .8em; font-size: clamp(1.45rem,3vw,2rem); }
.ks-prose h4 { margin: 2em 0 .6em; font-size: 1.2rem; }
.ks-prose p { margin: 0 0 1.25em; }
.ks-prose ul, .ks-prose ol { padding-left: 1.5em; }
.ks-content-hero { margin-bottom: 44px; padding: clamp(30px,5vw,56px); border-top: 4px solid var(--ks-primary); background: #f4f7f9; }
.ks-content-hero__eyebrow { margin: 0 0 10px; color: var(--ks-primary-strong); font-weight: 700; }
.ks-content-hero__title { max-width: 820px; margin: 0; font-family: var(--ks-font-heading); font-size: clamp(2rem,5vw,3.4rem); line-height: 1.3; letter-spacing: -.045em; }
.ks-content-hero__intro { max-width: 760px; margin: 20px 0 0; color: var(--ks-muted); font-size: 1.1rem; }
.ks-signature { display: flex; align-items: baseline; gap: 10px; margin-top: 24px; }
.ks-signature span { color: var(--ks-muted); }
.ks-signature strong { color: var(--ks-primary-strong); font-size: 1.2rem; }
.ks-section { margin-block: 42px; }
.ks-section__title { margin: 0 0 18px; font-family: var(--ks-font-heading); font-size: clamp(1.4rem,3vw,1.85rem); }
.ks-feature-list { display: grid; gap: 1px; margin: 22px 0; padding: 0; border: 1px solid var(--ks-line); background: var(--ks-line); list-style: none; }
.ks-feature-list li { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 20px; padding: 22px; background: #fff; }
.ks-feature-list__number { display: grid; place-items: center; align-self: start; width: 48px; height: 48px; border-radius: 50%; background: var(--ks-soft); color: var(--ks-primary-strong); font-weight: 800; }
.ks-feature-list strong { display: block; margin-bottom: 5px; font-size: 1.1rem; }
.ks-feature-list p { margin: 0; color: var(--ks-muted); }
.ks-callout { margin-block: 36px; padding: 24px 26px; border-left: 5px solid var(--ks-primary); background: #f7f9fa; }
.ks-callout > :first-child { margin-top: 0; }
.ks-callout > :last-child { margin-bottom: 0; }
.ks-info-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid var(--ks-line); background: var(--ks-line); }
.ks-info-grid > div { padding: 20px; background: #fff; }
.ks-info-grid dt { color: var(--ks-muted); font-size: .875rem; font-weight: 700; }
.ks-info-grid dd { margin: 5px 0 0; }
.ks-map { width: 100%; min-height: 280px; margin-top: 28px; overflow: hidden; border: 1px solid var(--ks-line); background: #f2f5f7; }
.ks-empty-guide { padding: 22px; border: 1px dashed #9ba8b1; background: #fafbfc; color: #4f5e68; }
@media (max-width: 620px) { .ks-feature-list li { grid-template-columns: 1fr; } .ks-info-grid { grid-template-columns: 1fr; } }
.ks-admin-guide{display:none;margin:0 0 24px;padding:18px 20px;border:1px dashed #81909a;background:#fafbfc;color:#40515c}.ks-admin-guide p{margin:5px 0 0}.ks-site.is-admin .ks-admin-guide{display:block}.ks-section__title{margin:0 0 18px;font-family:var(--ks-font-heading);font-size:clamp(1.4rem,3vw,1.85rem)}
.ks-lnb-donation{margin-top:18px;padding:20px;border:1px solid var(--ks-line);background:var(--ks-soft)}.ks-lnb-donation h3{margin:0 0 13px;font-size:1rem}.ks-lnb-donation dl{display:grid;gap:9px;margin:0}.ks-lnb-donation dl>div{display:grid;grid-template-columns:52px 1fr;gap:8px}.ks-lnb-donation dt{color:var(--ks-muted);font-size:.82rem;font-weight:700}.ks-lnb-donation dd{margin:0;word-break:break-word}
