/*
Theme Name:        Maharashtra SSC Result 2027
Theme URI:         https://example.com/maharashtra-ssc-result-2027/
Author:            Site Owner
Author URI:        https://example.com/
Description:       Focused, fast, accessible single-topic theme for a Maharashtra SSC Result 2027 information website. Ships a result-status system, configurable ad slots, structural SEO and schema that stand aside for Rank Math, and page templates for the result, date, link, how-to-check, marksheet, passing-marks, rechecking and supplementary intents. Activation writes no content.
Version:           1.1.0
Requires at least: 6.2
Tested up to:      6.8
Requires PHP:      7.4
License:           GNU General Public License v2 or later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       maharashtra-ssc-result-2027
Tags:              education, blog, news, one-column, two-columns, right-sidebar, custom-menu, custom-logo, featured-images, translation-ready, accessibility-ready, block-styles, wide-blocks
*/

/* ==========================================================================
   1. DESIGN TOKENS
   All colour pairs used for text are checked against WCAG 2.1 AA (4.5:1 for
   body text, 3:1 for large text and non-text UI boundaries).
   ========================================================================== */
:root {
	--msr-primary:        #1b4b8f; /* 7.4:1 on #fff */
	--msr-primary-dark:   #123566; /* 10.9:1 on #fff */
	--msr-primary-light:  #2c66b8;
	--msr-primary-tint:   #eef3fb;
	--msr-primary-tint-2: #dce7f7;

	--msr-accent:         #b45309; /* 4.9:1 on #fff */
	--msr-accent-tint:    #fdf3e3;

	--msr-success:        #15803d; /* 4.6:1 on #fff */
	--msr-success-tint:   #e9f7ee;
	--msr-danger:         #b91c1c; /* 6.0:1 on #fff */
	--msr-danger-tint:    #fdeded;
	--msr-warning:        #92400e; /* 6.4:1 on #fff */
	--msr-warning-tint:   #fdf6e3;

	--msr-text:           #16202c; /* 14.7:1 on #fff */
	--msr-muted:          #4b5563; /* 7.0:1 on #fff */
	--msr-border:         #d5dce6;
	--msr-border-strong:  #b6c1d1;
	--msr-bg:             #f6f8fb;
	--msr-card:           #ffffff;

	--msr-font:           system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Noto Sans Devanagari", sans-serif;
	--msr-font-mono:      ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

	--msr-radius:         6px;
	--msr-radius-sm:      4px;
	--msr-shadow:         0 1px 3px rgba(16, 32, 54, .10);
	--msr-shadow-lg:      0 4px 16px rgba(16, 32, 54, .12);

	--msr-content:        760px;
	--msr-wide:           1160px;
	--msr-gutter:         16px;

	--msr-s1:             4px;
	--msr-s2:             8px;
	--msr-s3:             12px;
	--msr-s4:             16px;
	--msr-s5:             24px;
	--msr-s6:             32px;
	--msr-s7:             48px;

	--msr-tap:            44px; /* minimum interactive target */
}

/* ==========================================================================
   2. RESET / BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: 80px;
}

body {
	margin: 0;
	background: var(--msr-bg);
	color: var(--msr-text);
	font-family: var(--msr-font);
	font-size: 1rem;
	line-height: 1.7;
	overflow-wrap: break-word;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 var(--msr-s3);
	line-height: 1.25;
	font-weight: 700;
	color: var(--msr-primary-dark);
	text-wrap: balance;
}

h1 { font-size: 1.625rem; }
h2 { font-size: 1.3125rem; }
h3 { font-size: 1.125rem; }
h4 { font-size: 1rem; }
h5, h6 { font-size: .9375rem; }

p, ul, ol, dl, table, figure, pre, blockquote { margin: 0 0 var(--msr-s4); }

ul, ol { padding-left: 1.35em; }
li + li { margin-top: var(--msr-s1); }

a {
	color: var(--msr-primary);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

a:hover,
a:focus { color: var(--msr-primary-dark); }

img, svg, video, iframe {
	max-width: 100%;
	height: auto;
}

img { display: block; }

strong, b { font-weight: 700; }

small { font-size: .8125rem; }

code, kbd, pre, samp { font-family: var(--msr-font-mono); font-size: .9em; }

code {
	background: var(--msr-primary-tint);
	padding: .1em .35em;
	border-radius: var(--msr-radius-sm);
}

hr {
	border: 0;
	border-top: 1px solid var(--msr-border);
	margin: var(--msr-s5) 0;
}

blockquote {
	border-left: 4px solid var(--msr-primary-light);
	padding: var(--msr-s2) 0 var(--msr-s2) var(--msr-s4);
	margin-left: 0;
	color: var(--msr-muted);
}

/* Visible, consistent focus for every interactive element. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--msr-accent);
	outline-offset: 2px;
	border-radius: var(--msr-radius-sm);
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ==========================================================================
   3. ACCESSIBILITY UTILITIES
   ========================================================================== */
