/* ==========================================================================
   Corey Fox Design System: section CSS  v1.1.0
   Every section on the site is: .cf-section > .cf-container > content.
   Colors, sizes and spacing come from theme.json presets only.
   ========================================================================== */

:root {
	--cf-radius-btn: 6px;
	--cf-radius-card: 10px;
	--cf-gap: 24px;
	--cf-section-y: 96px;
	--cf-container: 1120px;
	--cf-gutter: 24px;
}
@media (max-width: 900px) { :root { --cf-section-y: 64px; } }
@media (max-width: 600px) { :root { --cf-section-y: 48px; } }

/* ---------- Classic-theme fix (Kadence) ----------
   WordPress wraps Group contents in .wp-block-group__inner-container on
   classic themes. display:contents removes that wrapper from layout so
   grids, cards and CTA rows lay out their real children. */
.cf-section > .wp-block-group__inner-container,
.cf-container > .wp-block-group__inner-container,
.cf-grid > .wp-block-group__inner-container,
.cf-card > .wp-block-group__inner-container,
.cf-cta-row > .wp-block-group__inner-container,
.cf-faq > .wp-block-group__inner-container,
.cf-split > .wp-block-group > .wp-block-group__inner-container { display: contents; }
.cf-grid > .wp-block-group__inner-container > *,
.cf-card > .wp-block-group__inner-container > *,
.cf-cta-row > .wp-block-group__inner-container > * { margin: 0 !important; }
.cf-container > .wp-block-group__inner-container > h2.wp-block-heading { margin: 0 0 12px; max-width: 760px; }

/* ---------- Section + container ---------- */
.cf-section {
	padding-top: var(--cf-section-y) !important;
	padding-bottom: var(--cf-section-y) !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	background: var(--wp--preset--color--white);
}
.cf-section--mist { background: var(--wp--preset--color--mist); }
.cf-section--ink  { background: var(--wp--preset--color--ink); color: #CBD5E0; }
.cf-section--ink :is(h1, h2, h3, h4) { color: var(--wp--preset--color--white); }
.cf-section--ink a:not(.wp-block-button__link) { color: var(--wp--preset--color--blue-light); }

.cf-container {
	max-width: var(--cf-container);
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--cf-gutter);
	padding-right: var(--cf-gutter);
	box-sizing: border-box;
}
.cf-container--narrow { max-width: 800px; }
.cf-container > * + * { margin-top: 0; }

/* Kadence: remove gaps between stacked full-width sections */
.entry-content > .cf-section + .cf-section { margin-top: 0 !important; }

/* ---------- Section intro: eyebrow, H2, lede ---------- */
.cf-eyebrow {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 13px !important;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--blue);
	margin: 0 0 12px !important;
}
.cf-section--ink .cf-eyebrow { color: var(--wp--preset--color--blue-light); }
.cf-container > h2.wp-block-heading { margin: 0 0 12px; max-width: 760px; }
.cf-lede {
	font-size: var(--wp--preset--font-size--lead) !important;
	color: var(--wp--preset--color--muted);
	max-width: 640px;
	margin: 0 0 40px !important;
}
.cf-section--ink .cf-lede { color: #CBD5E0; }
.cf-intro-end { margin-bottom: 40px !important; }

/* ---------- Grids (1 / 2 / 3 / 4 only) ---------- */
.cf-grid {
	display: grid !important;
	gap: var(--cf-gap);
	grid-template-columns: minmax(0, 1fr);
}
.cf-grid > * { margin: 0 !important; }
.cf-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cf-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cf-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cf-grid--wide-gap { gap: 56px; }
@media (max-width: 900px) {
	.cf-grid--3, .cf-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.cf-grid--2, .cf-grid--3, .cf-grid--4 { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.cf-grid--wide-gap { gap: 24px; }
}

/* ---------- Cards ---------- */
.cf-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cf-radius-card);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.cf-card > * { margin: 0 !important; }
.cf-card h3 { font-size: 20px; }
.cf-card p { color: var(--wp--preset--color--muted); font-size: 16px; }
.cf-card .cf-card__link { margin-top: auto !important; font-weight: 600; font-size: 15px; }
.cf-card--soft { background: var(--wp--preset--color--mist); border-color: transparent; }
.cf-section--mist .cf-card--soft { background: var(--wp--preset--color--white); }
.cf-card--feature { border: 2px solid var(--wp--preset--color--blue); }
.cf-card--ink { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); color: #E2E8F0; }
.cf-card--ink h3, .cf-card--ink strong { color: var(--wp--preset--color--white); }

/* ---------- Data: stats, prices, step numbers ---------- */
.cf-stat, .cf-price, .cf-step-num {
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 600;
	line-height: 1 !important;
}
.cf-stat { font-size: var(--wp--preset--font-size--stat) !important; color: var(--wp--preset--color--blue); }
.cf-price { font-size: 24px !important; color: var(--wp--preset--color--ink); }
.cf-step-num { font-size: 14px !important; color: var(--wp--preset--color--blue); }
.cf-tag {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px !important;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--blue);
}

/* ---------- Checklist ---------- */
ul.cf-checklist { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px 24px; }
ul.cf-checklist--2col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 600px) { ul.cf-checklist--2col { grid-template-columns: minmax(0, 1fr); } }
ul.cf-checklist li { position: relative; padding-left: 30px; margin: 0; }
ul.cf-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 18px;
	height: 18px;
	background-color: var(--wp--preset--color--blue);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat;
}
.cf-section--ink ul.cf-checklist li::before { background-color: var(--wp--preset--color--blue-light); }

