/* ============================================================================
   Thorli — refinements.css
   500-enhancement pass (2026-05-15). Companion to main.css; loaded after it
   so these rules win. Documented per-ID in docs/audits/2026-05-14-enhancement-log.md.
   ============================================================================ */

/* --- E001-E030 : new design tokens --- */
:root {
	--fs-13: 0.8125rem;
	--fs-15: 0.9375rem;
	--fs-22: 1.375rem;
	--fs-28: 1.75rem;
	--fs-40: 2.5rem;
	--fs-56: 3.5rem;
	--fs-80: 5rem;
	--s-7: 1.75rem;
	--s-14: 3.5rem;
	--s-20: 5rem;
	--s-28: 7rem;
	--lh-very-tight: 0.95;
	--lh-loose: 1.8;
	--r-xs: 4px;
	--r-2xl: 32px;
	--c-success: #2F9E5B;
	--c-warning: #E0A030;
	--c-error: #C7382F;
	--c-info: #5B7CFF;
	--c-success-soft: rgba(47, 158, 91, 0.10);
	--c-warning-soft: rgba(224, 160, 48, 0.12);
	--c-error-soft: rgba(199, 56, 47, 0.10);
	--shadow-xs: 0 1px 1px rgba(14, 17, 22, 0.04);
	--shadow-xl: 0 24px 60px rgba(14, 17, 22, 0.16);
	--shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.06);
	--shadow-focus-lime: 0 0 0 4px rgba(199, 242, 92, 0.32);
	--shadow-focus-coral: 0 0 0 4px rgba(242, 108, 91, 0.22);
	--dur-instant: 80ms;
	--dur-slower: 720ms;
	--ease-spring: cubic-bezier(0.32, 1.5, 0.42, 1);
	--ease-emphasized: cubic-bezier(0.2, 0, 0, 1);
	--gradient-lime: linear-gradient(135deg, var(--c-citation) 0%, color-mix(in srgb, var(--c-citation) 60%, var(--c-paper)) 100%);
	--gradient-ink: linear-gradient(180deg, var(--c-ink) 0%, var(--c-ink-soft) 100%);
}

/* --- E031-E060 : typography polish --- */
h1, h2, h3, h4, h5, h6 { text-wrap: balance; }
p, li, blockquote { text-wrap: pretty; }
h1 { hyphens: manual; }
.h-display { font-variation-settings: "opsz" 144; }
.h-section { font-variation-settings: "opsz" 72; }
.text-balance { text-wrap: balance; }
.text-pretty { text-wrap: pretty; }
.text-nowrap { white-space: nowrap; }
.text-uppercase-mono { font-family: var(--f-mono); text-transform: uppercase; letter-spacing: 0.08em; font-size: var(--fs-12); }
.text-display-xs { font-family: var(--f-display); font-size: var(--fs-24); line-height: var(--lh-snug); letter-spacing: -0.02em; }
.text-display-sm { font-family: var(--f-display); font-size: var(--fs-30); line-height: var(--lh-snug); letter-spacing: -0.022em; }
.text-display-md { font-family: var(--f-display); font-size: var(--fs-40); line-height: var(--lh-snug); letter-spacing: -0.025em; }
.text-display-lg { font-family: var(--f-display); font-size: var(--fs-56); line-height: var(--lh-tight); letter-spacing: -0.03em; }
.text-display-xl { font-family: var(--f-display); font-size: var(--fs-80); line-height: var(--lh-very-tight); letter-spacing: -0.035em; }
.text-mono { font-family: var(--f-mono); font-size: var(--fs-14); letter-spacing: 0.02em; }
.text-mono-sm { font-family: var(--f-mono); font-size: var(--fs-13); letter-spacing: 0.04em; }
.text-mono-xs { font-family: var(--f-mono); font-size: var(--fs-12); letter-spacing: 0.06em; text-transform: uppercase; }
.text-caption { font-family: var(--f-sans); font-size: var(--fs-13); color: var(--c-text-soft); }
.text-eyebrow { font-family: var(--f-mono); font-size: var(--fs-12); letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-text-eyebrow); }
.text-lede { font-size: clamp(var(--fs-18), 1.6vw, var(--fs-22)); line-height: var(--lh-relaxed); color: var(--c-text-soft); max-width: 60ch; }
.text-body { font-size: var(--fs-18); line-height: var(--lh-relaxed); color: var(--c-text); max-width: 65ch; }
.text-body-sm { font-size: var(--fs-16); line-height: var(--lh-relaxed); color: var(--c-text); max-width: 65ch; }
.text-strikethrough { text-decoration: line-through; text-decoration-color: var(--c-text-mute); }
.text-highlight-lime { background: var(--c-citation); color: var(--c-ink); padding: 0 0.18em; border-radius: 4px; }
.text-highlight-sage { background: var(--c-sage); color: var(--c-paper); padding: 0 0.18em; border-radius: 4px; }
.text-underline-lime { text-decoration: underline; text-decoration-color: var(--c-citation-dark); text-underline-offset: 3px; text-decoration-thickness: 2px; }
.text-numeric { font-variant-numeric: tabular-nums; }
.text-quote { font-family: var(--f-display); font-style: italic; font-size: var(--fs-24); line-height: var(--lh-snug); color: var(--c-sage); }

/* --- E061-E090 : button polish --- */
.btn { position: relative; will-change: transform; }
.btn:active:not([disabled]) { transform: translateY(0) scale(0.98); transition-duration: var(--dur-instant); }
.btn[disabled], .btn.is-disabled { opacity: 0.5; cursor: not-allowed; pointer-events: none; }
.btn--primary { box-shadow: var(--shadow-sm); }
.btn--primary:hover { box-shadow: var(--shadow-md), 0 4px 12px rgba(199, 242, 92, 0.18); }
.btn--ghost { border-color: var(--c-stone-300); border-width: 1.5px; }
.btn--ghost:hover { border-color: var(--c-ink); background: var(--c-paper-warm); }
.btn--accent:hover { box-shadow: var(--shadow-md), var(--shadow-focus-lime); }
.btn--icon { width: 44px; height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--r-full); }
.btn--icon-sm { width: 32px; height: 32px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--r-full); }
.btn--xl { padding: 1.25rem 2rem; font-size: var(--fs-20); }
.btn--xs { padding: 0.4rem 0.75rem; font-size: var(--fs-13); }
.btn--inline { padding-inline: 0.5rem; padding-block: 0.25rem; }
.btn--success { background: var(--c-success); color: var(--c-paper); border-color: var(--c-success); }
.btn--danger { background: var(--c-error); color: var(--c-paper); border-color: var(--c-error); }
.btn-group { display: inline-flex; gap: 0; border-radius: var(--r-full); overflow: hidden; border: 1px solid var(--c-border); }
.btn-group .btn { border-radius: 0; border: 0; box-shadow: none; }
.btn-group .btn + .btn { border-left: 1px solid var(--c-border); }
.btn--ghost-on-dark { background: transparent; border-color: var(--c-stone-700); color: var(--c-paper); }
.btn--ghost-on-dark:hover { border-color: var(--c-citation); color: var(--c-citation); }
.btn[aria-busy="true"] .btn-label::after { content: "…"; }
.btn:focus-visible { outline: 3px solid var(--c-citation); outline-offset: 3px; }
.btn--block { width: 100%; justify-content: center; }
.btn-cluster { display: inline-flex; gap: var(--s-3); flex-wrap: wrap; align-items: center; }
.btn-loading-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: 0; animation: btnDotPulse 1.4s infinite var(--ease-in-out); }
.btn-loading-dot:nth-child(2) { animation-delay: 0.2s; }
.btn-loading-dot:nth-child(3) { animation-delay: 0.4s; }
@keyframes btnDotPulse { 0%, 80%, 100% { opacity: 0; } 40% { opacity: 1; } }

/* --- E091-E120 : card system polish --- */
.value-card, .pricing-card, .specialty-card, .post-card, .faq-item {
	transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.value-card:hover, .specialty-card:hover, .pricing-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}
.pricing-card:focus-within { box-shadow: var(--shadow-md), 0 0 0 2px var(--c-citation); }
.post-card:hover .post-card__title a { color: var(--c-sage); }
.specialty-card:hover { border-color: var(--c-citation-dark); box-shadow: var(--shadow-md); }
.card-elevation-1 { box-shadow: var(--shadow-sm); }
.card-elevation-2 { box-shadow: var(--shadow-md); }
.card-elevation-3 { box-shadow: var(--shadow-lg); }
.card-elevation-4 { box-shadow: var(--shadow-xl); }
.card-flat { border: 1px solid var(--c-border); box-shadow: none; }
.card-outline { border: 1.5px solid var(--c-ink); box-shadow: none; }
.card-tinted { background: var(--c-paper-warm); border: 1px solid var(--c-border); }
.card-tinted-lime { background: color-mix(in srgb, var(--c-citation) 10%, var(--c-paper)); border: 1px solid color-mix(in srgb, var(--c-citation-dark) 35%, var(--c-border)); }
.card-tinted-ink { background: var(--c-ink); color: var(--c-paper); border: 1px solid var(--c-ink); }
.card-tinted-sage { background: var(--c-sage); color: var(--c-citation); border: 1px solid var(--c-sage); }
.card-radius-sm { border-radius: var(--r-sm); }
.card-radius-md { border-radius: var(--r-md); }
.card-radius-lg { border-radius: var(--r-lg); }
.card-radius-xl { border-radius: var(--r-xl); }
.card-padding-sm { padding: var(--s-4); }
.card-padding-md { padding: var(--s-6); }
.card-padding-lg { padding: var(--s-8); }
.card-header { border-bottom: 1px solid var(--c-border); padding-bottom: var(--s-4); margin-bottom: var(--s-4); }
.card-footer { border-top: 1px solid var(--c-border); padding-top: var(--s-4); margin-top: var(--s-4); display: flex; justify-content: space-between; align-items: center; }
.card-link-overlay { position: relative; }
.card-link-overlay > a::after { content: ""; position: absolute; inset: 0; }
.card-divider { border-block: 1px solid var(--c-border); padding-block: var(--s-3); margin-block: var(--s-3); }