.screen-reader-text,
.msr-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.msr-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	background: var(--msr-card);
	color: var(--msr-primary-dark);
	padding: var(--msr-s3) var(--msr-s4);
	font-weight: 700;
	box-shadow: var(--msr-shadow-lg);
	border-radius: 0 0 var(--msr-radius) 0;
}

.msr-skip-link:focus {
	left: 0;
}

/* ==========================================================================
   4. LAYOUT
   ========================================================================== */
.msr-wrap {
	width: 100%;
	max-width: var(--msr-wide);
	margin-inline: auto;
	padding-inline: var(--msr-gutter);
}

.msr-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--msr-s5);
	max-width: var(--msr-wide);
	margin: var(--msr-s5) auto;
	padding-inline: var(--msr-gutter);
	align-items: start;
}

.msr-main { min-width: 0; }

.msr-content-narrow {
	max-width: var(--msr-content);
}

.msr-stack > * + * { margin-top: var(--msr-s4); }

.msr-grid-2,
.msr-grid-3 {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--msr-s4);
}

/* ==========================================================================
   5. SITE HEADER + NAVIGATION
   ========================================================================== */
.msr-topbar {
	background: var(--msr-primary-dark);
	color: #fff;
	font-size: .75rem;
	padding: var(--msr-s2) 0;
}

.msr-topbar .msr-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: var(--msr-s2);
	align-items: center;
	justify-content: center;
	text-align: center;
}

.msr-topbar__badge {
	background: rgba(255, 255, 255, .16);
	border: 1px solid rgba(255, 255, 255, .38);
	border-radius: 999px;
	padding: 1px var(--msr-s2);
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	font-size: .6875rem;
}

.msr-header {
	background: var(--msr-card);
	border-bottom: 1px solid var(--msr-border);
}

.msr-header__inner {
	display: flex;
	align-items: center;
	gap: var(--msr-s3);
	padding-block: var(--msr-s3);
}

.msr-brand {
	display: flex;
	align-items: center;
	gap: var(--msr-s3);
	text-decoration: none;
	min-width: 0;
}

.msr-brand:hover { text-decoration: none; }

.msr-brand__logo img {
	width: auto;
	height: 48px;
	max-height: 48px;
}

.msr-brand__mark {
	width: 44px;
	height: 44px;
	flex: 0 0 44px;
	border-radius: var(--msr-radius);
	background: var(--msr-primary);
	color: #fff;
	display: grid;
	place-items: center;
	font-weight: 700;
	font-size: .8125rem;
	letter-spacing: .02em;
}

.msr-brand__text { min-width: 0; }

.msr-brand__name {
	display: block;
	font-size: 1.0625rem;
	font-weight: 700;
	color: var(--msr-primary-dark);
	line-height: 1.25;
}

.msr-brand__tagline {
	display: block;
	font-size: .75rem;
	color: var(--msr-muted);
	line-height: 1.4;
	margin-top: 2px;
}

.msr-nav-toggle {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: var(--msr-s2);
	min-height: var(--msr-tap);
	padding: var(--msr-s2) var(--msr-s3);
	background: var(--msr-primary);
	color: #fff;
	border: 0;
	border-radius: var(--msr-radius-sm);
	font: inherit;
	font-size: .875rem;
	font-weight: 600;
	cursor: pointer;
}

.msr-nav-toggle__bars {
	position: relative;
	display: block;
	width: 18px;
	height: 2px;
	background: currentColor;
}

.msr-nav-toggle__bars::before,
.msr-nav-toggle__bars::after {
	content: "";
	position: absolute;
	left: 0;
	width: 18px;
	height: 2px;
	background: currentColor;
}

.msr-nav-toggle__bars::before { top: -6px; }
.msr-nav-toggle__bars::after { top: 6px; }

.msr-nav {
	background: var(--msr-primary);
}

.msr-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: none;
}

.msr-nav__list.is-open { display: block; }

.msr-nav__list li { margin: 0; }

.msr-nav__list a {
	display: block;
	min-height: var(--msr-tap);
	padding: var(--msr-s3) var(--msr-gutter);
	color: #fff;
	font-size: .9375rem;
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.msr-nav__list a:hover,
.msr-nav__list a:focus,
.msr-nav__list .current-menu-item > a,
.msr-nav__list .current_page_item > a {
	background: var(--msr-primary-dark);
	color: #fff;
	text-decoration: underline;
}

.msr-nav__list .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	background: var(--msr-primary-dark);
}

.msr-nav__list .sub-menu a {
	padding-left: var(--msr-s6);
	font-weight: 500;
	font-size: .875rem;
}

/* Collapsed by default on mobile; the first tap on a parent opens it. */
.msr-nav__list > li > .sub-menu { display: none; }
.msr-nav__list > li.is-open > .sub-menu { display: block; }

.msr-nav__list .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	margin-left: var(--msr-s2);
	border: 4px solid transparent;
	border-top-color: currentColor;
	transform: translateY(2px);
}

