/* MexicoCurrent Article Design 1.0.2 — reader-first typography and guide components. */

:root {
	--mc-ink: #1d2433;
	--mc-body: #2f3747;
	--mc-muted: #5b6475;
	--mc-line: #e3e7ee;
	--mc-soft: #f6f8fb;
	--mc-green: #0b6e4f;
	--mc-green-soft: #e8f5ef;
	--mc-blue: #1a56db;
	--mc-blue-soft: #eaf1ff;
	--mc-amber: #9a5b00;
	--mc-amber-soft: #fff6e5;
	--mc-red: #b42318;
	--mc-red-soft: #fdecea;
	--mc-radius: 14px;
}

/* ---------- Headline ---------- */
.single .nr-article-title {
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.15;
	letter-spacing: -0.02em;
	font-weight: 800;
	color: var(--mc-ink);
	max-width: 28ch;
}
.single .nr-article-deck {
	font-family: Inter, ui-sans-serif, system-ui, sans-serif;
	font-size: 1.22rem;
	line-height: 1.55;
	font-weight: 400;
	color: var(--mc-muted);
	max-width: 44rem;
	margin-bottom: 18px;
}
/* Byline block separated from the body like a news article. */
.single .nr-author-row { padding-bottom: 18px; border-bottom: 1px solid var(--mc-line); margin-bottom: 8px; }

/* ---------- Body typography ---------- */
.nr-content {
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-size: 1.1875rem; /* 19px */
	line-height: 1.75;
	color: var(--mc-body);
	max-width: 46rem;
}
.nr-content p { margin: 0 0 1.25em; }
.nr-content strong { color: var(--mc-ink); font-weight: 700; }
.nr-content h2 {
	font-size: clamp(1.6rem, 2.4vw, 1.95rem);
	line-height: 1.25;
	letter-spacing: -0.015em;
	font-weight: 800;
	color: var(--mc-ink);
	margin: 2.2em 0 0.7em;
}
.nr-content h3 {
	font-size: clamp(1.25rem, 1.9vw, 1.45rem);
	line-height: 1.3;
	font-weight: 700;
	color: var(--mc-ink);
	margin: 1.8em 0 0.55em;
}
.nr-content ul, .nr-content ol { padding-left: 1.3em; margin: 0 0 1.4em; }
.nr-content li { margin: 0.45em 0; }
.nr-content li::marker { color: var(--mc-green); font-weight: 700; }
.nr-content a { color: var(--mc-blue); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.nr-content a:hover { color: var(--mc-green); }

/* ---------- Lead paragraph (news-style: no box, no bar) ---------- */
.nr-content .mc-lead {
	font-size: 1.3rem;
	line-height: 1.6;
	font-weight: 400;
	color: var(--mc-ink);
	margin: 0 0 1.4em;
	padding: 0;
	border: 0;
}

/* ---------- Route cards ---------- */
.nr-content .mc-routes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	margin: 1.2em 0 2em;
	padding: 0;
	list-style: none;
}
.nr-content .mc-route {
	background: #fff;
	border: 1px solid var(--mc-line);
	border-radius: var(--mc-radius);
	padding: 20px 20px 18px;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 6px 18px rgba(16, 24, 40, 0.05);
	margin: 0;
}
.nr-content .mc-route .mc-route-if {
	display: block;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--mc-green);
	margin-bottom: 6px;
}
.nr-content .mc-route .mc-route-title {
	display: block;
	font-size: 1.12rem;
	font-weight: 800;
	line-height: 1.3;
	color: var(--mc-ink);
	margin-bottom: 8px;
}
.nr-content .mc-route p { font-size: 1rem; line-height: 1.6; margin: 0 0 10px; }
.nr-content .mc-route .mc-route-meta { font-size: 0.9rem; color: var(--mc-muted); margin: 0; }
.nr-content .mc-route a.mc-route-go { font-weight: 700; text-decoration: none; }

/* ---------- Numbered steps ---------- */
.nr-content ol.mc-steps { list-style: none; counter-reset: mcstep; padding: 0; margin: 1.2em 0 1.8em; }
.nr-content ol.mc-steps > li {
	counter-increment: mcstep;
	position: relative;
	padding: 16px 18px 16px 70px;
	margin: 0 0 12px;
	background: var(--mc-soft);
	border-radius: var(--mc-radius);
}
.nr-content ol.mc-steps > li::before {
	content: counter(mcstep);
	position: absolute;
	left: 18px;
	top: 14px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--mc-green);
	color: #fff;
	font-weight: 800;
	font-size: 1.05rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ---------- Callouts ---------- */