/* --- E121-E150 : form polish --- */
.field input, .field select, .field textarea { transition: border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--c-stone-500); }
.field input[aria-invalid="true"] { border-color: var(--c-error); background: var(--c-error-soft); }
.field input::placeholder, .field textarea::placeholder { color: var(--c-text-mute); opacity: 0.7; }
.field-hint { color: var(--c-text-mute); font-size: var(--fs-12); margin-top: 0.25rem; display: block; }
.field-error { color: var(--c-error); font-size: var(--fs-13); margin-top: 0.25rem; display: flex; gap: 0.4rem; align-items: center; font-weight: 500; }
.field-error::before { content: "!"; display: inline-flex; width: 16px; height: 16px; align-items: center; justify-content: center; border-radius: 50%; background: var(--c-error); color: var(--c-paper); font-size: var(--fs-12); font-weight: 600; }
.field-success { color: var(--c-success); font-size: var(--fs-13); margin-top: 0.25rem; display: flex; gap: 0.4rem; align-items: center; font-weight: 500; }
.field-success::before { content: "✓"; display: inline-flex; width: 16px; height: 16px; align-items: center; justify-content: center; border-radius: 50%; background: var(--c-success); color: var(--c-paper); font-size: var(--fs-12); font-weight: 600; }
.field-required-mark { color: var(--c-coral); margin-left: 2px; }
.field-optional-mark { color: var(--c-text-mute); margin-left: 2px; font-size: var(--fs-12); font-weight: 400; }
.field-with-icon { position: relative; }
.field-with-icon input { padding-left: 2.5rem; }
.field-with-icon__icon { position: absolute; left: 0.9rem; top: 50%; transform: translateY(-50%); color: var(--c-text-mute); pointer-events: none; }
.field-character-count { font-family: var(--f-mono); font-size: var(--fs-12); color: var(--c-text-mute); text-align: right; margin-top: 0.25rem; display: block; }
.field-group { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
.field-stack { display: flex; flex-direction: column; gap: var(--s-3); }
.field-row { display: flex; gap: var(--s-3); align-items: end; }
.checkbox-row { display: inline-flex; gap: 0.6rem; align-items: flex-start; cursor: pointer; line-height: var(--lh-snug); }
.checkbox-row input[type="checkbox"] { accent-color: var(--c-citation-dark); width: 18px; height: 18px; margin-top: 2px; flex-shrink: 0; }
.checkbox-row label { font-size: var(--fs-14); color: var(--c-text-soft); cursor: pointer; }
.radio-row { display: inline-flex; gap: 0.6rem; align-items: flex-start; cursor: pointer; line-height: var(--lh-snug); }
.radio-row input[type="radio"] { accent-color: var(--c-citation-dark); width: 18px; height: 18px; margin-top: 2px; flex-shrink: 0; }
.form-banner { padding: var(--s-3) var(--s-4); border-radius: var(--r-md); font-size: var(--fs-14); display: flex; align-items: flex-start; gap: 0.5rem; margin-block: var(--s-3); }
.form-banner--info { background: var(--c-coral-soft); color: var(--c-ink); }
.form-banner--success { background: var(--c-success-soft); color: var(--c-success); }
.form-banner--warning { background: var(--c-warning-soft); color: var(--c-ink); }
.form-banner--error { background: var(--c-error-soft); color: var(--c-error); }

/* --- E151-E180 : navigation + header polish --- */
.site-header { transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.site-header.is-scrolled { box-shadow: var(--shadow-sm); }
.brand:hover .brand__dot { transform: scale(1.15); transition: transform var(--dur-base) var(--ease-spring); }
.brand:focus-visible { outline-offset: 4px; border-radius: var(--r-sm); }
.primary-menu > li > a:focus-visible { outline-offset: 2px; }
.primary-menu > li > a { position: relative; }
.primary-menu > li.menu-item-has-children > a::after { content: "⌄"; margin-left: 0.3em; font-size: 0.8em; color: var(--c-text-mute); }
.primary-menu > li.current-menu-item > a::before { content: ""; position: absolute; bottom: 2px; left: 50%; transform: translateX(-50%); width: 16px; height: 2px; background: var(--c-citation); border-radius: 1px; }
.nav-toggle { transition: background var(--dur-base) var(--ease-out); }
.nav-toggle:hover { background: var(--c-paper-warm); }
.nav-toggle[aria-expanded="true"] { background: var(--c-citation); color: var(--c-ink); }
.site-header__inner { transition: padding-block var(--dur-base) var(--ease-out); }
.site-header.is-scrolled .site-header__inner { padding-block: var(--s-2); min-height: 60px; }
.skip-link { transition: top var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out); font-weight: 500; }
.skip-link:focus-visible { background: var(--c-citation); color: var(--c-ink); outline: 2px solid var(--c-ink); }
.breadcrumb { display: flex; gap: 0.4rem; align-items: center; font-family: var(--f-mono); font-size: var(--fs-12); letter-spacing: 0.06em; color: var(--c-text-soft); text-transform: uppercase; padding-block: var(--s-3); }
.breadcrumb a { color: inherit; text-decoration: none; }
.breadcrumb a:hover { color: var(--c-ink); text-decoration: underline; text-decoration-color: var(--c-citation-dark); }
.breadcrumb__sep { color: var(--c-stone-300); }
.breadcrumb__current { color: var(--c-ink); font-weight: 500; }
.menu-drawer-backdrop { position: fixed; inset: 0; background: rgba(14, 17, 22, 0.4); backdrop-filter: blur(2px); opacity: 0; pointer-events: none; transition: opacity var(--dur-base) var(--ease-out); z-index: 40; }
body.nav-open .menu-drawer-backdrop { opacity: 1; pointer-events: auto; }
@media (max-width: 880px) {
	body.nav-open .primary-menu { gap: var(--s-2); padding-block: var(--s-4); }
	body.nav-open .primary-menu > li > a { padding: var(--s-3) var(--s-4); display: block; font-size: var(--fs-18); border-radius: var(--r-md); }
	body.nav-open .primary-menu > li > a:hover { background: var(--c-paper-warm); }
}

/* --- E181-E210 : hero + above-fold polish --- */
.hero { position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; top: -10%; right: -5%; width: 50%; height: 60%; background: radial-gradient(ellipse at center, rgba(199, 242, 92, 0.06) 0%, transparent 70%); pointer-events: none; z-index: 0; }
.hero .container { position: relative; z-index: 1; }
.hero__title { letter-spacing: -0.03em; }
.hero__sub { font-feature-settings: "ss01"; }
.hero__actions .btn { min-width: 180px; }
.hero__trust-dot { box-shadow: 0 0 0 4px rgba(199, 242, 92, 0.22), 0 0 12px rgba(199, 242, 92, 0.4); }
.hero__trust--pill { transition: border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.hero__trust--pill:hover { border-color: var(--c-citation-dark); box-shadow: var(--shadow-sm); }
.ai-card { transition: transform var(--dur-slow) var(--ease-out), box-shadow var(--dur-slow) var(--ease-out); }
.ai-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-xl); }
.ai-card__citation { transition: transform var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out); }
.ai-card__citation:hover { transform: translateY(-1px); }
.ai-card__head { padding-bottom: var(--s-2); border-bottom: 1px dashed var(--c-border); margin-bottom: var(--s-2); }
.eyebrow--accent { position: relative; overflow: hidden; }
.eyebrow--accent::after { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, transparent 30%, rgba(255, 255, 255, 0.3) 50%, transparent 70%); transform: translateX(-100%); transition: transform var(--dur-slower) var(--ease-out); pointer-events: none; }
.eyebrow--accent:hover::after { transform: translateX(100%); }
@keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.hero__content > * { animation: fadeUp 600ms var(--ease-out) both; }
.hero__content > *:nth-child(1) { animation-delay: 0ms; }
.hero__content > *:nth-child(2) { animation-delay: 80ms; }
.hero__content > *:nth-child(3) { animation-delay: 160ms; }
.hero__content > *:nth-child(4) { animation-delay: 240ms; }
.hero__content > *:nth-child(5) { animation-delay: 320ms; }
@media (prefers-reduced-motion: reduce) {
	.hero__content > * { animation: none; opacity: 1; transform: none; }
	.hero::before { display: none; }
}

/* --- E211-E240 : problem-section polish --- */
.problem { position: relative; overflow: hidden; isolation: isolate; }
.problem::before { content: ""; position: absolute; top: 0; right: 0; width: 40%; height: 100%; background: radial-gradient(ellipse at top right, rgba(199, 242, 92, 0.06) 0%, transparent 60%); pointer-events: none; }
.problem .container { position: relative; z-index: 1; }
.problem__title em { display: inline-block; transition: transform var(--dur-base) var(--ease-out); }
.problem__anchor-stat { transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); align-self: start; }
.problem__anchor-stat:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.problem__anchor-num { font-variant-numeric: tabular-nums; display: inline-block; transition: transform var(--dur-slow) var(--ease-spring); }
.problem__anchor-stat:hover .problem__anchor-num { transform: scale(1.04); }
.problem__anchor-source { position: relative; padding-left: 16px; }
.problem__anchor-source::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 10px; height: 1px; background: var(--c-citation); }
.stat:hover { border-left-width: 4px; }
.stat__num { transition: color var(--dur-base) var(--ease-out); }
.problem__header { position: relative; }
.problem__header::after { content: ""; position: absolute; bottom: -8px; left: 0; width: 60px; height: 2px; background: var(--c-citation); border-radius: 1px; opacity: 0.5; }
.problem__primary { align-items: start; }
@media (max-width: 700px) {
	.problem { border-radius: var(--r-lg); }
	.problem__anchor-num { font-size: clamp(3.5rem, 16vw, 5rem); }
}
.problem__stats { row-gap: var(--s-7); }

