/*
 * RationalCo Offers: front-end styles for family and offer pages.
 * Everything is scoped under .rco. Colors come from the family palette as
 * CSS variables set on the .rco wrapper:
 *   --rco-main  --rco-dark  --rco-tint  --rco-btn  --rco-btn-text
 */

.rco {
	--rco-ink: #1b2440;
	--rco-text: #2b3350;
	--rco-muted: #4a5168;
	--rco-line: #e2e4ec;
	--rco-soft: #f6f7fa;
	--rco-radius: 16px;
	color: var(--rco-text);
	font-size: 17px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
.rco *, .rco *::before, .rco *::after { box-sizing: border-box; }
.rco p { margin: 0; }
.rco h1, .rco h2, .rco h3 { color: inherit; margin: 0; font-family: inherit; }
.rco a { text-decoration: none; }
.rco ul { margin: 0; padding: 0; list-style: none; }

.rco-wrap { max-width: 1200px; margin: 0 auto; padding-left: 32px; padding-right: 32px; }
.rco-wrap--narrow { max-width: 880px; }

/* Type */
.rco-h1 { font-size: clamp(34px, 4.2vw, 54px); line-height: 1.08; letter-spacing: -0.025em; font-weight: 800; }
.rco-h2 { font-size: clamp(28px, 3vw, 40px); line-height: 1.15; letter-spacing: -0.02em; font-weight: 800; color: var(--rco-ink); }
.rco-h2--small { font-size: clamp(24px, 2.4vw, 32px); margin-bottom: 24px; }
.rco-h3 { font-size: 20px; line-height: 1.3; font-weight: 700; color: var(--rco-ink); }
.rco-eyebrow { font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rco-main); }
.rco-eyebrow--light { color: color-mix(in srgb, var(--rco-main) 35%, #ffffff); }
.rco-lead { font-size: 19px; line-height: 1.6; }
.rco-lead p + p, .rco-body p + p { margin-top: 12px; }
.rco-muted { color: var(--rco-muted); }
.rco-small { font-size: 13px; color: var(--rco-muted); margin-top: 16px !important; }
.rco-strong { font-weight: 700; }
.rco-icon { width: 18px; height: 18px; flex: none; }

/* Sections */
.rco-section { padding: 80px 0; background: #ffffff; }
.rco-section--soft { background: var(--rco-soft); }
.rco-section--tint { background: var(--rco-tint); }
.rco-section--tight { padding-top: 0; }
.rco-head { display: flex; flex-direction: column; gap: 12px; max-width: 760px; margin-bottom: 36px; }
.rco-head--center { margin-left: auto; margin-right: auto; text-align: center; align-items: center; }
.rco-dark { background: var(--rco-dark); color: #ffffff; }
.rco-dark .rco-h2, .rco-dark .rco-h3 { color: #ffffff; }
.rco-dark .rco-lead { color: rgba(255, 255, 255, 0.84); }

/* Buttons */
.rco-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 14px 24px; border-radius: 10px; font-weight: 700; font-size: 16px; line-height: 1.2; border: 1.5px solid transparent; transition: filter .15s ease, background-color .15s ease; text-align: center; }
.rco-btn:hover { filter: brightness(1.08); }
.rco-btn:focus-visible, .rco a:focus-visible, .rco summary:focus-visible { outline: 3px solid var(--rco-main); outline-offset: 3px; }
.rco-btn--primary { background: var(--rco-btn); color: var(--rco-btn-text) !important; }
.rco-btn--outline { background: #ffffff; color: var(--rco-main) !important; border-color: var(--rco-main); }
.rco-btn--light { background: #ffffff; color: var(--rco-ink) !important; }
.rco-btn--ghost { background: transparent; color: #ffffff !important; border-color: rgba(255, 255, 255, 0.5); }
.rco-section .rco-btn--ghost, .rco-section--soft .rco-btn--ghost { color: var(--rco-ink) !important; border-color: var(--rco-line); }
.rco-btn--block { display: flex; width: 100%; }
.rco-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.rco-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--rco-main) !important; margin-top: 16px; }
.rco-admin-note { font-size: 13px; padding: 10px 12px; border: 1px dashed #c08a00; background: #fff8e1; color: #5c4400; border-radius: 8px; }

/* Hero */
.rco-hero { padding: 72px 0 88px; }
.rco-hero__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 56px; align-items: center; }
.rco-hero__copy { display: flex; flex-direction: column; gap: 22px; }
.rco-points { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 15px; color: rgba(255, 255, 255, 0.8); }
.rco-points li { display: inline-flex; gap: 8px; align-items: center; }
.rco-points .rco-icon { color: color-mix(in srgb, var(--rco-main) 35%, #ffffff); width: 16px; height: 16px; }
.rco-crumb { font-size: 14px; color: rgba(255, 255, 255, 0.75); }
.rco-crumb a { color: #ffffff !important; text-decoration: underline; text-underline-offset: 3px; }

.rco-ladder { background: color-mix(in srgb, var(--rco-dark) 85%, #ffffff); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 18px; padding: 24px; display: flex; flex-direction: column; }
.rco-ladder .rco-eyebrow { margin-bottom: 10px; }
.rco-ladder__row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 10px; color: #ffffff !important; border-bottom: 1px solid rgba(255, 255, 255, 0.12); border-radius: 10px; }
.rco-ladder__row:last-child { border-bottom: 0; }
.rco-ladder__row:hover { background: rgba(255, 255, 255, 0.06); }
.rco-ladder__num { font-size: 22px; font-weight: 800; color: color-mix(in srgb, var(--rco-main) 35%, #ffffff); }
.rco-ladder__text { display: flex; flex-direction: column; gap: 2px; }
.rco-ladder__name { font-weight: 700; }
.rco-ladder__meta { font-size: 14px; color: rgba(255, 255, 255, 0.72); }
.rco-ladder__price { font-weight: 700; }

.rco-pricebox { background: #ffffff; color: var(--rco-text); border-radius: 18px; padding: 28px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25); }
.rco-pricebox__price { font-size: 44px; font-weight: 800; letter-spacing: -0.02em; color: var(--rco-ink); line-height: 1.1; }
.rco-pricebox__fit { font-size: 15px; color: var(--rco-muted); background: var(--rco-soft); padding: 12px 14px; border-radius: 10px; }

/* Grids */
.rco-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 16px; }
.rco-grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px; }
.rco-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: 48px; align-items: center; }
.rco-split--wide { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: start; }
.rco-stack { display: flex; flex-direction: column; gap: 16px; }

/* Question cards */
.rco-qcard { background: var(--rco-tint); border-radius: var(--rco-radius); padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.rco-qcard .rco-icon { width: 28px; height: 28px; color: var(--rco-main); }

/* Tier cards */
.rco-tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; align-items: stretch; padding-top: 14px; }
.rco-tiers[data-count="5"], .rco-tiers[data-count="6"] { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.rco-card { position: relative; background: #ffffff; border: 1px solid var(--rco-line); border-radius: 18px; padding: 28px 24px; display: flex; flex-direction: column; gap: 14px; }
.rco-card--highlight { border: 2px solid var(--rco-main); box-shadow: 0 10px 30px rgba(27, 36, 64, 0.08); }
.rco-card--dark { background: var(--rco-dark); color: rgba(255, 255, 255, 0.88); border-color: var(--rco-dark); }
.rco-badge { position: absolute; top: -14px; left: 24px; background: var(--rco-main); color: #ffffff; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 6px 12px; border-radius: 999px; }
.rco-card--dark .rco-badge { background: #ffffff; color: var(--rco-ink); border: 1px solid var(--rco-line); }
.rco-card__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rco-main); }
.rco-card--dark .rco-card__eyebrow { color: color-mix(in srgb, var(--rco-main) 35%, #ffffff); }
.rco-card__name { font-size: 22px; line-height: 1.2; font-weight: 800; }
.rco-card__name a { color: var(--rco-ink) !important; }
.rco-card--dark .rco-card__name a { color: #ffffff !important; }
.rco-card__tagline { font-size: 15px; color: var(--rco-muted); }
.rco-card--dark .rco-card__tagline { color: rgba(255, 255, 255, 0.8); }
.rco-card__price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.rco-price { font-size: 40px; font-weight: 800; letter-spacing: -0.02em; color: var(--rco-ink); line-height: 1.1; }
.rco-price--long { font-size: 30px; }
.rco-card--dark .rco-price { color: #ffffff; }
.rco-card__duration { font-size: 15px; color: var(--rco-muted); }
.rco-card--dark .rco-card__duration { color: rgba(255, 255, 255, 0.75); }
.rco-card__fit { font-size: 14px; background: var(--rco-soft); border-radius: 10px; padding: 12px 14px; color: var(--rco-muted); }
.rco-card__fit strong { color: var(--rco-ink); }
.rco-card--dark .rco-card__fit { background: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.85); }
.rco-card--dark .rco-card__fit strong { color: #ffffff; }
.rco-card__label { font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rco-muted); margin: 8px 0 4px; }
.rco-card--dark .rco-card__label { color: rgba(255, 255, 255, 0.7); }
.rco-checks { display: flex; flex-direction: column; gap: 10px; font-size: 15px; line-height: 1.45; }
.rco-checks li { display: flex; gap: 10px; }
.rco-checks .rco-icon { color: var(--rco-main); margin-top: 2px; }
.rco-card--dark .rco-checks .rco-icon { color: color-mix(in srgb, var(--rco-main) 35%, #ffffff); }
.rco-checks--no .rco-icon { color: #9a3b1f; }
.rco-checks--large { font-size: 17px; gap: 14px; margin-bottom: 8px; }
.rco-card__result { margin-top: auto; border-top: 1px solid var(--rco-line); padding-top: 14px; font-size: 14px; color: var(--rco-muted); }
.rco-card__result strong { color: var(--rco-ink); }
.rco-card--dark .rco-card__result { border-color: rgba(255, 255, 255, 0.15); color: rgba(255, 255, 255, 0.8); }
.rco-card--dark .rco-card__result strong { color: #ffffff; }
.rco-card__more { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: var(--rco-main) !important; }
.rco-card--dark .rco-card__more { color: #ffffff !important; }
.rco-card__more .rco-icon { width: 16px; height: 16px; }
.rco-swipe-hint { display: none; }

/* Chooser */
.rco-choice { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 26px; border: 1px solid var(--rco-line); border-radius: var(--rco-radius); color: var(--rco-ink) !important; background: #ffffff; }
.rco-choice:hover { border-color: var(--rco-main); }
.rco-choice > span { display: flex; flex-direction: column; gap: 6px; }
.rco-choice__quote { font-size: 19px; font-weight: 700; line-height: 1.35; }
.rco-choice__offer { font-size: 15px; font-weight: 600; color: var(--rco-main); }
.rco-choice .rco-icon { color: var(--rco-main); width: 22px; height: 22px; }

/* Comparison */
.rco-table-scroll { overflow-x: auto; border: 1px solid var(--rco-line); border-radius: var(--rco-radius); }
.rco-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: 15px; line-height: 1.45; text-align: left; margin: 0; }
.rco-table th, .rco-table td { padding: 16px 20px; border: 0; border-top: 1px solid var(--rco-line); vertical-align: top; }
.rco-table thead th { background: var(--rco-soft); border-top: 0; color: var(--rco-ink); }
.rco-table tbody th { color: var(--rco-muted); font-weight: 600; width: 18%; }
.rco-table .rco-link { margin-top: 0; }

/* Trust */
.rco-quote { margin: 0; background: #ffffff; border-radius: var(--rco-radius); padding: 26px; display: flex; flex-direction: column; gap: 14px; }
.rco-quote blockquote { margin: 0; padding: 0; border: 0; font-size: 18px; line-height: 1.5; font-weight: 500; color: var(--rco-ink); }
.rco-quote figcaption { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--rco-muted); }
.rco-avatar { width: 40px; height: 40px; border-radius: 50%; background: color-mix(in srgb, var(--rco-main) 25%, #ffffff); flex: none; }

/* Qualify */
.rco-qbox { border: 1px solid var(--rco-line); border-radius: var(--rco-radius); padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.rco-qbox--yes { border-color: var(--rco-main); background: var(--rco-tint); }

/* Boxes */
.rco-box { background: #ffffff; border: 1px solid var(--rco-line); border-radius: var(--rco-radius); padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.rco-box--accent { background: var(--rco-tint); border-color: transparent; }

/* Consider + steps */
.rco-consider { display: flex; flex-direction: column; gap: 8px; padding: 24px; border: 1px solid var(--rco-line); border-radius: var(--rco-radius); color: var(--rco-text) !important; background: #ffffff; }
.rco-consider:hover { border-color: var(--rco-main); }
.rco-consider__name { font-size: 20px; font-weight: 800; color: var(--rco-ink); }
.rco-consider__reason { color: var(--rco-muted); }
.rco-consider__price { margin-top: auto; display: flex; align-items: center; justify-content: space-between; font-weight: 700; color: var(--rco-main); padding-top: 8px; }
.rco-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.rco-step { display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: 14px; background: #ffffff; border: 1px solid var(--rco-line); color: var(--rco-text) !important; }
.rco-step.is-current { border: 2px solid var(--rco-main); }
.rco-step__num { font-weight: 800; color: var(--rco-main); }
.rco-step__name { font-weight: 700; color: var(--rco-ink); }
.rco-step__price { font-size: 14px; color: var(--rco-muted); }

/* Guarantee */
.rco-guarantee { border-top: 1px solid var(--rco-line); }
.rco-guarantee__head { display: flex; gap: 20px; align-items: flex-start; margin-bottom: 28px; max-width: 820px; }
.rco-guarantee__head > .rco-icon { width: 48px; height: 48px; color: var(--rco-main); }
.rco-guarantee__head .rco-body { margin-top: 10px; }
.rco-terms { margin-top: 20px; border: 1px solid var(--rco-line); border-radius: 12px; padding: 0 20px; }
.rco-terms summary { cursor: pointer; padding: 16px 0; font-weight: 700; color: var(--rco-ink); }
.rco-terms__body { padding-bottom: 20px; font-size: 14px; color: var(--rco-muted); }
.rco-terms__body p + p { margin-top: 10px; }

/* FAQ */
.rco-faq { border-top: 1px solid var(--rco-line); margin-top: 28px; }
.rco-faq__item { border-bottom: 1px solid var(--rco-line); padding: 20px 0; }
.rco-faq__item summary { cursor: pointer; font-size: 18px; font-weight: 700; color: var(--rco-ink); list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.rco-faq__item summary::-webkit-details-marker { display: none; }
.rco-faq__item summary::after { content: "+"; color: var(--rco-main); font-weight: 700; }
.rco-faq__item[open] summary::after { content: "\2212"; }
.rco-faq__answer { margin-top: 12px; color: var(--rco-muted); }

/* Closing band */
.rco-closing { background: var(--rco-main); color: #ffffff; padding: 72px 0; }
.rco-closing .rco-h2 { color: #ffffff; }
.rco-closing .rco-lead { color: rgba(255, 255, 255, 0.9); margin-top: 10px; }
.rco-closing__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.rco-closing .rco-btn--ghost { color: #ffffff !important; border-color: rgba(255, 255, 255, 0.6); }

/* Mobile sticky bar */
.rco-sticky { display: none; }

@media (max-width: 860px) {
	.rco-split--wide { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
	.rco { font-size: 16px; }
	.rco-wrap { padding-left: 20px; padding-right: 20px; }
	.rco-section { padding: 56px 0; }
	.rco-section--tight { padding-top: 0; }
	.rco-hero { padding: 48px 0 56px; }
	.rco-family .rco-ladder { display: none; }
	.rco-tiers { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; padding-bottom: 14px; margin-right: -20px; padding-right: 20px; -webkit-overflow-scrolling: touch; }
	.rco-tiers > .rco-card { flex: 0 0 84%; scroll-snap-align: start; }
	.rco-swipe-hint { display: block; text-align: center; font-size: 14px; color: var(--rco-muted); margin-top: 6px; }
	.rco-sticky { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: #ffffff; border-top: 1px solid var(--rco-line); box-shadow: 0 -6px 20px rgba(27, 36, 64, 0.1); padding: 10px 16px; align-items: center; justify-content: space-between; gap: 12px; }
	.rco-sticky .rco-btn { min-height: 44px; padding: 10px 18px; }
	.rco-sticky .rco-admin-note { display: none; }
	.rco-sticky__price { font-size: 13px; color: var(--rco-muted); }
	.rco-sticky__price strong { font-size: 18px; color: var(--rco-ink); }
	.rco { padding-bottom: 72px; }
	.rco-guarantee__head { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
	.rco * { transition: none !important; scroll-behavior: auto !important; }
}