/* ==========================================================================
   6. BUTTONS
   ========================================================================== */
.msr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--msr-s2);
	min-height: var(--msr-tap);
	padding: var(--msr-s3) var(--msr-s5);
	border: 2px solid transparent;
	border-radius: var(--msr-radius);
	font: inherit;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease;
}

.msr-btn:hover,
.msr-btn:focus { text-decoration: none; }

.msr-btn--primary {
	background: var(--msr-primary);
	border-color: var(--msr-primary);
	color: #fff;
}

.msr-btn--primary:hover,
.msr-btn--primary:focus {
	background: var(--msr-primary-dark);
	border-color: var(--msr-primary-dark);
	color: #fff;
}

.msr-btn--live {
	background: var(--msr-success);
	border-color: var(--msr-success);
	color: #fff;
}

.msr-btn--live:hover,
.msr-btn--live:focus {
	background: #106031;
	border-color: #106031;
	color: #fff;
}

.msr-btn--outline {
	background: transparent;
	border-color: var(--msr-primary);
	color: var(--msr-primary);
}

.msr-btn--outline:hover,
.msr-btn--outline:focus {
	background: var(--msr-primary-tint);
	color: var(--msr-primary-dark);
}

.msr-btn--block {
	width: 100%;
}

/* A disabled state is used when the administrator has not configured an
   official URL yet. It is never a link, so nothing can look broken. */
.msr-btn--disabled,
.msr-btn[aria-disabled="true"] {
	background: #e4e8ee;
	border-color: var(--msr-border-strong);
	color: #3d4551;
	cursor: not-allowed;
	pointer-events: none;
}

.msr-btn-row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--msr-s3);
}

/* ==========================================================================
   7. CARDS / SECTIONS
   ========================================================================== */
.msr-card {
	background: var(--msr-card);
	border: 1px solid var(--msr-border);
	border-radius: var(--msr-radius);
	box-shadow: var(--msr-shadow);
}

.msr-card__head {
	padding: var(--msr-s3) var(--msr-s4);
	border-bottom: 1px solid var(--msr-border);
	background: var(--msr-primary-tint);
	border-radius: var(--msr-radius) var(--msr-radius) 0 0;
}

.msr-card__head h2,
.msr-card__head h3 {
	margin: 0;
	font-size: 1.0625rem;
}

.msr-card__body { padding: var(--msr-s4); }

.msr-section {
	background: var(--msr-card);
	border: 1px solid var(--msr-border);
	border-radius: var(--msr-radius);
	box-shadow: var(--msr-shadow);
	padding: var(--msr-s4);
	margin-bottom: var(--msr-s5);
}

.msr-section > :last-child { margin-bottom: 0; }

.msr-section__title {
	font-size: 1.25rem;
	margin-bottom: var(--msr-s3);
	padding-bottom: var(--msr-s2);
	border-bottom: 2px solid var(--msr-primary-tint-2);
}

.msr-section__lead {
	color: var(--msr-muted);
	font-size: 1.0625rem;
}

/* ==========================================================================
   8. HERO
   ========================================================================== */
.msr-hero {
	background: linear-gradient(160deg, var(--msr-primary-dark) 0%, var(--msr-primary) 100%);
	color: #fff;
	padding-block: var(--msr-s6);
}

.msr-hero__inner {
	max-width: var(--msr-wide);
	margin-inline: auto;
	padding-inline: var(--msr-gutter);
}

.msr-hero h1 {
	color: #fff;
	font-size: 1.75rem;
	margin-bottom: var(--msr-s3);
}

.msr-hero__intro {
	color: rgba(255, 255, 255, .94);
	font-size: 1.0625rem;
	max-width: 62ch;
	margin-bottom: var(--msr-s4);
}

.msr-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--msr-s2) var(--msr-s4);
	font-size: .8125rem;
	color: rgba(255, 255, 255, .88);
	margin-top: var(--msr-s4);
}

.msr-hero .msr-btn--outline {
	border-color: rgba(255, 255, 255, .75);
	color: #fff;
}

.msr-hero .msr-btn--outline:hover,
.msr-hero .msr-btn--outline:focus {
	background: rgba(255, 255, 255, .14);
	color: #fff;
}

/* ==========================================================================
   9. RESULT STATUS BOX
   ========================================================================== */
.msr-result-box {
	background: var(--msr-card);
	border: 1px solid var(--msr-border);
	border-top: 4px solid var(--msr-primary);
	border-radius: var(--msr-radius);
	box-shadow: var(--msr-shadow-lg);
	padding: var(--msr-s4);
	margin-bottom: var(--msr-s5);
}

.msr-result-box--live { border-top-color: var(--msr-success); }
.msr-result-box--date { border-top-color: var(--msr-accent); }
.msr-result-box--closed { border-top-color: var(--msr-muted); }

.msr-result-box__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--msr-s2) var(--msr-s3);
	margin-bottom: var(--msr-s3);
}

.msr-result-box__title {
	margin: 0;
	font-size: 1.125rem;
}