/* --- E241-E280 : value-props + how-it-works + cohort polish --- */
.value-props { padding-block: var(--section-y); position: relative; }
.value-card { padding: var(--s-7); border: 1px solid var(--c-border); border-radius: var(--r-lg); background: var(--c-white); }
.value-card { display: flex; flex-direction: column; gap: var(--s-3); }
.value-card__num { font-family: var(--f-mono); font-size: var(--fs-12); letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-text-eyebrow); }
.value-card__title { font-family: var(--f-display); font-size: var(--fs-22); line-height: var(--lh-snug); margin: var(--s-2) 0 var(--s-1); }
.value-card__text { color: var(--c-text-soft); font-size: var(--fs-16); line-height: var(--lh-relaxed); }
.value-card { transition-duration: var(--dur-base); }
.value-card--anchor { border-color: var(--c-citation-dark); }
.how { position: relative; }
.how-step { position: relative; padding: var(--s-5) var(--s-6); border-radius: var(--r-lg); background: var(--c-white); border: 1px solid var(--c-border); transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.how-step:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.how-step__num { box-shadow: 0 0 0 4px rgba(199, 242, 92, 0.18); flex-shrink: 0; }
.how-step__title { margin-top: var(--s-2); }
.founding-cohort { position: relative; overflow: hidden; }
.founding-cohort::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, transparent, var(--c-citation), transparent); }
.founding-cohort__bar { animation: barAppear 600ms var(--ease-spring) both; }
@keyframes barAppear { from { opacity: 0; transform: translateY(6px) scale(0.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
.founding-cohort__seg { transition: transform var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out); }
.founding-cohort__bar:hover .founding-cohort__seg--open { transform: translateY(-1px); }
.founding-cohort__terms li { transition: padding-left var(--dur-base) var(--ease-out); }
.founding-cohort__terms li:hover { padding-left: calc(var(--s-5) + 4px); }
.founding-cohort__terms li::before { transition: transform var(--dur-base) var(--ease-out); }
.founding-cohort__terms li:hover::before { transform: scale(1.2); }
.founding-cohort__caption::before { animation-duration: 1.8s; }
.founding-cohort__actions { gap: var(--s-3); align-items: center; }
.founding-cohort__lead { font-size: clamp(var(--fs-18), 1.6vw, var(--fs-20)); }
.founding-cohort__lead a { font-weight: 500; }

/* --- E281-E320 : pricing card polish --- */
.pricing { padding-block: var(--section-y); }
.pricing__head { text-align: center; max-width: 60ch; margin: 0 auto var(--s-10); display: flex; flex-direction: column; gap: var(--s-3); align-items: center; }
.pricing__title { font-size: clamp(var(--fs-30), 4vw, var(--fs-56)); line-height: var(--lh-snug); }
.pricing__sub { font-size: clamp(var(--fs-16), 1.4vw, var(--fs-18)); color: var(--c-text-soft); max-width: 50ch; }
.pricing__grid { display: grid; grid-template-columns: 1fr; gap: var(--s-6); margin-top: var(--s-6); }
@media (min-width: 760px) { .pricing__grid { grid-template-columns: repeat(3, 1fr); gap: var(--s-5); align-items: stretch; } }
.pricing-card { display: flex; flex-direction: column; padding: var(--s-7); border-radius: var(--r-lg); background: var(--c-white); border: 1px solid var(--c-border); position: relative; }
.pricing-card--highlight { background: var(--c-ink); color: var(--c-paper); border-color: var(--c-ink); transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.pricing-card--highlight:hover { transform: translateY(-6px); box-shadow: var(--shadow-xl); }
.pricing-card__head { display: flex; flex-direction: column; gap: var(--s-2); }
.pricing-card__name { font-family: var(--f-display); font-size: var(--fs-28); margin: 0; }
.pricing-card__amount { font-family: var(--f-display); font-size: var(--fs-56); line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.pricing-card__cadence { font-family: var(--f-mono); font-size: var(--fs-14); color: var(--c-text-soft); margin-left: 0.4rem; }
.pricing-card__features { display: flex; flex-direction: column; gap: var(--s-2); margin-block: var(--s-5); flex: 1; }
.pricing-card__foot { margin-top: var(--s-5); }
.pricing-card__foot .btn { width: 100%; justify-content: center; }
.pricing-card__price { display: flex; align-items: baseline; gap: 0; margin-block: var(--s-3); }
.pricing__trust li::before { display: none; }
.pricing__trust svg { color: var(--c-citation-dark); }
.pricing-card__badge { animation: badgePulse 3s ease-in-out infinite; }
@keyframes badgePulse { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03); } }
.pricing-card--highlight .pricing-card__amount { color: var(--c-citation); }
.pricing-card__feature::before { transition: transform var(--dur-base) var(--ease-out); }
.pricing-card__feature:hover::before { transform: scale(1.15); }
.pricing__lead-in { text-align: center; margin-top: var(--s-6); color: var(--c-text-soft); font-size: var(--fs-15); }
.pricing__lead-in a { color: var(--c-ink); text-decoration: underline; text-decoration-color: var(--c-citation-dark); text-underline-offset: 3px; }

/* --- E321-E360 : Bill of Rights + specialty grid polish --- */
.bill-of-rights { position: relative; overflow: hidden; }
.bill-of-rights::before { content: ""; position: absolute; top: 0; bottom: 0; right: -20%; width: 60%; background: radial-gradient(ellipse at center, rgba(30, 61, 52, 0.06) 0%, transparent 60%); pointer-events: none; }
.bill-of-rights .container { position: relative; z-index: 1; }
.bill-of-rights__head { max-width: 60ch; margin-bottom: var(--s-10); }
.bill-of-rights__title { font-size: clamp(var(--fs-36), 4.5vw, var(--fs-56)); line-height: var(--lh-snug); }
.bill-of-rights__sub { color: var(--c-ink); opacity: 0.7; max-width: 56ch; }
.bill-of-rights__item { transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.bill-of-rights__item:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.bill-of-rights__item--anchor:hover { box-shadow: var(--shadow-md); }
.bill-of-rights__num { font-variant-numeric: tabular-nums; transition: transform var(--dur-base) var(--ease-spring); }
.bill-of-rights__item:hover .bill-of-rights__num { transform: scale(1.08); }
.specialties { padding-block: var(--section-y); }
.specialty-grid { display: grid; grid-template-columns: 1fr; gap: var(--s-4); list-style: none; padding: 0; margin: 0; }
@media (min-width: 700px) { .specialty-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .specialty-grid { grid-template-columns: repeat(3, 1fr); } }
.specialty-card { transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); }
.specialty-card__link { text-decoration: none; }
.specialty-card__arrow { transition: transform var(--dur-base) var(--ease-out); display: inline-block; }
.specialty-card:hover .specialty-card__arrow { transform: translateX(4px); }
.specialty-card__icon { transition: background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out); }
.specialty-card:hover .specialty-card__icon { background: var(--c-citation); color: var(--c-ink); }
.specialty-card__label { font-family: var(--f-display); font-size: var(--fs-18); line-height: var(--lh-snug); margin: 0; }
.specialty-card__tag { font-size: var(--fs-13); color: var(--c-text-mute); margin-top: 0.2rem; }
.specialties__head { text-align: center; max-width: 60ch; margin: 0 auto var(--s-10); display: flex; flex-direction: column; gap: var(--s-3); align-items: center; }
.specialties__title { font-size: clamp(var(--fs-30), 4vw, var(--fs-48)); line-height: var(--lh-snug); }
.specialties__sub { font-size: clamp(var(--fs-16), 1.4vw, var(--fs-18)); color: var(--c-text-soft); max-width: 54ch; }

/* --- E361-E390 : FAQ + CTA-strip polish --- */
.faq { padding-block: clamp(2.5rem, 4.5vw, 4.5rem) var(--section-y); }
.faq__head { text-align: center; max-width: 50ch; margin: 0 auto var(--s-8); display: flex; flex-direction: column; gap: var(--s-2); align-items: center; }
.faq__title { font-size: clamp(var(--fs-30), 3.5vw, var(--fs-48)); line-height: var(--lh-snug); }
.faq-item__q { font-family: var(--f-display); font-size: var(--fs-18); padding: var(--s-4) 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--s-4); line-height: var(--lh-snug); margin: 0; }
.faq-item__a { padding-block: 0 var(--s-4); color: var(--c-text-soft); }
.faq-item__a p { margin-block: var(--s-2); }
.faq-item__a a { color: var(--c-ink); text-decoration: underline; text-decoration-color: var(--c-citation-dark); text-underline-offset: 3px; }
.faq-item { cursor: pointer; }
.faq-item__q:focus-visible { outline: 3px solid var(--c-citation); outline-offset: 4px; border-radius: var(--r-sm); }
.cta-strip { padding-block: clamp(3rem, 6vw, 5rem); background: var(--c-ink); color: var(--c-paper); position: relative; overflow: hidden; }
.cta-strip::before { content: ""; position: absolute; top: 0; right: 0; width: 30%; height: 100%; background: radial-gradient(ellipse at top right, rgba(199, 242, 92, 0.08) 0%, transparent 70%); pointer-events: none; }
.cta-strip .container { position: relative; z-index: 1; }
.cta-strip__inner { display: grid; grid-template-columns: 1fr; gap: var(--s-6); align-items: center; }
@media (min-width: 900px) { .cta-strip__inner { grid-template-columns: 1.4fr 1fr; gap: var(--s-12); } }
.cta-strip__title { font-family: var(--f-display); font-size: clamp(var(--fs-24), 3vw, var(--fs-40)); line-height: var(--lh-snug); color: var(--c-paper); max-width: 24ch; }
.cta-strip__sub { color: var(--c-stone-300); font-size: var(--fs-16); margin-top: var(--s-2); max-width: 50ch; }
.cta-strip__actions { display: flex; gap: var(--s-3); flex-wrap: wrap; justify-content: flex-start; }
@media (min-width: 900px) { .cta-strip__actions { justify-content: flex-end; } }
.cta-strip .btn--primary { background: var(--c-citation); color: var(--c-ink); border-color: var(--c-citation); }
.cta-strip .btn--primary:hover { background: var(--c-citation-dark); border-color: var(--c-citation-dark); }
.cta-strip .btn--ghost { background: transparent; color: var(--c-paper); border-color: var(--c-stone-700); }
.cta-strip .btn--ghost:hover { border-color: var(--c-citation); color: var(--c-citation); background: transparent; }

