/* Pages, posts, policy pages (not Woo pages, not Elementor pages, not the theme home). */

body.kp .entry-content { font-size: 17px; line-height: 1.7; }
body.kp .entry-content > * { max-width: var(--kp-measure); }
body.kp .entry-content :where(h2) { margin-top: 1.8em; }
body.kp .entry-content :where(h3) { margin-top: 1.4em; }
body.kp .entry-content a { color: var(--kp-sage-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
body.kp .entry-content table { border-collapse: collapse; width: 100%; font-size: 15px; }
body.kp .entry-content th,
body.kp .entry-content td { padding: 10px 12px; border: 1px solid var(--kp-line); text-align: left; vertical-align: top; }
body.kp .entry-content th { background: var(--kp-oat); color: var(--kp-ink); font-weight: 800; }

/* ---- Components used by page-content/*.html ----
   `.kp-page.kp-page` keeps these above Blocksy/Gutenberg layout rules; width uses rem, never ch. */
body.kp .entry-content > .kp-page.kp-page { max-width: var(--kp-measure); margin-left: auto; margin-right: auto; }
body.kp .entry-content > .kp-page.kp-page > * { max-width: 100%; margin-left: 0; margin-right: 0; }
body.kp .kp-page > :first-child { margin-top: 0; }
body.kp .kp-lead { font-size: clamp(19px, 1.8vw, 22px); line-height: 1.55; color: var(--kp-ink); }
body.kp .kp-meta { font-size: 14px; color: var(--kp-muted); }

body.kp .entry-content .kp-cards {
	display: grid; gap: 14px; margin: 26px 0;
	grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
}
body.kp .kp-card { padding: 20px; margin: 0; background: var(--kp-oat); border-radius: var(--kp-radius); }
body.kp .entry-content .kp-card h3 { --theme-font-size: 17px; margin: 0 0 6px; }
body.kp .kp-card p { margin: 0; font-size: 15px; line-height: 1.55; }

body.kp .kp-note { margin: 24px 0; padding: 16px 20px; background: var(--kp-sage-soft); border-radius: var(--kp-radius); font-size: 15px; }
body.kp .kp-note p:last-child { margin-bottom: 0; }

body.kp .entry-content .kp-steps { list-style: none; margin: 20px 0; padding: 0; counter-reset: kp-step; }
body.kp .kp-steps li { position: relative; padding: 2px 0 14px 50px; counter-increment: kp-step; }
body.kp .kp-steps li::before {
	content: counter(kp-step); position: absolute; left: 0; top: 0;
	width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center;
	background: var(--kp-sage); color: #fff; font-weight: 800; font-size: 14px;
}

body.kp .kp-faq details { border-bottom: 1px solid var(--kp-line); padding: 14px 0; }
body.kp .kp-faq summary { cursor: pointer; font-weight: 800; color: var(--kp-ink); }
body.kp .kp-faq details p { margin: 10px 0 0; }

body.kp .entry-content .kp-table-wrap { overflow-x: auto; }

body.kp .entry-content .kp-cta {
	display: inline-flex; align-items: center; min-height: 48px; padding: 11px 26px;
	background: var(--kp-sage); color: #fff; border-radius: 999px; font-weight: 700; text-decoration: none;
}
body.kp .entry-content .kp-cta:hover { background: var(--kp-sage-dark); color: #fff; }

body.kp .kp-contact { display: grid; gap: 28px; grid-template-columns: minmax(0, 1fr); }
body.kp .kp-contact__card { padding: 22px; background: var(--kp-oat); border-radius: var(--kp-radius); }
body.kp .kp-contact__card p { margin: 0 0 6px; }

/* Full-bleed utility (rule I) */
body.kp .entry-content > .kp-page.kp-page > .break,
body.kp .entry-content .break {
	max-width: none;
	width: min(1180px, calc(100vw - 2 * var(--kp-gutter)));
	margin-left: 50%;
	transform: translateX(-50%);
}
