/*
Theme Name: ResiliencyPulse
Theme URI: https://resiliencypulse.com
Description: Child theme of Ollie for the ResiliencyPulse marketing site. Owns the design tokens (palette, type, spacing, buttons) in theme.json; Ollie supplies the rest.
Author: Bryghtpath LLC
Author URI: https://bryghtpath.com
Template: ollie
Version: 0.1.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: resiliencypulse
*/

/* Styling lives in theme.json. Keep this file to the header and the few rules theme.json cannot express. */

/* Maturity scale strip: six equal cells, score and label. Colors come from the m0 to m5 palette slugs applied per column. */
.wp-block-columns.is-style-scale-strip {
	gap: 3px;
}
.wp-block-columns.is-style-scale-strip > .wp-block-column {
	padding: 10px 10px 9px;
	color: #111827;
}
/* Dark text on all six cells: white on m-1 and m-5 fails 4.5:1 at label size (2026-10-22). */
.wp-block-columns.is-style-scale-strip > .wp-block-column * {
	color: inherit;
}
.wp-block-columns.is-style-scale-strip .scale-score {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 20px;
	line-height: 1;
	margin: 0;
}
.wp-block-columns.is-style-scale-strip .scale-label {
	display: block;
	font-size: 12px;
	line-height: 1.25;
	font-weight: 600;
	margin-top: 4px;
}
@media (max-width: 560px) {
	.wp-block-columns.is-style-scale-strip {
		flex-wrap: wrap !important;
	}
	.wp-block-columns.is-style-scale-strip > .wp-block-column {
		flex-basis: calc(33.333% - 2px) !important;
	}
}

/* No italic font file (removed 2026-10-22 for page weight): browsers slant the
   regular Source Sans 3 for <em> and italic text. */
body {
	font-synthesis: style;
}

/* Eyebrow: small uppercase label above headings. Orange only at this size and only on white or tint; sky on navy (orange fails contrast there). */
.rp-eyebrow {
	font-size: 12px;
	line-height: 1;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--wp--preset--color--orange);
}
.has-navy-background-color .rp-eyebrow {
	color: var(--wp--preset--color--sky);
}

/* A tint band that follows another tint band gets a rule so the two read as separate. */
.rp-band-rule {
	border-top: 1px solid var(--wp--preset--color--rule);
}

/* Logo in the header and footer: the full lockup SVG (it carries "powered by
   Bryghtpath"), never a text title. Color on the white header, white on navy. */
.rp-logo {
	margin: 0;
	line-height: 0;
}

/* Reduced motion: nothing on this site needs to move. */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* Links on navy surfaces read white, not blue. */
.has-navy-background-color a:not(.wp-element-button) {
	color: #ffffff;
	text-decoration-color: #7FCBF0;
}
.has-navy-background-color a:not(.wp-element-button):hover {
	color: #7FCBF0;
}

/* Outline buttons on navy read white, sky on hover. */
.has-navy-background-color .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--surface);
	background-color: transparent;
}
.has-navy-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover,
.has-navy-background-color .wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
	color: var(--wp--preset--color--sky);
	background-color: transparent;
}

/* Plain lists for footer columns and chip rows. */
.wp-block-list.is-style-no-disc {
	list-style: none;
	padding-left: 0;
	margin: 0;
	display: grid;
	gap: 6px;
}

/* Chip rows: standards and domains. */
.rp-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.rp-chips li {
	font-size: 0.875rem;
	font-weight: 500;
	padding: 7px 10px;
	border: 1px solid var(--wp--preset--color--rule);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink);
}
.rp-chips.is-key li {
	border-color: var(--wp--preset--color--blue);
}