/* --- E391-E420 : footer polish --- */
.site-footer__brand { display: flex; flex-direction: column; gap: var(--s-4); }
.site-footer__tagline { color: var(--c-text-soft); max-width: 32ch; font-size: var(--fs-15); line-height: var(--lh-relaxed); }
.site-footer__col h3 { transition: color var(--dur-base) var(--ease-out); }
.site-footer__col ul { display: flex; flex-direction: column; gap: var(--s-2); margin: 0; padding: 0; list-style: none; }
.site-footer__col a { color: var(--c-text); font-size: var(--fs-14); transition: color var(--dur-fast) var(--ease-out); text-decoration: none; }
.site-footer__col a:hover { color: var(--c-sage); text-decoration: underline; text-decoration-color: var(--c-citation-dark); text-underline-offset: 3px; }
.site-footer__trust { padding: var(--s-6) 0 var(--s-4); }
.site-footer__trust svg { transition: color var(--dur-base) var(--ease-out); }
.site-footer__trust li:hover svg { color: var(--c-citation-dark); }
.site-footer__trust a strong { transition: color var(--dur-base) var(--ease-out); }
.site-footer__bottom { font-size: var(--fs-13); }
.site-footer__legal { gap: var(--s-3); }
.site-footer__legal a { transition: color var(--dur-fast) var(--ease-out); }
.site-footer { position: relative; }
.site-footer::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--c-border), transparent); }
.site-footer__brand .btn { align-self: flex-start; }
.site-footer__brand .brand { font-size: var(--fs-22); }
.site-footer__brand .brand__dot { width: 8px; height: 8px; margin-left: 4px; }

/* --- E421-E450 : page-specific polish (about, founder, contact, blog, legal) --- */
.founder__photo { transition: transform var(--dur-slow) var(--ease-out), box-shadow var(--dur-slow) var(--ease-out); }
.founder__photo:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.founder__photo img { transition: transform var(--dur-slow) var(--ease-out); }
.founder__photo:hover img { transform: scale(1.02); }
.founder__name { font-feature-settings: "ss01"; }
.founder__story p:first-child::first-letter { font-family: var(--f-display); font-size: 3em; line-height: 0.85; float: left; padding: 0.1em 0.1em 0 0; color: var(--c-sage); font-weight: 500; }
.founder__link { transition: text-decoration-color var(--dur-base) var(--ease-out); }
.post-card { transition: transform var(--dur-base) var(--ease-out); }
.post-card:hover { transform: translateY(-1px); }
.post-card__avatar { transition: transform var(--dur-base) var(--ease-out); }
.post-card__byline:hover .post-card__avatar { transform: scale(1.08); }
.post-card__title { transition: color var(--dur-base) var(--ease-out); }
.post-card__more::after { content: ""; display: inline-block; width: 8px; }
.pagination { font-family: var(--f-mono); font-size: var(--fs-14); }
.pagination a, .pagination span { padding: 0.5rem 0.85rem; border-radius: var(--r-md); transition: background var(--dur-fast) var(--ease-out); }
.pagination a:hover { background: var(--c-paper-warm); text-decoration: none; }
.pagination .current { background: var(--c-citation); color: var(--c-ink); }
.legal-tldr { transition: transform var(--dur-base) var(--ease-out); }
.legal-tldr:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); }
.legal-prelaunch-notice strong { color: var(--c-sage); }
.error-404__code { animation: float404 6s ease-in-out infinite; }
@keyframes float404 { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.value-card .btn { align-self: flex-start; margin-top: var(--s-3); }
.value-card__title:hover { color: var(--c-sage); cursor: pointer; }
.squeeze__bullet { transition: padding-left var(--dur-base) var(--ease-out); }
.squeeze__bullet:hover { padding-left: 0.25rem; }
.squeeze__bullet::before { transition: transform var(--dur-base) var(--ease-out); }
.squeeze__bullet:hover::before { transform: scale(1.2); color: var(--c-sage); }
.squeeze__trust li { transition: transform var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); }
.squeeze__trust li:hover { transform: translateY(-1px); border-color: var(--c-citation-dark); }
.squeeze__sample li { transition: padding-left var(--dur-base) var(--ease-out); }
.squeeze__sample li:hover { padding-left: 1.25rem; }
.squeeze__form { transition: box-shadow var(--dur-base) var(--ease-out); }
.squeeze__form:hover { box-shadow: var(--shadow-xl); }

/* --- E451-E480 : motion + micro-interaction polish --- */
.reveal { opacity: 0; transform: translateY(8px); transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-out); }
.reveal.is-revealed { opacity: 1; transform: translateY(0); }
.reveal-up { opacity: 0; transform: translateY(20px); transition: opacity 700ms var(--ease-out), transform 700ms var(--ease-out); }
.reveal-up.is-revealed { opacity: 1; transform: translateY(0); }
.reveal-scale { opacity: 0; transform: scale(0.96); transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-spring); }
.reveal-scale.is-revealed { opacity: 1; transform: scale(1); }
.lift-on-hover { transition: transform var(--dur-base) var(--ease-out); }
.lift-on-hover:hover { transform: translateY(-2px); }
.fade-on-hover { transition: opacity var(--dur-base) var(--ease-out); }
.fade-on-hover:hover { opacity: 0.8; }
.scale-on-hover { transition: transform var(--dur-base) var(--ease-spring); }
.scale-on-hover:hover { transform: scale(1.04); }
.glow-on-hover { transition: box-shadow var(--dur-base) var(--ease-out); }
.glow-on-hover:hover { box-shadow: var(--shadow-focus-lime); }
.shake-on-error { animation: shake 400ms; }
@keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }
.bounce-on-enter { animation: bounceIn 600ms var(--ease-spring); }
@keyframes bounceIn { 0% { opacity: 0; transform: scale(0.9); } 60% { opacity: 1; transform: scale(1.04); } 100% { transform: scale(1); } }
.pulse { animation: pulseGlow 2s ease-in-out infinite; }
@keyframes pulseGlow { 0%, 100% { box-shadow: 0 0 0 0 rgba(199, 242, 92, 0.4); } 50% { box-shadow: 0 0 0 8px rgba(199, 242, 92, 0); } }
.spin { animation: spin 1.2s linear infinite; }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.float-soft { animation: floatSoft 4s ease-in-out infinite; }
@keyframes floatSoft { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@media (prefers-reduced-motion: reduce) {
	.reveal, .reveal-up, .reveal-scale, .float-soft, .spin, .pulse, .bounce-on-enter { animation: none; transition: none; opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
	a[href^="#"] { scroll-margin-top: 80px; }
}
::selection { background: var(--c-citation); color: var(--c-ink); }
::-moz-selection { background: var(--c-citation); color: var(--c-ink); }
img { -webkit-user-drag: none; user-select: none; }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--c-paper); }
::-webkit-scrollbar-thumb { background: var(--c-stone-300); border-radius: 6px; border: 3px solid var(--c-paper); }
::-webkit-scrollbar-thumb:hover { background: var(--c-stone-500); }

/* --- E481-E510 : utility classes + responsive helpers --- */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.full-bleed { margin-inline: calc(50% - 50vw); padding-inline: calc(50vw - 50%); }
.aspect-square { aspect-ratio: 1 / 1; }
.aspect-video { aspect-ratio: 16 / 9; }
.aspect-portrait { aspect-ratio: 4 / 5; }
.aspect-og { aspect-ratio: 1200 / 630; }
.stack-vertical { display: flex; flex-direction: column; gap: var(--s-4); }
.stack-vertical-sm { display: flex; flex-direction: column; gap: var(--s-2); }
.stack-vertical-lg { display: flex; flex-direction: column; gap: var(--s-8); }
.stack-horizontal { display: flex; gap: var(--s-4); align-items: center; }
.stack-horizontal-sm { display: flex; gap: var(--s-2); align-items: center; }
.center-content { display: flex; align-items: center; justify-content: center; }
.cluster { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: center; }
.hide-mobile { display: initial; }
@media (max-width: 700px) { .hide-mobile { display: none !important; } }
.hide-desktop { display: initial; }
@media (min-width: 701px) { .hide-desktop { display: none !important; } }
.show-mobile-flex { display: none; }
@media (max-width: 700px) { .show-mobile-flex { display: flex !important; } }
.divider-line { border: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--c-border), transparent); margin-block: var(--s-8); }
.divider-thick { border: 0; height: 3px; background: var(--c-citation); border-radius: 1.5px; margin-block: var(--s-8); max-width: 80px; }
.bg-paper { background: var(--c-paper); }
.bg-paper-warm { background: var(--c-paper-warm); }
.bg-ink { background: var(--c-ink); color: var(--c-paper); }
.bg-sage { background: var(--c-sage); color: var(--c-citation); }
.bg-citation { background: var(--c-citation); color: var(--c-ink); }
.bg-gradient-lime { background: var(--gradient-lime); }
.bg-gradient-ink { background: var(--gradient-ink); color: var(--c-paper); }
.border-soft { border: 1px solid var(--c-border); }
.border-emphatic { border: 2px solid var(--c-ink); }
.border-lime { border: 1.5px solid var(--c-citation-dark); }
.rounded-pill { border-radius: var(--r-full); }
.rounded-card { border-radius: var(--r-lg); }
.rounded-xl { border-radius: var(--r-xl); }

