/**
 * Flint Rehab — homepage rebuild styles (fr-home).
 *
 * Structure-preserving build: the Elementor page/loop templates carry
 * fr-home-* classes and THIS file carries every pixel, written against the
 * design_handoff_homepage prototypes (desktop 1440 / mobile 390, 2026-09-11).
 * Tokens come from the canonical flint-v2 stylesheet in the child theme —
 * this file declares only the few steps that set is missing, scoped locally.
 *
 * Every rule is scoped under .flint-v2 .fr-home (or .fr-home descendants) so
 * nothing can leak into the chrome or any other page. font-family carries
 * !important where text renders, same reason as the chrome stylesheet: the
 * child theme prints `body * { font-family: Lato !important }`.
 *
 * Breakpoints: 1080px (tablet squeeze) and 760px (the mobile design).
 */

/* ======================================================================
   Local token additions (missing from the canonical set)
   ====================================================================== */

.flint-v2 .fr-home {
	--fr-home-sky-bright: #28a8e0;   /* gradients/icon tiles only, never text */
	--fr-home-blue-200: #a6d3ef;
	--fr-home-sky-100: #d9f1fb;
	--fr-home-grey-200: #d5dde4;
	--fr-home-success: #1e9e6a;
	--fr-home-lift: cubic-bezier(0.16, 1, 0.3, 1);

	font-family: var(--fr-font) !important;
	color: var(--fr-text-body);
	background: #fff;
}

.flint-v2 .fr-home,
.flint-v2 .fr-home * {
	font-family: var(--fr-font) !important;
	box-sizing: border-box;
}

/* ======================================================================
   Parity layer — Elementor structure neutralization (CE doctrine)
   ====================================================================== */

/* Full-bleed root even inside the kit's content-width cap. */
.flint-v2 .fr-home.e-con {
	--width: 100vw;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	/* clip (not hidden — hidden would break the sticky CTA) any stray
	   horizontal overflow from intrinsic image widths. */
	overflow-x: clip;
}

.flint-v2 .fr-home .elementor-widget:not(:last-child) { margin-block-end: 0; }

.flint-v2 .fr-home .elementor-heading-title {
	font: inherit;
	color: inherit;
	margin: 0;
	line-height: inherit;
}
.flint-v2 .fr-home .elementor-widget-text-editor p { margin: 0; }

/* Dissolve the wrappers Elementor inserts between a Loop Grid's classed
   widget wrapper and its items, so our grid rules reach the items. */
.flint-v2 .fr-home .fr-home-product-grid .elementor-loop-container,
.flint-v2 .fr-home .fr-home-program-row .elementor-loop-container,
.flint-v2 .fr-home .fr-home-stats-grid .elementor-loop-container,
.flint-v2 .fr-home .fr-home-review-grid .elementor-loop-container,
.flint-v2 .fr-home .fr-home-cond-grid .elementor-loop-container,
.flint-v2 .fr-home .fr-home-article-grid .elementor-loop-container,
.flint-v2 .fr-home .fr-home-faq-list .elementor-loop-container,
.flint-v2 .fr-home .fr-home-hero-slides .elementor-loop-container,
.flint-v2 .fr-home .fr-home-why-slides .elementor-loop-container,
.flint-v2 .fr-home .fr-home-product-grid > .elementor-widget-container,
.flint-v2 .fr-home .fr-home-program-row > .elementor-widget-container,
.flint-v2 .fr-home .fr-home-stats-grid > .elementor-widget-container,
.flint-v2 .fr-home .fr-home-review-grid > .elementor-widget-container,
.flint-v2 .fr-home .fr-home-cond-grid > .elementor-widget-container,
.flint-v2 .fr-home .fr-home-article-grid > .elementor-widget-container,
.flint-v2 .fr-home .fr-home-faq-list > .elementor-widget-container,
.flint-v2 .fr-home .fr-home-hero-slides > .elementor-widget-container,
.flint-v2 .fr-home .fr-home-why-slides > .elementor-widget-container {
	display: contents;
}

/* Loop items are cards, not Astra articles. */
.flint-v2 .fr-home .e-loop-item.ast-article-single,
.flint-v2 .fr-home .e-loop-item.ast-article-post {
	padding: 0;
	margin: 0;
	background-color: transparent;
	border-bottom: 0;
}
.flint-v2 .fr-home .e-loop-item {
	width: 100%;
	min-width: 0;
}
.flint-v2 .fr-home .e-loop-item > .e-con {
	width: 100%;
	max-width: 100%;
	height: 100%;
}

/* Restore .fr-home-wrap's container cap on widgets, over Elementor's
   doubled-class max-width boost. */
.flint-v2 .fr-home .e-con > .elementor-widget.fr-home-wrap,
.flint-v2 .fr-home .e-con > .e-con-inner > .elementor-widget.fr-home-wrap {
	max-width: var(--fr-container);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

/* Row-layout containers inside loop cards. */
.flint-v2 .fr-home .fr-home-pcard-foot,
.flint-v2 .fr-home .fr-home-rcard-byline {
	flex-direction: row;
}
.flint-v2 .fr-home .fr-home-pcard-foot > *,
.flint-v2 .fr-home .fr-home-rcard-byline > * {
	width: auto;
	--width: auto;
	max-width: 100%;
	flex-shrink: 1;
}

/* ======================================================================
   Shared primitives
   ====================================================================== */

.flint-v2 .fr-home .fr-home-wrap {
	max-width: var(--fr-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--fr-gutter);
	padding-right: var(--fr-gutter);
	width: 100%;
}
.flint-v2 .fr-home-sec { padding: 92px 0; }

.flint-v2 .fr-home h1,
.flint-v2 .fr-home h2,
.flint-v2 .fr-home h3,
.flint-v2 .fr-home h4,
.flint-v2 .fr-home .fr-home-h1,
.flint-v2 .fr-home .fr-home-h2,
.flint-v2 .fr-home .fr-home-h3 {
	color: var(--fr-text-strong);
	letter-spacing: -0.02em;
	text-wrap: pretty;
	margin: 0;
}
.flint-v2 .fr-home p { text-wrap: pretty; }

.flint-v2 .fr-home a {
	color: var(--fr-blue);
	text-decoration: none;
}
.flint-v2 .fr-home a:hover { color: var(--fr-blue-700); text-decoration: underline; }
.flint-v2 .fr-home a:focus-visible { outline: none; box-shadow: var(--fr-shadow-focus); border-radius: 4px; }

.flint-v2 .fr-home .fr-home-eyebrow {
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--fr-sky-600);
	margin-bottom: 12px;
}
.flint-v2 .fr-home .fr-home-eyebrow--orange { color: var(--fr-orange-700); }

.flint-v2 .fr-home .fr-home-h1 { font-size: 60px; line-height: 1.04; font-weight: 800; margin: 0 0 22px; }
.flint-v2 .fr-home .fr-home-h2 { font-size: 40px; line-height: 1.12; font-weight: 800; margin: 0 0 14px; }
.flint-v2 .fr-home .fr-home-h2--md { font-size: 36px; line-height: 1.14; margin: 0 0 18px; }
.flint-v2 .fr-home .fr-home-h3 { font-size: 30px; line-height: 1.15; font-weight: 800; }

.flint-v2 .fr-home .fr-home-intro {
	text-align: center;
	max-width: 660px;
	margin-bottom: 44px;
}
.flint-v2 .fr-home .e-con > .elementor-widget.fr-home-intro { max-width: 660px; }
/* Wider intro variant (Phil review 2026-09-21): lets the products subhead
   and the where-to-start H2 sit on two lines. */
