/*
 * Shared public-site typography system.
 *
 * Display: Adapt Compact for headlines, navigation, short labels, and buttons.
 * Reading: Raleway for paragraphs, lists, tables, forms, and inline emphasis.
 * Actual page copy never falls below 12px; 13px is the normal metadata floor.
 */
:root {
	--type-display: "adapt-variable", "Adapt Compact", Impact, sans-serif;
	--type-reading: "Raleway", Arial, sans-serif;
	--type-meta: 13px;
	--type-card: 14px;
	--type-body: 16px;
	--type-lead: 18px;
	--reading-weight: 580;
	--reading-line-height: 1.62;
	--label-tracking: .08em;
}

body {
	font-family: var(--type-reading);
	font-size: var(--type-body);
	font-weight: var(--reading-weight);
	line-height: var(--reading-line-height);
	letter-spacing: normal;
}

body :is(p, li, td, th, blockquote, label, summary, input, select, textarea) {
	letter-spacing: normal;
}

strong, b {
	font-family: inherit;
	font-weight: 750;
	letter-spacing: normal;
}

small {
	font-size: var(--type-meta);
	font-weight: 650;
	line-height: 1.45;
}

.eyebrow {
	font-size: var(--type-meta);
	font-variation-settings: "wdth" 60, "wght" 800;
	letter-spacing: var(--label-tracking);
	line-height: 1.25;
}

.button,
.app-story-actions a,
.sat-product-actions a,
.home-support-card-cta,
.white-glove-card-actions a {
	font-size: 15px;
	font-variation-settings: "wdth" 75, "wght" 800;
	font-weight: 800;
	line-height: 1.2;
}
.preview-safety-bar, .blend-utility-inner a { font-size: var(--type-meta); }
.blend-footer-legal p, .blend-footer-legal a, .blend-footer-legal span { font-weight: 600; }

/* Shared homepage and checkout roles. */
.panel-step-label,
.card-label,
.offer-kicker,
.summary-label,
.review-rail-hint,
.guarantee-requirement-title small,
.white-glove-remedy-heading > span {
	font-size: var(--type-meta);
	font-variation-settings: "wdth" 60, "wght" 800;
	letter-spacing: var(--label-tracking);
	line-height: 1.25;
}

.panel-price-row span,
.panel-proof,
.panel-progress a,
.trust-grid span,
.component-price small,
.sequence-guarantee span,
.sequence-guarantee a,
.plan-choice-price span,
.plan-choice-guarantee small,
.plan-choice-guarantee a,
.review-card footer span,
.review-card footer small,
.review-disclaimer { font-size: var(--type-meta); }

.sequence-card li,
.offer-card li,
.plan-choice-copy p,
.builder-step p { font-size: var(--type-card); }

.builder-step > span,
.builder-product small,
.builder-product em,
.builder-product .builder-product-guarantee small,
.builder-product .builder-product-guarantee a,
.builder-guarantee-note,
.bundle-earned,
.access-options small,
.pricing-review-note,
.tutoring-rate-note,
.summary-items > div,
.summary-empty,
.summary-savings,
.order-summary > p,
.course-format-detail span { font-size: var(--type-meta); }

.builder-product strong,
.access-options strong,
.course-format-detail strong { font-size: 15px; }
.summary-items > div, .order-summary > p, .summary-safe { color: rgba(255,255,255,.82); }

/* Score Guarantee: data remains compact, but explanations use reading type. */
.guarantee-policy-intro > small,
.guarantee-table-heading p,
.guarantee-table-card tbody small,
.guarantee-requirement-grid li span,
.white-glove-policy-cards p,
.white-glove-remedy-box > ul li { font-size: var(--type-card); line-height: 1.55; }

.guarantee-table-card thead th,
.guarantee-path-card > span,
.guarantee-ceiling-card > div > span,
.guarantee-remedy-grid span,
.guarantee-refund-formula span,
.guarantee-refund-examples span,
.white-glove-policy-cards span,
.guarantee-baseline-alert span { font-size: var(--type-meta); letter-spacing: var(--label-tracking); }

.guarantee-table-card th,
.guarantee-table-card td { line-height: 1.45; }
.guarantee-core-remedy .guarantee-remedy-grid p { font-weight: 600; line-height: 1.55; }
.white-glove-guarantee-policy .guarantee-policy-heading > p,
.white-glove-policy-requirements li,
.white-glove-remedy-heading p,
.white-glove-remedy-box > ul li { color: rgba(255,255,255,.82); }

/* White Glove direct enrollment. */
.white-glove-enrollment-program small,
.white-glove-enrollment-program em,
.white-glove-enrollment-field > small,
.white-glove-enrollment-next ol,
.white-glove-enrollment-ready small { font-size: var(--type-meta); }