.msr-status-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--msr-s2);
	padding: var(--msr-s1) var(--msr-s3);
	border-radius: 999px;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	border: 1px solid transparent;
}

.msr-status-badge--not-declared {
	background: var(--msr-primary-tint);
	color: var(--msr-primary-dark);
	border-color: var(--msr-primary-tint-2);
}

.msr-status-badge--date-announced {
	background: var(--msr-accent-tint);
	color: var(--msr-warning);
	border-color: #f0d9b0;
}

.msr-status-badge--live {
	background: var(--msr-success-tint);
	color: #0f5f2d;
	border-color: #b7e0c5;
}

.msr-status-badge--closed {
	background: #eef0f3;
	color: #3d4551;
	border-color: var(--msr-border);
}

.msr-status-badge__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	flex: 0 0 8px;
}

.msr-result-box__message {
	font-size: 1.0625rem;
	margin-bottom: var(--msr-s4);
}

.msr-result-box__detail {
	margin: var(--msr-s4) 0 0;
	font-size: .9375rem;
	color: var(--msr-muted);
}

.msr-result-box__secondary {
	margin: var(--msr-s3) 0 0;
	font-size: .875rem;
}

.msr-result-facts {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--msr-s3);
	margin: 0 0 var(--msr-s4);
	padding: 0;
	list-style: none;
}

.msr-result-facts > li { margin: 0; }

.msr-fact {
	background: var(--msr-primary-tint);
	border: 1px solid var(--msr-primary-tint-2);
	border-radius: var(--msr-radius-sm);
	padding: var(--msr-s3);
}

.msr-fact__label {
	display: block;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--msr-muted);
	margin-bottom: 2px;
}

.msr-fact__value {
	display: block;
	font-size: 1rem;
	font-weight: 700;
	color: var(--msr-primary-dark);
}

.msr-fact__value a { word-break: break-word; }

/* ==========================================================================
   10. NOTICES
   ========================================================================== */
.msr-notice {
	display: flex;
	gap: var(--msr-s3);
	padding: var(--msr-s3) var(--msr-s4);
	border: 1px solid var(--msr-border);
	border-left: 4px solid var(--msr-primary);
	border-radius: 0 var(--msr-radius-sm) var(--msr-radius-sm) 0;
	background: var(--msr-primary-tint);
	margin-bottom: var(--msr-s4);
	font-size: .9375rem;
}

.msr-notice > :last-child { margin-bottom: 0; }

.msr-notice--warning {
	background: var(--msr-warning-tint);
	border-left-color: var(--msr-accent);
}

.msr-notice--success {
	background: var(--msr-success-tint);
	border-left-color: var(--msr-success);
}

.msr-notice--error {
	background: var(--msr-danger-tint);
	border-left-color: var(--msr-danger);
}

.msr-notice__body { min-width: 0; }

.msr-notice__title {
	display: block;
	font-weight: 700;
	margin-bottom: 2px;
	color: var(--msr-text);
}

/* ==========================================================================
   11. STEPS (HOW TO CHECK)
   ========================================================================== */
.msr-steps {
	list-style: none;
	counter-reset: msr-step;
	padding: 0;
	margin: 0 0 var(--msr-s4);
}

.msr-steps > li {
	counter-increment: msr-step;
	position: relative;
	padding: 0 0 var(--msr-s4) var(--msr-s7);
	margin: 0;
}

.msr-steps > li::before {
	content: counter(msr-step);
	position: absolute;
	left: 0;
	top: 0;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--msr-primary);
	color: #fff;
	font-weight: 700;
	font-size: .9375rem;
	display: grid;
	place-items: center;
}

.msr-steps > li::after {
	content: "";
	position: absolute;
	left: 15px;
	top: 34px;
	bottom: 4px;
	width: 2px;
	background: var(--msr-primary-tint-2);
}

.msr-steps > li:last-child { padding-bottom: 0; }
.msr-steps > li:last-child::after { display: none; }

.msr-steps__title {
	display: block;
	font-weight: 700;
	color: var(--msr-primary-dark);
	margin-bottom: 2px;
}

.msr-steps p:last-child { margin-bottom: 0; }

/* ==========================================================================
   12. TABLES
   ========================================================================== */
.msr-table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin-bottom: var(--msr-s4);
	border: 1px solid var(--msr-border);
	border-radius: var(--msr-radius-sm);
}

.msr-table {
	width: 100%;
	min-width: 34rem;
	border-collapse: collapse;
	margin: 0;
	font-size: .9375rem;
}

.msr-table caption {
	caption-side: top;
	text-align: left;
	padding: var(--msr-s3) var(--msr-s3) var(--msr-s2);
	font-weight: 700;
	color: var(--msr-primary-dark);
}

.msr-table th,
.msr-table td {
	padding: var(--msr-s3);
	border-bottom: 1px solid var(--msr-border);
	text-align: left;
	vertical-align: top;
}