.flint-v2 .fr-home .fr-home-intro--wide,
.flint-v2 .fr-home .e-con > .elementor-widget.fr-home-intro--wide { max-width: 850px; }
.flint-v2 .fr-home .fr-home-intro-body { font-size: 18px; line-height: 1.6; color: var(--fr-text-body); margin: 0; }

.flint-v2 .fr-home .fr-home-stars { display: inline-flex; gap: 2px; align-items: center; }

.flint-v2 .fr-home .fr-home-link { font-weight: 700; font-size: 16px; white-space: nowrap; display: inline-flex; align-items: center; gap: 7px; }

/* ---- Buttons (design-system variants, chrome-consistent) ---- */
.flint-v2 .fr-home a.fr-home-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	line-height: 1;
	border: 0;
	border-radius: var(--fr-radius-pill);
	text-decoration: none;
	transition: background 0.14s var(--fr-ease), color 0.14s var(--fr-ease), border-color 0.14s var(--fr-ease);
	cursor: pointer;
}
.flint-v2 .fr-home a.fr-home-btn:active { transform: scale(0.97); }
.flint-v2 .fr-home a.fr-home-btn:focus-visible { outline: none; box-shadow: var(--fr-shadow-focus); }
.flint-v2 .fr-home a.fr-home-btn:hover { text-decoration: none; }

.flint-v2 .fr-home .fr-home-btn--lg { padding: 19px 30px; font-size: 16.5px; }
.flint-v2 .fr-home .fr-home-btn--md { padding: 15px 24px; font-size: 15.5px; }
.flint-v2 .fr-home .fr-home-btn--sm { padding: 15px 22px; font-size: 14.5px; }

.flint-v2 .fr-home a.fr-home-btn--accent { background: var(--fr-orange); color: var(--fr-white) !important; }
.flint-v2 .fr-home a.fr-home-btn--accent:hover { background: var(--fr-orange-700); }
.flint-v2 .fr-home a.fr-home-btn--primary,
.flint-v2 .fr-home button.fr-home-btn--primary { background: var(--fr-blue); color: var(--fr-white) !important; }
.flint-v2 .fr-home a.fr-home-btn--primary:hover,
.flint-v2 .fr-home button.fr-home-btn--primary:hover { background: var(--fr-blue-700); }
.flint-v2 .fr-home a.fr-home-btn--secondary {
	background: #fff;
	color: var(--fr-blue) !important;
	border: 2px solid var(--fr-home-blue-200);
}
.flint-v2 .fr-home a.fr-home-btn--secondary:hover { background: var(--fr-blue-50); border-color: var(--fr-blue); }

/* Elementor images inside cards */
.flint-v2 .fr-home .elementor-widget-image img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ======================================================================
   1. Hero
   ====================================================================== */

.flint-v2 .fr-home .fr-home-hero {
	background: linear-gradient(180deg, #f2faff 0%, #ffffff 100%);
	padding: 76px 0 84px;
}
.flint-v2 .fr-home .fr-home-hero-grid {
	display: grid;
	grid-template-columns: 1.02fr 0.98fr;
	gap: 64px;
	align-items: center;
}
.flint-v2 .fr-home .fr-home-hero-grid > .elementor-widget,
.flint-v2 .fr-home .fr-home-hero-grid > .e-con { min-width: 0; }

.flint-v2 .fr-home .fr-home-eyebrow-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	border: 1px solid var(--fr-blue-100);
	color: var(--fr-sky-600);
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	padding: 7px 14px;
	border-radius: var(--fr-radius-pill);
	margin-bottom: 22px;
}
.flint-v2 .fr-home .fr-home-hero-body {
	font-size: 18px;
	line-height: 1.6;
	color: var(--fr-text-body);
	max-width: 520px;
	margin: 0 0 32px;
}
.flint-v2 .fr-home .fr-home-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }
.flint-v2 .fr-home .fr-home-hero-rating { display: flex; align-items: center; gap: 14px; margin-top: 32px; }
.flint-v2 .fr-home .fr-home-rating-text { font-size: 15px; color: var(--fr-text-muted); }
.flint-v2 .fr-home .fr-home-rating-text b { color: var(--fr-text-strong); }

/* Carousel: slides stack; JS toggles .is-active. Space reserved for the
   overlapping stat card (bottom) and caption pill (top). */
.flint-v2 .fr-home .fr-home-hero-media { position: relative; padding: 18px 0 30px 0; }
.flint-v2 .fr-home .fr-home-hero-slides { position: relative; display: block; }
.flint-v2 .fr-home .fr-home-hero-slides .e-loop-item {
	grid-area: 1 / 1;
}
.flint-v2 .fr-home .fr-home-hero-slides .elementor-loop-container {
	display: grid;
	/* minmax(0,1fr): never let the photo's intrinsic width size the track. */
	grid-template-columns: minmax(0, 1fr);
}
.flint-v2 .fr-home .fr-home-slide-img img { height: auto; }
.flint-v2 .fr-home .fr-home-slide {
	position: relative;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.5s var(--fr-ease), visibility 0.5s;
}
.flint-v2 .fr-home .e-loop-item:first-child .fr-home-slide { opacity: 1; visibility: visible; }
.flint-v2 .fr-home .fr-home-slide.is-active { opacity: 1 !important; visibility: visible !important; }
.flint-v2 .fr-home .fr-home-slide.is-hidden { opacity: 0 !important; visibility: hidden !important; }

.flint-v2 .fr-home .fr-home-slide-img { border-radius: 24px; overflow: hidden; box-shadow: 0 24px 60px rgba(27, 117, 187, 0.22); }
.flint-v2 .fr-home .fr-home-slide-img img { aspect-ratio: 4 / 3.2; }

.flint-v2 .fr-home .fr-home-slide-caption {
	position: absolute;
	top: -18px;
	right: -12px;
	background: #fff;
	border: 1px solid var(--fr-border-subtle);
	border-radius: var(--fr-radius-pill);
	box-shadow: 0 14px 34px rgba(12, 47, 76, 0.14);
	padding: 10px 18px;
	font-size: 14px;
	font-weight: 700;
	color: var(--fr-blue-800);
	width: auto;
	z-index: 2;
}
.flint-v2 .fr-home .fr-home-slide-stat {
	position: absolute;
	bottom: -26px;
	left: -18px;
	background: #fff;
	border: 1px solid var(--fr-border-subtle);
	border-radius: 18px;
	box-shadow: 0 18px 44px rgba(12, 47, 76, 0.16);
	padding: 16px 20px;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 14px;
	width: auto;
	max-width: 85%;
	z-index: 2;
}
.flint-v2 .fr-home .fr-home-slide-stat > * { width: auto; --width: auto; }
.flint-v2 .fr-home .fr-home-stat-circle {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--fr-orange-100);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--fr-orange-700);
	flex-shrink: 0;
}
.flint-v2 .fr-home .fr-home-slide-figure { font-weight: 800; font-size: 19px; color: var(--fr-text-strong); }
.flint-v2 .fr-home .fr-home-slide-detail { font-size: 13.5px; color: var(--fr-text-muted); }

/* ======================================================================
   2. Trust bar
   ====================================================================== */

.flint-v2 .fr-home .fr-home-trust {
	border-top: 1px solid var(--fr-border-subtle);
	border-bottom: 1px solid var(--fr-border-subtle);
	background: #fff;
}
.flint-v2 .fr-home .fr-home-trust-row {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	padding: 20px 0;
}
.flint-v2 .fr-home .fr-home-trust-item {
	display: flex;
	align-items: center;
	gap: 11px;
	color: var(--fr-grey-700);
	font-weight: 600;
	font-size: 15px;
}
.flint-v2 .fr-home .fr-home-trust-ico { color: var(--fr-blue); display: inline-flex; }

