/* ─────────────────────────────────────────────
 * Legal Pages — Terms, Privacy, Refund
 *
 * File: masterstudy-child/assets/css/moyo-legal.css
 *
 * BEM prefix: .moyo-legal
 * Prose styling for long-form legal content.
 * Conditionally loaded on legal page slugs only.
 * Breakpoints: 960px, 640px
 * ───────────────────────────────────────────── */

/* ── Wrapper ────────────────────────────────── */
.moyo-legal,
.page-template-default .entry-content,
body.page-terms-of-service .entry-content,
body.page-privacy-policy .entry-content,
body.page-refund-policy .entry-content {
	max-width: 740px;
	margin: 0 auto;
	padding: 48px 24px 64px;
}

/* ── Headings ───────────────────────────────── */
.moyo-legal h1,
body.page-terms-of-service .entry-content h1,
body.page-privacy-policy .entry-content h1,
body.page-refund-policy .entry-content h1 {
	font-family: var(--moyo-font-heading, 'Poppins', sans-serif);
	font-size: 36px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--moyo-heading, #1e293b) !important;
	margin: 0 0 16px;
	padding-bottom: 16px;
	border-bottom: 2px solid var(--moyo-border, #e5e7eb);
}

.moyo-legal h2,
body.page-terms-of-service .entry-content h2,
body.page-privacy-policy .entry-content h2,
body.page-refund-policy .entry-content h2 {
	font-family: var(--moyo-font-heading, 'Poppins', sans-serif);
	font-size: 28px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--moyo-heading, #1e293b) !important;
	margin: 2em 0 0.75em;
}

.moyo-legal h3,
body.page-terms-of-service .entry-content h3,
body.page-privacy-policy .entry-content h3,
body.page-refund-policy .entry-content h3 {
	font-family: var(--moyo-font-heading, 'Poppins', sans-serif);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--moyo-heading, #1e293b) !important;
	margin: 1.75em 0 0.5em;
}

.moyo-legal h4,
body.page-terms-of-service .entry-content h4,
body.page-privacy-policy .entry-content h4,
body.page-refund-policy .entry-content h4 {
	font-family: var(--moyo-font-heading, 'Poppins', sans-serif);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--moyo-heading, #1e293b) !important;
	margin: 1.5em 0 0.5em;
}

.moyo-legal h5,
body.page-terms-of-service .entry-content h5,
body.page-privacy-policy .entry-content h5,
body.page-refund-policy .entry-content h5 {
	font-family: var(--moyo-font-heading, 'Poppins', sans-serif);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--moyo-heading, #1e293b) !important;
	margin: 1.25em 0 0.5em;
}

.moyo-legal h6,
body.page-terms-of-service .entry-content h6,
body.page-privacy-policy .entry-content h6,
body.page-refund-policy .entry-content h6 {
	font-family: var(--moyo-font-heading, 'Poppins', sans-serif);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--moyo-heading, #1e293b) !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 1.25em 0 0.5em;
}

/* ── Paragraphs ─────────────────────────────── */
.moyo-legal p,
body.page-terms-of-service .entry-content p,
body.page-privacy-policy .entry-content p,
body.page-refund-policy .entry-content p {
	font-family: var(--moyo-font-body, 'Poppins', sans-serif);
	font-size: 16px;
	line-height: 1.75;
	color: var(--moyo-body, #475569) !important;
	margin-bottom: 1.5em;
}

/* ── Links ──────────────────────────────────── */
.moyo-legal a {
	color: var(--moyo-primary, #2563eb) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color 0.2s ease;
}

.moyo-legal a:hover {
	color: var(--moyo-heading, #1e293b) !important;
}

/* ── Lists ──────────────────────────────────── */
.moyo-legal ul,
.moyo-legal ol,
body.page-terms-of-service .entry-content ul,
body.page-terms-of-service .entry-content ol,
body.page-privacy-policy .entry-content ul,
body.page-privacy-policy .entry-content ol,
body.page-refund-policy .entry-content ul,
body.page-refund-policy .entry-content ol {
	margin: 0 0 1.5em;
	padding-left: 2em;
}

.moyo-legal li,
body.page-terms-of-service .entry-content li,
body.page-privacy-policy .entry-content li,
body.page-refund-policy .entry-content li {
	font-family: var(--moyo-font-body, 'Poppins', sans-serif);
	font-size: 16px;
	line-height: 1.75;
	color: var(--moyo-body, #475569) !important;
	margin-bottom: 0.5em;
}

.moyo-legal ul li::marker {
	color: var(--moyo-primary, #2563eb);
}

.moyo-legal ol li::marker {
	color: var(--moyo-heading, #1e293b);
	font-weight: 600;
}

/* Nested lists */
.moyo-legal ul ul,
.moyo-legal ol ol,
.moyo-legal ul ol,
.moyo-legal ol ul {
	margin-top: 0.5em;
	margin-bottom: 0.5em;
}

/* ── Blockquote ─────────────────────────────── */
.moyo-legal blockquote {
	margin: 1.5em 0;
	padding: 16px 24px;
	border-left: 4px solid var(--moyo-primary, #2563eb);
	background: var(--moyo-bg, #f3f4f6);
	border-radius: 0 var(--moyo-radius, 4px) var(--moyo-radius, 4px) 0;
}

.moyo-legal blockquote p {
	font-style: italic;
	color: var(--moyo-heading, #1e293b) !important;
	margin-bottom: 0;
}

.moyo-legal blockquote p:last-child {
	margin-bottom: 0;
}

/* ── Tables ─────────────────────────────────── */
.moyo-legal table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5em 0;
	font-family: var(--moyo-font-body, 'Poppins', sans-serif);
	font-size: 15px;
	border: 1px solid var(--moyo-border, #e5e7eb);
	border-radius: var(--moyo-radius, 4px);
	overflow: hidden;
}

.moyo-legal thead th {
	background: var(--moyo-hero-bg, #0c2340);
	color: var(--moyo-on-primary, #ffffff) !important;
	font-weight: 600;
	text-align: left;
	padding: 12px 16px;
	border-bottom: 2px solid var(--moyo-border, #e5e7eb);
}

.moyo-legal tbody td {
	padding: 12px 16px;
	color: var(--moyo-body, #475569) !important;
	border-bottom: 1px solid var(--moyo-border, #e5e7eb);
}

/* Striped rows */
.moyo-legal tbody tr:nth-child(even) {
	background: var(--moyo-bg, #f3f4f6);
}

.moyo-legal tbody tr:last-child td {
	border-bottom: none;
}

/* ── Horizontal Rule ────────────────────────── */
.moyo-legal hr {
	border: none;
	border-top: 1px solid var(--moyo-border, #e5e7eb);
	margin: 2em 0;
}

/* ── Strong / Bold ──────────────────────────── */
.moyo-legal strong,
.moyo-legal b {
	font-weight: 600;
	color: var(--moyo-heading, #1e293b) !important;
}

/* ── Last Updated Line ──────────────────────── */
.moyo-legal__updated {
	font-family: var(--moyo-font-body, 'Poppins', sans-serif);
	font-size: 14px;
	color: var(--moyo-muted, #64748b) !important;
	font-style: italic;
	margin-bottom: 2em;
}

/* ── Definition Lists ───────────────────────── */
.moyo-legal dl {
	margin: 1.5em 0;
}

.moyo-legal dt {
	font-family: var(--moyo-font-heading, 'Poppins', sans-serif);
	font-weight: 600;
	color: var(--moyo-heading, #1e293b) !important;
	margin-top: 1em;
}

.moyo-legal dd {
	font-family: var(--moyo-font-body, 'Poppins', sans-serif);
	color: var(--moyo-body, #475569) !important;
	margin-left: 1.5em;
	margin-bottom: 0.5em;
	line-height: 1.75;
}

/* ── Code / Preformatted ────────────────────── */
.moyo-legal code {
	font-family: 'Courier New', Courier, monospace;
	font-size: 14px;
	background: var(--moyo-bg, #f3f4f6);
	padding: 2px 6px;
	border-radius: var(--moyo-radius, 4px);
	color: var(--moyo-heading, #1e293b) !important;
}

.moyo-legal pre {
	background: var(--moyo-bg, #f3f4f6);
	border: 1px solid var(--moyo-border, #e5e7eb);
	border-radius: var(--moyo-radius, 4px);
	padding: 16px;
	overflow-x: auto;
	margin: 1.5em 0;
}

/* ── Print Styles ───────────────────────────── */
@media print {
	.moyo-legal,
	body.page-terms-of-service .entry-content,
	body.page-privacy-policy .entry-content,
	body.page-refund-policy .entry-content {
		max-width: 100%;
		padding: 0;
		margin: 0;
	}

	.moyo-legal h1 {
		font-size: 28px;
		border-bottom: 1px solid #000;
	}

	.moyo-legal h2 {
		font-size: 22px;
		page-break-after: avoid;
	}

	.moyo-legal h3,
	.moyo-legal h4 {
		page-break-after: avoid;
	}

	.moyo-legal p,
	.moyo-legal li {
		font-size: 12px;
		line-height: 1.6;
		color: #000 !important;
	}

	.moyo-legal a {
		color: #000 !important;
		text-decoration: underline;
	}

	.moyo-legal a::after {
		content: " (" attr(href) ")";
		font-size: 10px;
		color: #666 !important;
	}

	.moyo-legal blockquote {
		border-left-color: #000;
		background: none;
	}

	.moyo-legal table {
		border: 1px solid #000;
	}

	.moyo-legal thead th {
		background: #ddd;
		color: #000 !important;
		border-bottom: 2px solid #000;
	}

	.moyo-legal tbody td {
		border-bottom: 1px solid #ccc;
		color: #000 !important;
	}

	.moyo-legal tbody tr:nth-child(even) {
		background: #f5f5f5;
	}

	/* Avoid page breaks inside tables and blockquotes */
	.moyo-legal table,
	.moyo-legal blockquote {
		page-break-inside: avoid;
	}

	/* Hide non-essential elements */
	.site-header,
	.site-footer,
	.moyo-header,
	.moyo-footer,
	.moyo-mega-menu,
	.sidebar {
		display: none !important;
	}
}

/* ── Responsive — 960px ─────────────────────── */
@media (max-width: 960px) {
	.moyo-legal,
	body.page-terms-of-service .entry-content,
	body.page-privacy-policy .entry-content,
	body.page-refund-policy .entry-content {
		padding: 36px 20px 48px;
	}

	.moyo-legal h1 {
		font-size: 30px;
	}

	.moyo-legal h2 {
		font-size: 24px;
	}

	.moyo-legal h3 {
		font-size: 20px;
	}
}

/* ── Responsive — 640px ─────────────────────── */
@media (max-width: 640px) {
	.moyo-legal,
	body.page-terms-of-service .entry-content,
	body.page-privacy-policy .entry-content,
	body.page-refund-policy .entry-content {
		padding: 24px 16px 40px;
	}

	.moyo-legal h1 {
		font-size: 26px;
		padding-bottom: 12px;
	}

	.moyo-legal h2 {
		font-size: 22px;
	}

	.moyo-legal h3 {
		font-size: 18px;
	}

	.moyo-legal p,
	.moyo-legal li {
		font-size: 15px;
	}

	.moyo-legal table {
		font-size: 13px;
	}

	.moyo-legal thead th,
	.moyo-legal tbody td {
		padding: 8px 10px;
	}

	.moyo-legal blockquote {
		padding: 12px 16px;
	}
}