.msr-table thead th {
	background: var(--msr-primary);
	color: #fff;
	font-weight: 700;
	border-bottom: 0;
}

.msr-table tbody tr:nth-child(even) { background: #fafbfd; }
.msr-table tbody tr:last-child td { border-bottom: 0; }

.msr-table th[scope="row"] {
	font-weight: 600;
	color: var(--msr-primary-dark);
	background: #fafbfd;
}

/* Content tables inserted by the editor get the same safe treatment. */
.msr-prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9375rem;
	display: block;
	overflow-x: auto;
}

.msr-prose th,
.msr-prose td {
	border: 1px solid var(--msr-border);
	padding: var(--msr-s2) var(--msr-s3);
	text-align: left;
}

.msr-prose th { background: var(--msr-primary-tint); }

/* ==========================================================================
   13. FAQ
   ========================================================================== */
.msr-faq { margin-bottom: var(--msr-s4); }

.msr-faq__item {
	border: 1px solid var(--msr-border);
	border-radius: var(--msr-radius-sm);
	background: var(--msr-card);
	margin-bottom: var(--msr-s2);
}

.msr-faq__item > summary {
	display: flex;
	align-items: flex-start;
	gap: var(--msr-s2);
	min-height: var(--msr-tap);
	padding: var(--msr-s3);
	font-weight: 700;
	color: var(--msr-primary-dark);
	cursor: pointer;
	list-style: none;
}

.msr-faq__item > summary::-webkit-details-marker { display: none; }

.msr-faq__item > summary::before {
	content: "+";
	flex: 0 0 1.25em;
	font-size: 1.25rem;
	line-height: 1.1;
	color: var(--msr-accent);
	font-weight: 700;
}

.msr-faq__item[open] > summary::before { content: "\2212"; }

.msr-faq__item[open] > summary {
	border-bottom: 1px solid var(--msr-border);
	background: var(--msr-primary-tint);
	border-radius: var(--msr-radius-sm) var(--msr-radius-sm) 0 0;
}

.msr-faq__answer { padding: var(--msr-s3); }
.msr-faq__answer > :last-child { margin-bottom: 0; }

/* ==========================================================================
   14. SOURCE / TRUST BOX
   ========================================================================== */
.msr-source-box {
	background: #fafbfd;
	border: 1px solid var(--msr-border);
	border-radius: var(--msr-radius);
	padding: var(--msr-s4);
	margin-bottom: var(--msr-s5);
	font-size: .875rem;
}

.msr-source-box__title {
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--msr-muted);
	margin-bottom: var(--msr-s3);
}

.msr-source-box dl {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--msr-s2) var(--msr-s4);
	margin: 0;
}

.msr-source-box dt {
	font-weight: 700;
	color: var(--msr-primary-dark);
}

.msr-source-box dd {
	margin: 0 0 var(--msr-s2);
	color: var(--msr-text);
	word-break: break-word;
}

.msr-source-box dd:last-child { margin-bottom: 0; }

.msr-source-box__host {
	color: var(--msr-muted);
	font-weight: 400;
}

.msr-source-box > p:last-child {
	margin: var(--msr-s3) 0 0;
	color: var(--msr-muted);
}

/* ==========================================================================
   15. LINK LISTS / INTERNAL LINKING
   ========================================================================== */
.msr-linklist {
	list-style: none;
	padding: 0;
	margin: 0;
}

.msr-linklist > li {
	margin: 0;
	border-bottom: 1px solid var(--msr-border);
}

.msr-linklist > li:last-child { border-bottom: 0; }

.msr-linklist a {
	display: block;
	min-height: var(--msr-tap);
	padding: var(--msr-s3) 0;
	font-weight: 600;
	text-decoration: none;
}

.msr-linklist a:hover,
.msr-linklist a:focus { text-decoration: underline; }

.msr-linklist__desc {
	display: block;
	font-weight: 400;
	font-size: .8125rem;
	color: var(--msr-muted);
	margin-top: 2px;
}

.msr-related {
	background: var(--msr-primary-tint);
	border: 1px solid var(--msr-primary-tint-2);
	border-radius: var(--msr-radius);
	padding: var(--msr-s4);
	margin-bottom: var(--msr-s5);
}

.msr-related h2 {
	font-size: 1.0625rem;
	margin-bottom: var(--msr-s2);
}

.msr-related ul {
	list-style: disc;
	padding-left: 1.25em;
	margin: 0;
}

/* ==========================================================================
   16. POST / UPDATE LISTS
   ========================================================================== */
.msr-update-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.msr-update-list > li {
	margin: 0;
	padding: var(--msr-s3) 0;
	border-bottom: 1px solid var(--msr-border);
}

.msr-update-list > li:first-child { padding-top: 0; }
.msr-update-list > li:last-child { border-bottom: 0; padding-bottom: 0; }

.msr-update-list__title {
	display: block;
	font-weight: 700;
	font-size: 1rem;
	text-decoration: none;
	line-height: 1.4;
}

