/*
 * MR News Pro frontend foundation.
 *
 * Feature modules should consume these design tokens instead of hardcoding
 * shared visual values. Runtime values are resolved by Design\Tokens.
 */
:root {
	--mrnp-color-primary: #c1121f;
	--mrnp-color-primary-hover: #9f0e19;
	--mrnp-color-heading: #101828;
	--mrnp-color-text: #344054;
	--mrnp-color-muted: #667085;
	--mrnp-color-surface: #ffffff;
	--mrnp-color-surface-soft: #f9fbfd;
	--mrnp-color-background: #f8fafc;
	--mrnp-color-border: #e4e7ec;
	--mrnp-color-on-accent: var(--mrnp-button-text, #ffffff);
	--mrnp-color-section-label: color-mix(in srgb, var(--mrnp-color-heading) 64%, var(--mrnp-color-surface));
	--mrnp-color-rule: var(--mrnp-color-border);
	--mrnp-color-deep-surface: color-mix(in srgb, var(--mrnp-color-heading) 78%, #000000);
	--mrnp-font-body: "Noto Serif Bengali", serif;
	--mrnp-font-heading: "Noto Serif Bengali", serif;
	--mrnp-font-size-base: 16px;
	--mrnp-line-height-base: 1.7;
	--mrnp-heading-weight: 700;
	--mrnp-heading-line-height: 1.25;
	--mrnp-font-size-section-heading: 20px;
	--mrnp-line-height-section-heading: 1.25;
	--mrnp-font-size-lead-heading: 32px;
	--mrnp-line-height-lead-heading: 1.25;
	--mrnp-font-size-featured-heading: 22px;
	--mrnp-line-height-featured-heading: 1.25;
	--mrnp-font-size-normal-heading: 18px;
	--mrnp-line-height-normal-heading: 1.25;
	--mrnp-font-size-single-heading: 48px;
	--mrnp-line-height-single-heading: 1.25;
	--mrnp-font-size-main-menu: 17px;
	--mrnp-line-height-main-menu: 1;
	--mrnp-font-size-news-ticker: 14px;
	--mrnp-line-height-news-ticker: 1.7;
	--mrnp-content-width: 1280px;
	--mrnp-content-gutter: 20px;
	--mrnp-sidebar-width: 340px;
	--mrnp-space-unit: 4px;
	--mrnp-space-section: 64px;
	--mrnp-space-block: 24px;
	--mrnp-space-half-unit: 2px;
	--mrnp-space-xs: calc(var(--mrnp-space-unit) + var(--mrnp-space-unit));
	--mrnp-space-sm: calc(var(--mrnp-space-xs) + var(--mrnp-space-unit));
	--mrnp-space-md: calc(var(--mrnp-space-xs) + var(--mrnp-space-xs));
	--mrnp-space-xl: calc(var(--mrnp-space-block) + var(--mrnp-space-xs));
	--mrnp-space-block-plus-half: calc(var(--mrnp-space-block) + var(--mrnp-space-half-unit));
	--mrnp-space-block-plus-unit: calc(var(--mrnp-space-block) + var(--mrnp-space-unit));
	--mrnp-space-block-plus-unit-half: calc(var(--mrnp-space-block) + var(--mrnp-space-unit) + var(--mrnp-space-half-unit));
	--mrnp-space-block-plus-xs-half: calc(var(--mrnp-space-block) + var(--mrnp-space-xs) + var(--mrnp-space-half-unit));
	--mrnp-space-block-plus-sm: calc(var(--mrnp-space-block) + var(--mrnp-space-sm));
	--mrnp-space-block-plus-sm-half: calc(var(--mrnp-space-block) + var(--mrnp-space-sm) + var(--mrnp-space-half-unit));
	--mrnp-space-block-plus-md: calc(var(--mrnp-space-block) + var(--mrnp-space-md));
	--mrnp-space-block-plus-md-unit: calc(var(--mrnp-space-block) + var(--mrnp-space-md) + var(--mrnp-space-unit));
	--mrnp-space-block-minus-unit-half: calc(var(--mrnp-space-block) - var(--mrnp-space-unit) - var(--mrnp-space-half-unit));
	--mrnp-space-section-compact: calc(var(--mrnp-space-section) - var(--mrnp-space-md) - var(--mrnp-space-unit));
	--mrnp-space-section-medium: calc(var(--mrnp-space-section) - var(--mrnp-space-md));
	--mrnp-space-section-tight: calc(var(--mrnp-space-section) - var(--mrnp-space-xs));
	--mrnp-space-section-loose: calc(var(--mrnp-space-section) + var(--mrnp-space-md));
	--mrnp-container-gutter: var(--mrnp-content-gutter);
	--mrnp-button-bg: #c1121f;
	--mrnp-button-bg-hover: #9f0e19;
	--mrnp-button-text: #ffffff;
	--mrnp-button-radius: 6px;
	--mrnp-button-padding: 11px 18px;
	--mrnp-button-weight: 600;
	--mrnp-card-bg: #ffffff;
	--mrnp-card-border: #e4e7ec;
	--mrnp-card-radius: 10px;
	--mrnp-card-padding: 20px;
	--mrnp-card-shadow: 0 4px 18px rgba(16, 24, 40, .06);
	/* Phase 3: shared component aliases. These inherit the dashboard-controlled button/card system. */
	--mrnp-component-bg: var(--mrnp-card-bg);
	--mrnp-component-border: var(--mrnp-card-border);
	--mrnp-component-radius: var(--mrnp-card-radius);
	--mrnp-component-padding: var(--mrnp-card-padding);
	--mrnp-component-shadow: var(--mrnp-card-shadow);
	--mrnp-control-radius: var(--mrnp-button-radius);
	--mrnp-section-header-bg: var(--mrnp-color-section-label);
	--mrnp-section-header-color: var(--mrnp-color-on-accent);
	--mrnp-section-header-rule: var(--mrnp-color-rule);
	--mrnp-meta-bg: color-mix(in srgb, var(--mrnp-card-bg) 78%, var(--mrnp-color-surface-soft));
	--mrnp-widget-bg: var(--mrnp-card-bg);
	--mrnp-widget-border: var(--mrnp-card-border);
	--mrnp-widget-radius: var(--mrnp-card-radius);
	--mrnp-widget-shadow: var(--mrnp-card-shadow);
	--mrnp-motion-quick: .14s;
	--mrnp-motion-fast: .16s;
	--mrnp-motion-standard: .18s;
	--mrnp-motion-medium: .22s;
	--mrnp-motion-drawer: .24s;
	--mrnp-motion-image: .35s;
	--mrnp-motion-ticker-name: mrnp-news-ticker;
	--mrnp-motion-ticker-duration: 34s;
}

body.mrnp-motion-disabled {
	--mrnp-motion-quick: 0s;
	--mrnp-motion-fast: 0s;
	--mrnp-motion-standard: 0s;
	--mrnp-motion-medium: 0s;
	--mrnp-motion-drawer: 0s;
	--mrnp-motion-image: 0s;
	--mrnp-motion-ticker-name: none;
}

@media (prefers-reduced-motion: reduce) {
	:root {
		--mrnp-motion-quick: 0s;
		--mrnp-motion-fast: 0s;
		--mrnp-motion-standard: 0s;
		--mrnp-motion-medium: 0s;
		--mrnp-motion-drawer: 0s;
		--mrnp-motion-image: 0s;
		--mrnp-motion-ticker-name: none;
	}
}

*, *::before, *::after { box-sizing: border-box; }
html { font-size: var(--mrnp-font-size-base); }
body {
	margin: 0;
	color: var(--mrnp-color-text);
	background: #fff;
	font-family: var(--mrnp-font-body);
	font-size: 1rem;
	line-height: var(--mrnp-line-height-base);
}
h1, h2, h3, h4, h5, h6 {
	color: var(--mrnp-color-heading);
	font-family: var(--mrnp-font-heading);
	font-weight: var(--mrnp-heading-weight);
	line-height: var(--mrnp-heading-line-height);
}
a { color: var(--mrnp-color-primary); }
a:hover { color: var(--mrnp-color-primary-hover); }

.mrnp-container {
	width: min(calc(100% - (var(--mrnp-container-gutter) * 2)), var(--mrnp-content-width));
	margin-inline: auto;
}

@media (max-width: 900px) {
	:root { --mrnp-container-gutter: min(var(--mrnp-content-gutter), 16px); }
}
@media (max-width: 620px) {
	:root { --mrnp-container-gutter: min(var(--mrnp-content-gutter), 12px); }
}

.mrnp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--mrnp-button-padding);
	border: 0;
	border-radius: var(--mrnp-button-radius);
	background: var(--mrnp-button-bg);
	color: var(--mrnp-button-text);
	font: inherit;
	font-weight: var(--mrnp-button-weight);
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}
.mrnp-button:hover,
.mrnp-button:focus-visible {
	background: var(--mrnp-button-bg-hover);
	color: var(--mrnp-button-text);
}

.mrnp-card {
	padding: var(--mrnp-card-padding);
	border: 1px solid var(--mrnp-card-border);
	border-radius: var(--mrnp-card-radius);
	background: var(--mrnp-card-bg);
	box-shadow: var(--mrnp-card-shadow);
}