.white-glove-enrollment-field > span,
.white-glove-enrollment-test-grid legend,
.white-glove-enrollment-availability legend,
.white-glove-enrollment-availability > p,
.white-glove-enrollment-consent span,
.white-glove-enrollment-review-status,
.white-glove-enrollment-date-status { font-size: var(--type-card); line-height: 1.55; }

/* Subscription-layout pages: keep the branded display face out of long copy. */
.app-story-page strong,
.app-story-page b,
.sat-product-body .sat-product strong,
.sat-product-body .sat-product b { font-family: inherit; letter-spacing: normal; }

.app-story-page :is(p, li),
.sat-product-body .sat-product :is(p, li) {
	font-family: var(--type-reading);
	font-weight: 600;
	line-height: var(--reading-line-height);
	letter-spacing: normal;
}

.app-story-page :is(.app-story-eyebrow, .app-story-stage-format span, .app-story-solution-sequence span),
.sat-product-body .sat-product-eyebrow {
	font-size: var(--type-meta);
	letter-spacing: var(--label-tracking);
}

.sat-product-body .product-guarantee small,
.sat-product-body .product-guarantee em,
.sat-product-body .product-guarantee-note { font-size: var(--type-meta); }

/* Tutoring page. */
.tutoring-hero-proof span,
.tutoring-session-card > span,
.tutoring-session-card small,
.tutoring-choice-top,
.tutoring-hour-prices span,
.tutoring-hour-prices small,
.tutoring-choice-note,
.white-glove-badge,
.white-glove-card-top,
.white-glove-card > p,
.white-glove-guarantee span,
.white-glove-guarantee em,
.white-glove-pricing-note,
.tutoring-team-card-copy > span,
.tutoring-call-person small,
.tutoring-final-cta-card .tutoring-call-note { font-size: var(--type-meta); }

.tutoring-managed-note span,
.white-glove-card > ul li,
.tutoring-team-card-copy p,
.managed-plan-steps p { font-size: var(--type-card); line-height: 1.6; }

.tutoring-hour-prices span,
.tutoring-hour-prices small,
.tutoring-choice-note { color: rgba(43,43,43,.74); }
.tutoring-managed-note span,
.white-glove-pricing-note { color: rgba(255,255,255,.8); }

/* Booking modal: controls and helper copy should be readable at a glance. */
.call-booking-modal-person span,
.call-booking-modal-summary li span,
.call-booking-modal-privacy p,
.call-booking-modal-preview strong,
.call-booking-modal-preview span,
.call-booking-modal-step-heading > span,
.call-booking-modal-step-heading small,
.call-booking-modal-toolbar,
.call-booking-modal-dates span,
.call-booking-modal-message { font-size: var(--type-meta); }

.call-booking-modal-times button,
.call-booking-modal-selected,
.call-booking-modal-fields label > span,
.call-booking-modal-fields label > span small,
.call-booking-modal-consent { font-size: var(--type-card); }

.call-booking-modal-fields input,
.call-booking-modal-fields select,
.call-booking-modal-fields textarea { font-size: 15px; line-height: 1.45; }

.call-booking-modal-person span,
.call-booking-modal-summary li span,
.call-booking-modal-privacy p { color: rgba(255,255,255,.82); }
.call-booking-modal-toolbar,
.call-booking-modal-dates span,
.call-booking-modal-fields label > span small,
.call-booking-modal-consent { color: rgba(43,43,43,.75); }

/* Blog and contact reading copy. */
.blog-topic-list span,
.blog-filters button,
.blog-card-byline span strong,
.blog-card-byline span small { font-size: var(--type-meta); }
.blog-card-copy > p { font-size: 15px; line-height: 1.62; }

.contact-preview-page .contact-faq-heading > p,
.contact-preview-page .contact-faq-group-heading p,
.contact-preview-page .contact-faq-answer p {
	font-family: var(--type-reading);
	font-size: var(--type-body);
	font-weight: 600;
	line-height: 1.65;
	letter-spacing: normal;
}

.contact-preview-page .contact-faq-nav > a,
.contact-preview-page .contact-faq-nav > strong,
.contact-preview-page .contact-faq-group-heading em { font-size: var(--type-card); }
.contact-preview-page .contact-faq-nav > a span { font-size: var(--type-meta); }

@media (max-width: 650px) {
	body { font-size: 16px; }
	.guarantee-baseline-alert { grid-template-columns: 1fr; padding: 23px; }
	.guarantee-core-divider { margin-top: 72px; padding-top: 72px; }
	.guarantee-core-remedy { margin-top: 70px; }
}