.msr-update-list__title:hover,
.msr-update-list__title:focus { text-decoration: underline; }

.msr-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--msr-s1) var(--msr-s3);
	font-size: .8125rem;
	color: var(--msr-muted);
	margin-top: var(--msr-s1);
}

.msr-meta a { color: var(--msr-muted); }

.msr-entry {
	background: var(--msr-card);
	border: 1px solid var(--msr-border);
	border-radius: var(--msr-radius);
	box-shadow: var(--msr-shadow);
	padding: var(--msr-s4);
	margin-bottom: var(--msr-s5);
}

.msr-entry__header { margin-bottom: var(--msr-s4); }

.msr-entry__title { margin-bottom: var(--msr-s2); }

.msr-entry__title a { text-decoration: none; }
.msr-entry__title a:hover,
.msr-entry__title a:focus { text-decoration: underline; }

.msr-entry__thumb {
	margin-bottom: var(--msr-s4);
	border-radius: var(--msr-radius-sm);
	overflow: hidden;
}

.msr-entry__thumb img { width: 100%; height: auto; }

.msr-entry__excerpt { color: var(--msr-muted); }

.msr-prose > :last-child { margin-bottom: 0; }

.msr-prose h2 {
	margin-top: var(--msr-s5);
	padding-bottom: var(--msr-s2);
	border-bottom: 2px solid var(--msr-primary-tint-2);
}

.msr-prose h3 { margin-top: var(--msr-s4); }

.msr-prose :is(h2, h3, h4):first-child { margin-top: 0; }

.msr-prose figure { margin-inline: 0; }

.msr-prose figcaption {
	font-size: .8125rem;
	color: var(--msr-muted);
	margin-top: var(--msr-s2);
}

.msr-toc {
	background: var(--msr-card);
	border: 1px solid var(--msr-border);
	border-left: 4px solid var(--msr-primary);
	border-radius: 0 var(--msr-radius-sm) var(--msr-radius-sm) 0;
	padding: var(--msr-s3) var(--msr-s4);
	margin-bottom: var(--msr-s5);
}

.msr-toc__title {
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--msr-muted);
	margin-bottom: var(--msr-s2);
}

.msr-toc ol { margin: 0; padding-left: 1.25em; }

/* ==========================================================================
   17. BREADCRUMBS + PAGINATION
   ========================================================================== */
.msr-breadcrumbs {
	font-size: .8125rem;
	color: var(--msr-muted);
	padding-block: var(--msr-s3);
}

.msr-breadcrumbs ol {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: var(--msr-s1) var(--msr-s2);
	margin: 0;
	padding: 0;
	max-width: var(--msr-wide);
	margin-inline: auto;
}

.msr-breadcrumbs li { margin: 0; display: flex; gap: var(--msr-s2); align-items: center; }

.msr-breadcrumbs li + li::before {
	content: "\203A";
	color: var(--msr-border-strong);
}

.msr-breadcrumbs [aria-current="page"] { color: var(--msr-text); font-weight: 600; }

.msr-pagination {
	margin: var(--msr-s5) 0;
}

.msr-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--msr-tap);
	min-height: var(--msr-tap);
	padding: 0 var(--msr-s3);
	margin: 0 var(--msr-s1) var(--msr-s2) 0;
	background: var(--msr-card);
	border: 1px solid var(--msr-border);
	border-radius: var(--msr-radius-sm);
	text-decoration: none;
	font-weight: 600;
}

.msr-pagination .page-numbers.current,
.msr-pagination .page-numbers:hover {
	background: var(--msr-primary);
	border-color: var(--msr-primary);
	color: #fff;
}

/* ==========================================================================
   18. FORMS
   ========================================================================== */
.msr-form { margin-bottom: var(--msr-s4); }

.msr-field { margin-bottom: var(--msr-s4); }

.msr-field label {
	display: block;
	font-weight: 700;
	font-size: .9375rem;
	margin-bottom: var(--msr-s1);
	color: var(--msr-primary-dark);
}

.msr-field .msr-hint {
	display: block;
	font-size: .8125rem;
	color: var(--msr-muted);
	font-weight: 400;
	margin-bottom: var(--msr-s1);
}

.msr-req { color: var(--msr-danger); font-weight: 700; }

input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="search"],
input[type="number"],
select,
textarea {
	width: 100%;
	min-height: var(--msr-tap);
	padding: var(--msr-s2) var(--msr-s3);
	font: inherit;
	font-size: 1rem;
	color: var(--msr-text);
	background: var(--msr-card);
	border: 1px solid var(--msr-border-strong);
	border-radius: var(--msr-radius-sm);
}

textarea { min-height: 9rem; resize: vertical; }

input:focus, select:focus, textarea:focus {
	border-color: var(--msr-primary);
}

.msr-checkbox {
	display: flex;
	gap: var(--msr-s2);
	align-items: flex-start;
	font-size: .9375rem;
}

.msr-checkbox input[type="checkbox"] {
	width: 20px;
	height: 20px;
	min-height: 0;
	margin-top: 3px;
	flex: 0 0 20px;
}

