/*
 * Business Fast Track landing page styles (inc/fast-track.php loads this only
 * on template-business-fast-track.php). Scoped to .odm-fast-track so it cannot
 * leak into the rest of the theme. Plain CSS, no Tailwind compile step - same
 * pattern as assets/css/build-wizard.css.
 *
 * Mobile-first: every base rule is the narrow-screen layout, and breakpoints
 * only ever use min-width to add the wider layouts (640 / 768 / 900 / 1024).
 *
 * OD-FT-11 default (theme tokens only): reuses the theme's own --font-sans /
 * --font-display / --color-brand-* custom properties from source.css instead of
 * a parallel palette or the reference design's Bricolage Grotesque / IBM Plex
 * Sans / #5B3DF0 accent - no new font request, no new :root tokens.
 */

/* The theme's global [x-cloak] rule hides Alpine-managed nodes until Alpine
   boots. That is correct for chips and badges, but without JS it would hide
   seven of eight FAQ answers permanently, so inc/fast-track.php prints a
   <noscript> override for .odm-ft-faq__a only. */
[x-cloak] { display: none !important; }

.odm-fast-track {
	--ft-accent: var(--color-brand-600, #4f46e5);
	--ft-accent-light: var(--color-brand-100, #e0e7ff);
	--ft-dark: var(--color-brand-900, #312e81);
	--ft-ink: #17142e;
	--ft-muted: #4a4666;
	--ft-border: #e2ddf0;
	--ft-control-border: #7f78ad; /* 4:1 on white and on --ft-surface (WCAG 1.4.11) */
	--ft-surface: #f5f3fa;
	--ft-focus: var(--ft-accent);
	/* Full-bleed backgrounds, but content never wider than 82rem: on wide
	   screens the side padding grows instead of the grids stretching. */
	--ft-gutter: max(clamp(1.25rem, 5vw, 6rem), calc((100% - 82rem) / 2));
	--ft-section-y: clamp(3rem, 8vw, 5rem);
	/* Written by fast-track.js from the theme's sticky header and this page's own
	   nav; the fallbacks are a close no-JS estimate. */
	--ft-header-h: 4.5rem;
	--ft-nav-h: 3.5rem;
	font-family: var(--font-sans, system-ui, sans-serif);
	color: var(--ft-ink);
	background: #fff;
}
.odm-fast-track, .odm-fast-track * { box-sizing: border-box; }
.odm-fast-track h1, .odm-fast-track h2, .odm-fast-track h3, .odm-fast-track h4 {
	font-family: var(--font-display, var(--font-sans, sans-serif));
	margin: 0;
}
.odm-fast-track p { margin: 0; }

/* In-page jumps land below the sticky site header (and, from 640px up, this page's sticky nav). */
.odm-fast-track [id] { scroll-margin-top: calc(var(--ft-header-h) + 0.75rem); }

/* Focus ring: colour follows the surface it sits on. The theme's global ring is
   brand-700, which is ~1.5:1 on the dark brand-900 sections (WCAG 2.4.7 / 1.4.11). */
.odm-fast-track :focus-visible { outline: 3px solid var(--ft-focus); outline-offset: 3px; }
.odm-ft-dark, .odm-ft-nav, .odm-ft-band, .odm-ft-tally, .odm-ft-offer, .odm-ft-card--dark { --ft-focus: #fff; }
.odm-ft-hero__card, .odm-ft-offer__card { --ft-focus: var(--ft-accent); }

.odm-ft-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

@media (prefers-reduced-motion: reduce) {
	.odm-fast-track *, .odm-fast-track *::before, .odm-fast-track *::after {
		animation-duration: 1ms !important; animation-iteration-count: 1 !important;
		transition-duration: 1ms !important; scroll-behavior: auto !important;
	}
}
html.odm-a11y-pause .odm-fast-track *, html.odm-a11y-pause .odm-fast-track *::before, html.odm-a11y-pause .odm-fast-track *::after {
	animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important;
}

/* ---------- layout primitives ---------- */
.odm-ft-container-pad { padding: 0 var(--ft-gutter) clamp(2.5rem, 6vw, 4rem); }
.odm-ft-section { padding: var(--ft-section-y) var(--ft-gutter); display: flex; flex-direction: column; gap: 2.5rem; }
.odm-ft-section--white { background: #fff; }
.odm-ft-dark { background: var(--ft-dark); color: #fff; padding: var(--ft-section-y) var(--ft-gutter); display: flex; flex-direction: column; gap: 2.5rem; }
.odm-ft-section__head { display: flex; flex-direction: column; gap: 1rem; max-width: 52rem; }
.odm-ft-section__head--split { max-width: none; gap: 1rem 2.5rem; }
.odm-ft-section__head--split > div { display: flex; flex-direction: column; gap: 0.75rem; }
.odm-ft-eyebrow { font-size: 0.875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ft-accent); }
.odm-ft-eyebrow--light { color: #d6d1f2; }
.odm-ft-heading { font-weight: 800; font-size: clamp(1.75rem, 3.5vw, 3rem); line-height: 1.1; letter-spacing: -0.015em; }
.odm-ft-heading--light { color: #fff; }
.odm-ft-intro { font-size: 1.05rem; line-height: 1.6; color: var(--ft-muted); max-width: 32rem; }
.odm-ft-intro--light { color: #d6d1f2; }
.odm-ft-body { font-size: 1rem; line-height: 1.6; color: var(--ft-muted); }
.odm-ft-section > .odm-ft-body { max-width: 65ch; }
.odm-ft-body--sm { font-size: 0.9rem; }
.odm-ft-body--light { color: #d6d1f2; }
.odm-ft-h3, .odm-ft-h3-lg { font-weight: 700; font-size: 1.4rem; line-height: 1.2; }
.odm-ft-h3-lg { font-size: 1.75rem; }
.odm-ft-h4 { font-weight: 700; font-size: 1.2rem; line-height: 1.25; }
.odm-ft-h4--light { color: #fff; }
.odm-ft-label-sm { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ft-ink); }

.odm-ft-grid-2, .odm-ft-grid-3, .odm-ft-grid-4, .odm-ft-grid-5 { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.odm-ft-grid-4, .odm-ft-grid-5 { gap: 1.25rem; }
@media (min-width: 640px) {
	.odm-ft-grid-2, .odm-ft-grid-3, .odm-ft-grid-4, .odm-ft-grid-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
	.odm-ft-section__head--split { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: end; }
}
@media (min-width: 1024px) {
	.odm-ft-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.odm-ft-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.odm-ft-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* Always On additions (Phase 3B): a sixth core standard, an odd final pillar, and the compact feature block. */
.odm-ft-grid-6 { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
@media (min-width: 640px) {
	.odm-ft-grid-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.odm-ft-grid-2 > .odm-ft-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
	.odm-ft-grid-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.odm-ft-ao { margin-block-start: 3rem; }
.odm-ft-ao > .odm-ft-h3-lg { margin-block-end: 1.25rem; }
.odm-ft-offer__always-on { display: block; margin-block-start: 0.35rem; }

.odm-ft-card { display: flex; flex-direction: column; gap: 0.9rem; padding: 1.75rem; border-radius: 1.25rem; background: var(--ft-surface); }
.odm-ft-card--outline { background: #fff; border: 1px solid var(--ft-border); }
.odm-ft-card--pad-lg { padding: clamp(1.5rem, 5vw, 2.25rem); gap: 1.25rem; }
.odm-ft-card--dark { background: var(--ft-dark); }
.odm-ft-card--ring { box-shadow: 0 0 0 2px var(--ft-accent); }
.odm-ft-icon-tile { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 0.85rem; background: var(--ft-dark); color: #fff; font-size: 1.25rem; }
.odm-ft-icon-tile--on-dark { background: rgba(255,255,255,.12); }

/* ---------- buttons / chips / tags ---------- */
.odm-ft-btn { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; min-height: 48px; padding: 0 1.6rem; border-radius: 999px; font-weight: 600; font-size: 1rem; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.odm-ft-btn:active { transform: scale(.98); }
.odm-ft-btn--primary { background: var(--ft-accent); color: #fff; }
.odm-ft-btn--secondary, .odm-ft-btn--ghost { background: transparent; color: inherit; border: 1.5px solid currentColor; }
.odm-ft-btn--block { width: 100%; }
/* Pulse ring: a pseudo-element animating transform + opacity (composited), not
   an animated box-shadow (which repaints every frame). */
.odm-ft-btn--pulse::after { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: var(--ft-accent); opacity: 0; pointer-events: none; animation: odm-ft-pulse 2.6s ease-out infinite; }
@keyframes odm-ft-pulse { 0% { opacity: .45; transform: scale(1); } 70%, 100% { opacity: 0; transform: scale(1.16, 1.55); } }
.odm-ft-arrow { transition: transform .2s ease; }
.odm-ft-tlink { display: inline-flex; align-items: center; min-height: 48px; color: var(--ft-accent); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.odm-ft-tlink--light { color: #fff; }
.odm-ft-chip { display: inline-flex; align-items: center; padding: 0.35rem 0.75rem; border-radius: 8px; background: var(--ft-accent-light); color: var(--ft-accent); font-size: 0.85rem; font-weight: 600; }
.odm-ft-chip--solid { background: #fff; color: var(--ft-dark); padding: 0.6rem 1rem; border-radius: 0.75rem; }
.odm-ft-tag { display: inline-flex; padding: 0.35rem 0.7rem; border-radius: 999px; background: var(--ft-accent-light); color: #2e1b99; font-size: 0.8rem; font-weight: 600; }
.odm-ft-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* ---------- nav ---------- */
.odm-ft-nav { position: static; z-index: 30; background: rgba(22,18,58,.96); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.odm-ft-nav__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; padding: 0.25rem var(--ft-gutter); }
.odm-ft-nav__brand { display: inline-flex; align-items: center; min-height: 48px; color: #fff; font-weight: 700; text-decoration: none; flex-shrink: 0; }
.odm-ft-nav__links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem; }
.odm-ft-nav__link { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 0 0.6rem; color: #d6d1f2; text-decoration: none; font-size: 0.9rem; font-weight: 500; white-space: nowrap; }
.odm-ft-nav__link[aria-current="true"] { color: #fff; box-shadow: inset 0 -3px 0 #fff; }
.odm-ft-nav__cta { flex-shrink: 0; margin-inline-start: 0.5rem; }
/* Mobile first (320px reflow, SC 1.4.10): below 640px the link row wraps instead of
   scrolling sideways inside its own box and the nav is not sticky, because a wrapped
   multi-row sticky bar would take a large share of a small viewport. From 640px up it
   is the single sticky, horizontally scrollable row it always was. */
@media (min-width: 640px) {
	.odm-ft-nav { position: sticky; top: var(--ft-header-h); }
	.odm-ft-nav__inner { flex-wrap: nowrap; gap: 1.25rem; overflow-x: auto; }
	.odm-ft-nav__links { flex-wrap: nowrap; flex-shrink: 0; }
	.odm-fast-track [id] { scroll-margin-top: calc(var(--ft-header-h) + var(--ft-nav-h) + 0.75rem); }
	/* W11-013: keyboard focus (Shift+Tab especially) must clear the sticky site header AND this sticky nav.
	   The global scroll-padding-top (6rem) only covers the header. rem so it follows the text size. */
	html:has(.odm-fast-track) { scroll-padding-top: 9.5rem; }
}
@media (hover: hover) {
	.odm-ft-nav__link:hover, .odm-ft-nav__brand:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
}

/* ---------- hero ---------- */
.odm-ft-hero__grid { display: flex; flex-direction: column; gap: 2.5rem; }
.odm-ft-hero__copy { display: flex; flex-direction: column; gap: 1.5rem; flex: 1 1 32rem; }
.odm-ft-badge { align-self: flex-start; display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.5rem 1rem; border-radius: 999px; background: rgba(255,255,255,.08); color: #d6d1f2; font-size: 0.85rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; }
.odm-ft-dot { width: 8px; height: 8px; border-radius: 50%; background: #7cf0b5; }
.odm-ft-h1 { font-weight: 800; font-size: clamp(2.25rem, 5vw, 4.25rem); line-height: 1.05; letter-spacing: -0.02em; color: #fff; }
.odm-ft-lead { font-size: 1.15rem; line-height: 1.55; color: #d6d1f2; max-width: 38rem; }
.odm-ft-hero__ctas { display: flex; gap: 1rem; flex-wrap: wrap; }
.odm-ft-hero__chips { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.odm-ft-hero__chips-label { font-size: 0.9rem; color: #b3acdd; padding-inline-end: 0.4rem; }
.odm-ft-hero__chip-list { display: flex; flex-wrap: wrap; gap: 0.6rem; list-style: none; margin: 0; padding: 0; }
.odm-ft-hero__proof { display: flex; flex-wrap: wrap; gap: 0.75rem; font-size: 0.9rem; color: #b3acdd; }
.odm-ft-hero__card { display: flex; flex-direction: column; gap: 1.1rem; width: min(28rem, 100%); padding: clamp(1.25rem, 6vw, 2.25rem); border-radius: 1.5rem; background: #fff; color: var(--ft-ink); }
.odm-ft-hero__card-label { font-size: 0.85rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ft-accent); }
.odm-ft-hero__price { display: flex; align-items: baseline; gap: 0.5rem; flex-wrap: wrap; }
.odm-ft-hero__price-amount { font-family: var(--font-display, sans-serif); font-weight: 800; font-size: 2.25rem; line-height: 1; }
.odm-ft-hero__price-period, .odm-ft-hero__price-note { color: var(--ft-muted); font-size: 0.95rem; }
.odm-ft-hero__rule { border: 0; border-top: 1px solid var(--ft-border); margin: 0; }
.odm-ft-hero__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.65rem; font-size: 0.95rem; }
.odm-ft-hero__list li { display: flex; gap: 0.65rem; align-items: center; }
.odm-ft-hero__list svg { color: var(--ft-accent); flex-shrink: 0; }
.odm-ft-hero__footnote { font-size: 0.85rem; color: var(--ft-muted); text-align: center; }
@media (min-width: 768px) {
	.odm-ft-hero__grid { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 3.5rem; }
	.odm-ft-hero__price-amount { font-size: 2.75rem; }
}

/* motion (section 9) */
@media (prefers-reduced-motion: no-preference) {
	.odm-ft-rise { animation: odm-ft-rise .8s cubic-bezier(.2,.7,.2,1) both; }
	.odm-ft-d1 { animation-delay: .12s; } .odm-ft-d2 { animation-delay: .24s; } .odm-ft-d3 { animation-delay: .36s; }
	@keyframes odm-ft-rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
	@supports (animation-timeline: view()) {
		.odm-ft-reveal { animation: odm-ft-rise linear both; animation-timeline: view(); animation-range: entry 0% entry 45%; }
	}
}
html.odm-a11y-pause .odm-ft-rise, html.odm-a11y-pause .odm-ft-reveal { animation: none !important; opacity: 1 !important; transform: none !important; }

.odm-ft-card, .odm-ft-market { transition: transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s ease, background-color .2s ease, border-color .2s ease; }
.odm-ft-icon-tile { transition: transform .35s cubic-bezier(.2,.7,.2,1); }
/* Hover lift only where hover exists: on touch it sticks after a tap. */
@media (hover: hover) {
	.odm-ft-btn:hover { transform: translateY(-2px); }
	.odm-ft-btn--primary:hover { box-shadow: 0 8px 20px rgba(22,18,58,.28); }
	.odm-ft-btn:hover .odm-ft-arrow { transform: translateX(4px); }
	.odm-ft-btn--secondary:hover, .odm-ft-btn--ghost:hover { background: rgba(120,110,190,.16); }
	.odm-ft-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(22,18,58,.12); }
	.odm-ft-card:hover .odm-ft-icon-tile { transform: rotate(-6deg) scale(1.07); }
	.odm-ft-market:hover { background: #2a2363; }
	.odm-ft-toggle:hover, .odm-ft-stepper__btn:hover:not(:disabled) { border-color: var(--ft-accent); }
	.odm-ft-tlink:hover { text-decoration-thickness: 2px; }
}

/* ---------- pain points ---------- */
.odm-ft-pain__head { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; }
.odm-ft-pain__num { font-family: var(--font-display, sans-serif); font-weight: 800; font-size: 1.1rem; color: var(--ft-accent); }
.odm-ft-pain__body { flex-grow: 1; }
.odm-ft-pain__solved { display: flex; flex-direction: column; gap: 0.6rem; padding-top: 0.9rem; border-top: 1px solid var(--ft-border); }
.odm-ft-toggle { display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.1rem; border-radius: 999px; border: 1.5px solid var(--ft-control-border); background: #fff; color: var(--ft-ink); font-size: 0.85rem; font-weight: 600; cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .15s ease; }
.odm-ft-toggle:active { transform: scale(.95); }
.odm-ft-toggle--on { background: var(--ft-accent); color: #fff; border-color: var(--ft-accent); box-shadow: 0 0 0 2px var(--ft-accent); }

.odm-ft-tally { display: flex; align-items: center; gap: 1.25rem 2rem; padding: 1.5rem clamp(1.25rem, 4vw, 2rem); border-radius: 1.25rem; background: var(--ft-dark); color: #fff; flex-wrap: wrap; }
.odm-ft-tally__stats { display: flex; flex-direction: column; gap: 0.75rem; flex-grow: 1; min-width: min(16rem, 100%); }
.odm-ft-tally__count { display: flex; align-items: baseline; gap: 0.75rem; font-family: var(--font-display, sans-serif); }
.odm-ft-tally__count > span:first-child { font-weight: 800; font-size: 2.25rem; }
.odm-ft-tally__count > span:last-child { font-size: 1rem; color: #d6d1f2; font-family: var(--font-sans, sans-serif); font-weight: 400; }
.odm-ft-tally__bar { height: 8px; border-radius: 4px; background: rgba(255,255,255,.12); overflow: hidden; }
/* Scaled, not resized: animating width re-lays-out every frame, transform does not. */
.odm-ft-tally__bar-fill { width: 100%; height: 100%; border-radius: 4px; background: #9b83ff; transform-origin: left center; transform: scaleX(0); transition: transform .5s cubic-bezier(.2,.7,.2,1); }

/* ---------- CTA bands ---------- */
.odm-ft-band { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem 2rem; padding: clamp(1.5rem, 5vw, 2.5rem) clamp(1.25rem, 5vw, 3rem); border-radius: 1.75rem; background: var(--ft-dark); color: #fff; }
.odm-ft-band__copy { display: flex; flex-direction: column; gap: 0.5rem; }
.odm-ft-band__title { font-weight: 800; font-size: 1.5rem; line-height: 1.15; color: #fff; }
.odm-ft-band__body { font-size: 1rem; line-height: 1.6; color: #d6d1f2; }
.odm-ft-band__ctas { display: flex; gap: 0.85rem; flex-wrap: wrap; }
@media (min-width: 768px) {
	.odm-ft-band { flex-direction: row; justify-content: space-between; align-items: center; flex-wrap: wrap; }
	.odm-ft-band__title { font-size: 1.75rem; }
}

/* ---------- pillars / included ---------- */
.odm-ft-pillar__head { display: flex; align-items: center; gap: 1rem; }
.odm-ft-pillar__items { display: flex; flex-direction: column; gap: 1.1rem; margin: 0; }
.odm-ft-pillar__items dt { font-weight: 600; font-size: 1.05rem; }
.odm-ft-pillar__items dd { margin: 0.2rem 0 0; font-size: 0.95rem; line-height: 1.5; color: var(--ft-muted); }
.odm-ft-group { display: flex; flex-direction: column; gap: 1.5rem; padding: clamp(1.25rem, 5vw, 2.25rem); border-radius: 1.75rem; background: var(--ft-surface); margin-top: 1rem; }
.odm-ft-num-badge { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 0.7rem; background: var(--ft-dark); color: #fff; font-family: var(--font-display, sans-serif); font-weight: 800; }
.odm-ft-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.65rem; }
.odm-ft-checklist li { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.95rem; }
.odm-ft-checklist svg { color: var(--ft-accent); flex-shrink: 0; margin-top: 3px; }

/* ---------- markets / hosting ---------- */
.odm-ft-market { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; padding: 1.75rem; border-radius: 1.25rem; background: #221c52; border: 2px solid transparent; color: #fff; font: inherit; text-align: start; cursor: pointer; }
.odm-ft-market--on { background: #2e2670; border-color: #fff; }
.odm-ft-market__row { display: flex; width: 100%; justify-content: space-between; align-items: center; }
.odm-ft-market__code { font-family: var(--font-display, sans-serif); font-weight: 800; font-size: 1.85rem; }
.odm-ft-market__badge { padding: 0.25rem 0.6rem; border-radius: 999px; background: #fff; color: var(--ft-dark); font-size: 0.75rem; font-weight: 700; }
.odm-ft-market__name { font-weight: 600; font-size: 1.05rem; }
.odm-ft-market__meta { font-size: 0.9rem; color: #c9c3ea; }
.odm-ft-hosting__head { display: flex; align-items: baseline; gap: 0.75rem; }
.odm-ft-hosting__code { font-family: var(--font-display, sans-serif); font-weight: 800; font-size: 1.85rem; color: var(--ft-dark); }
.odm-ft-hosting__name { font-weight: 600; color: var(--ft-muted); }
.odm-ft-hosting__cities { font-weight: 600; font-size: 1.05rem; }
.odm-ft-hosting__note { font-size: 0.85rem; color: var(--ft-muted); }
.odm-ft-directory { display: flex; flex-direction: column; gap: 1.5rem; }
.odm-ft-directory__count { display: flex; align-items: baseline; gap: 1rem; }
.odm-ft-directory__num { font-family: var(--font-display, sans-serif); font-weight: 800; font-size: 2.25rem; color: var(--ft-accent); }
.odm-ft-directory__label { font-family: var(--font-display, sans-serif); font-weight: 700; font-size: 1.35rem; }
.odm-ft-directory__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
.odm-ft-directory__col { display: flex; flex-direction: column; gap: 0.55rem; font-size: 0.9rem; }
.odm-ft-directory__region { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--ft-accent); padding-bottom: 0.3rem; border-bottom: 2px solid var(--ft-dark); }
.odm-ft-directory__region-chev { transition: transform .25s ease; }
/* Mobile base: the region name is a real accordion trigger and its list
   collapses under Alpine's control (10.2); the static label is hidden. */
.odm-ft-directory__col > .odm-ft-directory__region { display: none; }
.odm-ft-directory__region-btn {
	display: flex; width: 100%; justify-content: space-between; align-items: center;
	min-height: 48px; padding: 0; border: 0; border-bottom: 2px solid var(--ft-dark);
	background: transparent; font: inherit; text-align: start; cursor: pointer; color: inherit;
}
.odm-ft-directory__region-btn .odm-ft-directory__region { padding: 0; border: 0; }
.odm-ft-directory__region-btn[aria-expanded="true"] .odm-ft-directory__region-chev { transform: rotate(45deg); }
.odm-ft-directory__region-list { display: flex; flex-direction: column; gap: 0.55rem; }
@media (min-width: 768px) {
	.odm-ft-directory__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.odm-ft-directory__col > .odm-ft-directory__region { display: block; }
	.odm-ft-directory__region-btn { display: none; }
	/* !important is required: Alpine's x-show writes an inline display:none that
	   only an !important author rule can beat, and the list must always show at
	   this width. With JS disabled nothing sets display:none, so it is moot. */
	.odm-ft-directory__region-list { display: flex !important; }
}
@media (min-width: 1024px) {
	.odm-ft-directory__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* ---------- rules ---------- */
.odm-ft-rule__body { font-size: 1rem; line-height: 1.6; color: var(--ft-muted); }
.odm-ft-rule__tag-row { display: flex; gap: 0.6rem; align-items: center; font-size: 0.9rem; }
.odm-ft-rule__tag-label { padding: 0.25rem 0.6rem; border-radius: 8px; background: var(--ft-dark); color: #fff; font-weight: 700; font-size: 0.75rem; }
.odm-ft-rule__how { display: flex; flex-direction: column; gap: 0.4rem; padding: 1rem 1.1rem; border-radius: 1rem; background: var(--ft-accent-light); }

/* ---------- standards ---------- */
.odm-ft-ai-group { display: flex; flex-direction: column; gap: 1.25rem; }

/* ---------- why / how ---------- */
.odm-ft-why { padding: var(--ft-section-y) var(--ft-gutter); display: flex; flex-direction: column; gap: 2.5rem; align-items: flex-start; }
.odm-ft-why__head { display: flex; flex-direction: column; gap: 1rem; width: min(28rem, 100%); }
.odm-ft-reason { display: flex; flex-direction: column; gap: 0.5rem; }
.odm-ft-steps { list-style: none; margin: 0; padding: 0; }
.odm-ft-step { display: flex; flex-direction: column; gap: 0.75rem; padding-top: 1.5rem; border-top: 3px solid var(--ft-dark); }
.odm-ft-step__num { font-family: var(--font-display, sans-serif); font-weight: 800; font-size: 2.25rem; color: var(--ft-accent); }

/* ---------- offer ---------- */
.odm-ft-offer { display: flex; flex-direction: column; gap: clamp(1.5rem, 5vw, 3.5rem); align-items: stretch; padding: clamp(1.5rem, 6vw, 3.5rem); border-radius: 1.75rem; background: var(--ft-accent); color: #fff; }
.odm-ft-offer__copy { display: flex; flex-direction: column; gap: 1.1rem; flex: 1 1 24rem; }
.odm-ft-offer__badge { align-self: flex-start; padding: 0.45rem 0.9rem; border-radius: 999px; background: #fff; color: #2e1b99; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.odm-ft-offer__title { font-weight: 800; font-size: clamp(1.9rem, 5vw, 2.5rem); line-height: 1.05; color: #fff; }
.odm-ft-offer__body { font-size: 1.05rem; line-height: 1.6; color: #fff; max-width: 34rem; }
.odm-ft-offer__terms { font-size: 0.85rem; color: #fff; }
/* On the white card, not the accent panel: white-on-white was invisible (1:1). */
.odm-ft-offer__next { font-size: 0.85rem; color: var(--ft-muted); }
.odm-ft-offer__chips { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.odm-ft-offer__card { display: flex; flex-direction: column; gap: 1rem; width: min(24rem, 100%); padding: clamp(1.25rem, 6vw, 2.25rem); border-radius: 1.5rem; background: #fff; color: var(--ft-ink); }
.odm-ft-offer__price { display: flex; align-items: baseline; gap: 0.6rem; flex-wrap: wrap; }
.odm-ft-offer__price-amount { font-family: var(--font-display, sans-serif); font-weight: 800; font-size: 2.4rem; line-height: 1; }
.odm-ft-offer__price-period, .odm-ft-offer__price-note { color: var(--ft-muted); }
.odm-ft-stepper { display: flex; flex-direction: column; gap: 0.75rem; padding: 1rem 1.1rem; border-radius: 1rem; background: var(--ft-surface); }
.odm-ft-stepper__row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.odm-ft-stepper__label { font-weight: 600; }
.odm-ft-stepper__unit { display: block; font-size: 0.8rem; color: var(--ft-muted); }
.odm-ft-stepper__controls { display: flex; align-items: center; gap: 0.6rem; }
.odm-ft-stepper__btn { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid var(--ft-control-border); background: #fff; color: var(--ft-ink); cursor: pointer; padding: 0; }
.odm-ft-stepper__btn:disabled { opacity: 0.4; cursor: not-allowed; }
.odm-ft-stepper__value { min-width: 1.75rem; text-align: center; font-family: var(--font-display, sans-serif); font-weight: 800; font-size: 1.35rem; }
.odm-ft-stepper__total { font-size: 0.9rem; font-weight: 600; color: #2e1b99; }
@media (min-width: 768px) {
	.odm-ft-offer { flex-direction: row; flex-wrap: wrap; align-items: center; }
	.odm-ft-offer__price-amount { font-size: 3rem; }
}

/* ---------- FAQ ---------- */
.odm-ft-faq { display: flex; flex-direction: column; gap: 2.5rem; align-items: flex-start; }
.odm-ft-faq__head { display: flex; flex-direction: column; gap: 1rem; width: min(24rem, 100%); }
.odm-ft-faq__list { display: flex; flex-direction: column; flex: 1 1 30rem; width: 100%; }
.odm-ft-faq__item { padding: 0.5rem 0; border-bottom: 1px solid var(--ft-border); }
.odm-ft-faq__q { margin: 0; }
.odm-ft-faq__btn { display: flex; width: 100%; justify-content: space-between; align-items: center; gap: 1.5rem; min-height: 56px; padding: 0.5rem 0; border: 0; background: transparent; text-align: start; cursor: pointer; font-family: var(--font-display, sans-serif); font-weight: 700; font-size: 1.15rem; color: var(--ft-ink); }
.odm-ft-faq__chev { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--ft-accent-light); color: #2e1b99; flex-shrink: 0; transition: transform .25s ease; }
.odm-ft-faq__item--open .odm-ft-faq__chev { transform: rotate(45deg); }
.odm-ft-faq__a { margin: 0.4rem 0 0.6rem; font-size: 1rem; line-height: 1.6; color: var(--ft-muted); max-width: 65ch; }
.odm-ft-faq__a a { color: var(--ft-accent); }
@media (min-width: 768px) {
	.odm-ft-faq { flex-direction: row; flex-wrap: wrap; gap: 3.5rem; }
	.odm-ft-why { flex-direction: row; flex-wrap: wrap; gap: 3.5rem; }
	.odm-ft-faq__btn { font-size: 1.25rem; }
}

/* ---------- final CTA ---------- */
.odm-ft-final { padding: clamp(2.5rem, 6vw, 4rem) var(--ft-gutter); display: flex; flex-direction: column; gap: 1rem; }
.odm-ft-final__row { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.odm-ft-final__heading { font-family: var(--font-display, sans-serif); font-weight: 700; font-size: 1.4rem; color: #fff; }
.odm-ft-final__markets { font-size: 0.9rem; color: #b3acdd; }
@media (min-width: 768px) {
	.odm-ft-final__row { flex-direction: row; justify-content: space-between; align-items: center; flex-wrap: wrap; }
	.odm-ft-final__heading { font-size: 1.6rem; }
}

/* The tally bar grows from the reading-direction start. */
[dir="rtl"] .odm-ft-tally__bar-fill { transform-origin: right center; }