/* ======================================================================
   3. Products
   ====================================================================== */

.flint-v2 .fr-home .fr-home-products { background: var(--fr-soft-blue); }

.flint-v2 .fr-home .fr-home-product-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.flint-v2 .fr-home .fr-home-pcard,
.flint-v2 .fr-home .fr-home-program-card {
	background: #fff;
	border: 1px solid var(--fr-border-subtle);
	border-radius: 20px;
	overflow: hidden;
	box-shadow: var(--fr-shadow-sm);
	transition: transform 0.22s var(--fr-home-lift), box-shadow 0.22s var(--fr-home-lift);
	height: 100%;
}
.flint-v2 .fr-home .fr-home-pcard:hover,
.flint-v2 .fr-home .fr-home-program-card:hover,
.flint-v2 .fr-home .fr-home-ccard:hover,
.flint-v2 .fr-home .fr-home-acard:hover,
.flint-v2 .fr-home .fr-home-start-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(12, 47, 76, 0.14);
}
.flint-v2 .fr-home .fr-home-pcard-media { position: relative; background: var(--fr-grey-100); }
.flint-v2 .fr-home .fr-home-pcard-img img { aspect-ratio: 16 / 9; }
.flint-v2 .fr-home .fr-home-pcard-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	width: auto;
	z-index: 2;
}
.flint-v2 .fr-home .fr-home-badge {
	display: inline-flex;
	align-items: center;
	padding: 5px 12px;
	border-radius: var(--fr-radius-pill);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.03em;
}
.flint-v2 .fr-home .fr-home-badge--orange { background: var(--fr-orange); color: #fff; }
.flint-v2 .fr-home .fr-home-badge--sky { background: var(--fr-home-sky-bright); color: #fff; }
.flint-v2 .fr-home .fr-home-badge--success { background: var(--fr-home-success); color: #fff; }

.flint-v2 .fr-home .fr-home-pcard-body { padding: 12px 16px 14px; flex-grow: 1; }
/* Elementor containers ship a default flex gap between child widgets —
   inside cards our own margins do the spacing, so zero it. */
.flint-v2 .fr-home .fr-home-pcard.e-con,
.flint-v2 .fr-home .fr-home-pcard-body.e-con,
.flint-v2 .fr-home .fr-home-pcard-media.e-con,
.flint-v2 .fr-home .fr-home-program-card.e-con,
.flint-v2 .fr-home .fr-home-program-body.e-con,
.flint-v2 .fr-home .fr-home-acard.e-con,
.flint-v2 .fr-home .fr-home-acard-body.e-con,
.flint-v2 .fr-home .fr-home-ccard.e-con,
.flint-v2 .fr-home .fr-home-ccard-body.e-con,
.flint-v2 .fr-home .fr-home-rcard.e-con {
	gap: 0;
	--gap: 0px;
	--widgets-spacing: 0px 0px;
	--widgets-spacing-row: 0px;
	--widgets-spacing-column: 0px;
}
/* Bottom-align the rating/price row across cards of unequal copy length. */
.flint-v2 .fr-home .fr-home-pcard .fr-home-pcard-body > .elementor-widget-text-editor { flex-grow: 1; }
.flint-v2 .fr-home .fr-home-pcard-eyebrow {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--fr-sky-600);
}
.flint-v2 .fr-home .fr-home-pcard-title { font-size: 20px; font-weight: 800; margin: 0 0 4px; color: var(--fr-text-strong); }
.flint-v2 .fr-home .fr-home-pcard-text { font-size: 14.5px; color: var(--fr-text-body); line-height: 1.45; flex-grow: 1; }
.flint-v2 .fr-home .fr-home-pcard-rating {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
	font-size: 13.5px;
	color: var(--fr-text-muted);
}
.flint-v2 .fr-home .fr-home-pcard-rating .elementor-shortcode { display: flex; align-items: center; gap: 8px; }
.flint-v2 .fr-home .fr-home-pcard-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 8px;
	gap: 12px;
}
.flint-v2 .fr-home .fr-home-pcard-price { font-weight: 800; font-size: 19px; color: var(--fr-text-strong); }

/* Program (wide) card */
.flint-v2 .fr-home .fr-home-program-row { display: block; margin-top: 24px; }
.flint-v2 .fr-home .fr-home-program-card { display: grid; grid-template-columns: 420px 1fr; }
.flint-v2 .fr-home .fr-home-program-card > .e-con,
.flint-v2 .fr-home .fr-home-program-card .fr-home-pcard-media { height: 100%; }
.flint-v2 .fr-home .fr-home-program-card .fr-home-pcard-img,
.flint-v2 .fr-home .fr-home-program-card .fr-home-pcard-img .elementor-widget-container,
.flint-v2 .fr-home .fr-home-program-card .fr-home-pcard-img img { height: 100%; }
.flint-v2 .fr-home .fr-home-program-card .fr-home-pcard-img img { aspect-ratio: auto; }
.flint-v2 .fr-home .fr-home-program-body { padding: 32px 36px 34px; justify-content: center; }
.flint-v2 .fr-home .fr-home-program-title { font-size: 27px; font-weight: 800; margin: 0 0 10px; color: var(--fr-text-strong); }
.flint-v2 .fr-home .fr-home-program-text { font-size: 16px; color: var(--fr-text-body); line-height: 1.6; max-width: 620px; }
.flint-v2 .fr-home .fr-home-program-body .fr-home-pcard-foot { margin-top: 22px; }

.flint-v2 .fr-home .fr-home-prod-cta { text-align: center; margin-top: 30px; }
.flint-v2 .fr-home .fr-home-prod-note {
	margin-top: 16px;
	text-align: center;
	font-size: 16px;
	color: var(--fr-text-body);
}
.flint-v2 .fr-home .fr-home-prod-note a { font-weight: 700; }

/* ======================================================================
   4. Device finder
   ====================================================================== */

.flint-v2 .fr-home .fr-home-finder-grid {
	display: grid;
	grid-template-columns: 1fr 500px;
	gap: 60px;
	align-items: center;
}
.flint-v2 .fr-home .fr-home-finder-body { font-size: 18px; line-height: 1.65; color: var(--fr-text-body); max-width: 480px; margin: 0 0 28px; }
.flint-v2 .fr-home .fr-home-checks { display: flex; flex-direction: column; gap: 12px; }
.flint-v2 .fr-home .fr-home-check { display: flex; align-items: center; gap: 12px; color: var(--fr-grey-700); font-size: 16px; }
.flint-v2 .fr-home .fr-home-check-ico { color: var(--fr-home-success); display: inline-flex; flex-shrink: 0; }

.flint-v2 .fr-home .fr-home-finder-card {
	background: #fff;
	border: 1px solid var(--fr-border-subtle);
	border-radius: 24px;
	box-shadow: 0 20px 50px rgba(12, 47, 76, 0.12);
	padding: 32px 34px 34px;
}
.flint-v2 .fr-home .fr-home-finder-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.flint-v2 .fr-home .fr-home-finder-kicker {
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--fr-sky-600);
}
.flint-v2 .fr-home .fr-home-finder-step { font-size: 13px; font-weight: 700; color: var(--fr-text-muted); }
.flint-v2 .fr-home .fr-home-finder-divider { height: 1px; background: var(--fr-grey-100); margin: 14px 0 24px; }
.flint-v2 .fr-home .fr-home-finder-q { font-size: 25px; font-weight: 800; margin: 0 0 6px; line-height: 1.25; }
.flint-v2 .fr-home .fr-home-finder-sub { font-size: 15px; color: var(--fr-text-muted); margin: 0 0 20px; }