.nr-content .mc-callout {
	border-radius: var(--mc-radius);
	padding: 18px 20px 16px 20px;
	margin: 1.6em 0;
	font-size: 1.05rem;
	line-height: 1.65;
	border: 1px solid transparent;
}
.nr-content .mc-callout > :last-child { margin-bottom: 0; }
.nr-content .mc-callout .mc-callout-title { display: block; font-weight: 800; margin-bottom: 6px; }
.nr-content .mc-tip { background: var(--mc-green-soft); border-color: #cde9dc; }
.nr-content .mc-tip .mc-callout-title { color: var(--mc-green); }
.nr-content .mc-info { background: var(--mc-blue-soft); border-color: #d3e1ff; }
.nr-content .mc-info .mc-callout-title { color: var(--mc-blue); }
.nr-content .mc-warning { background: var(--mc-amber-soft); border-color: #f5dfb4; }
.nr-content .mc-warning .mc-callout-title { color: var(--mc-amber); }
.nr-content .mc-danger { background: var(--mc-red-soft); border-color: #f6cfca; }
.nr-content .mc-danger .mc-callout-title { color: var(--mc-red); }

/* ---------- Code breakdown (RFC / CURP anatomy) ---------- */
.nr-content .mc-code {
	margin: 1.4em 0 1.8em;
	border: 1px solid var(--mc-line);
	border-radius: var(--mc-radius);
	padding: 22px 20px;
	background: #fff;
}
.nr-content .mc-code-parts { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 14px; }
.nr-content .mc-code-part {
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 1.55rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 8px 12px;
	border-radius: 10px;
	color: var(--mc-ink);
}
.nr-content .mc-part-a { background: #e8f5ef; }
.nr-content .mc-part-b { background: #eaf1ff; }
.nr-content .mc-part-c { background: #fff6e5; }
.nr-content .mc-code-legend { list-style: none; padding: 0; margin: 0; font-size: 1rem; }
.nr-content .mc-code-legend li { margin: 6px 0; padding-left: 26px; position: relative; }
.nr-content .mc-code-legend li::before { content: ""; position: absolute; left: 0; top: 0.45em; width: 14px; height: 14px; border-radius: 4px; }
.nr-content .mc-code-legend .mc-part-a::before { background: #9fd5bd; }
.nr-content .mc-code-legend .mc-part-b::before { background: #a9c3fb; }
.nr-content .mc-code-legend .mc-part-c::before { background: #f3cf85; }
.nr-content .mc-code-legend li.mc-part-a, .nr-content .mc-code-legend li.mc-part-b, .nr-content .mc-code-legend li.mc-part-c { background: none; }

/* ---------- FAQ ---------- */
.nr-content .mc-faq details {
	border: 1px solid var(--mc-line);
	border-radius: 12px;
	padding: 0 18px;
	margin: 0 0 10px;
	background: #fff;
}
.nr-content .mc-faq summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--mc-ink);
	padding: 15px 28px 15px 0;
	list-style: none;
	position: relative;
}
.nr-content .mc-faq summary::-webkit-details-marker { display: none; }
.nr-content .mc-faq summary::after { content: "+"; position: absolute; right: 0; top: 12px; font-size: 1.4rem; color: var(--mc-green); }
.nr-content .mc-faq details[open] summary::after { content: "–"; }
.nr-content .mc-faq details > p { margin: 0 0 16px; font-size: 1.05rem; }

/* ---------- Review note ---------- */
.nr-content .mc-reviewed {
	font-size: 0.95rem;
	color: var(--mc-muted);
	border-top: 1px solid var(--mc-line);
	padding-top: 14px;
	margin-top: 2.4em;
}

/* ---------- Tables (fallback for older articles) ---------- */
.nr-content table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	font-size: 1rem;
	line-height: 1.55;
	margin: 1.4em 0 1.8em;
	border: 1px solid var(--mc-line);
	border-radius: var(--mc-radius);
	overflow: hidden;
}
.nr-content th {
	background: var(--mc-ink);
	color: #fff;
	font-weight: 700;
	text-align: left;
	padding: 12px 14px;
}
.nr-content td { padding: 12px 14px; border-top: 1px solid var(--mc-line); vertical-align: top; }
.nr-content tbody tr:nth-child(even) td { background: var(--mc-soft); }

@media (max-width: 640px) {
	.nr-content { font-size: 1.0625rem; line-height: 1.7; }
	.nr-content .mc-lead { font-size: 1.18rem; }
	.nr-content ol.mc-steps > li { padding-left: 62px; }
	.nr-content .mc-code-part { font-size: 1.25rem; }
	.nr-content table, .nr-content thead, .nr-content tbody, .nr-content tr, .nr-content th, .nr-content td { display: block; }
	.nr-content thead { display: none; }
	.nr-content td { border-top: 0; padding: 6px 14px; }
	.nr-content tr { border-top: 1px solid var(--mc-line); padding: 8px 0; }
}

/* 1.0.1 fixes */
.nr-content .mc-route > br,
.nr-content .mc-code-parts > br,
.nr-content .mc-route p:empty { display: none; }
.nr-content .mc-route .mc-route-title { margin-top: 2px; }
/* The byline role shows the WordPress account role (e.g. "Administrador"), which means nothing to readers. */
.nr-author-role { display: none !important; }