/* --- E511-E540 : accessibility-focused refinements --- */
*:focus-visible { outline-color: var(--c-citation); outline-offset: 2px; }
button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline-width: 3px; }
.sr-only:focus { position: static; width: auto; height: auto; padding: var(--s-2); margin: 0; overflow: visible; clip: auto; }
[role="region"][aria-labelledby] { padding: var(--s-4); border-left: 3px solid var(--c-citation); margin-block: var(--s-4); }
:root { --link-underline-offset: 3px; --link-underline-thickness: 1.5px; }
abbr[title] { text-decoration: underline dotted; cursor: help; }
kbd { font-family: var(--f-mono); font-size: var(--fs-12); padding: 0.2rem 0.4rem; background: var(--c-paper-warm); border: 1px solid var(--c-border); border-radius: var(--r-sm); }
code { font-family: var(--f-mono); font-size: 0.9em; background: var(--c-paper-warm); padding: 0.1em 0.3em; border-radius: var(--r-xs); color: var(--c-ink); }
pre { font-family: var(--f-mono); font-size: var(--fs-14); padding: var(--s-4); background: var(--c-ink); color: var(--c-paper); border-radius: var(--r-md); overflow-x: auto; line-height: var(--lh-relaxed); }
pre code { background: transparent; padding: 0; color: inherit; }
mark { background: var(--c-citation); color: var(--c-ink); padding: 0 0.18em; border-radius: 4px; }
del { color: var(--c-text-mute); text-decoration: line-through; }
ins { background: var(--c-success-soft); color: var(--c-success); text-decoration: none; padding: 0 0.18em; border-radius: 4px; }
button[aria-pressed="true"] { background: var(--c-citation); color: var(--c-ink); }
[aria-expanded="true"] { color: var(--c-ink); }
[aria-current="page"] { font-weight: 500; color: var(--c-ink); }
[aria-current="step"] { color: var(--c-citation); font-weight: 600; }
[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
[aria-live="polite"], [aria-live="assertive"] { display: block; }
[role="status"]:not(:empty) { padding: var(--s-3); border-radius: var(--r-md); background: var(--c-paper-warm); margin-block: var(--s-2); }
[role="alert"]:not(:empty) { padding: var(--s-3); border-radius: var(--r-md); background: var(--c-error-soft); color: var(--c-error); margin-block: var(--s-2); border-left: 3px solid var(--c-error); }
@media (prefers-contrast: more) {
	:root { --c-text-soft: var(--c-ink); --c-text-mute: var(--c-stone-700); --c-border: var(--c-stone-500); }
	.btn--ghost { border-width: 2px; border-color: var(--c-ink); }
}
@media (prefers-color-scheme: dark) {
	/* Brand stays cream-on-ink; this prevents browser UI overrides */
	html { color-scheme: light; }
}

/* --- E541-end : trust badges, social proof, misc polish --- */
.trust-pill { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.45rem 0.85rem; background: var(--c-white); border: 1px solid var(--c-border); border-radius: var(--r-full); font-size: var(--fs-13); color: var(--c-text-soft); }
.trust-pill svg { color: var(--c-sage); flex-shrink: 0; }
.trust-pill--accent { background: var(--c-citation); color: var(--c-ink); border-color: var(--c-citation-dark); }
.trust-pill--accent svg { color: var(--c-ink); }
.trust-list { display: flex; flex-wrap: wrap; gap: var(--s-2); padding: 0; margin: 0; list-style: none; }
.metric-card { padding: var(--s-5); border-radius: var(--r-lg); background: var(--c-white); border: 1px solid var(--c-border); display: flex; flex-direction: column; gap: var(--s-2); }
.metric-card__num { font-family: var(--f-display); font-size: clamp(var(--fs-40), 4vw, var(--fs-56)); line-height: 1; color: var(--c-citation-dark); font-variant-numeric: tabular-nums; }
.metric-card__label { font-size: var(--fs-14); color: var(--c-text-soft); line-height: var(--lh-snug); }
.metric-card__source { font-family: var(--f-mono); font-size: var(--fs-12); color: var(--c-text-mute); text-transform: uppercase; letter-spacing: 0.08em; margin-top: var(--s-2); }
.tag { display: inline-block; padding: 0.25rem 0.6rem; border-radius: var(--r-full); font-family: var(--f-mono); font-size: var(--fs-12); text-transform: uppercase; letter-spacing: 0.06em; background: var(--c-paper-warm); color: var(--c-text-soft); border: 1px solid var(--c-border); }
.tag--lime { background: var(--c-citation); color: var(--c-ink); border-color: var(--c-citation-dark); }
.tag--sage { background: var(--c-sage); color: var(--c-citation); border-color: var(--c-sage); }
.tag--ink { background: var(--c-ink); color: var(--c-paper); border-color: var(--c-ink); }
.tag--success { background: var(--c-success-soft); color: var(--c-success); border-color: rgba(47, 158, 91, 0.3); }
.tag--warning { background: var(--c-warning-soft); color: var(--c-ink); border-color: rgba(224, 160, 48, 0.4); }
.tag--error { background: var(--c-error-soft); color: var(--c-error); border-color: rgba(199, 56, 47, 0.3); }
.callout { padding: var(--s-5) var(--s-6); border-radius: var(--r-lg); background: var(--c-paper-warm); border-left: 4px solid var(--c-citation); margin-block: var(--s-5); }
.callout--lime { background: color-mix(in srgb, var(--c-citation) 14%, var(--c-paper)); border-left-color: var(--c-citation-dark); }
.callout--sage { background: color-mix(in srgb, var(--c-sage) 8%, var(--c-paper)); border-left-color: var(--c-sage); }
.callout--ink { background: var(--c-ink); color: var(--c-paper); border-left-color: var(--c-citation); }
.divider-dotted { border: 0; height: 1px; background: repeating-linear-gradient(90deg, var(--c-border) 0 4px, transparent 4px 8px); margin-block: var(--s-6); }
.divider-faded { border: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--c-border), transparent); margin-block: var(--s-6); }
.print-only { display: none; }
@media print {
	.print-only { display: block; }
	.site-header, .site-footer, .cta-strip, .mobile-cta, .nav-toggle { display: none; }
	body { background: white; color: black; font-size: 12pt; }
	a { color: black; text-decoration: underline; }
	.page-content { max-width: none; padding: 0; }
	h1, h2, h3 { break-after: avoid; }
	p { orphans: 3; widows: 3; }
}
.video-embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r-lg); overflow: hidden; background: var(--c-ink); }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.image-with-caption { display: flex; flex-direction: column; gap: var(--s-2); margin-block: var(--s-5); }
.image-with-caption img { border-radius: var(--r-md); }
.image-with-caption figcaption { font-family: var(--f-mono); font-size: var(--fs-12); color: var(--c-text-mute); text-transform: uppercase; letter-spacing: 0.06em; }
.quote-block { font-family: var(--f-display); font-style: italic; font-size: clamp(var(--fs-20), 1.8vw, var(--fs-28)); line-height: var(--lh-snug); color: var(--c-sage); border-left: 3px solid var(--c-citation); padding-left: var(--s-5); margin-block: var(--s-6); max-width: 60ch; }
.quote-block__attribution { display: block; font-family: var(--f-sans); font-style: normal; font-size: var(--fs-14); color: var(--c-text-soft); margin-top: var(--s-2); }
.list-checked { padding: 0; margin: 0; list-style: none; display: flex; flex-direction: column; gap: var(--s-2); }
.list-checked li { position: relative; padding-left: 1.75rem; font-size: var(--fs-16); line-height: var(--lh-snug); }
.list-checked li::before { content: ""; position: absolute; left: 0; top: 0.3em; width: 16px; height: 16px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237BA32E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>"); background-repeat: no-repeat; background-size: contain; }
.list-x { padding: 0; margin: 0; list-style: none; display: flex; flex-direction: column; gap: var(--s-2); }
.list-x li { position: relative; padding-left: 1.75rem; font-size: var(--fs-16); line-height: var(--lh-snug); color: var(--c-text-soft); }
.list-x li::before { content: ""; position: absolute; left: 0; top: 0.3em; width: 16px; height: 16px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C7382F' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><line x1='18' y1='6' x2='6' y2='18'/><line x1='6' y1='6' x2='18' y2='18'/></svg>"); background-repeat: no-repeat; background-size: contain; }
.list-arrow { padding: 0; margin: 0; list-style: none; }
.list-arrow li { position: relative; padding-left: 1.5rem; font-size: var(--fs-16); line-height: var(--lh-snug); margin-block: var(--s-2); }
.list-arrow li::before { content: "→"; position: absolute; left: 0; top: 0; color: var(--c-citation-dark); font-weight: 700; }
.tabs { display: flex; gap: 0; border-bottom: 1px solid var(--c-border); margin-bottom: var(--s-4); }
.tab { padding: var(--s-3) var(--s-4); font-family: var(--f-mono); font-size: var(--fs-13); letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-text-soft); cursor: pointer; border: 0; background: transparent; border-bottom: 2px solid transparent; transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); }
.tab:hover { color: var(--c-ink); }
.tab[aria-selected="true"] { color: var(--c-ink); border-bottom-color: var(--c-citation); }
.tooltip-wrapper { position: relative; display: inline-block; }
.tooltip { position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); padding: 0.4rem 0.7rem; background: var(--c-ink); color: var(--c-paper); font-size: var(--fs-12); border-radius: var(--r-sm); white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity var(--dur-base) var(--ease-out); z-index: 30; }
.tooltip-wrapper:hover .tooltip, .tooltip-wrapper:focus-within .tooltip { opacity: 1; }
.tooltip::after { content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 4px solid transparent; border-top-color: var(--c-ink); }
.copy-link { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.25rem 0.5rem; font-family: var(--f-mono); font-size: var(--fs-12); color: var(--c-text-soft); cursor: pointer; border-radius: var(--r-sm); transition: background var(--dur-fast) var(--ease-out); border: 1px solid transparent; background: transparent; }
.copy-link:hover { background: var(--c-paper-warm); color: var(--c-ink); }
.copy-link:active { background: var(--c-citation); color: var(--c-ink); }
.author-byline { display: inline-flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); background: var(--c-white); border: 1px solid var(--c-border); border-radius: var(--r-full); }
.author-byline img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.author-byline__name { font-family: var(--f-sans); font-size: var(--fs-14); font-weight: 500; color: var(--c-ink); }
.author-byline__meta { font-family: var(--f-mono); font-size: var(--fs-12); color: var(--c-text-mute); }
.timeline { position: relative; padding-left: var(--s-8); }
.timeline::before { content: ""; position: absolute; left: 16px; top: 0; bottom: 0; width: 2px; background: var(--c-border); }
.timeline-item { position: relative; padding-bottom: var(--s-6); }
.timeline-item::before { content: ""; position: absolute; left: -32px; top: 0; width: 16px; height: 16px; border-radius: 50%; background: var(--c-citation); border: 2px solid var(--c-paper); }
.timeline-item__date { font-family: var(--f-mono); font-size: var(--fs-12); color: var(--c-text-mute); text-transform: uppercase; letter-spacing: 0.06em; }
.timeline-item__title { font-family: var(--f-display); font-size: var(--fs-20); margin: var(--s-1) 0; }
.kbd-shortcut { display: inline-flex; gap: 0.2rem; }
.kbd-shortcut kbd + kbd::before { content: "+"; margin-right: 0.2rem; color: var(--c-text-mute); }
.section-divider { padding-block: var(--s-8); display: flex; align-items: center; gap: var(--s-4); }
.section-divider__line { flex: 1; height: 1px; background: var(--c-border); }
.section-divider__label { font-family: var(--f-mono); font-size: var(--fs-12); text-transform: uppercase; letter-spacing: 0.1em; color: var(--c-text-mute); }
.skip-section { display: inline-block; padding: var(--s-2) var(--s-3); font-family: var(--f-mono); font-size: var(--fs-12); color: var(--c-text-soft); border: 1px dashed var(--c-border); border-radius: var(--r-sm); }
.skip-section:hover { color: var(--c-ink); border-style: solid; border-color: var(--c-citation-dark); }