.flint-v2 .fr-home .fr-home-finder-options { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.flint-v2 .fr-home button.fr-home-finder-opt {
	display: flex;
	flex-direction: column;
	gap: 5px;
	align-items: flex-start;
	text-align: left;
	border: 2px solid var(--fr-grey-100);
	background: #fff;
	border-radius: 16px;
	padding: 16px 18px;
	cursor: pointer;
	transition: border-color 0.14s ease, background 0.14s ease;
}
.flint-v2 .fr-home button.fr-home-finder-opt:hover { border-color: var(--fr-blue); background: var(--fr-blue-50); }
.flint-v2 .fr-home button.fr-home-finder-opt:focus-visible { outline: none; box-shadow: var(--fr-shadow-focus); }
.flint-v2 .fr-home button.fr-home-finder-opt.is-selected { border-color: var(--fr-blue); background: var(--fr-blue-50); }
.flint-v2 .fr-home .fr-home-finder-opt-ico { color: var(--fr-blue); display: inline-flex; }
.flint-v2 .fr-home .fr-home-finder-opt-text { display: flex; flex-direction: column; gap: 2px; align-items: flex-start; text-align: left; }
.flint-v2 .fr-home .fr-home-finder-opt-label { font-weight: 700; font-size: 16px; color: var(--fr-text-strong); }
.flint-v2 .fr-home .fr-home-finder-opt-sub { font-size: 13px; color: var(--fr-text-muted); line-height: 1.4; }

.flint-v2 .fr-home .fr-home-finder-intro { font-size: 15px; color: var(--fr-text-muted); margin: 0 0 14px; }
.flint-v2 .fr-home .fr-home-finder-picks { display: flex; flex-direction: column; gap: 12px; }
.flint-v2 .fr-home .fr-home-finder-pick {
	display: flex;
	gap: 16px;
	align-items: center;
	background: var(--fr-soft-blue);
	border: 1px solid var(--fr-blue-100);
	border-radius: 16px;
	padding: 14px 16px;
}
.flint-v2 .fr-home .fr-home-finder-pick-img {
	width: 68px;
	height: 68px;
	border-radius: 12px;
	flex-shrink: 0;
	background-size: cover;
	background-position: center;
}
.flint-v2 .fr-home .fr-home-finder-pick-main { flex: 1; min-width: 0; }
.flint-v2 .fr-home .fr-home-finder-pick-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.flint-v2 .fr-home .fr-home-finder-pick-name { font-size: 18px; font-weight: 800; color: var(--fr-text-strong); margin: 0; }
.flint-v2 .fr-home .fr-home-finder-pick-name a { color: inherit; }
.flint-v2 .fr-home .fr-home-finder-pick-price { font-weight: 800; font-size: 16px; color: var(--fr-text-strong); white-space: nowrap; }
.flint-v2 .fr-home .fr-home-finder-pick-why { font-size: 13.5px; color: var(--fr-text-body); line-height: 1.45; margin-top: 4px; }
.flint-v2 .fr-home .fr-home-finder-foot {
	margin-top: 20px;
	padding-top: 18px;
	border-top: 1px solid var(--fr-border-subtle);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
}
.flint-v2 .fr-home .fr-home-finder-guide { font-weight: 700; font-size: 14.5px; }
.flint-v2 .fr-home button.fr-home-finder-reset {
	background: none;
	border: none;
	color: var(--fr-text-muted);
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	padding: 0;
}
.flint-v2 .fr-home button.fr-home-finder-reset:hover { color: var(--fr-text-strong); }

/* ======================================================================
   5. Stats band
   ====================================================================== */

.flint-v2 .fr-home .fr-home-stats-sec { background: var(--fr-blue); padding: 68px 0; }
.flint-v2 .fr-home .fr-home-stats-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
}
.flint-v2 .fr-home .fr-home-stat { text-align: center; align-items: center; }
.flint-v2 .fr-home .fr-home-stat-figure { font-weight: 800; font-size: 50px; color: #fff; line-height: 1; letter-spacing: -0.02em; }
.flint-v2 .fr-home .fr-home-stat-label { color: #fff; font-weight: 700; margin-top: 12px; font-size: 16px; }
.flint-v2 .fr-home .fr-home-stat-caption { color: rgba(255, 255, 255, 0.72); font-size: 13.5px; margin-top: 4px; }

/* ======================================================================
   6. Why it works
   ====================================================================== */

.flint-v2 .fr-home .fr-home-why { background: var(--fr-soft-blue); }
.flint-v2 .fr-home .fr-home-why-grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 52px;
	align-items: center;
}
.flint-v2 .fr-home .fr-home-why-media { position: relative; padding: 0 24px 24px 0; }
/* Quote CAROUSEL (Phil review 2026-09-21): slides stack in one grid cell,
   JS crossfades — same mechanics as the hero. */
.flint-v2 .fr-home .fr-home-why-slides .elementor-loop-container {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}
.flint-v2 .fr-home .fr-home-why-slides .e-loop-item { grid-area: 1 / 1; }
.flint-v2 .fr-home .fr-home-wslide {
	position: relative;
	width: 100%;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.5s var(--fr-ease), visibility 0.5s;
}
.flint-v2 .fr-home .fr-home-why-slides .e-loop-item:first-child .fr-home-wslide { opacity: 1; visibility: visible; }
.flint-v2 .fr-home .fr-home-wslide.is-active { opacity: 1 !important; visibility: visible !important; }
.flint-v2 .fr-home .fr-home-wslide.is-hidden { opacity: 0 !important; visibility: hidden !important; }

.flint-v2 .fr-home .fr-home-why-photo {
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 24px 56px rgba(12, 47, 76, 0.2);
}
.flint-v2 .fr-home .fr-home-why-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; height: auto; }
.flint-v2 .fr-home .fr-home-why-quote {
	position: absolute;
	right: -24px;
	bottom: -24px;
	width: 300px;
	background: #fff;
	border: 1px solid var(--fr-border-subtle);
	border-radius: 18px;
	box-shadow: 0 20px 44px rgba(12, 47, 76, 0.18);
	padding: 22px 24px;
	z-index: 2;
}
.flint-v2 .fr-home .fr-home-why-quote-text {
	font-size: 16px;
	line-height: 1.55;
	color: var(--fr-text-strong);
	font-weight: 600;
	margin: 10px 0 12px;
}
.flint-v2 .fr-home .fr-home-why-quote-text::before { content: "\201C"; }
.flint-v2 .fr-home .fr-home-why-quote-text::after { content: "\201D"; }
.flint-v2 .fr-home .fr-home-why-attr {
	flex-direction: row;
	align-items: baseline;
	gap: 5px;
	font-size: 13.5px;
	color: var(--fr-text-muted);
}
.flint-v2 .fr-home .fr-home-why-attr > * { width: auto; --width: auto; }
.flint-v2 .fr-home .fr-home-why-name { font-weight: 700; color: var(--fr-text-strong); font-size: 13.5px; }
.flint-v2 .fr-home .fr-home-why-context { font-size: 13.5px; color: var(--fr-text-muted); }
.flint-v2 .fr-home .fr-home-why-context::before { content: "· "; }
.flint-v2 .fr-home .fr-home-why-body { font-size: 17.5px; line-height: 1.7; color: var(--fr-text-body); margin: 0 0 24px; }