/* Panels: bordered cards used across feature and trust grids. */
.rp-panel {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--rule);
	padding: 18px 18px 16px;
	height: 100%;
}
.rp-panel h2,
.rp-panel h3 {
	margin-top: 0;
	margin-bottom: 8px;
}
/* Panels that sit directly under the page H1 use h2 for heading order, at h3 size. */
.rp-panel h2 {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.3;
}
.rp-panel p, .rp-panel li {
	font-size: 0.96875rem;
}
.rp-panel ul {
	padding-left: 1.1em;
	margin: 0;
}

/* Numbered steps. */
.rp-step-n {
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--wp--preset--color--blue-text);
	margin-bottom: 6px;
}

/* Tables: scale, pricing, and Insights. Wide tables scroll inside the wrapper, not the page. */
.rp-table {
	overflow-x: auto;
}
.rp-table table {
	border-collapse: collapse;
	width: 100%;
	font-size: 0.9375rem;
}
.rp-table th, .rp-table td {
	text-align: left;
	padding: 10px 14px;
	border-bottom: 1px solid var(--wp--preset--color--rule);
	vertical-align: top;
}
/* Row headers (th scope=row) keep the body-cell look; only column headers are styled. */
.rp-table thead th {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--wp--preset--color--muted);
	background: var(--wp--preset--color--tint);
}
.rp-table td.num {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	color: var(--wp--preset--color--ink);
}

/* Pricing cards. The featured plan (Pro) gets a blue-text border and a label
   that sits on the top edge, so the three plan names stay aligned. */
.rp-plan.is-featured {
	position: relative;
	border: 2px solid var(--wp--preset--color--blue-text);
	padding: 17px 17px 15px;
}
.rp-plan-badge {
	position: absolute;
	top: -7px;
	left: 12px;
	margin: 0;
	padding: 0 6px;
	background: var(--wp--preset--color--surface);
}
.rp-price {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	font-size: 2rem;
	line-height: 1;
	color: var(--wp--preset--color--ink);
	margin: 8px 0 2px;
}
.rp-price small {
	font-family: var(--wp--preset--font-family--text);
	font-weight: 400;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
}
.rp-pricing[data-billing="annual"] .rp-monthly,
.rp-pricing[data-billing="monthly"] .rp-annual {
	display: none;
}
.rp-billing-toggle {
	display: inline-flex;
	border: 1px solid var(--wp--preset--color--rule);
	background: var(--wp--preset--color--surface);
	padding: 3px;
	gap: 3px;
}
.rp-billing-toggle button {
	font: 600 0.875rem/1 var(--wp--preset--font-family--text);
	padding: 8px 14px;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--body);
	cursor: pointer;
}
.rp-billing-toggle button[aria-pressed="true"] {
	background: var(--wp--preset--color--navy);
	color: #fff;
}

/* What's new: a rule between entries on the index. */
.wp-block-post-template > li + li .rp-release {
	border-top: 1px solid var(--wp--preset--color--rule);
	margin-top: 40px;
}

/* FAQ details. */
.rp-faq details {
	border-top: 1px solid var(--wp--preset--color--rule);
	padding: 14px 0;
}
.rp-faq details:last-child {
	border-bottom: 1px solid var(--wp--preset--color--rule);
}
.rp-faq summary {
	cursor: pointer;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	color: var(--wp--preset--color--ink);
}
.rp-faq details p {
	margin-top: 10px;
}

/* Page template: full-width bands stack without the block gap between them. */
.rp-page-content > .alignfull + .alignfull {
	margin-block-start: 0;
}