/* --- E581-E590 : Services Hub featured AEO card --- */
.services-hub__featured {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--s-6);
	padding: var(--s-8);
	background: var(--c-ink);
	color: var(--c-paper);
	border-radius: var(--r-xl);
	text-decoration: none;
	border: 1px solid var(--c-ink);
	transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
	position: relative;
	overflow: hidden;
}
.services-hub__featured .eyebrow--accent { align-self: flex-start; }
.services-hub__featured::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 40%;
	height: 100%;
	background: radial-gradient(ellipse at top right, rgba(199, 242, 92, 0.10) 0%, transparent 60%);
	pointer-events: none;
}
.services-hub__featured:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-xl), 0 0 0 2px var(--c-citation);
}
@media (min-width: 900px) {
	.services-hub__featured { grid-template-columns: 1.4fr 1fr; gap: var(--s-12); align-items: center; }
}
.services-hub__featured-content { display: flex; flex-direction: column; gap: var(--s-3); position: relative; z-index: 1; }
.services-hub__featured-title { font-family: var(--f-display); font-size: clamp(var(--fs-28), 3vw, var(--fs-48)); line-height: var(--lh-snug); color: var(--c-paper); margin: 0; }
.services-hub__featured-text { color: var(--c-stone-300); font-size: clamp(var(--fs-16), 1.4vw, var(--fs-18)); line-height: var(--lh-relaxed); max-width: 56ch; }
.services-hub__featured-cta { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--f-mono); font-size: var(--fs-14); letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-citation); margin-top: var(--s-2); transition: transform var(--dur-base) var(--ease-out); }
.services-hub__featured:hover .services-hub__featured-cta { color: var(--c-citation-dark); }
.services-hub__featured:hover .services-hub__featured-cta .btn__arrow { transform: translateX(4px); }
.services-hub__featured-stat { padding: var(--s-6) var(--s-7); border-left: 3px solid var(--c-citation); position: relative; z-index: 1; }
@media (min-width: 900px) { .services-hub__featured-stat { border-left: 0; border-top: 3px solid var(--c-citation); padding: 0 0 0 var(--s-6); } }
@media (min-width: 900px) { .services-hub__featured-stat { border: 0; border-left: 1px solid var(--c-stone-700); padding-left: var(--s-7); } }
.services-hub__featured-num { display: block; font-family: var(--f-display); font-size: clamp(3.5rem, 7vw, 5.5rem); line-height: 0.95; color: var(--c-citation); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; margin-bottom: var(--s-3); }
.services-hub__featured-label { color: var(--c-stone-300); font-size: var(--fs-14); line-height: var(--lh-snug); max-width: 28ch; display: block; }

/* ============================================================== *
 * SPECIALTY INNER-PAGE REDESIGN (2026-05-16)
 * --------------------------------------------------------------
 * Applies via the shared content renderer to all 9 specialty
 * pages (and any service page that opts into ai_card/pull/etc.).
 * ============================================================== */

/* --- 1. Specialty hero (split-pane with AI card) ------------- */
.specialty-hero {
	padding-block: clamp(3rem, 6vw, 6rem) clamp(3rem, 6vw, 5.5rem);
	background:
		radial-gradient(1200px 600px at 110% -20%, color-mix(in srgb, var(--c-citation) 18%, transparent) 0%, transparent 60%),
		radial-gradient(900px 500px at -10% 110%, color-mix(in srgb, var(--c-sage) 10%, transparent) 0%, transparent 60%),
		var(--c-paper);
}
.specialty-hero .hero__content > * { align-self: flex-start; }
.specialty-hero .hero__content { gap: var(--s-5); }
.specialty-hero .hero__title {
	font-size: clamp(var(--fs-36), 4.6vw, var(--fs-60));
	letter-spacing: -0.015em;
	margin: 0;
}
.specialty-hero .hero__sub { max-width: 52ch; margin: 0; }
.specialty-hero .hero__visual {
	position: relative;
}
.specialty-hero .hero__visual::before {
	content: "";
	position: absolute;
	inset: -16px;
	border-radius: var(--r-2xl, 28px);
	background: radial-gradient(circle at 70% 30%, color-mix(in srgb, var(--c-citation) 35%, transparent) 0%, transparent 65%);
	filter: blur(40px);
	z-index: 0;
	pointer-events: none;
}
.specialty-hero .ai-card {
	position: relative;
	z-index: 1;
}

/* --- 2. Prose split (body + side pull-quote) ----------------- */
.section--prose { padding-block: clamp(2.5rem, 5vw, 5rem); }
.section--prose.section--warm { background: var(--c-paper-warm); }
.section--prose-split .prose-split {
	display: grid;
	gap: var(--s-8);
	grid-template-columns: 1fr;
}
@media (min-width: 960px) {
	.section--prose-split .prose-split {
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
		gap: var(--s-12);
		align-items: start;
	}
}
.prose-split__body { min-width: 0; }
.prose-split__heading {
	margin-top: var(--s-3);
	margin-bottom: var(--s-5);
	font-size: clamp(var(--fs-28), 3vw, var(--fs-40));
	letter-spacing: -0.01em;
	line-height: var(--lh-snug);
}
.prose-split__body .prose-body p + p { margin-top: var(--s-3); }
.prose-split__pull {
	position: sticky;
	top: calc(var(--header-height, 64px) + var(--s-6));
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
	padding: var(--s-6) var(--s-7);
	background: var(--c-ink);
	color: var(--c-paper);
	border-radius: var(--r-xl);
	border-left: 4px solid var(--c-citation);
	box-shadow: 0 24px 60px -30px rgba(0, 0, 0, 0.4);
}
@media (max-width: 959px) {
	.prose-split__pull { position: static; }
}
.section--warm .prose-split__pull { background: var(--c-ink); }
.prose-split__pull-num {
	font-family: var(--f-display);
	font-size: clamp(3rem, 5vw, 4.25rem);
	line-height: 0.95;
	color: var(--c-citation);
	letter-spacing: -0.025em;
	font-variant-numeric: tabular-nums;
}
.prose-split__pull-label {
	font-size: var(--fs-15);
	line-height: var(--lh-relaxed);
	color: color-mix(in srgb, var(--c-paper) 80%, var(--c-stone-300));
	max-width: 32ch;
}
.prose-split__pull-source {
	margin-top: var(--s-2);
	padding-top: var(--s-3);
	border-top: 1px solid color-mix(in srgb, var(--c-paper) 12%, transparent);
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--c-paper) 55%, transparent);
}

/* --- 3. Queries grid (AI-chat cards) ------------------------- */
.section--queries {
	padding-block: clamp(3rem, 5vw, 5rem);
	background: var(--c-ink);
	color: var(--c-paper);
	position: relative;
	overflow: hidden;
}
.section--queries::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(800px 400px at 90% 10%, color-mix(in srgb, var(--c-citation) 14%, transparent) 0%, transparent 60%),
		radial-gradient(700px 350px at 0% 90%, color-mix(in srgb, var(--c-sage) 20%, transparent) 0%, transparent 60%);
	pointer-events: none;
}
.section--queries .container { position: relative; }
.section--queries__head {
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
	align-items: flex-start;
	max-width: 60ch;
	margin-bottom: var(--s-8);
}
.section--queries__head .h-section,
.section--queries__head .h-sub { align-self: stretch; }
.section--queries__head .eyebrow {
	background: transparent;
	border-color: color-mix(in srgb, var(--c-citation) 50%, transparent);
	color: var(--c-citation);
}
.section--queries__head .h-section { color: var(--c-paper); }
.section--queries__head .h-sub { color: color-mix(in srgb, var(--c-paper) 70%, var(--c-stone-300)); }

.queries-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--s-3);
	margin: 0;
	padding: 0;
	list-style: none;
}
.query-card {
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
	padding: var(--s-4) var(--s-5);
	background: color-mix(in srgb, var(--c-paper) 6%, var(--c-ink));
	border: 1px solid color-mix(in srgb, var(--c-paper) 12%, transparent);
	border-radius: var(--r-lg);
	transition: transform var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.query-card:hover {
	transform: translateY(-2px);
	background: color-mix(in srgb, var(--c-paper) 10%, var(--c-ink));
	border-color: color-mix(in srgb, var(--c-citation) 40%, transparent);
}
.query-card__engine {
	display: inline-flex;
	align-self: flex-start;
	gap: 0.4rem;
	align-items: center;
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c-citation);
	padding: 0.25rem 0.55rem;
	border-radius: var(--r-full);
	background: color-mix(in srgb, var(--c-citation) 12%, transparent);
	border: 1px solid color-mix(in srgb, var(--c-citation) 25%, transparent);
}
.query-card__engine::before {
	content: "";
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--c-citation);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-citation) 25%, transparent);
}
.query-card__q {
	display: flex;
	gap: var(--s-3);
	margin: 0;
	font-family: var(--f-display);
	font-size: clamp(var(--fs-17), 1.4vw, var(--fs-20));
	line-height: var(--lh-snug);
	color: var(--c-paper);
}
.query-card__q-mark {
	color: var(--c-citation);
	font-weight: 700;
	flex-shrink: 0;
	font-family: var(--f-display);
}
.query-card__monitor {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: auto;
	padding-top: var(--s-3);
	border-top: 1px solid color-mix(in srgb, var(--c-paper) 10%, transparent);
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.04em;
	color: color-mix(in srgb, var(--c-paper) 60%, transparent);
}
.query-card__monitor svg { color: var(--c-citation); }