.flint-v2 .fr-home .fr-home-rails { display: flex; flex-direction: column; gap: 14px; }
.flint-v2 .fr-home .fr-home-rail {
	background: #fff;
	padding: 16px 20px;
	border-radius: 0 14px 14px 0;
	display: flex;
	gap: 13px;
	align-items: flex-start;
}
.flint-v2 .fr-home .fr-home-rail--blue { border-left: 3px solid var(--fr-blue); }
.flint-v2 .fr-home .fr-home-rail--blue .fr-home-rail-ico { color: var(--fr-blue); }
.flint-v2 .fr-home .fr-home-rail--orange { border-left: 3px solid var(--fr-orange); }
.flint-v2 .fr-home .fr-home-rail--orange .fr-home-rail-ico { color: var(--fr-orange-700); }
.flint-v2 .fr-home .fr-home-rail--success { border-left: 3px solid var(--fr-home-success); }
.flint-v2 .fr-home .fr-home-rail--success .fr-home-rail-ico { color: var(--fr-home-success); }
.flint-v2 .fr-home .fr-home-rail-ico { flex-shrink: 0; margin-top: 2px; display: inline-flex; }
.flint-v2 .fr-home .fr-home-rail-text { font-size: 15.5px; line-height: 1.6; color: var(--fr-grey-700); }
.flint-v2 .fr-home .fr-home-why-link { margin-top: 24px; }
.flint-v2 .fr-home .fr-home-why-link a { font-weight: 700; font-size: 16px; }

/* ======================================================================
   7. Proof
   ====================================================================== */

.flint-v2 .fr-home .fr-home-proof-grid {
	display: grid;
	grid-template-columns: 0.8fr 1.2fr;
	gap: 56px;
	align-items: center;
}
.flint-v2 .fr-home .fr-home-proof-body { font-size: 17.5px; line-height: 1.7; color: var(--fr-text-body); margin: 0 0 22px; }
.flint-v2 .fr-home .fr-home-proof-rating {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 24px;
	font-size: 15px;
	color: var(--fr-text-muted);
}
.flint-v2 .fr-home .fr-home-review-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.flint-v2 .fr-home .fr-home-rcard {
	background: #fff;
	border: 1px solid var(--fr-border-subtle);
	border-radius: 18px;
	padding: 24px;
	box-shadow: var(--fr-shadow-sm);
	height: 100%;
}
.flint-v2 .fr-home .fr-home-rcard-quote { font-size: 16.5px; line-height: 1.55; color: var(--fr-text-strong); font-weight: 600; margin: 12px 0 14px; }
/* ACF-bound text renders as bare text inside the widget div (Elementor
   optimized markup, no inner container) — quotes go on the widget itself. */
.flint-v2 .fr-home .fr-home-rcard-quote::before { content: "\201C"; }
.flint-v2 .fr-home .fr-home-rcard-quote::after { content: "\201D"; }
.flint-v2 .fr-home .fr-home-rcard-byline { display: flex; align-items: center; gap: 11px; margin-top: auto; }
.flint-v2 .fr-home .fr-home-rcard-avatar { width: 40px; flex-shrink: 0; }
.flint-v2 .fr-home .fr-home-rcard-avatar img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.flint-v2 .fr-home .fr-home-rcard-who { flex-direction: row; align-items: baseline; gap: 5px; font-size: 13.5px; color: var(--fr-text-muted); }
.flint-v2 .fr-home .fr-home-rcard-who > * { width: auto; --width: auto; }
.flint-v2 .fr-home .fr-home-rcard-name { font-weight: 700; color: var(--fr-text-strong); font-size: 13.5px; }
.flint-v2 .fr-home .fr-home-rcard-prod { font-size: 13.5px; color: var(--fr-text-muted); }
.flint-v2 .fr-home .fr-home-rcard-prod::before { content: "· "; }

/* ======================================================================
   8. Recovery library
   ====================================================================== */

.flint-v2 .fr-home .fr-home-library { background: var(--fr-soft-blue); }
.flint-v2 .fr-home .fr-home-lib-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 32px;
}
.flint-v2 .fr-home .fr-home-lib-head-copy { max-width: 660px; }

/* The [flint_blog_search] widget, restyled to the design pill. Behaviour
   (live REST results, submit interception) stays entirely the plugin's. */
.flint-v2 .fr-home .fr-home-search-widget .flint-blog-search {
	max-width: 620px;
	margin: 0 0 16px;
	font-family: var(--fr-font) !important;
}
.flint-v2 .fr-home .fr-home-search-widget .flint-blog-search form {
	align-items: center;
	gap: 12px;
	background: #fff;
	border: 2px solid var(--fr-home-blue-200);
	border-radius: var(--fr-radius-pill);
	padding: 6px 8px 6px 22px;
	box-shadow: 0 10px 30px rgba(27, 117, 187, 0.1);
}
.flint-v2 .fr-home .fr-home-search-widget .flint-blog-search form:focus-within { border-color: var(--fr-blue); }
/* The design's search glyph, as a pseudo-element on the form. */
.flint-v2 .fr-home .fr-home-search-widget .flint-blog-search form::before {
	content: "";
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="%231b75bb" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>') center no-repeat;
}
/* Homepage searches all topics — no scope dropdown in the design. */
.flint-v2 .fr-home .fr-home-search-widget .flint-bs-scope { display: none; }
.flint-v2 .fr-home .fr-home-search-widget .flint-blog-search input[type="search"] {
	border: 0;
	background: none;
	font-size: 17px;
	color: var(--fr-text-strong);
	padding: 10px 0;
}
.flint-v2 .fr-home .fr-home-search-widget .flint-blog-search input[type="search"]:focus {
	outline: none;
	border: 0;
	box-shadow: none;
}
.flint-v2 .fr-home .fr-home-search-widget .flint-blog-search input[type="search"]::placeholder { color: var(--fr-grey-400); }
/* The JS-injected Search button (design furniture; submit runs the live search). */
.flint-v2 .fr-home button.fr-home-search-btn {
	border: 0;
	border-radius: var(--fr-radius-pill);
	padding: 13px 24px;
	font-size: 15.5px;
	font-weight: 700;
	cursor: pointer;
	flex-shrink: 0;
	background: var(--fr-blue);
	color: #fff;
	transition: background 0.14s var(--fr-ease);
}
.flint-v2 .fr-home button.fr-home-search-btn:hover { background: var(--fr-blue-700); }
.flint-v2 .fr-home button.fr-home-search-btn:focus-visible { outline: none; box-shadow: var(--fr-shadow-focus); }
/* Results dropdown inherits the widget's own styles; just match the type. */
.flint-v2 .fr-home .fr-home-search-widget .flint-bs-results { border-radius: 16px; }

.flint-v2 .fr-home .fr-home-row-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin: 40px 0 22px;
}
.flint-v2 .fr-home .fr-home-cond-head .fr-home-row-head { margin-top: 24px; }