/* ---------- Buttons ---------- */
.wp-block-button .wp-block-button__link {
	border-radius: var(--cf-radius-btn);
	min-height: 52px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	text-decoration: none;
}
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border: 1.5px solid #CBD5E0;
	padding: 13px 24px;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--ink);
	background: transparent;
	color: var(--wp--preset--color--ink);
}
.cf-section--ink .wp-block-button.is-style-outline .wp-block-button__link { color: var(--wp--preset--color--white); border-color: #718096; }
.cf-microcopy { font-size: 14px !important; color: var(--wp--preset--color--muted); margin-top: 12px !important; }

/* ---------- Comparison table ---------- */
.cf-table { margin: 0; overflow-x: auto; border: 1px solid var(--wp--preset--color--line); border-radius: var(--cf-radius-card); }
.cf-table table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 16px; margin: 0; }
.cf-table th, .cf-table td { border: 0 !important; border-top: 1px solid var(--wp--preset--color--line) !important; padding: 16px 20px; text-align: left; }
.cf-table thead th { background: var(--wp--preset--color--mist); border-top: 0 !important; color: var(--wp--preset--color--ink); font-weight: 700; }
.cf-table tbody td:first-child { font-weight: 600; color: var(--wp--preset--color--ink); }
.cf-table tbody td:last-child { color: var(--wp--preset--color--muted); }

/* ---------- FAQ (core Details block) ---------- */
.cf-faq { border-top: 1px solid var(--wp--preset--color--line); }
.cf-faq .wp-block-details { border-bottom: 1px solid var(--wp--preset--color--line); padding: 20px 0; margin: 0 !important; }
.cf-faq summary { font-weight: 600; color: var(--wp--preset--color--ink); cursor: pointer; list-style-position: outside; }
.cf-faq .wp-block-details > p { margin: 12px 0 0; color: var(--wp--preset--color--muted); }

/* ---------- CTA band ---------- */
.cf-cta-row { display: flex !important; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }
.cf-cta-row > * { margin: 0 !important; }
.cf-cta-row h2 { margin-bottom: 8px !important; }

/* ---------- Text split: H2 left, copy right ---------- */
.cf-split { align-items: start; }

/* ---------- Tool pages ---------- */
.cf-container--tool { max-width: 928px; } /* fits the 880px cfx tool widgets */
/* cfx tool hint + footer text: #8C887C fails WCAG AA at 11-12px; this passes */
.cfx-wrap .cfx-hint,
.cfx-wrap .cfx-foot span { color: #5F5B52 !important; }

/* ---------- Blog archive (Kadence posts page) ---------- */
.post-archive-hero-section .entry-hero-container-inner { background: var(--wp--preset--color--mist) !important; }
.post-archive .loop-entry {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cf-radius-card);
	overflow: hidden;
	box-shadow: none !important;
}
.post-archive .loop-entry .entry-title { font-size: 20px !important; line-height: 1.3 !important; }
.post-archive .loop-entry .entry-taxonomies a {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--blue) !important;
}
.post-archive .loop-entry .entry-summary { font-size: 15px; color: var(--wp--preset--color--muted); }
.post-archive .loop-entry .post-more-link { font-weight: 600; color: var(--wp--preset--color--blue); }

/* ---------- "Email me this report" form (tool pages) ---------- */
.cf-report-form {
	max-width: 880px;
	margin: 32px auto 0;
	padding: 24px;
	box-sizing: border-box;
	background: var(--wp--preset--color--mist);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cf-radius-card);
	font-family: var(--wp--preset--font-family--sans);
}
.cf-report-form p { margin: 0; }
.cf-report-form__title { font-size: 19px; color: var(--wp--preset--color--ink); }
.cf-report-form__lede { margin-top: 4px !important; font-size: 15px; color: var(--wp--preset--color--muted); }
.cf-report-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
@media (max-width: 600px) { .cf-report-form__row { grid-template-columns: minmax(0, 1fr); } }
.cf-report-form__field { display: flex; flex-direction: column; gap: 6px; }
.cf-report-form__field label { font-size: 14px; font-weight: 600; color: var(--wp--preset--color--ink); }
.cf-report-form__field input {
	font: inherit;
	font-size: 16px;
	min-height: 48px;
	padding: 10px 14px;
	border: 1.5px solid #CBD5E0;
	border-radius: var(--cf-radius-btn);
	background: var(--wp--preset--color--white);
	box-sizing: border-box;
	width: 100%;
}
.cf-report-form__field input:focus { outline: 2px solid var(--wp--preset--color--blue); outline-offset: 1px; border-color: var(--wp--preset--color--blue); }
.cf-report-form__consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; font-size: 14px; color: var(--wp--preset--color--body); cursor: pointer; }
.cf-report-form__consent input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.cf-report-form__btn {
	margin-top: 16px;
	min-height: 48px;
	padding: 0 24px;
	border: 0;
	border-radius: var(--cf-radius-btn);
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.cf-report-form__btn:hover { background: var(--wp--preset--color--blue-dark); }
.cf-report-form__btn:disabled { opacity: 0.6; cursor: default; }
.cf-report-form__msg { margin-top: 10px !important; font-size: 14px; color: var(--wp--preset--color--body); min-height: 1em; }
.cf-report-form.is-done .cf-report-form__row,
.cf-report-form.is-done .cf-report-form__consent,
.cf-report-form.is-done .cf-report-form__btn { display: none; }
.cf-report-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Accessibility ---------- */
.cf-section a:focus-visible,
.cf-section summary:focus-visible { outline: 2px solid var(--wp--preset--color--blue); outline-offset: 3px; }