.msr-checkbox label {
	font-weight: 400;
	color: var(--msr-text);
	margin: 0;
}

.msr-form-status {
	margin-bottom: var(--msr-s4);
}

.msr-form-status:empty { display: none; }

.msr-honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.msr-search-form {
	display: flex;
	gap: var(--msr-s2);
}

.msr-search-form input[type="search"] { flex: 1 1 auto; min-width: 0; }

.msr-search-form button {
	flex: 0 0 auto;
	min-height: var(--msr-tap);
	padding-inline: var(--msr-s4);
	background: var(--msr-primary);
	color: #fff;
	border: 0;
	border-radius: var(--msr-radius-sm);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

/* ==========================================================================
   19. SIDEBAR + WIDGETS
   ========================================================================== */
.msr-sidebar { min-width: 0; }

.msr-widget {
	background: var(--msr-card);
	border: 1px solid var(--msr-border);
	border-radius: var(--msr-radius);
	box-shadow: var(--msr-shadow);
	padding: var(--msr-s4);
	margin-bottom: var(--msr-s4);
}

.msr-widget > :last-child { margin-bottom: 0; }

.msr-widget__title {
	font-size: 1rem;
	margin-bottom: var(--msr-s3);
	padding-bottom: var(--msr-s2);
	border-bottom: 2px solid var(--msr-primary-tint-2);
}

.msr-widget ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.msr-widget li {
	margin: 0;
	border-bottom: 1px solid var(--msr-border);
}

.msr-widget li:last-child { border-bottom: 0; }

.msr-widget li a {
	display: block;
	padding: var(--msr-s2) 0;
	min-height: 40px;
	text-decoration: none;
	font-size: .9375rem;
}

.msr-widget li a:hover,
.msr-widget li a:focus { text-decoration: underline; }

/* ==========================================================================
   20. ADVERTISING SLOTS
   Clearly separated from content and always labelled, so an ad can never be
   mistaken for site navigation or for the result button.
   ========================================================================== */
.msr-ad {
	margin: var(--msr-s4) 0;
	padding: var(--msr-s2);
	border: 1px solid var(--msr-border);
	border-radius: var(--msr-radius-sm);
	background: #fbfcfe;
	text-align: center;
	overflow: hidden;
}

.msr-ad__label {
	display: block;
	font-size: .6875rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--msr-muted);
	margin-bottom: var(--msr-s2);
	text-align: left;
}

.msr-ad__body > :last-child { margin-bottom: 0; }

.msr-ad--sidebar { margin-top: 0; }

.msr-ad--after-header { margin-top: var(--msr-s4); }

/* Reserve space so a loading ad does not shift layout (CLS). */
.msr-ad[data-msr-min-height] { min-height: var(--msr-ad-min-height, 0); }

/* ==========================================================================
   21. FOOTER
   ========================================================================== */
.msr-footer {
	background: var(--msr-primary-dark);
	color: rgba(255, 255, 255, .9);
	margin-top: var(--msr-s6);
	padding-top: var(--msr-s6);
	font-size: .9375rem;
}

.msr-footer a {
	color: #fff;
	text-decoration: none;
}

.msr-footer a:hover,
.msr-footer a:focus { text-decoration: underline; color: #fff; }

.msr-footer__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--msr-s5);
	padding-bottom: var(--msr-s5);
}

.msr-footer__title {
	color: #fff;
	font-size: 1rem;
	margin-bottom: var(--msr-s3);
}

.msr-footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.msr-footer li { margin: 0; }

.msr-footer li a {
	display: block;
	padding: var(--msr-s2) 0;
	min-height: 40px;
}

.msr-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, .2);
	padding-block: var(--msr-s4);
	font-size: .8125rem;
	color: rgba(255, 255, 255, .82);
}

.msr-footer__bottom p { margin-bottom: var(--msr-s2); }
.msr-footer__bottom p:last-child { margin-bottom: 0; }

.msr-to-top {
	position: fixed;
	right: var(--msr-s4);
	bottom: var(--msr-s4);
	z-index: 50;
	width: var(--msr-tap);
	height: var(--msr-tap);
	display: none;
	place-items: center;
	background: var(--msr-primary);
	color: #fff;
	border: 0;
	border-radius: 50%;
	box-shadow: var(--msr-shadow-lg);
	cursor: pointer;
	font-size: 1.125rem;
	line-height: 1;
}

.msr-to-top.is-visible { display: grid; }

.msr-after-article { margin-bottom: var(--msr-s5); }

/* ==========================================================================
   22. COMMENTS
   ========================================================================== */
.msr-comments {
	background: var(--msr-card);
	border: 1px solid var(--msr-border);
	border-radius: var(--msr-radius);
	padding: var(--msr-s4);
	margin-bottom: var(--msr-s5);
}

.msr-comment-list {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--msr-s5);
}