.flint-v2 .fr-home .fr-home-cond-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin-bottom: 56px;
}
.flint-v2 .fr-home .fr-home-ccard {
	background: #fff;
	border: 1px solid var(--fr-border-subtle);
	border-radius: 20px;
	overflow: hidden;
	box-shadow: var(--fr-shadow-sm);
	transition: transform 0.22s var(--fr-home-lift), box-shadow 0.22s var(--fr-home-lift);
	height: 100%;
}
.flint-v2 .fr-home .fr-home-ccard-img img { aspect-ratio: 16 / 10; }
.flint-v2 .fr-home .fr-home-ccard-body { padding: 22px 24px 26px; }
.flint-v2 .fr-home .fr-home-ccard-title { font-size: 21px; font-weight: 800; margin: 0 0 8px; }
.flint-v2 .fr-home .fr-home-ccard-title a { color: var(--fr-text-strong); }
.flint-v2 .fr-home .fr-home-ccard-sub { font-size: 14.5px; line-height: 1.55; color: var(--fr-text-muted); margin: 0 0 16px; }
.flint-v2 .fr-home .fr-home-card-links { display: flex; flex-direction: column; gap: 9px; font-size: 15px; align-items: flex-start; }

.flint-v2 .fr-home .fr-home-week-head { flex-wrap: wrap; align-items: center; gap: 30px; margin: 0 0 26px; }
.flint-v2 .fr-home .fr-home-chips { display: flex; gap: 9px; flex-wrap: wrap; }
.flint-v2 .fr-home button.fr-home-chip {
	border: 1px solid var(--fr-home-grey-200);
	background: #fff;
	color: var(--fr-grey-700);
	font-weight: 700;
	font-size: 14.5px;
	padding: 9px 18px;
	border-radius: var(--fr-radius-pill);
	cursor: pointer;
	transition: background 0.14s ease, color 0.14s ease, border-color 0.14s ease;
}
.flint-v2 .fr-home button.fr-home-chip:hover { border-color: var(--fr-blue); color: var(--fr-blue); }
.flint-v2 .fr-home button.fr-home-chip:focus-visible { outline: none; box-shadow: var(--fr-shadow-focus); }
.flint-v2 .fr-home button.fr-home-chip.is-active { background: var(--fr-blue); border-color: var(--fr-blue); color: #fff; }

.flint-v2 .fr-home .fr-home-article-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
}
/* Read-this-week (Phil round 2): five pre-rendered category grids of REAL
   posts; chips toggle which one shows. */
.flint-v2 .fr-home .fr-home-postgrid {
	display: none;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
}
.flint-v2 .fr-home .fr-home-postgrid.is-shown { display: grid; }
.flint-v2 .fr-home .fr-home-postgrid .elementor-loop-container,
/* Elementor without the "optimized markup" experiment (production) wraps
   every widget's output in .elementor-widget-container; with it (staging)
   the wrapper is absent. Dissolving it makes both render identically — the
   quote marks and byline separator are pseudo-elements that the extra
   block box would otherwise push onto their own lines. */
.flint-v2 .fr-home .elementor-widget-container { display: contents; }
.flint-v2 .fr-home .fr-home-postgrid > .elementor-widget-container { display: contents; }
.flint-v2 .fr-home .fr-home-acard-blurb {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.flint-v2 .fr-home .fr-home-acard {
	background: #fff;
	border: 1px solid var(--fr-border-subtle);
	border-radius: 18px;
	overflow: hidden;
	box-shadow: var(--fr-shadow-xs);
	transition: transform 0.22s var(--fr-home-lift), box-shadow 0.22s var(--fr-home-lift);
	height: 100%;
}
.flint-v2 .fr-home a.fr-home-acard:hover { text-decoration: none; }
.flint-v2 .fr-home .fr-home-acard-img img { aspect-ratio: 16 / 9; }
.flint-v2 .fr-home .fr-home-acard-body { padding: 22px 24px 26px; }
.flint-v2 .fr-home .fr-home-acard-topic { display: none; }
.flint-v2 .fr-home .fr-home-acard-meta {
	font-size: 12.5px;
	font-weight: 700;
	color: var(--fr-sky-600);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.flint-v2 .fr-home .fr-home-acard-title { font-size: 20px; font-weight: 800; margin: 9px 0; line-height: 1.3; color: var(--fr-text-strong); }
.flint-v2 .fr-home .fr-home-acard-blurb { font-size: 14.5px; line-height: 1.55; color: var(--fr-text-muted); }
.flint-v2 .fr-home .e-loop-item[data-fr-hidden="1"] { display: none; }

.flint-v2 .fr-home .fr-home-lib-foot { text-align: center; margin-top: 40px; }

/* ======================================================================
   9. Newsletter
   ====================================================================== */

.flint-v2 .fr-home .fr-home-news { padding: 76px 0; }
.flint-v2 .fr-home .fr-home-news-panel {
	background: linear-gradient(135deg, var(--fr-home-sky-bright) 0%, var(--fr-blue) 100%);
	border-radius: 24px;
	padding: 48px 56px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 48px;
	flex-wrap: wrap;
}
.flint-v2 .fr-home .fr-home-news-copy { max-width: 560px; }
.flint-v2 .fr-home .fr-home-news-title { font-size: 32px; color: #fff; margin: 0 0 10px; line-height: 1.15; }
.flint-v2 .fr-home .fr-home-news-body { font-size: 17px; color: rgba(255, 255, 255, 0.9); line-height: 1.6; margin: 0; }

/* ======================================================================
   10. Long-form + FAQ
   ====================================================================== */

.flint-v2 .fr-home .fr-home-longform-grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 64px;
	align-items: start;
}
.flint-v2 .fr-home .fr-home-longform-body { font-size: 17px; line-height: 1.75; color: var(--fr-text-body); }
.flint-v2 .fr-home .fr-home-longform-body p { margin: 0 0 18px; }
.flint-v2 .fr-home .fr-home-longform-body a { font-weight: 600; }
.flint-v2 .fr-home .fr-home-callout {
	border-left: 3px solid var(--fr-orange);
	background: var(--fr-orange-100);
	padding: 18px 22px;
	border-radius: 0 14px 14px 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--fr-grey-700);
	margin-top: 6px;
}

.flint-v2 .fr-home .fr-home-faq-list { display: flex; flex-direction: column; }
.flint-v2 .fr-home .fr-home-faq-list .elementor-loop-container { display: flex; flex-direction: column; gap: 12px; }
.flint-v2 .fr-home .fr-home-faq {
	background: var(--fr-soft-blue);
	border: 1px solid var(--fr-blue-100);
	border-radius: 14px;
	padding: 0;
	overflow: hidden;
}
.flint-v2 .fr-home .fr-home-faq-q {
	font-weight: 700;
	font-size: 16.5px;
	color: var(--fr-text-strong);
	letter-spacing: 0;
}
/* JS turns each question into a real <button>; these style it. */
.flint-v2 .fr-home button.fr-home-faq-btn {
	display: flex;
	width: 100%;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	background: none;
	border: 0;
	padding: 18px 20px;
	cursor: pointer;
	text-align: left;
	font-weight: 700;
	font-size: 16.5px;
	color: var(--fr-text-strong);
}
.flint-v2 .fr-home button.fr-home-faq-btn:focus-visible { outline: none; box-shadow: var(--fr-shadow-focus); }
.flint-v2 .fr-home .fr-home-faq-ico { color: var(--fr-blue); display: inline-flex; flex-shrink: 0; }
.flint-v2 .fr-home .fr-home-faq-a {
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--fr-text-body);
	padding: 0 20px 18px;
}
.flint-v2 .fr-home .fr-home-faq:not(.is-open) .fr-home-faq-a { display: none; }
/* Pre-JS: show the first answer expanded (desktop design default). */
.flint-v2 .fr-home .fr-home-faq-list:not(.js-ready) .e-loop-item:first-child .fr-home-faq-a { display: block; }

/* ======================================================================
   11. Where to start + help strip
   ====================================================================== */

