/* FP Core: editorial block styles. Uses the theme's colour presets, with fallbacks. */
.wp-block-group.is-style-fp-explains {
	background: #EEF3FB;
	border: 1px solid #D3DFF3;
	border-radius: 10px;
	padding: 20px 22px;
}
.wp-block-group.is-style-fp-explains::before {
	content: "FP EXPLAINS";
	display: inline-block;
	background: var(--wp--preset--color--ink, #0B1F3A);
	color: #fff;
	font-weight: 800;
	font-size: 11px;
	letter-spacing: 1px;
	padding: 4px 8px;
	border-radius: 4px;
	margin-bottom: 8px;
}
.wp-block-group.is-style-fp-key-figures {
	background: var(--wp--preset--color--gold-soft, #FBF3E1);
	border-radius: 10px;
	padding: 22px 24px;
}
.wp-block-group.is-style-fp-key-figures > h2:first-child,
.wp-block-group.is-style-fp-key-figures > h3:first-child {
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: .3px;
	margin-top: 0;
}
.wp-block-group.is-style-fp-callout-info,
.wp-block-group.is-style-fp-callout-warning {
	border-radius: 10px;
	padding: 16px 18px;
	font-size: .9em;
}
.wp-block-group.is-style-fp-callout-info { background: #EEF3FB; border: 1px solid #D3DFF3; color: #18304F; }
.wp-block-group.is-style-fp-callout-warning { background: #FFF7E8; border: 1px solid #F0D9A8; color: #4A3A12; }
.wp-block-group.is-style-fp-card {
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid var(--wp--preset--color--line, #DDE3EB);
	border-radius: 10px;
	padding: 22px;
}
ul.is-style-fp-sources,
ol.is-style-fp-sources {
	font-size: .9em;
	padding-left: 22px;
}
ul.is-style-fp-sources li,
ol.is-style-fp-sources li { margin-bottom: 6px; }
ol.is-style-fp-checklist,
ul.is-style-fp-checklist {
	list-style: none;
	padding: 0;
	counter-reset: fpstep;
}
.is-style-fp-checklist > li {
	counter-increment: fpstep;
	display: flex;
	gap: 12px;
	padding: 8px 0;
}
.is-style-fp-checklist > li::before {
	content: counter(fpstep);
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 999px;
	background: var(--wp--preset--color--gold-soft, #FBF3E1);
	color: var(--wp--preset--color--gold, #A87510);
	font-weight: 800;
	font-size: 13px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.is-style-fp-data table { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; }
.is-style-fp-data th,
.is-style-fp-data td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line, #DDE3EB); padding: 10px 10px 10px 0; text-align: left; }
.is-style-fp-data thead th { font-size: .8em; text-transform: uppercase; letter-spacing: .5px; color: var(--wp--preset--color--muted, #5A6678); }
.is-style-fp-data { overflow-x: auto; }

/* Editor-only placeholder for page-dependent blocks. */
.fp-block-placeholder {
	border: 1px dashed #B9C2CF;
	border-radius: 8px;
	padding: 18px;
	background: #F5F7FA;
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 13px;
	color: #3D4A5C;
}
.fp-block-placeholder strong { color: #0B1F3A; font-size: 14px; }

/* WordPress resets padding on nested constrained groups; keep FP boxes padded. */
.wp-block-group.is-style-fp-explains.has-global-padding { padding: 20px 22px; }
.wp-block-group.is-style-fp-key-figures.has-global-padding { padding: 22px 24px; }
.wp-block-group.is-style-fp-callout-info.has-global-padding,
.wp-block-group.is-style-fp-callout-warning.has-global-padding { padding: 16px 18px; }
.wp-block-group.is-style-fp-card.has-global-padding { padding: 22px; }
.wp-block-group.is-style-fp-explains > *,
.wp-block-group.is-style-fp-key-figures > *,
.wp-block-group.is-style-fp-card > *,
.wp-block-group.is-style-fp-callout-info > *,
.wp-block-group.is-style-fp-callout-warning > * { margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; }
