/* ==========================================================================
   Legal pages — scoped to .tfp-legal, the <article> the Terms of Service page
   carries in one Custom HTML block (tools/seed-terms-page.php). Loaded only on
   pages that contain it: functions/function-legal.php.
   Tokens per the TFP web design system: 4px radius, no shadows, yellow never
   as text on a light ground.
   ========================================================================== */

.tfp-legal {
	--ink: #0B1E32; --blue: #005B97; --blue-deep: #004A7C; --yellow: #FAC410;
	--n50: #F5F6F7; --n200: #D3D8DE; --n500: #667380; --n700: #2C333A;
	--sans: var(--renoun-global-font-body, "pt-sans", helvetica-neue, helvetica, sans-serif);
	--head: var(--renoun-global-font-header, var(--sans));

	max-width: 760px; margin: 0 auto; padding: 56px 16px 88px;
	font-family: var(--sans); font-size: 16px; line-height: 26px; color: var(--n700);
}
.tfp-rebrand .tfp-legal {
	--sans: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--head: Archivo, "Work Sans", -apple-system, BlinkMacSystemFont, sans-serif;
}
.tfp-legal *, .tfp-legal *::before, .tfp-legal *::after { box-sizing: border-box; }

.tfp-legal__head { padding-bottom: 24px; margin-bottom: 32px; border-bottom: 1px solid var(--n200); }
.tfp-legal__eyebrow { margin: 0 0 8px; font-size: 13px; line-height: 18px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); }
.tfp-legal h1 { margin: 0 0 8px; font-family: var(--head); font-size: 40px; line-height: 46px; font-weight: 700; color: var(--ink); }
.tfp-legal__date { margin: 0; font-size: 14px; line-height: 20px; color: var(--n500); }

.tfp-legal__toc { margin: 0 0 40px; padding: 20px 24px; background: var(--n50); border-radius: 4px; }
.tfp-legal__toc p { margin: 0 0 8px; font-size: 13px; line-height: 18px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
.tfp-legal__toc ol { margin: 0; padding-left: 20px; columns: 2; column-gap: 32px; font-size: 15px; line-height: 24px; }
.tfp-legal__toc li { break-inside: avoid; }

.tfp-legal section { margin: 0 0 36px; scroll-margin-top: 120px; }
.tfp-legal h2 { margin: 0 0 12px; font-family: var(--head); font-size: 22px; line-height: 30px; font-weight: 700; color: var(--ink); }
.tfp-legal p { margin: 0 0 14px; font-size: inherit; line-height: inherit; color: var(--n700); }
.tfp-legal ul { margin: 0 0 14px; padding-left: 22px; }
.tfp-legal li { margin: 0 0 6px; }
.tfp-legal strong { font-weight: 700; color: var(--ink); }
.tfp-legal a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }
.tfp-legal a:hover { color: var(--blue-deep); }

/* SMS Terms: a bordered panel with a yellow rule, term / detail rows. */
.tfp-legal__sms { padding: 24px; border: 1px solid var(--n200); border-left: 4px solid var(--yellow); border-radius: 4px; }
.tfp-legal__sms dl { display: grid; grid-template-columns: 180px 1fr; gap: 12px 24px; margin: 16px 0 0; }
.tfp-legal__sms dt { font-weight: 700; color: var(--ink); }
.tfp-legal__sms dd { margin: 0; }

@media (max-width: 640px) {
	.tfp-legal { padding-top: 36px; }
	.tfp-legal h1 { font-size: 32px; line-height: 38px; }
	.tfp-legal__toc ol { columns: 1; }
	.tfp-legal__sms { padding: 20px 16px; }
	.tfp-legal__sms dl { grid-template-columns: 1fr; gap: 4px; }
	.tfp-legal__sms dd { margin-bottom: 10px; }
}