.flint-v2 .fr-home .fr-home-start-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.flint-v2 .fr-home .fr-home-start-card {
	background: #fff;
	border: 1px solid var(--fr-border-subtle);
	border-radius: 20px;
	padding: 30px 30px 32px;
	box-shadow: var(--fr-shadow-sm);
	transition: transform 0.22s var(--fr-home-lift), box-shadow 0.22s var(--fr-home-lift);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.flint-v2 .fr-home .fr-home-start-ico {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
}
.flint-v2 .fr-home .fr-home-start-ico--blue { background: var(--fr-blue-50); color: var(--fr-blue); }
.flint-v2 .fr-home .fr-home-start-ico--orange { background: var(--fr-orange-100); color: var(--fr-orange-700); }
.flint-v2 .fr-home .fr-home-start-ico--sky { background: var(--fr-home-sky-100); color: var(--fr-sky-600); }
.flint-v2 .fr-home .fr-home-start-card h3 { font-size: 23px; margin: 0 0 10px; }
.flint-v2 .fr-home .fr-home-start-card p { font-size: 15.5px; line-height: 1.6; color: var(--fr-text-body); margin: 0 0 18px; }
.flint-v2 .fr-home .fr-home-start-cta { margin-top: 20px; }

.flint-v2 .fr-home .fr-home-help-strip {
	margin-top: 34px;
	background: var(--fr-soft-blue);
	border: 1px solid var(--fr-blue-100);
	border-radius: 20px;
	padding: 30px 36px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 36px;
	flex-wrap: wrap;
}
.flint-v2 .fr-home .fr-home-help-left { display: flex; align-items: center; gap: 18px; }
.flint-v2 .fr-home .fr-home-help-ico {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--fr-blue-100);
	color: var(--fr-blue);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.flint-v2 .fr-home .fr-home-help-title { font-size: 20px; font-weight: 800; color: var(--fr-text-strong); }
.flint-v2 .fr-home .fr-home-help-body { font-size: 15.5px; color: var(--fr-text-body); margin-top: 4px; }
.flint-v2 .fr-home .fr-home-help-body a { font-weight: 700; }
.flint-v2 .fr-home .fr-home-help-ctas { display: flex; gap: 12px; flex-wrap: wrap; }

/* ======================================================================
   12. Mobile sticky CTA (hidden on desktop)
   ====================================================================== */

.flint-v2 .fr-home .fr-home-sticky-cta { display: none; }

/* ======================================================================
   Responsive — tablet squeeze
   ====================================================================== */

@media (max-width: 1080px) {
	.flint-v2 .fr-home .fr-home-h1 { font-size: 46px; }
	.flint-v2 .fr-home .fr-home-h2 { font-size: 33px; }
	.flint-v2 .fr-home .fr-home-h2--md { font-size: 30px; }
	.flint-v2 .fr-home .fr-home-hero-grid { gap: 40px; }
	.flint-v2 .fr-home .fr-home-product-grid { grid-template-columns: repeat(2, 1fr); }
	.flint-v2 .fr-home .fr-home-cond-grid { grid-template-columns: repeat(2, 1fr); }
	.flint-v2 .fr-home .fr-home-article-grid,
	.flint-v2 .fr-home .fr-home-postgrid { grid-template-columns: repeat(2, 1fr); }
	.flint-v2 .fr-home .fr-home-stats-grid { grid-template-columns: repeat(2, 1fr); row-gap: 40px; }
	.flint-v2 .fr-home .fr-home-finder-grid { grid-template-columns: 1fr; gap: 40px; }
	.flint-v2 .fr-home .fr-home-finder-cardwrap { max-width: 560px; }
	.flint-v2 .fr-home .fr-home-program-card { grid-template-columns: 320px 1fr; }
	.flint-v2 .fr-home .fr-home-why-grid,
	.flint-v2 .fr-home .fr-home-proof-grid,
	.flint-v2 .fr-home .fr-home-longform-grid { grid-template-columns: 1fr; gap: 44px; }
	.flint-v2 .fr-home .fr-home-start-grid { grid-template-columns: 1fr; }
}

/* ======================================================================
   Responsive — the 390px mobile design (≤760px)
   ====================================================================== */

@media (max-width: 760px) {
	.flint-v2 .fr-home .fr-home-wrap { padding-left: 18px; padding-right: 18px; }
	.flint-v2 .fr-home-sec { padding: 44px 0 48px; }

	.flint-v2 .fr-home .fr-home-h1 { font-size: 34px; line-height: 1.1; }
	.flint-v2 .fr-home .fr-home-h2 { font-size: 28px; line-height: 1.16; }
	.flint-v2 .fr-home .fr-home-h2--md { font-size: 27px; }
	.flint-v2 .fr-home .fr-home-h3 { font-size: 24px; }
	.flint-v2 .fr-home .fr-home-eyebrow { font-size: 11.5px; margin-bottom: 10px; }

	/* Hero stacks; media below copy; stat card overlaps image bottom. */
	.flint-v2 .fr-home .fr-home-hero { padding: 40px 0 56px; }
	.flint-v2 .fr-home .fr-home-hero-grid { grid-template-columns: 1fr; gap: 34px; }
	.flint-v2 .fr-home .fr-home-hero-body { font-size: 16px; margin-bottom: 24px; }
	.flint-v2 .fr-home .fr-home-hero-ctas { flex-direction: column; }
	.flint-v2 .fr-home .fr-home-hero-ctas .fr-home-btn { width: 100%; }
	.flint-v2 .fr-home .fr-home-hero-rating { margin-top: 22px; }
	.flint-v2 .fr-home .fr-home-hero-media { padding: 0 0 30px 0; }
	.flint-v2 .fr-home .fr-home-slide-img { border-radius: 20px; }
	.flint-v2 .fr-home .fr-home-slide-img img { aspect-ratio: 4 / 3.1; }
	.flint-v2 .fr-home .fr-home-slide-caption { top: 12px; right: 12px; font-size: 12.5px; padding: 8px 14px; }
	.flint-v2 .fr-home .fr-home-slide-stat { bottom: -22px; left: 14px; padding: 12px 16px; }
	.flint-v2 .fr-home .fr-home-slide-figure { font-size: 16px; }
	.flint-v2 .fr-home .fr-home-slide-detail { font-size: 12.5px; }

	/* Trust bar: 2x2 */
	.flint-v2 .fr-home .fr-home-trust-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 18px 0; }
	.flint-v2 .fr-home .fr-home-trust-item { font-size: 13px; gap: 9px; }
	.flint-v2 .fr-home .fr-home-trust-ico svg { width: 19px; height: 19px; }

	/* Products: single column, program card becomes a normal card. */
	.flint-v2 .fr-home .fr-home-product-grid { grid-template-columns: 1fr; gap: 16px; }
	.flint-v2 .fr-home .fr-home-pcard-img img { aspect-ratio: 16 / 10; }
	.flint-v2 .fr-home .fr-home-pcard-title { font-size: 21px; }
	.flint-v2 .fr-home .fr-home-program-card { grid-template-columns: 1fr; }
	.flint-v2 .fr-home .fr-home-program-card .fr-home-pcard-img img { aspect-ratio: 16 / 10; height: auto; }
	.flint-v2 .fr-home .fr-home-program-body { padding: 20px 22px 24px; }
	.flint-v2 .fr-home .fr-home-program-title { font-size: 21px; }
	.flint-v2 .fr-home .fr-home-program-text { font-size: 14.5px; }
	.flint-v2 .fr-home .fr-home-prod-note { font-size: 15px; }

	/* Finder card */
	.flint-v2 .fr-home .fr-home-finder-card { padding: 22px 20px 24px; }
	.flint-v2 .fr-home .fr-home-finder-options { grid-template-columns: 1fr; }
	.flint-v2 .fr-home button.fr-home-finder-opt {
		flex-direction: row;
		align-items: center;
		gap: 12px;
		min-height: 56px;
	}
	.flint-v2 .fr-home .fr-home-finder-opt-text { display: flex; flex-direction: column; gap: 2px; }
	.flint-v2 .fr-home .fr-home-finder-q { font-size: 21px; }

	/* Stats: 2x2 */
	.flint-v2 .fr-home .fr-home-stats-sec { padding: 38px 0; }
	.flint-v2 .fr-home .fr-home-stats-grid { grid-template-columns: 1fr 1fr; gap: 26px 14px; }
	.flint-v2 .fr-home .fr-home-stat-figure { font-size: 34px; }
	.flint-v2 .fr-home .fr-home-stat-label { font-size: 14px; margin-top: 8px; }
	.flint-v2 .fr-home .fr-home-stat-caption { font-size: 12.5px; }

	/* Why: photo leads, quote card in flow under it. */
	.flint-v2 .fr-home .fr-home-why-media { padding: 0 0 14px 0; }
	.flint-v2 .fr-home .fr-home-why-quote { position: static; width: 100%; margin-top: 14px; right: auto; bottom: auto; }
	.flint-v2 .fr-home .fr-home-why-body { font-size: 15.5px; }
	.flint-v2 .fr-home .fr-home-rail-text { font-size: 14.5px; }

	/* Proof: single column of review cards. */
	.flint-v2 .fr-home .fr-home-review-grid { grid-template-columns: 1fr; gap: 14px; }
	.flint-v2 .fr-home .fr-home-rcard { padding: 20px; }
	.flint-v2 .fr-home .fr-home-rcard-quote { font-size: 15.5px; }

	/* Library */
	.flint-v2 .fr-home .fr-home-lib-head { flex-direction: column; align-items: flex-start; gap: 14px; margin-bottom: 22px; }
	/* The plugin's own ≤640px rule sets flex-wrap:wrap (to stack its scope
	   dropdown on the Learn pages); our pill hides the dropdown, so keep
	   the icon + input + button on ONE row. */
	.flint-v2 .fr-home .fr-home-search-widget .flint-blog-search form {
		padding: 5px 6px 5px 16px;
		flex-wrap: nowrap;
		align-items: center;
		gap: 8px;
	}
	.flint-v2 .fr-home .fr-home-search-widget .flint-blog-search input[type="search"] {
		font-size: 15px;
		flex: 1 1 0%;
		width: auto;
		min-width: 0;
	}
	.flint-v2 .fr-home button.fr-home-search-btn { padding: 11px 18px; font-size: 14.5px; }
	.flint-v2 .fr-home .fr-home-row-head { flex-direction: column; align-items: flex-start; gap: 12px; margin: 28px 0 16px; }
	.flint-v2 .fr-home .fr-home-cond-grid { grid-template-columns: 1fr; gap: 16px; margin-bottom: 36px; }
	.flint-v2 .fr-home .fr-home-week-head { flex-direction: column; align-items: flex-start; }
	.flint-v2 .fr-home .fr-home-chips {
		flex-wrap: nowrap;
		overflow-x: auto;
		max-width: 100%;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 4px;
	}
	.flint-v2 .fr-home button.fr-home-chip { white-space: nowrap; flex-shrink: 0; }
	.flint-v2 .fr-home .fr-home-article-grid,
	.flint-v2 .fr-home .fr-home-postgrid { grid-template-columns: 1fr; gap: 16px; }
	.flint-v2 .fr-home .fr-home-postgrid .e-loop-item:nth-child(n+5) { display: none; }
	/* Mobile shows 4 posts by default; JS re-applies on filter. */
	.flint-v2 .fr-home .fr-home-article-grid .e-loop-item[data-fr-over="1"] { display: none; }
	.flint-v2 .fr-home .fr-home-lib-foot { margin-top: 28px; }
	.flint-v2 .fr-home .fr-home-lib-foot .fr-home-btn { width: 100%; }

	/* Newsletter */
	.flint-v2 .fr-home .fr-home-news { padding: 36px 0; }
	.flint-v2 .fr-home .fr-home-news-panel { padding: 28px 22px; }
	.flint-v2 .fr-home .fr-home-news-title { font-size: 24px; }
	.flint-v2 .fr-home .fr-home-news-body { font-size: 15px; }
	.flint-v2 .fr-home .fr-home-news-cta { width: 100%; }

	/* Long-form + FAQ */
	.flint-v2 .fr-home .fr-home-longform-body { font-size: 15.5px; }
	.flint-v2 .fr-home button.fr-home-faq-btn { padding: 16px 16px; font-size: 15.5px; }
	.flint-v2 .fr-home .fr-home-faq-a { font-size: 14.5px; padding: 0 16px 16px; }
	/* Mobile is a strict one-open accordion — no pre-JS expanded first row. */
	.flint-v2 .fr-home .fr-home-faq-list:not(.js-ready) .e-loop-item:first-child .fr-home-faq-a { display: none; }

	/* Where to start */
	.flint-v2 .fr-home .fr-home-start-grid { gap: 16px; }
	.flint-v2 .fr-home .fr-home-start-card { padding: 24px 22px 26px; }
	.flint-v2 .fr-home .fr-home-start-cta,
	.flint-v2 .fr-home .fr-home-start-cta .fr-home-btn { width: 100%; }
	.flint-v2 .fr-home .fr-home-help-strip { background: #fff; padding: 24px 20px; }
	.flint-v2 .fr-home .fr-home-help-ctas { width: 100%; }
	.flint-v2 .fr-home .fr-home-help-ctas .fr-home-btn { width: 100%; }

	/* Sticky bottom CTA bar */
	.flint-v2 .fr-home .fr-home-sticky-cta {
		display: block;
		position: sticky;
		bottom: 0;
		z-index: 30;
		background: rgba(255, 255, 255, 0.96);
		backdrop-filter: blur(8px);
		border-top: 1px solid var(--fr-border-subtle);
		padding: 10px 18px calc(10px + env(safe-area-inset-bottom));
	}
	.flint-v2 .fr-home .fr-home-sticky-inner { display: flex; gap: 10px; align-items: center; }
	.flint-v2 .fr-home .fr-home-sticky-shop { flex: 1; }
	.flint-v2 .fr-home a.fr-home-sticky-call {
		width: 48px;
		height: 48px;
		border-radius: 50%;
		border: 2px solid var(--fr-blue);
		color: var(--fr-blue);
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
	}
}

/* ======================================================================
   Reduced motion
   ====================================================================== */

@media (prefers-reduced-motion: reduce) {
	.flint-v2 .fr-home .fr-home-slide { transition: none; }
	.flint-v2 .fr-home .fr-home-pcard,
	.flint-v2 .fr-home .fr-home-program-card,
	.flint-v2 .fr-home .fr-home-ccard,
	.flint-v2 .fr-home .fr-home-acard,
	.flint-v2 .fr-home .fr-home-start-card { transition: none; }
	.flint-v2 .fr-home .fr-home-pcard:hover,
	.flint-v2 .fr-home .fr-home-program-card:hover,
	.flint-v2 .fr-home .fr-home-ccard:hover,
	.flint-v2 .fr-home .fr-home-acard:hover,
	.flint-v2 .fr-home .fr-home-start-card:hover { transform: none; }
}