/* Ollie compatibility: Ollie's block styles, archive and search templates, and inserter patterns reference Ollie's preset slugs. Point each at one of our tokens here, not in theme.json, so the Styles panel shows only our palette. */
:root {
	--wp--preset--color--main: var(--wp--preset--color--ink);
	--wp--preset--color--main-accent: var(--wp--preset--color--rule);
	--wp--preset--color--primary: var(--wp--preset--color--blue-text);
	--wp--preset--color--primary-accent: var(--wp--preset--color--tint);
	--wp--preset--color--primary-alt: var(--wp--preset--color--sky);
	--wp--preset--color--primary-alt-accent: var(--wp--preset--color--navy);
	--wp--preset--color--secondary: var(--wp--preset--color--muted);
	--wp--preset--color--tertiary: var(--wp--preset--color--tint);
	--wp--preset--color--border-light: var(--wp--preset--color--rule);
	--wp--preset--color--border-dark: var(--wp--preset--color--body);
	--wp--preset--font-family--primary: var(--wp--preset--font-family--text);
	--wp--preset--font-family--secondary: var(--wp--preset--font-family--display);
	--wp--preset--font-family--expanded: var(--wp--preset--font-family--display);
	--wp--preset--font-family--condensed: var(--wp--preset--font-family--display);
	--wp--preset--font-family--narrow: var(--wp--preset--font-family--display);
	--wp--preset--font-family--monospace: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	--wp--preset--font-size--base: var(--wp--preset--font-size--medium);
	--wp--preset--font-size--x-small: 0.75rem;
}
.has-main-color { color: var(--wp--preset--color--main) !important; }
.has-main-accent-color { color: var(--wp--preset--color--main-accent) !important; }
.has-primary-color { color: var(--wp--preset--color--primary) !important; }
.has-primary-accent-color { color: var(--wp--preset--color--primary-accent) !important; }
.has-primary-alt-color { color: var(--wp--preset--color--primary-alt) !important; }
.has-primary-alt-accent-color { color: var(--wp--preset--color--primary-alt-accent) !important; }
.has-secondary-color { color: var(--wp--preset--color--secondary) !important; }
.has-tertiary-color { color: var(--wp--preset--color--tertiary) !important; }
.has-border-light-color { color: var(--wp--preset--color--border-light) !important; }
.has-border-dark-color { color: var(--wp--preset--color--border-dark) !important; }
.has-main-background-color { background-color: var(--wp--preset--color--main) !important; }
.has-main-accent-background-color { background-color: var(--wp--preset--color--main-accent) !important; }
.has-primary-background-color { background-color: var(--wp--preset--color--primary) !important; }
.has-primary-accent-background-color { background-color: var(--wp--preset--color--primary-accent) !important; }
.has-primary-alt-background-color { background-color: var(--wp--preset--color--primary-alt) !important; }
.has-primary-alt-accent-background-color { background-color: var(--wp--preset--color--primary-alt-accent) !important; }
.has-secondary-background-color { background-color: var(--wp--preset--color--secondary) !important; }
.has-tertiary-background-color { background-color: var(--wp--preset--color--tertiary) !important; }
.has-border-light-background-color { background-color: var(--wp--preset--color--border-light) !important; }
.has-border-dark-background-color { background-color: var(--wp--preset--color--border-dark) !important; }
.has-main-border-color { border-color: var(--wp--preset--color--main) !important; }
.has-primary-border-color { border-color: var(--wp--preset--color--primary) !important; }
.has-secondary-border-color { border-color: var(--wp--preset--color--secondary) !important; }
.has-border-light-border-color { border-color: var(--wp--preset--color--border-light) !important; }
.has-border-dark-border-color { border-color: var(--wp--preset--color--border-dark) !important; }
.has-primary-font-family { font-family: var(--wp--preset--font-family--primary) !important; }
.has-secondary-font-family { font-family: var(--wp--preset--font-family--secondary) !important; }
.has-expanded-font-family { font-family: var(--wp--preset--font-family--expanded) !important; }
.has-condensed-font-family { font-family: var(--wp--preset--font-family--condensed) !important; }
.has-narrow-font-family { font-family: var(--wp--preset--font-family--narrow) !important; }
.has-monospace-font-family { font-family: var(--wp--preset--font-family--monospace) !important; }
.has-base-font-size { font-size: var(--wp--preset--font-size--base) !important; }
.has-x-small-font-size { font-size: var(--wp--preset--font-size--x-small) !important; }
