/* =========================================================================
   ReggioNews — main stylesheet
   Mobile-first, editorial, performance-minded. No frameworks.
   ========================================================================= */

:root {
	--rn-bg: #FFFFFF;
	--rn-ink: #111827;            /* near black — base text */
	--rn-ink-soft: #374151;
	--rn-muted: #6B7280;
	--rn-line: #E5E7EB;
	--rn-surface: #F9FAFB;
	--rn-accent: #FFE600;         /* highlighter yellow (Customizer) */
	--rn-accent-ink: #111827;
	--rn-secondary: #D32F2F;      /* editorial red (Customizer) */

	--rn-maxw: 1200px;
	--rn-gap: 1.5rem;
	--rn-radius: 10px;
	--rn-shadow: 0 1px 2px rgba(17, 24, 39, .06), 0 8px 24px rgba(17, 24, 39, .06);

	--rn-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--rn-font-head: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

/* ---- Reset-ish ---- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--rn-font);
	font-size: 16px;
	line-height: 1.6;
	color: var(--rn-ink);
	background: var(--rn-bg);
	overflow-x: clip; /* guard against accidental horizontal scroll; keeps position:sticky working */
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4 { font-family: var(--rn-font-head); line-height: 1.2; font-weight: 800; margin: 0 0 .5em; letter-spacing: -.01em; }
button { font-family: inherit; cursor: pointer; }

.rn-container { width: 100%; max-width: var(--rn-maxw); margin: 0 auto; padding: 0 1rem; }

.screen-reader-text {
	position: absolute !important; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	width: 1px; height: 1px; overflow: hidden; word-wrap: normal !important;
}
.rn-skip-link { position: absolute; left: -9999px; z-index: 999; }
.rn-skip-link:focus {
	left: 1rem; top: 1rem; background: var(--rn-ink); color: #fff; padding: .6rem 1rem; border-radius: 6px;
	width: auto; height: auto; clip: auto; clip-path: none;
}

/* =========================================================================
   Breaking news ticker
   ========================================================================= */
.rn-breaking {
	background: var(--rn-ink);
	color: #fff;
	font-size: .9rem;
	border-bottom: 3px solid var(--rn-accent);
	overflow: hidden;
}
.rn-breaking__inner { display: flex; align-items: center; gap: .75rem; height: 44px; }
.rn-breaking__label {
	display: inline-flex; align-items: center; gap: .4rem;
	background: var(--rn-secondary); color: #fff;
	font-weight: 800; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
	padding: .3rem .6rem; border-radius: 4px; white-space: nowrap; flex-shrink: 0;
}
.rn-breaking__dot {
	width: 8px; height: 8px; border-radius: 50%; background: #fff;
	animation: rn-pulse 1.4s infinite;
}
@keyframes rn-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
.rn-breaking__viewport { overflow: hidden; flex: 1; contain: content; }
.rn-breaking__track {
	display: flex; align-items: center; gap: 2.5rem; margin: 0; padding: 0; list-style: none;
	white-space: nowrap; width: max-content;
}
/* Animation starts only once JS has duplicated the items (seamless -50% loop). */
.rn-breaking__track.is-animated {
	animation: rn-marquee 30s linear infinite;
	will-change: transform;
}
.rn-breaking__viewport:hover .rn-breaking__track,
.rn-breaking__viewport:focus-within .rn-breaking__track { animation-play-state: paused; }
.rn-breaking__item { display: inline-flex; align-items: center; gap: .5rem; }
.rn-breaking__item time { color: var(--rn-accent); font-weight: 700; font-variant-numeric: tabular-nums; }
.rn-breaking__item a { color: #fff; }
@keyframes rn-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* =========================================================================
   Header / nav
   ========================================================================= */
.rn-header { background: var(--rn-bg); border-bottom: 1px solid var(--rn-line); }
.rn-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1rem; padding-bottom: 1rem; }
.rn-header__brand { display: flex; flex-direction: column; gap: .15rem; }
.rn-header__tagline { margin: 0; color: var(--rn-muted); font-size: .8rem; }
.custom-logo { max-height: 56px; width: auto; }

.rn-logo { margin: 0; font-family: var(--rn-font-head); font-weight: 800; font-size: 1.7rem; letter-spacing: -.02em; line-height: 1; }
.rn-logo a:hover { text-decoration: none; }
.rn-logo__mark { color: var(--rn-ink); }
.rn-logo__accent { background: var(--rn-accent); color: var(--rn-accent-ink); padding: 0 .2em; border-radius: 4px; }
.rn-logo--footer { font-size: 1.4rem; }

.rn-header__tools { display: flex; align-items: center; gap: .75rem; }

.rn-nav-toggle {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 40px; background: var(--rn-ink); border: 0; border-radius: 8px;
}
.rn-nav-toggle__bars, .rn-nav-toggle__bars::before, .rn-nav-toggle__bars::after {
	display: block; width: 20px; height: 2px; background: #fff; position: relative; transition: .2s;
}
.rn-nav-toggle__bars::before, .rn-nav-toggle__bars::after { content: ''; position: absolute; left: 0; }
.rn-nav-toggle__bars::before { top: -6px; }
.rn-nav-toggle__bars::after { top: 6px; }

.rn-nav { border-top: 1px solid var(--rn-line); }
.rn-menu { list-style: none; margin: 0; padding: 0; display: none; flex-direction: column; }
.rn-nav.is-open .rn-menu { display: flex; }
.rn-menu li { border-bottom: 1px solid var(--rn-line); }
.rn-menu a {
	display: block; padding: .8rem 0; font-weight: 600; font-size: .95rem; text-transform: uppercase; letter-spacing: .02em;
}
.rn-menu a:hover { text-decoration: none; color: var(--rn-secondary); }
.rn-menu .current-cat > a, .rn-menu .current-menu-item > a { box-shadow: inset 0 -3px 0 var(--rn-accent); }

/* =========================================================================
   Search
   ========================================================================= */
.rn-search { position: relative; display: flex; align-items: center; width: 100%; }
.rn-search__input {
	width: 100%; min-width: 0; border: 1px solid var(--rn-line); border-radius: 999px;
	padding: .6rem 2.7rem .6rem 1rem; font-size: .92rem; line-height: 1.2; background: var(--rn-surface);
	color: var(--rn-ink); appearance: none; transition: box-shadow .15s, border-color .15s, background .15s;
}
.rn-search__input::placeholder { color: var(--rn-muted); }
.rn-search__input:focus {
	outline: none; border-color: var(--rn-ink); background: #fff;
	box-shadow: 0 0 0 3px rgba(255, 230, 0, .55);
}
.rn-search__submit {
	position: absolute; right: 5px; top: 50%; transform: translateY(-50%);
	width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center;
	border: 0; border-radius: 50%; background: transparent; font-size: 1.25rem; color: var(--rn-muted);
}
.rn-search__submit:hover { color: var(--rn-ink); background: rgba(17, 24, 39, .06); }

/* Header: inline search (desktop) + icon toggle (mobile) */
.rn-header__search-inline { display: none; width: 260px; }
.rn-search-toggle {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 40px;
	background: var(--rn-surface); border: 1px solid var(--rn-line); border-radius: 8px; color: var(--rn-ink);
}
.rn-search-toggle:hover { background: #fff; }

/* Mobile search overlay */
.rn-search-overlay {
	position: fixed; inset: 0; z-index: 200; background: rgba(17, 24, 39, .5);
	opacity: 0; transition: opacity .2s ease;
}
.rn-search-overlay.is-open { opacity: 1; }
.rn-search-overlay__bar {
	background: #fff; box-shadow: var(--rn-shadow);
	transform: translateY(-14px); transition: transform .2s ease;
}
.rn-search-overlay.is-open .rn-search-overlay__bar { transform: translateY(0); }
.rn-search-overlay__inner {
	display: flex; align-items: center; gap: .5rem;
	width: 100%; max-width: var(--rn-maxw); margin: 0 auto; padding: .85rem 1rem;
}
.rn-search-overlay .rn-search { flex: 1; }
.rn-search-overlay__close {
	flex: 0 0 auto; width: 44px; height: 44px; border: 0; background: transparent;
	font-size: 2rem; line-height: 1; color: var(--rn-ink);
}
.rn-search__results {
	position: absolute; top: calc(100% + 8px); right: 0; z-index: 60;
	width: min(420px, 92vw); background: #fff; border: 1px solid var(--rn-line); border-radius: var(--rn-radius);
	box-shadow: var(--rn-shadow); padding: .5rem; max-height: 70vh; overflow: auto;
}
.rn-search__list { list-style: none; margin: 0; padding: 0; }
.rn-search__result a { display: flex; gap: .65rem; padding: .5rem; border-radius: 8px; }
.rn-search__result a:hover { background: var(--rn-surface); text-decoration: none; }
.rn-search__thumb img { width: 64px; height: 48px; object-fit: cover; border-radius: 6px; }
.rn-search__thumb:empty { display: none; }
.rn-search__meta { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.rn-search__cat { color: var(--rn-secondary); font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.rn-search__title { font-weight: 600; font-size: .9rem; }
.rn-search__date { color: var(--rn-muted); font-size: .75rem; }
.rn-search__loading, .rn-search__empty { margin: 0; padding: .75rem; color: var(--rn-muted); font-size: .85rem; }
.rn-search__all {
	display: block; text-align: center; padding: .6rem; margin-top: .25rem; font-weight: 700; font-size: .82rem;
	background: var(--rn-accent); color: var(--rn-accent-ink); border-radius: 8px;
}
.rn-search__all:hover { text-decoration: none; }

/* =========================================================================
   Shared bits — badges, meta, section titles, buttons
   ========================================================================= */
.rn-badge {
	display: inline-block; background: var(--rn-accent); color: var(--rn-accent-ink);
	font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em;
	padding: .2rem .5rem; border-radius: 4px; margin-bottom: .5rem;
}
.rn-badge:hover { text-decoration: none; filter: brightness(.95); }

.rn-meta { color: var(--rn-muted); font-size: .8rem; display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.rn-meta a { color: var(--rn-ink-soft); font-weight: 600; }
.rn-meta__updated { color: var(--rn-secondary); }
.rn-meta__sep { opacity: .5; }

.rn-eyebrow { color: var(--rn-secondary); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; margin: 0 0 .25rem; }

.rn-section__title {
	font-size: 1.15rem; text-transform: uppercase; letter-spacing: .02em; margin: 0 0 1rem;
	border-bottom: 2px solid var(--rn-ink); padding-bottom: .5rem;
}
.rn-section__title span { box-shadow: inset 0 -10px 0 var(--rn-accent); }
.rn-section__title--alt span { box-shadow: none; }
.rn-section__title--city span { box-shadow: inset 0 -10px 0 var(--rn-accent); }
.rn-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.rn-section__more { font-size: .82rem; font-weight: 700; color: var(--rn-secondary); white-space: nowrap; }

.rn-btn, .rn-more .rn-btn {
	display: inline-block; background: var(--rn-ink); color: #fff; font-weight: 700; font-size: .85rem;
	padding: .65rem 1.2rem; border-radius: 8px;
}
.rn-btn:hover { text-decoration: none; background: #000; }
.rn-more { margin-top: 1.25rem; }
.rn-empty { color: var(--rn-muted); padding: 2rem 0; }

/* =========================================================================
   Homepage — hero
   ========================================================================= */
.rn-hero-wrap { margin-top: 1.5rem; }
.rn-hero { display: grid; gap: 1rem; }
.rn-hero__media { display: block; border-radius: var(--rn-radius); overflow: hidden; aspect-ratio: 16 / 9; background: var(--rn-surface); }
.rn-hero__img { width: 100%; height: 100%; object-fit: cover; }
.rn-hero__title { font-size: clamp(1.6rem, 5vw, 2.6rem); margin: .25rem 0 .5rem; }
.rn-hero__title a:hover { text-decoration: none; box-shadow: inset 0 -2px 0 var(--rn-accent); }
.rn-hero__excerpt { color: var(--rn-ink-soft); font-size: 1.05rem; margin: 0 0 .75rem; }

/* =========================================================================
   Homepage — two columns
   ========================================================================= */
.rn-columns { margin-top: 2.5rem; display: grid; gap: 2rem; }

/* Latest feed (list items) */
.rn-feed { display: flex; flex-direction: column; }
.rn-list-item { display: flex; gap: .9rem; padding: 1rem 0; border-bottom: 1px solid var(--rn-line); }
.rn-list-item:first-child { padding-top: 0; }
.rn-list-item__media { flex: 0 0 110px; border-radius: 8px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--rn-surface); }
.rn-list-item__media .rn-card__img { width: 100%; height: 100%; object-fit: cover; }
.rn-list-item__title { font-size: 1.02rem; font-weight: 700; margin: .1rem 0 .35rem; line-height: 1.3; }
.rn-list-item__title a:hover { color: var(--rn-secondary); text-decoration: none; }
.rn-list-item .rn-badge { margin-bottom: .25rem; }
.rn-feed--compact .rn-list-item__media { flex-basis: 84px; }

/* Trending */
.rn-trending__list { list-style: none; margin: 0; padding: 0; counter-reset: rn; }
.rn-trending__item { display: flex; gap: .75rem; padding: .85rem 0; border-bottom: 1px solid var(--rn-line); }
.rn-trending__rank {
	font-family: var(--rn-font-head); font-weight: 800; font-size: 1.5rem; color: var(--rn-accent);
	-webkit-text-stroke: 1px var(--rn-ink); line-height: 1; min-width: 1.4em;
}
.rn-trending__title { font-size: .98rem; margin: .15rem 0 .3rem; line-height: 1.3; }
.rn-trending__title a:hover { color: var(--rn-secondary); text-decoration: none; }
.rn-trending { background: var(--rn-surface); border: 1px solid var(--rn-line); border-radius: var(--rn-radius); padding: 1.25rem; }

/* =========================================================================
   Grids / cards
   ========================================================================= */
.rn-grid { display: grid; gap: var(--rn-gap); grid-template-columns: 1fr; grid-auto-rows: 1fr; }
.rn-cat-section { margin-top: 2.5rem; }

/* Performance: skip rendering work for long off-screen blocks until near the viewport. */
.rn-cat-section,
.rn-related { content-visibility: auto; contain-intrinsic-size: auto 520px; }

.rn-card {
	display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rn-line);
	border-radius: var(--rn-radius); overflow: hidden; transition: box-shadow .15s, transform .15s;
}
.rn-card:hover { box-shadow: var(--rn-shadow); transform: translateY(-2px); }
.rn-card__media { display: block; aspect-ratio: 3 / 2; background: var(--rn-surface); overflow: hidden; }
.rn-card__img { width: 100%; height: 100%; object-fit: cover; }
.rn-card__body { padding: .9rem 1rem 1.1rem; display: flex; flex-direction: column; flex: 1 1 auto; }
.rn-card__title {
	font-size: 1.05rem; line-height: 1.3; margin: 0 0 .4rem;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
	/* Reserve up to 3 lines so cards align even with short titles. */
	min-height: calc(1.3em * 2);
}
.rn-card__title a:hover { color: var(--rn-secondary); text-decoration: none; }
.rn-card__excerpt {
	color: var(--rn-ink-soft); font-size: .88rem; margin: 0 0 .65rem;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.rn-card__meta { margin-top: auto; }

/* Placeholder when no featured image */
.rn-card__img--placeholder {
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, var(--rn-ink), #1f2937);
}
.rn-card__img--placeholder span {
	color: var(--rn-accent); font-family: var(--rn-font-head); font-weight: 800;
	text-transform: uppercase; letter-spacing: .05em; font-size: .9rem; padding: .5rem;
}

/* =========================================================================
   Single article
   ========================================================================= */
.rn-single-wrap, .rn-archive-wrap { display: grid; gap: 2.5rem; margin: 2rem auto; }
.rn-article__header { max-width: 760px; }
.rn-article__title { font-size: clamp(1.7rem, 5.5vw, 2.8rem); margin: .3rem 0 .6rem; }
.rn-article__standfirst { font-size: 1.15rem; color: var(--rn-ink-soft); font-weight: 500; margin: 0 0 1rem; }
.rn-article__meta { margin-bottom: 1.25rem; font-size: .85rem; }
.rn-article__figure { margin: 0 0 1.5rem; border-radius: var(--rn-radius); overflow: hidden; }
.rn-article__figure figcaption { font-size: .78rem; color: var(--rn-muted); padding: .5rem .25rem; }
.rn-article__img { width: 100%; height: auto; }

/* Reading-friendly prose: 18–20px */
.rn-prose { font-size: 1.18rem; line-height: 1.75; color: var(--rn-ink); max-width: 760px; }
.rn-prose p { margin: 0 0 1.35em; }
.rn-prose h2 { font-size: 1.5rem; margin: 1.8em 0 .5em; }
.rn-prose h3 { font-size: 1.25rem; margin: 1.5em 0 .5em; }
.rn-prose a { color: var(--rn-secondary); text-decoration: underline; text-underline-offset: 2px; }
.rn-prose ul, .rn-prose ol { margin: 0 0 1.35em; padding-left: 1.3em; }
.rn-prose li { margin-bottom: .5em; }
.rn-prose blockquote {
	margin: 1.5em 0; padding: .5em 1.2em; border-left: 4px solid var(--rn-accent);
	font-style: italic; color: var(--rn-ink-soft);
}
.rn-prose img, .rn-prose figure { margin: 1.5em 0; border-radius: var(--rn-radius); }
.rn-prose mark { background: var(--rn-accent); }

.rn-article__footer { max-width: 760px; margin: 2rem 0; padding-top: 1.5rem; border-top: 1px solid var(--rn-line); }
.rn-tags { font-size: .85rem; color: var(--rn-muted); margin-bottom: 1rem; }
.rn-tags a { display: inline-block; background: var(--rn-surface); border: 1px solid var(--rn-line); padding: .15rem .55rem; border-radius: 20px; margin: 0 .2rem .2rem 0; }
.rn-tags__label { font-weight: 700; color: var(--rn-ink); }

.rn-share { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.rn-share__label { font-weight: 800; text-transform: uppercase; font-size: .72rem; letter-spacing: .06em; margin-right: .25rem; }
/* Share buttons reuse the .rn-social__btn circular icon style. */

.rn-related { margin: 2.5rem 0; }

/* =========================================================================
   Sidebar (sticky)
   ========================================================================= */
.rn-sidebar__sticky { position: sticky; top: 1rem; display: flex; flex-direction: column; gap: 1.5rem; }
.rn-widget { background: var(--rn-surface); border: 1px solid var(--rn-line); border-radius: var(--rn-radius); padding: 1.25rem; }
.rn-widget__title, .widget__title {
	font-size: 1rem; text-transform: uppercase; letter-spacing: .03em; margin: 0 0 1rem;
	padding-bottom: .5rem; border-bottom: 2px solid var(--rn-ink);
}
.rn-widget__title span { box-shadow: inset 0 -8px 0 var(--rn-accent); }

/* =========================================================================
   Archive header / sorting
   ========================================================================= */
.rn-archive__header { margin-bottom: 1.5rem; }
.rn-archive__title { font-size: clamp(1.6rem, 5vw, 2.4rem); }
.rn-archive__title span { box-shadow: inset 0 -.3em 0 var(--rn-accent); }
.rn-archive__desc { color: var(--rn-ink-soft); font-size: 1rem; max-width: 720px; }
.rn-archive__searchbox { margin-top: 1rem; }
.rn-archive__searchbox .rn-search__input { max-width: 100%; }

.rn-sort { display: inline-flex; gap: .25rem; margin-top: 1rem; background: var(--rn-surface); border: 1px solid var(--rn-line); border-radius: 999px; padding: .25rem; }
.rn-sort__btn { font-size: .82rem; font-weight: 700; padding: .4rem .9rem; border-radius: 999px; color: var(--rn-ink-soft); }
.rn-sort__btn:hover { text-decoration: none; }
.rn-sort__btn.is-active { background: var(--rn-ink); color: #fff; }

/* Pagination */
.rn-pagination, .navigation.pagination { margin-top: 2.5rem; }
.navigation.pagination .nav-links,
.rn-pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .4rem; }
.page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px; padding: 0 .7rem;
	border: 1px solid var(--rn-line); border-radius: 8px; font-weight: 700; font-size: .9rem;
	background: #fff; color: var(--rn-ink); transition: background .15s, border-color .15s;
}
.page-numbers:hover { text-decoration: none; background: var(--rn-surface); border-color: var(--rn-ink); }
.page-numbers.current { background: var(--rn-ink); color: #fff; border-color: var(--rn-ink); }
.page-numbers.dots { border-color: transparent; background: transparent; }
.page-numbers.prev, .page-numbers.next { font-weight: 700; }

/* =========================================================================
   Breaking news page — timeline
   ========================================================================= */
.rn-live { margin: 2rem auto; max-width: 820px; }
.rn-live__header { margin-bottom: 2rem; }
.rn-eyebrow--live { display: inline-flex; align-items: center; gap: .4rem; }
.rn-live__title { font-size: clamp(1.8rem, 6vw, 2.8rem); }
.rn-timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.rn-timeline::before { content: ''; position: absolute; left: 7px; top: 0; bottom: 0; width: 2px; background: var(--rn-line); }
.rn-timeline__daysep { margin: 1.5rem 0 .5rem; padding-left: 2rem; }
.rn-timeline__daysep span { font-weight: 800; text-transform: capitalize; font-size: .85rem; background: var(--rn-accent); color: var(--rn-accent-ink); padding: .2rem .6rem; border-radius: 4px; }
.rn-timeline__item { position: relative; padding: 0 0 1.75rem 2rem; }
.rn-timeline__item::before {
	content: ''; position: absolute; left: 0; top: .35rem; width: 16px; height: 16px;
	background: var(--rn-secondary); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 2px var(--rn-secondary);
}
.rn-timeline__time { font-weight: 800; color: var(--rn-secondary); font-variant-numeric: tabular-nums; font-size: .85rem; }
.rn-timeline__title { font-size: 1.2rem; margin: .25rem 0 .4rem; }
.rn-timeline__title a:hover { text-decoration: none; box-shadow: inset 0 -2px 0 var(--rn-accent); }
.rn-timeline__excerpt { color: var(--rn-ink-soft); font-size: .95rem; margin: 0; }

/* =========================================================================
   404
   ========================================================================= */
.rn-404 { text-align: center; padding: 3rem 1rem; max-width: 760px; margin: 0 auto; }
.rn-404__code { font-family: var(--rn-font-head); font-weight: 800; font-size: clamp(4rem, 18vw, 8rem); line-height: 1; color: var(--rn-accent); -webkit-text-stroke: 2px var(--rn-ink); margin: 0; }
.rn-404__title { font-size: 1.8rem; }
.rn-404__search { max-width: 420px; margin: 1.5rem auto; }
.rn-404__search .rn-search__input { max-width: 100%; }
.rn-404__latest { text-align: left; margin: 2.5rem 0; }

/* =========================================================================
   Form fields (shared: comments, Contact Form 7, search, content forms)
   ========================================================================= */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="date"],
textarea,
select {
	width: 100%; max-width: 100%; font-family: inherit; font-size: 1rem; color: var(--rn-ink);
	background: #fff; border: 1px solid var(--rn-line); border-radius: 10px;
	padding: .7rem .9rem; line-height: 1.4; appearance: none;
	transition: border-color .15s, box-shadow .15s;
}
textarea { min-height: 140px; resize: vertical; }
select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236B7280' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right .9rem center; padding-right: 2.2rem;
}
input:focus, textarea:focus, select:focus {
	outline: none; border-color: var(--rn-ink); box-shadow: 0 0 0 3px rgba(255, 230, 0, .55);
}
::placeholder { color: var(--rn-muted); }

label { font-weight: 600; font-size: .9rem; display: inline-block; margin-bottom: .3rem; }

/* Buttons / submits */
button[type="submit"],
input[type="submit"],
.wpcf7-submit,
#submit,
.rn-form-submit {
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--rn-ink); color: #fff; font-weight: 700; font-size: .95rem;
	padding: .75rem 1.5rem; border: 0; border-radius: 10px; cursor: pointer; width: auto;
	transition: background .15s;
}
button[type="submit"]:hover,
input[type="submit"]:hover,
.wpcf7-submit:hover,
#submit:hover { background: #000; }

/* =========================================================================
   Contact Form 7
   ========================================================================= */
.wpcf7 { max-width: 760px; }
.wpcf7-form p { margin: 0 0 1.1rem; }
.wpcf7-form label { width: 100%; }
.wpcf7 .wpcf7-list-item { display: inline-flex; align-items: center; gap: .4rem; margin: 0 1rem .3rem 0; }
.wpcf7 input[type="checkbox"], .wpcf7 input[type="radio"] { width: auto; box-shadow: none; accent-color: var(--rn-secondary); }
.wpcf7-not-valid { border-color: var(--rn-secondary) !important; }
.wpcf7-not-valid-tip { color: var(--rn-secondary); font-size: .82rem; margin-top: .25rem; display: block; }
.wpcf7-response-output {
	border-radius: 10px; padding: .8rem 1rem !important; margin: 1rem 0 0 !important;
	border: 1px solid var(--rn-line) !important; font-size: .9rem;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output { border-color: var(--rn-secondary) !important; background: #fef2f2; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #16a34a !important; background: #f0fdf4; }
.wpcf7-spinner { margin: .5rem auto; }

/* =========================================================================
   Comments
   ========================================================================= */
.rn-comments { max-width: 760px; margin: 2.5rem 0; }
.rn-single-wrap--full .rn-comments { max-width: none; }

.rn-comments__list, .comment-list { list-style: none; margin: 0 0 2.5rem; padding: 0; }
.rn-comments__list .children,
.comment-list .children { list-style: none; margin: 1rem 0 0; padding: 0 0 0 1.5rem; border-left: 2px solid var(--rn-line); }
.rn-comments .comment-body,
.comment-list .comment-body {
	position: relative; padding: 1.25rem 0; border-bottom: 1px solid var(--rn-line);
}
.rn-comments .comment-author,
.comment-list .comment-author { display: flex; align-items: center; gap: .6rem; font-weight: 700; }
.rn-comments .comment-author img,
.comment-list .comment-author .avatar { border-radius: 50%; width: 44px; height: 44px; }
.rn-comments .comment-author .says { display: none; }
.rn-comments .comment-metadata,
.comment-list .comment-metadata { font-size: .8rem; color: var(--rn-muted); margin: .15rem 0 .6rem; }
.rn-comments .comment-metadata a { color: var(--rn-muted); }
.rn-comments .comment-content p { margin: 0 0 .8em; }
.comment-list .reply { font-size: .82rem; font-weight: 700; }
.comment-list .reply a { color: var(--rn-secondary); }
.comment-list .bypostauthor > .comment-body { background: var(--rn-surface); border-radius: 10px; padding: 1.25rem; }
.rn-comments__closed { color: var(--rn-muted); font-style: italic; }

/* Comment form */
.comment-respond { margin-top: 2rem; }
.comment-reply-title { font-size: 1.3rem; font-weight: 800; margin-bottom: 1rem; }
.comment-reply-title small { font-weight: 500; font-size: .85rem; margin-left: .5rem; }
.comment-form { display: flex; flex-wrap: wrap; gap: 1rem; }
.comment-form p { margin: 0; }
.comment-form > p,
.comment-form .comment-notes,
.comment-form-comment,
.comment-form-cookies-consent,
.comment-form .form-submit { flex: 1 1 100%; }
.comment-form .comment-notes { font-size: .85rem; color: var(--rn-muted); }
.comment-form-cookies-consent { display: flex; align-items: flex-start; gap: .5rem; font-size: .85rem; }
.comment-form-cookies-consent input { width: auto; box-shadow: none; margin-top: .15rem; }
.comment-form-cookies-consent label { font-weight: 400; margin: 0; }
.comment-form .required { color: var(--rn-secondary); }

@media (min-width: 600px) {
	.comment-form > p.comment-form-author,
	.comment-form > p.comment-form-email { flex: 1 1 calc(50% - .5rem); }
}

/* =========================================================================
   Footer
   ========================================================================= */
.rn-footer { background: var(--rn-ink); color: #D1D5DB; margin-top: 3rem; }
.rn-footer__grid { display: grid; gap: 2rem; padding: 3rem 1rem 2rem; grid-template-columns: 1fr; text-align: center; }
.rn-footer__title { color: #fff; font-size: 1rem; text-transform: uppercase; letter-spacing: .03em; margin: 0 0 1rem; }
.rn-footer a { color: #D1D5DB; }
.rn-footer a:hover { color: var(--rn-accent); }
.rn-footer__about .rn-logo__mark { color: #fff; }
.rn-footer__about p { font-size: .9rem; line-height: 1.6; }
.rn-footer__menu, .rn-footer__contact, .rn-social { list-style: none; margin: 0; padding: 0; }
.rn-footer__menu li, .rn-footer__contact li { padding: .3rem 0; font-size: .9rem; }
.rn-social { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; justify-content: center; padding: 0; list-style: none; }

/* Shared circular icon button (footer follow + article share) */
.rn-social__btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%; color: #fff; background: #374151;
	transition: transform .12s ease, filter .12s ease;
}
.rn-social__btn svg { width: 20px; height: 20px; display: block; }
.rn-social__btn:hover { text-decoration: none; transform: translateY(-2px); filter: brightness(1.06); }
.rn-social__btn--facebook  { background: #1877F2; }
.rn-social__btn--instagram { background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fd5949 45%, #d6249f 65%, #285aeb 100%); }
.rn-social__btn--twitter   { background: #000; border: 1px solid #374151; }
.rn-social__btn--youtube   { background: #ff0000; }
.rn-social__btn--telegram  { background: #229ed9; }
.rn-social__btn--whatsapp  { background: #25d366; }
.rn-social__btn--discover  { background: #fff; border: 1px solid var(--rn-line); }
.rn-footer__bar { border-top: 1px solid #1f2937; }
.rn-footer__bar-inner {
	display: flex; flex-direction: column; align-items: center;
	gap: .7rem; padding: 1.25rem 1rem; font-size: .8rem; color: #9CA3AF;
}
.rn-footer__bar-top {
	display: flex; flex-direction: column; align-items: center; gap: .25rem;
	width: 100%; text-align: center;
}
.rn-footer__bar-inner p { margin: 0; }
.rn-footer__copy { font-weight: 600; color: #E5E7EB; }
.rn-footer__legal {
	list-style: none; margin: .35rem 0 0; padding: 0; max-width: 100%;
	display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem;
}
.rn-footer__legal li { display: inline-flex; align-items: center; }
.rn-footer__legal li:not(:last-child)::after {
	content: "\00B7"; margin-left: .5rem; color: #6B7280; font-weight: 700;
}
.rn-footer__legal a { font-size: .8rem; }

/* =========================================================================
   Responsive
   ========================================================================= */
@media (min-width: 600px) {
	.rn-grid--3, .rn-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.rn-footer__grid { grid-template-columns: 2fr 1fr; text-align: left; }
	.rn-social { justify-content: flex-start; }
	.rn-footer__bar-top {
		flex-direction: row; flex-wrap: wrap; justify-content: space-between;
		align-items: center; text-align: left; gap: .5rem 1.5rem;
	}
	.rn-footer__legal { margin-top: 0; }
}

@media (min-width: 880px) {
	.rn-header__inner { padding-top: 1.25rem; padding-bottom: 1.25rem; }
	.rn-nav-toggle { display: none; }
	.rn-search-toggle { display: none; }
	.rn-header__search-inline { display: block; }
	.rn-menu { display: flex !important; flex-direction: row; gap: 1.5rem; }
	.rn-menu li { border-bottom: 0; }
	.rn-menu a { padding: .9rem 0; }

	.rn-hero { grid-template-columns: 1.4fr 1fr; align-items: center; gap: 1.5rem; }
	.rn-columns { grid-template-columns: 1.7fr 1fr; }
	.rn-grid--3 { grid-template-columns: repeat(3, 1fr); }
	.rn-grid--4 { grid-template-columns: repeat(4, 1fr); }

	.rn-single-wrap { grid-template-columns: minmax(0, 1fr) 320px; }
	.rn-archive-wrap { grid-template-columns: minmax(0, 1fr) 300px; }
	/* Full-width variants (sidebar disabled): same content width as the homepage. */
	.rn-single-wrap--full,
	.rn-archive-wrap--full { grid-template-columns: minmax(0, 1fr); max-width: var(--rn-maxw); }
	.rn-single-wrap--full .rn-single-main,
	.rn-single-wrap--full .rn-article__header,
	.rn-single-wrap--full .rn-article__footer,
	.rn-single-wrap--full .rn-prose,
	.rn-single-wrap--full .rn-comments { max-width: none; }
	.rn-footer__grid { grid-template-columns: 2fr 1fr 1fr; }
}

@media (min-width: 1100px) {
	/* Keep the footer balanced: 3 content columns by default, 4 only when a
	   footer-4 widget area is active. */
	.rn-footer__grid:has(.rn-footer__col:nth-child(4)) { grid-template-columns: 2fr 1fr 1fr 1fr; }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
	.rn-breaking__track { animation: none; }
	.rn-breaking__dot { animation: none; }
	html { scroll-behavior: auto; }
	.rn-card { transition: none; }
}

/* Print */
@media print {
	.rn-breaking, .rn-nav, .rn-header__tools, .rn-sidebar, .rn-footer, .rn-share, .rn-related { display: none !important; }
	.rn-single-wrap { display: block; }
}
