/* ==========================================================================
   bft-rhythm-components.css — Density Pilot rhythm components (CAR-762)
   Loads after bft-design-system-v2.css. All components use bft-* tokens.
   Components: callout box, accordion, pull quote, icon-led module.
   ========================================================================== */

/* ==========================================================================
   0. DENSITY PILOT — Promise sentence helpers (CAR-762)
   Used on /start-here pillar sections and decision section.
   ========================================================================== */

/* Pillar promise — bolded max-18-word sentence above the support para */
.bft-start-pillar__promise {
	font-size: 17px;
	line-height: 1.5;
	color: #1a1a2e;
	margin: 0 0 12px;
}
.bft-start-pillar__promise strong {
	font-weight: 700;
}

/* Decision section promise */
.bft-start-decision__promise {
	font-size: 16px;
	line-height: 1.55;
	color: #1a1a2e;
	margin: 0 0 20px;
	text-align: center;
}
.bft-start-decision__promise strong {
	font-weight: 700;
}

/* Accordion on #cedee1 background — override white bg assumption */
.bft-start-decision .bft-accordion__trigger {
	background: transparent;
}
.bft-start-decision .bft-accordion__content {
	background: transparent;
}

/* ==========================================================================
   1. CALLOUT BOX — .bft-callout
   Variants: --teal, --coral, --quiet
   ========================================================================== */

.bft-callout {
	border-radius: 10px;
	border-top: 1px solid #e8e8ee;
	border-right: 1px solid #e8e8ee;
	border-bottom: 1px solid #e8e8ee;
	border-left: 4px solid;
	padding: 20px 24px;
	margin: 24px 0;
}

/* Teal variant — informational facts, tips */
.bft-callout--teal {
	border-left-color: #2D6E6E;
	background: #e8f5f2;
}
.bft-callout--teal .bft-callout__label {
	color: #2D6E6E;
}

/* Coral variant — action prompts, urgency, warnings */
.bft-callout--coral {
	border-left-color: #E76F51;
	background: #FFF0EC;
}
.bft-callout--coral .bft-callout__label {
	color: #E76F51;
}

/* Quiet variant — subtle emphasis, asides */
.bft-callout--quiet {
	border-left-color: #C5E0D8;
	background: #FBF8F2;
}
/* Label on quiet must use body text color (WCAG: #C5E0D8 on #FBF8F2 = ~1.4:1, fails AA) */
.bft-callout--quiet .bft-callout__label {
	color: #1a1a2e;
}

/* Label — optional element */
.bft-callout__label {
	font-family: 'Source Sans 3', 'Source Sans Pro', sans-serif;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin: 0 0 8px;
	line-height: 1.4;
}

/* Body text */
.bft-callout__body {
	font-family: 'Source Sans 3', 'Source Sans Pro', sans-serif;
	font-size: 16px;
	line-height: 1.55;
	color: #1a1a2e;
	margin: 0;
}

@media (max-width: 639px) {
	.bft-callout {
		padding: 16px 20px;
	}
}

/* ==========================================================================
   2. ACCORDION — .bft-accordion
   ARIA-compliant, keyboard accessible, JS toggle
   ========================================================================== */

.bft-accordion {
	margin: 24px 0;
}

.bft-accordion__item {
	border-bottom: 1px solid #e8e8ee;
}
.bft-accordion__item:first-child {
	border-top: 1px solid #e8e8ee;
}

.bft-accordion__trigger {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 20px 0;
	background: transparent;
	border: none;
	cursor: pointer;
	text-align: left;
}

.bft-accordion__trigger:focus-visible {
	outline: 3px solid #3D8A8A;
	outline-offset: 2px;
}

/* Remove default Firefox/IE focus ring */
.bft-accordion__trigger::-moz-focus-inner {
	border: 0;
}

.bft-accordion__heading {
	font-family: 'Source Sans 3', 'Source Sans Pro', sans-serif;
	font-size: 18px;
	font-weight: 600;
	color: #1a1a2e;
	text-align: left;
	margin: 0;
	padding-right: 16px;
	line-height: 1.4;
}

.bft-accordion__chevron {
	flex-shrink: 0;
	color: #4A4240;
	transition: transform 300ms ease;
	display: block;
}

.bft-accordion__trigger[aria-expanded="true"] .bft-accordion__chevron {
	transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
	.bft-accordion__chevron {
		transition: none;
	}
}

.bft-accordion__body {
	overflow: hidden;
}

.bft-accordion__content {
	font-family: 'Source Sans 3', 'Source Sans Pro', sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: #4A4240;
	padding: 0 0 20px;
}

.bft-accordion__content p {
	margin: 0 0 12px;
}
.bft-accordion__content p:last-child {
	margin-bottom: 0;
}

.bft-accordion__content a {
	color: #2D6E6E;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: rgba(45, 110, 110, 0.4);
	transition: text-decoration-color 0.2s;
}
.bft-accordion__content a:hover {
	text-decoration-color: #2D6E6E;
}

/* ==========================================================================
   3. PULL QUOTE — .bft-pull-quote
   Semantic <figure> / <blockquote> structure, teal left border
   ========================================================================== */

.bft-pull-quote {
	margin: 32px 0;
	padding: 16px 0 16px 28px;
	border-left: 4px solid #2D6E6E;
}

.bft-pull-quote__quote {
	margin: 0;
}

.bft-pull-quote__quote p {
	font-family: 'DM Serif Display', serif;
	font-size: clamp(20px, 2.5vw, 26px);
	line-height: 1.35;
	color: #2D6E6E;
	font-style: italic;
	margin: 0;
}

.bft-pull-quote__attribution {
	font-family: 'Source Sans 3', 'Source Sans Pro', sans-serif;
	font-size: 15px;
	color: #7a7a8e;
	margin-top: 12px;
	display: block;
}

@media (max-width: 639px) {
	.bft-pull-quote {
		padding: 12px 0 12px 20px;
	}
}

/* ==========================================================================
   4. ICON-LED MODULE — .bft-icon-module / .bft-icon-module-grid
   Heroicons inline SVG, 44px icon wrap circle
   ========================================================================== */

.bft-icon-module {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 16px;
	margin: 24px 0;
}

.bft-icon-module__icon-wrap {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #e8f5f2;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bft-icon-module__icon {
	display: block;
	stroke: #2D6E6E;
}

.bft-icon-module__content {
	flex: 1;
	min-width: 0;
}

.bft-icon-module__heading {
	font-family: 'Source Sans 3', 'Source Sans Pro', sans-serif;
	font-size: 17px;
	font-weight: 700;
	color: #1a1a2e;
	margin: 0 0 6px;
	line-height: 1.3;
}

.bft-icon-module__body {
	font-family: 'Source Sans 3', 'Source Sans Pro', sans-serif;
	font-size: 15px;
	line-height: 1.55;
	color: #4A4240;
	margin: 0;
}

/* Grid wrapper — 2-col desktop, 1-col mobile */
.bft-icon-module-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin: 32px 0;
}

@media (min-width: 640px) {
	.bft-icon-module-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