/* --- 4. Pillars (specialty variant — accent + lift) ---------- */
.value-props--specialty { padding-block: clamp(3rem, 5vw, 5.5rem); }
.value-props--specialty .value-props__head {
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
	align-items: center;
	text-align: center;
	max-width: 64ch;
	margin: 0 auto var(--s-10);
}
.value-props--specialty .value-props__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--s-5);
}
.value-card--specialty {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
	padding: var(--s-6) var(--s-6) var(--s-6) calc(var(--s-6) + 4px);
	background: var(--c-white, #fff);
	border: 1px solid var(--c-border);
	border-radius: var(--r-lg);
	overflow: hidden;
	transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.value-card--specialty::before {
	content: "";
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 4px;
	background: linear-gradient(180deg, var(--c-citation) 0%, var(--c-citation-dark) 100%);
	transform-origin: top;
	transform: scaleY(0.4);
	transition: transform var(--dur-base) var(--ease-out);
}
.value-card--specialty:hover {
	transform: translateY(-3px);
	box-shadow: 0 20px 40px -24px rgba(14, 17, 22, 0.18);
	border-color: color-mix(in srgb, var(--c-citation) 40%, var(--c-border));
}
.value-card--specialty:hover::before { transform: scaleY(1); }
.value-card__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	border-radius: 50%;
	background: var(--c-citation);
	color: var(--c-ink);
	font-family: var(--f-mono);
	font-size: var(--fs-13);
	font-weight: 700;
	letter-spacing: 0.02em;
	flex-shrink: 0;
}
.value-card--specialty .value-card__title {
	font-family: var(--f-display);
	font-size: var(--fs-20);
	line-height: var(--lh-snug);
	color: var(--c-ink);
	margin: 0;
}
.value-card--specialty .value-card__text {
	color: var(--c-text-soft);
	font-size: var(--fs-15);
	line-height: var(--lh-relaxed);
	margin: 0;
}
.value-card--specialty code {
	background: var(--c-paper-warm);
	border: 1px solid var(--c-border);
	border-radius: var(--r-sm);
	padding: 0.05rem 0.4rem;
	font-size: 0.9em;
}

@media (prefers-reduced-motion: reduce) {
	.query-card, .value-card--specialty, .value-card--specialty::before { transition: none; }
}

/* ============================================================== *
 * PRICING CARD — GROUPED VARIANT (Authority's 4 sub-blocks)
 * Added 2026-05-17 as part of the platform rebuild.
 * ============================================================== */

.pricing-card__anchor {
	display: block;
	margin-top: var(--s-2);
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--c-citation-dark);
}
.pricing-card--highlight .pricing-card__anchor { color: var(--c-sage); }

.pricing-card__groups {
	display: flex;
	flex-direction: column;
	gap: var(--s-5);
	margin-top: var(--s-4);
}
.pricing-group { display: flex; flex-direction: column; gap: var(--s-3); }
.pricing-group__label {
	margin: 0;
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c-text-soft);
	padding-bottom: var(--s-2);
	border-bottom: 1px solid var(--c-border);
}
.pricing-card--grouped .pricing-card__features--grouped {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}
.pricing-card--grouped .pricing-card__feature {
	font-size: var(--fs-14);
	line-height: var(--lh-snug);
	padding-left: 1.2rem;
	position: relative;
}
.pricing-card--grouped .pricing-card__feature::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--c-citation-dark);
	font-weight: 700;
}

/* When the Authority card is grouped, give Foundation + Growth a min-height
   so they don't look stubby next to it on /pricing/. */
@media (min-width: 760px) {
	.pricing__grid:has(.pricing-card--grouped) .pricing-card:not(.pricing-card--grouped) {
		align-self: stretch;
	}
}

/* --- Footer compliance partner chips ------------------------- */
.site-footer__compliance {
	list-style: none;
	margin: var(--s-6) 0 var(--s-4);
	padding: var(--s-4) 0 0;
	border-top: 1px solid color-mix(in srgb, var(--c-paper) 12%, transparent);
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2) var(--s-5);
}
.site-footer__compliance li {
	display: inline-flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.compliance-chip__label {
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--c-paper) 50%, transparent);
}
.compliance-chip__value {
	font-size: var(--fs-13);
	color: color-mix(in srgb, var(--c-paper) 85%, transparent);
}

/* --- Sticky bottom banner (first-time visitor AEO Audit CTA) - */
.thorli-sticky-banner {
	position: fixed;
	left: 50%;
	bottom: var(--s-4);
	transform: translateX(-50%) translateY(150%);
	display: flex;
	align-items: center;
	gap: var(--s-3);
	max-width: min(640px, calc(100vw - 2 * var(--s-4)));
	padding: var(--s-3) var(--s-4);
	background: var(--c-ink);
	color: var(--c-paper);
	border-radius: var(--r-full);
	box-shadow: 0 20px 60px -20px rgba(0, 0, 0, 0.35);
	z-index: 70;
	transition: transform var(--dur-slow) var(--ease-out);
	pointer-events: none;
}
.thorli-sticky-banner.is-visible {
	transform: translateX(-50%) translateY(0);
	pointer-events: auto;
}
.thorli-sticky-banner__text {
	flex: 1;
	font-size: var(--fs-14);
	line-height: var(--lh-snug);
	color: color-mix(in srgb, var(--c-paper) 92%, var(--c-stone-300));
}
.thorli-sticky-banner__text strong { color: var(--c-citation); }
.thorli-sticky-banner__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.45rem 0.9rem;
	background: var(--c-citation);
	color: var(--c-ink);
	border-radius: var(--r-full);
	font-weight: 600;
	font-size: var(--fs-13);
	text-decoration: none;
	white-space: nowrap;
}
.thorli-sticky-banner__cta:hover { background: var(--c-citation-dark); color: var(--c-sage); }
.thorli-sticky-banner__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px; height: 24px;
	border: 0;
	background: transparent;
	color: color-mix(in srgb, var(--c-paper) 65%, transparent);
	cursor: pointer;
	border-radius: 50%;
	padding: 0;
}
.thorli-sticky-banner__close:hover { color: var(--c-paper); background: color-mix(in srgb, var(--c-paper) 10%, transparent); }
@media (max-width: 640px) {
	.thorli-sticky-banner { font-size: var(--fs-12); padding: var(--s-2) var(--s-3); bottom: var(--s-2); }
}
@media (prefers-reduced-motion: reduce) {
	.thorli-sticky-banner { transition: none; }
}

/* Don't show the sticky banner on the squeeze page itself (it'd be duplicate intent) */
.page-template-free-audit .thorli-sticky-banner { display: none; }

/* --- Homepage Platform reveal section (added 2026-05-17) ----- */
.platform {
	padding-block: clamp(3rem, 6vw, 6rem);
	background: var(--c-ink);
	color: var(--c-paper);
	position: relative;
	overflow: hidden;
}
.platform::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(900px 500px at 110% 0%, color-mix(in srgb, var(--c-citation) 14%, transparent) 0%, transparent 60%),
		radial-gradient(700px 400px at -10% 100%, color-mix(in srgb, var(--c-sage) 18%, transparent) 0%, transparent 60%);
	pointer-events: none;
}
.platform__grid {
	position: relative;
	display: grid;
	gap: var(--s-10);
	grid-template-columns: 1fr;
	align-items: start;
}
@media (min-width: 960px) {
	.platform__grid { grid-template-columns: 1.05fr 1fr; gap: var(--s-12); }
}
.platform__intro {
	display: flex;
	flex-direction: column;
	gap: var(--s-4);
	align-items: flex-start;
}
.platform__intro .eyebrow--accent {
	background: color-mix(in srgb, var(--c-citation) 16%, transparent);
	border-color: color-mix(in srgb, var(--c-citation) 35%, transparent);
	color: var(--c-citation);
}
.platform__title {
	color: var(--c-paper);
	font-family: var(--f-display);
	font-size: clamp(var(--fs-36), 4vw, var(--fs-60));
	line-height: var(--lh-tight);
	letter-spacing: -0.015em;
	font-weight: 500;
	max-width: 18ch;
	margin: 0;
}
/* Ghost button needs inverted colors on this dark section. */
.platform .btn--ghost {
	color: var(--c-paper);
	border-color: color-mix(in srgb, var(--c-paper) 30%, transparent);
	background: transparent;
}
.platform .btn--ghost:hover {
	background: color-mix(in srgb, var(--c-paper) 10%, transparent);
	border-color: color-mix(in srgb, var(--c-citation) 50%, transparent);
	color: var(--c-paper);
}
.platform .btn--ghost .btn__arrow { color: var(--c-citation); }
.platform__title .lime {
	background: var(--c-citation);
	color: var(--c-ink);
	padding: 0 0.15em;
	border-radius: 6px;
}
.platform__sub {
	color: color-mix(in srgb, var(--c-paper) 78%, var(--c-stone-300));
	max-width: 52ch;
	margin: 0;
}
.platform__sub code {
	background: color-mix(in srgb, var(--c-paper) 10%, transparent);
	border: 1px solid color-mix(in srgb, var(--c-paper) 18%, transparent);
	padding: 0.05rem 0.4rem;
	border-radius: var(--r-sm);
	font-size: 0.9em;
}

.platform__groups {
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
	margin: 0;
	padding: 0;
	list-style: none;
}
.platform-group {
	display: flex;
	gap: var(--s-5);
	align-items: flex-start;
	padding: var(--s-5) var(--s-6);
	background: color-mix(in srgb, var(--c-paper) 6%, var(--c-ink));
	border: 1px solid color-mix(in srgb, var(--c-paper) 12%, transparent);
	border-radius: var(--r-lg);
	border-left: 4px solid var(--c-citation);
	transition: transform var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out);
}
.platform-group:hover {
	transform: translateX(2px);
	background: color-mix(in srgb, var(--c-paper) 10%, var(--c-ink));
}
.platform-group--aeo { border-left-color: var(--c-citation-dark); }
.platform-group__count {
	font-family: var(--f-display);
	font-size: clamp(2.25rem, 3.2vw, 3rem);
	line-height: 1;
	color: var(--c-citation);
	font-variant-numeric: tabular-nums;
	flex-shrink: 0;
	min-width: 1.6em;
}
.platform-group__body { display: flex; flex-direction: column; gap: 0.35rem; min-width: 0; }
.platform-group__label {
	font-family: var(--f-display);
	font-size: var(--fs-20);
	color: var(--c-paper);
	line-height: var(--lh-snug);
}
.platform-group__items {
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.04em;
	color: color-mix(in srgb, var(--c-paper) 60%, var(--c-stone-300));
	line-height: var(--lh-relaxed);
}

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

/* --- Trust page hero chips ---------------------------------- */
.trust-hero { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.trust-hero__chips {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--s-3);
	margin: var(--s-6) 0 0;
	padding: 0;
	list-style: none;
}
.trust-hero__chips li {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	padding: var(--s-4) var(--s-5);
	background: var(--c-paper-warm);
	border: 1px solid var(--c-border);
	border-left: 3px solid var(--c-citation);
	border-radius: var(--r-md);
}
.trust-hero__chips strong {
	font-family: var(--f-display);
	font-size: var(--fs-18);
	color: var(--c-ink);
}
.trust-hero__chips span {
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.04em;
	color: var(--c-text-soft);
}