.msr-comment-list .children {
	list-style: none;
	padding-left: var(--msr-s4);
	border-left: 2px solid var(--msr-border);
	margin-top: var(--msr-s3);
}

.msr-comment-list li { margin-bottom: var(--msr-s4); }

.msr-comment-body {
	border-bottom: 1px solid var(--msr-border);
	padding-bottom: var(--msr-s3);
}

/* ==========================================================================
   23. 404 / EMPTY STATES
   ========================================================================== */
.msr-empty {
	background: var(--msr-card);
	border: 1px solid var(--msr-border);
	border-radius: var(--msr-radius);
	padding: var(--msr-s6) var(--msr-s4);
	text-align: center;
	margin-bottom: var(--msr-s5);
}

.msr-empty__code {
	font-size: 3rem;
	font-weight: 700;
	line-height: 1;
	color: var(--msr-primary-tint-2);
	margin-bottom: var(--msr-s3);
}

/* ==========================================================================
   24. BLOCK EDITOR ALIGNMENTS
   ========================================================================== */
.alignleft,
.alignright { margin-bottom: var(--msr-s3); }

.aligncenter {
	margin-inline: auto;
	text-align: center;
}

.alignwide,
.alignfull { max-width: 100%; }

.wp-block-image img { border-radius: var(--msr-radius-sm); }

.wp-caption { max-width: 100%; }

.wp-caption-text,
.gallery-caption {
	font-size: .8125rem;
	color: var(--msr-muted);
}

.sticky .msr-entry__title::after {
	content: attr(data-msr-sticky);
}

/* ==========================================================================
   25. RESPONSIVE — mobile-first upward
   Verified against 320 / 360 / 375 / 390 / 412 / 768 / 1024 / 1280 widths.
   ========================================================================== */
@media (min-width: 30em) { /* 480px */
	:root { --msr-gutter: 20px; }

	h1 { font-size: 1.875rem; }
	.msr-hero h1 { font-size: 2rem; }

	.msr-result-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.msr-source-box dl { grid-template-columns: max-content 1fr; }
	.msr-source-box dd { margin-bottom: 0; }
	.msr-btn--block { width: auto; }
}

@media (min-width: 40em) { /* 640px */
	.msr-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.msr-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.msr-section { padding: var(--msr-s5); }
	.msr-result-box { padding: var(--msr-s5); }
}

@media (min-width: 48em) { /* 768px */
	body { font-size: 1.0625rem; }

	h1 { font-size: 2.125rem; }
	h2 { font-size: 1.5rem; }
	h3 { font-size: 1.1875rem; }

	.msr-hero { padding-block: var(--msr-s7); }
	.msr-hero h1 { font-size: 2.25rem; }

	.msr-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.msr-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

	/* Desktop navigation: reveal the list, hide the toggle. */
	.msr-nav-toggle { display: none; }

	.msr-nav__list {
		display: flex;
		flex-wrap: wrap;
		max-width: var(--msr-wide);
		margin-inline: auto;
		padding-inline: var(--msr-gutter);
	}

	.msr-nav__list > li { position: relative; }

	.msr-nav__list a {
		border-bottom: 0;
		padding: var(--msr-s3) var(--msr-s3);
		font-size: .875rem;
	}

	.msr-nav__list .sub-menu {
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 900;
		min-width: 15rem;
		display: none;
		box-shadow: var(--msr-shadow-lg);
		border-top: 3px solid var(--msr-accent);
	}

	.msr-nav__list > li:hover > .sub-menu,
	.msr-nav__list > li:focus-within > .sub-menu { display: block; }

	.msr-nav__list .sub-menu a {
		padding: var(--msr-s3);
		border-bottom: 1px solid rgba(255, 255, 255, .14);
	}
}

@media (min-width: 64em) { /* 1024px */
	.msr-layout--with-sidebar {
		grid-template-columns: minmax(0, 1fr) 320px;
	}

	.msr-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; }

	.msr-result-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 75em) { /* 1200px */
	:root { --msr-gutter: 24px; }
}

/* ==========================================================================
   26. PRINT — keep the result facts, drop the furniture.
   ========================================================================== */
@media print {
	.msr-topbar,
	.msr-nav,
	.msr-nav-toggle,
	.msr-sidebar,
	.msr-ad,
	.msr-to-top,
	.msr-footer__grid,
	.msr-search-form,
	.msr-breadcrumbs { display: none !important; }

	body { background: #fff; font-size: 12pt; }

	.msr-layout--with-sidebar { grid-template-columns: 1fr; }

	.msr-card,
	.msr-section,
	.msr-result-box,
	.msr-entry { box-shadow: none; border-color: #999; }

	a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 10pt; }
}

/* ==========================================================================
   27. FORCED COLORS / HIGH CONTRAST
   ========================================================================== */
@media (forced-colors: active) {
	.msr-btn,
	.msr-status-badge,
	.msr-card,
	.msr-section,
	.msr-result-box { border: 1px solid CanvasText; }

	.msr-status-badge__dot { background: CanvasText; }
}