/* ============================================================== *
 * FEATURES HUB + FEATURE DETAIL — Pass 2 (added 2026-05-17)
 * ============================================================== */

/* --- Features hub grid --------------------------------------- */
.features-hero { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.features-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--s-4);
	margin: 0;
	padding: 0;
	list-style: none;
}
.feature-card {
	background: var(--c-white, #fff);
	border: 1px solid var(--c-border);
	border-radius: var(--r-lg);
	overflow: hidden;
	transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
	position: relative;
}
.feature-card::before {
	content: "";
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 3px;
	background: linear-gradient(180deg, var(--c-citation) 0%, var(--c-citation-dark) 100%);
	transform: scaleY(0.3);
	transform-origin: top;
	transition: transform var(--dur-base) var(--ease-out);
}
.feature-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 20px 40px -24px rgba(14,17,22,0.18);
	border-color: color-mix(in srgb, var(--c-citation) 40%, var(--c-border));
}
.feature-card:hover::before { transform: scaleY(1); }
.feature-card__link {
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
	padding: var(--s-5) var(--s-5) var(--s-5) calc(var(--s-5) + 4px);
	color: var(--c-ink);
	text-decoration: none;
	height: 100%;
}
.feature-card__head {
	display: flex;
	gap: var(--s-2);
	flex-wrap: wrap;
	align-items: center;
}
.feature-card__tier,
.feature-card__status {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.2rem 0.6rem;
	border-radius: var(--r-full);
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.04em;
	line-height: 1.4;
	text-transform: uppercase;
}
.feature-card__tier--foundation { background: var(--c-paper-warm); color: var(--c-text-soft); border: 1px solid var(--c-border); }
.feature-card__tier--growth     { background: color-mix(in srgb, var(--c-citation) 12%, var(--c-paper-warm)); color: var(--c-sage); border: 1px solid color-mix(in srgb, var(--c-citation-dark) 25%, transparent); }
.feature-card__tier--authority  { background: var(--c-ink); color: var(--c-citation); border: 1px solid var(--c-ink); }
.feature-card__status--private-beta { color: var(--c-citation-dark); border: 1px dashed color-mix(in srgb, var(--c-citation-dark) 35%, transparent); }
.feature-card__status--live { color: var(--c-success); border: 1px solid color-mix(in srgb, var(--c-success) 30%, transparent); }
.feature-card__status::before {
	content: "";
	width: 6px; height: 6px;
	border-radius: 50%;
	background: currentColor;
}
.feature-card__name {
	font-family: var(--f-display);
	font-size: var(--fs-20);
	line-height: var(--lh-snug);
	color: var(--c-ink);
	margin: 0;
}
.feature-card__line {
	font-size: var(--fs-15);
	color: var(--c-text-soft);
	line-height: var(--lh-relaxed);
	margin: 0;
}
.feature-card__cta {
	margin-top: auto;
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c-citation-dark);
	display: inline-flex;
	gap: 0.3rem;
}
.feature-card:hover .feature-card__cta .btn__arrow { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) {
	.feature-card, .feature-card::before, .feature-card__cta .btn__arrow { transition: none; }
}

/* --- Feature detail hero ------------------------------------ */
.feature-hero { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.feature-hero .breadcrumb { margin-bottom: var(--s-2); }
.feature-hero__badges {
	display: flex;
	gap: var(--s-2);
	flex-wrap: wrap;
	margin-bottom: var(--s-4);
}
.feature-hero__title {
	font-size: clamp(var(--fs-36), 5vw, var(--fs-72));
	max-width: 22ch;
	margin: 0 0 var(--s-4);
}
.feature-hero__sub { max-width: 58ch; }
.feature-hero__anchor {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: var(--s-4);
	padding: 0.55rem 0.9rem;
	background: var(--c-paper-warm);
	border: 1px solid var(--c-border);
	border-left: 3px solid var(--c-citation);
	border-radius: var(--r-md);
	font-size: var(--fs-14);
	color: var(--c-text-soft);
}
.feature-hero__anchor svg { color: var(--c-citation-dark); flex-shrink: 0; }

/* --- "Coming soon" stub for unfinished feature pages --------- */
.feature-stub {
	margin-top: var(--s-6);
	padding: var(--s-6);
	background: var(--c-paper-warm);
	border: 1px solid var(--c-border);
	border-left: 3px solid var(--c-citation);
	border-radius: var(--r-lg);
	display: flex;
	flex-direction: column;
	gap: var(--s-4);
	align-items: flex-start;
	max-width: 56ch;
}

/* --- Dashboard checklist ------------------------------------ */
.dash-checklist {
	margin: var(--s-4) 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
}
.dash-checklist li {
	display: flex;
	gap: var(--s-3);
	font-size: var(--fs-16);
	line-height: var(--lh-relaxed);
	color: var(--c-text-soft);
}
.dash-checklist li::before {
	content: "✓";
	color: var(--c-citation-dark);
	font-weight: 700;
	flex-shrink: 0;
}

/* ============================================================== *
 * GROWTH SIMULATOR (interactive) — Pass 3
 * ============================================================== */

.sim-hero { padding-block: clamp(2.5rem, 5vw, 4.5rem); }

.sim-grid {
	display: grid;
	gap: var(--s-8);
	grid-template-columns: 1fr;
	align-items: start;
}
@media (min-width: 960px) {
	.sim-grid { grid-template-columns: 1fr 1fr; gap: var(--s-10); }
}

.sim-inputs {
	display: flex;
	flex-direction: column;
	gap: var(--s-5);
	padding: var(--s-7);
	background: var(--c-paper-warm);
	border: 1px solid var(--c-border);
	border-radius: var(--r-xl);
}
.sim-inputs__title {
	margin: 0;
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c-text-soft);
}
.sim-field { display: flex; flex-direction: column; gap: var(--s-2); }
.sim-field label {
	font-family: var(--f-display);
	font-size: var(--fs-17);
	color: var(--c-ink);
}
.sim-field__row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: var(--s-4);
	align-items: center;
}
.sim-field__output {
	font-family: var(--f-display);
	font-size: var(--fs-24);
	font-variant-numeric: tabular-nums;
	color: var(--c-citation-dark);
	min-width: 5ch;
	text-align: right;
}
.sim-field__hint {
	font-size: var(--fs-13);
	color: var(--c-text-mute);
}
.sim-field input[type="range"] {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 6px;
	background: var(--c-border);
	border-radius: 999px;
	outline: none;
}
.sim-field input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--c-citation);
	border: 2px solid var(--c-ink);
	cursor: grab;
	transition: transform var(--dur-fast) var(--ease-out);
}
.sim-field input[type="range"]::-moz-range-thumb {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--c-citation);
	border: 2px solid var(--c-ink);
	cursor: grab;
}
.sim-field input[type="range"]:focus-visible {
	outline: 3px solid var(--c-citation);
	outline-offset: 4px;
}
.sim-field input[type="range"]:active::-webkit-slider-thumb { transform: scale(1.15); }

.sim-output {
	position: sticky;
	top: calc(var(--header-height, 64px) + var(--s-6));
	padding: var(--s-8);
	background: var(--c-ink);
	color: var(--c-paper);
	border-radius: var(--r-xl);
	border-left: 4px solid var(--c-citation);
	display: flex;
	flex-direction: column;
	gap: var(--s-5);
	box-shadow: 0 24px 60px -30px rgba(0,0,0,0.4);
}
@media (max-width: 959px) { .sim-output { position: static; } }
.sim-output__eyebrow {
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c-citation);
}
.sim-output__hero { display: flex; flex-direction: column; gap: var(--s-2); }
.sim-output__num {
	font-family: var(--f-display);
	font-size: clamp(var(--fs-48), 6vw, var(--fs-72));
	line-height: 0.95;
	letter-spacing: -0.025em;
	color: var(--c-citation);
	font-variant-numeric: tabular-nums;
}
.sim-output__cadence {
	font-size: var(--fs-14);
	color: color-mix(in srgb, var(--c-paper) 70%, var(--c-stone-300));
}
.sim-output__stats {
	margin: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--s-3);
	padding: var(--s-4) 0;
	border-top: 1px solid color-mix(in srgb, var(--c-paper) 12%, transparent);
	border-bottom: 1px solid color-mix(in srgb, var(--c-paper) 12%, transparent);
}
.sim-output__stats > div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-3); }
.sim-output__stats dt {
	font-size: var(--fs-14);
	color: color-mix(in srgb, var(--c-paper) 65%, var(--c-stone-300));
}
.sim-output__stats dd {
	margin: 0;
	font-family: var(--f-display);
	font-size: var(--fs-20);
	color: var(--c-paper);
	font-variant-numeric: tabular-nums;
}

.sim-script {
	display: flex;
	flex-direction: column;
	gap: var(--s-2);
	padding: var(--s-4);
	background: color-mix(in srgb, var(--c-paper) 6%, transparent);
	border-radius: var(--r-md);
}
.sim-script__label {
	font-family: var(--f-mono);
	font-size: var(--fs-12);
	letter-spacing: 0.04em;
	color: color-mix(in srgb, var(--c-paper) 60%, transparent);
}
.sim-script__body {
	margin: 0;
	font-size: var(--fs-15);
	line-height: var(--lh-relaxed);
	color: color-mix(in srgb, var(--c-paper) 90%, var(--c-stone-300));
}

.sim-output__cta { display: flex; gap: var(--s-3); flex-wrap: wrap; }
.sim-output__cta .btn--ghost {
	color: var(--c-paper);
	border-color: color-mix(in srgb, var(--c-paper) 30%, transparent);
	background: transparent;
}
.sim-output__cta .btn--ghost:hover {
	background: color-mix(in srgb, var(--c-paper) 10%, transparent);
	border-color: color-mix(in srgb, var(--c-citation) 50%, transparent);
}

.sim-methodology {
	margin-top: var(--s-10);
	padding: var(--s-5);
	background: var(--c-paper-warm);
	border: 1px solid var(--c-border);
	border-radius: var(--r-md);
	max-width: 70ch;
}
.sim-methodology summary {
	cursor: pointer;
	font-family: var(--f-mono);
	font-size: var(--fs-13);
	letter-spacing: 0.04em;
	color: var(--c-text-soft);
}
.sim-methodology p {
	margin: var(--s-3) 0 0;
	color: var(--c-text-soft);
	line-height: var(--lh-relaxed);
}
