/* ==========================================================================
   Persian Property News — theme styles
   Tokens per DESIGN.md. Logical properties throughout (RTL-first site).
   ========================================================================== */

:root {
	--ppn-navy: #1a2b4c;
	--ppn-green: #198754;
	--ppn-green-dark: #13653f;
	--ppn-dark: #212121;
	--ppn-ink: #161616;
	--ppn-text: #333333;
	--ppn-meta: #767676;
	--ppn-border: #eeeeee;
	--ppn-paper: #ffffff;
	--ppn-surface: #ffffff;
	--ppn-surface-2: #fafafa;
	--ppn-topbar: #f8f9fa;
	--ppn-red: #dc3545;
	--ppn-shadow-overlay: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0.82) 100%);
}

html.ppn-dark {
	--ppn-ink: #f0f0f0;
	--ppn-text: #d6d6d6;
	--ppn-meta: #9a9a9a;
	--ppn-border: #2a2a2a;
	--ppn-paper: #121212;
	--ppn-surface: #1b1b1b;
	--ppn-surface-2: #1e1e1e;
	--ppn-topbar: #171717;
}
html.ppn-dark body {
	background: var(--ppn-paper);
	color: var(--ppn-text);
}
html.ppn-dark :is(h1, h2, h3, h4, h5, h6, .wp-block-post-title a) { color: var(--ppn-ink); }

body { -webkit-font-smoothing: antialiased; }

/* Focus is never suppressed */
:where(a, button, input, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--ppn-green);
	outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Generic module bits
   -------------------------------------------------------------------------- */

/* Section heading — "style 6": rule + green mark at reading start */
.ppn-heading {
	position: relative;
	font-size: 16px;
	font-weight: 700;
	color: var(--ppn-ink);
	line-height: 1.4;
	padding-block-end: 10px;
	border-block-end: 1px solid var(--ppn-border);
	margin-block: 0 20px;
}
.ppn-heading::after {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	bottom: -2px;
	width: 30px;
	height: 3px;
	background: var(--ppn-green);
}

/* Empty query state — matches reference */
.ppn-nocontent {
	background: var(--ppn-surface-2);
	border: 1px solid var(--ppn-border);
	color: #666;
	text-align: center;
	font-size: 18px;
	padding: 38px 20px;
	margin: 0;
}
html.ppn-dark .ppn-nocontent { color: #aaa; }

/* Meta date with red clock glyph */
.ppn-date-icon .wp-block-post-date { display: inline-flex; align-items: center; gap: 5px; }
.ppn-date-icon .wp-block-post-date::before {
	content: "";
	width: 13px;
	height: 13px;
	flex: none;
	background-color: var(--ppn-red);
	-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M8 0a8 8 0 108 8A8 8 0 008 0zm3.2 9.6H7.2a.8.8 0 01-.8-.8V3.2a.8.8 0 011.6 0V8h3.2a.8.8 0 010 1.6z"/></svg>') center/contain no-repeat;
	mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M8 0a8 8 0 108 8A8 8 0 008 0zm3.2 9.6H7.2a.8.8 0 01-.8-.8V3.2a.8.8 0 011.6 0V8h3.2a.8.8 0 010 1.6z"/></svg>') center/contain no-repeat;
}

/* Post titles inherit ink, hover green */
.wp-block-post-title a { color: inherit; transition: color 150ms ease; }
.wp-block-post-title a:hover { color: var(--ppn-green); }

/* Category badge (overlay cards) */
.ppn-badge .wp-block-post-terms {
	display: inline-block;
	background: var(--ppn-navy);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	line-height: 1;
	padding: 6px 10px;
}
.ppn-badge .wp-block-post-terms a { color: #fff; }
.ppn-badge .wp-block-post-terms .wp-block-post-terms__separator { display: none; }
.ppn-badge .wp-block-post-terms a ~ a { display: none; } /* primary term only, like reference */

/* Featured image defaults */
.wp-block-post-featured-image img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* --------------------------------------------------------------------------
   Header — desktop masthead (3 rows) and mobile navy bar
   -------------------------------------------------------------------------- */

.ppn-header { position: relative; z-index: 100; }

/* Row 1: logo bar */
.ppn-masthead {
	background: var(--ppn-topbar);
	border-block-end: 1px solid var(--ppn-border);
}
.ppn-masthead > .ppn-masthead-row {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	max-width: 1220px;
	margin-inline: auto;
	padding: 12px 20px;
	min-height: 61px;
	box-sizing: border-box;
}
.ppn-masthead .ppn-toggle-wrap { justify-self: start; }
.ppn-masthead .wp-block-site-title {
	margin: 0;
	font-size: 32px;
	font-weight: 800;
	letter-spacing: 0.2px;
	line-height: 1.15;
}
.ppn-masthead .wp-block-site-title a { color: #212121; }
html.ppn-dark .ppn-masthead .wp-block-site-title a { color: #f0f0f0; }

/* Row 2: state tags */
.ppn-statesbar {
	background: var(--ppn-surface);
	border-block-end: 1px solid var(--ppn-border);
}
.ppn-statesbar .wp-block-navigation {
	max-width: 1220px;
	margin-inline: auto;
	padding: 0 20px;
	min-height: 50px;
	justify-content: center;
	align-items: center;
	gap: 34px;
	font-size: 14px;
	font-weight: 700;
}
.ppn-statesbar .wp-block-navigation a { color: var(--ppn-navy); padding-block: 14px; }
html.ppn-dark .ppn-statesbar .wp-block-navigation a { color: #d6d6d6; }
.ppn-statesbar .wp-block-navigation a:hover { color: var(--ppn-green); }

/* Row 3: navy menu bar */
.ppn-navbar { background: var(--ppn-navy); }
.ppn-navbar .wp-block-navigation {
	max-width: 1220px;
	margin-inline: auto;
	padding: 0 20px;
	min-height: 51px;
	justify-content: center;
	align-items: stretch;
	gap: 0;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
}
.ppn-navbar .wp-block-navigation .wp-block-navigation-item { align-items: stretch; }
.ppn-navbar .wp-block-navigation .wp-block-navigation-item > a,
.ppn-navbar .wp-block-navigation .wp-block-navigation-submenu > button {
	color: #fff;
	display: inline-flex;
	align-items: center;
	padding: 0 14px;
	min-height: 51px;
	position: relative;
	transition: color 150ms ease;
}
.ppn-navbar .wp-block-navigation .wp-block-navigation-item > a:hover { color: #fff; }
.ppn-navbar .wp-block-navigation .wp-block-navigation-item > a::after {
	content: "";
	position: absolute;
	inset-inline: 14px;
	bottom: 8px;
	height: 2px;
	background: var(--ppn-green);
	transform: scaleX(0);
	transition: transform 150ms ease;
}
.ppn-navbar .wp-block-navigation .wp-block-navigation-item > a:hover::after,
.ppn-navbar .wp-block-navigation .current-menu-item > a::after { transform: scaleX(1); }
.ppn-navbar .wp-block-navigation .wp-block-navigation-submenu__toggle svg { stroke: #fff; }
/* Dropdown panel */
.ppn-navbar .wp-block-navigation .wp-block-navigation__submenu-container {
	background: var(--ppn-surface) !important;
	border: 1px solid var(--ppn-border);
	min-width: 230px;
	padding: 6px 0;
	text-transform: none;
	font-size: 13px;
	font-weight: 600;
}
.ppn-navbar .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item > a {
	color: var(--ppn-text);
	min-height: 0;
	padding: 8px 16px;
	width: 100%;
}
.ppn-navbar .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item > a:hover {
	color: var(--ppn-green);
}
.ppn-navbar .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item > a::after { content: none; }

/* Mobile navy bar */
.ppn-mobilebar {
	display: none;
	background: var(--ppn-navy);
	color: #fff;
}
.ppn-mobilebar-row {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	min-height: 70px;
	padding: 0 14px;
}
.ppn-mobilebar .ppn-mobile-start { display: flex; align-items: center; gap: 10px; justify-self: start; }
.ppn-mobilebar .ppn-mobile-end { justify-self: end; }
.ppn-mobilebar .wp-block-site-title { margin: 0; font-size: 20px; font-weight: 700; line-height: 1.2; }
.ppn-mobilebar .wp-block-site-title a { color: #fff; }

/* Header breakpoint — reference switches to compact bar under ~1024px */
@media (max-width: 1023px) {
	.ppn-masthead, .ppn-statesbar, .ppn-navbar { display: none; }
	.ppn-mobilebar { display: block; }
}

/* Icon buttons (hamburger, search, close) */
.ppn-iconbtn {
	appearance: none;
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
}
.ppn-iconbtn svg { width: 26px; height: 26px; fill: currentColor; }

/* Dark-mode toggle pill */
.ppn-darktoggle {
	appearance: none;
	border: 0;
	cursor: pointer;
	width: 58px;
	height: 30px;
	border-radius: 15px;
	background: #e9ecef;
	position: relative;
	transition: background 150ms ease;
}
.ppn-mobilebar .ppn-darktoggle { background: rgba(255, 255, 255, 0.18); }
.ppn-darktoggle .ppn-darktoggle-knob {
	position: absolute;
	inset-block-start: 3px;
	inset-inline-start: 3px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--ppn-navy);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 150ms ease;
}
.ppn-darktoggle .ppn-darktoggle-knob svg { width: 14px; height: 14px; fill: #fff; }
html.ppn-dark .ppn-darktoggle .ppn-darktoggle-knob { transform: translateX(28px); }
html[dir="rtl"].ppn-dark .ppn-darktoggle .ppn-darktoggle-knob { transform: translateX(-28px); }

/* Search overlay */
.ppn-search-overlay {
	position: fixed;
	inset: 0;
	background: rgba(12, 20, 36, 0.96);
	z-index: 1000;
	display: none;
	align-items: flex-start;
	justify-content: center;
	padding: 18vh 20px 0;
}
.ppn-search-overlay.is-open { display: flex; }
.ppn-search-overlay .ppn-search-inner { width: min(680px, 100%); position: relative; }
.ppn-search-overlay .ppn-search-close { position: absolute; inset-block-start: -60px; inset-inline-end: 0; color: #fff; }
.ppn-search-overlay .wp-block-search__input {
	background: transparent;
	border: 0;
	border-bottom: 2px solid rgba(255, 255, 255, 0.5);
	border-radius: 0;
	color: #fff;
	font-size: 26px;
	padding: 10px 4px;
}
.ppn-search-overlay .wp-block-search__input::placeholder { color: rgba(255, 255, 255, 0.55); }
.ppn-search-overlay .wp-block-search__button {
	background: var(--ppn-green);
	color: #fff;
	border: 0;
	border-radius: 3px;
	font-weight: 700;
}

/* Off-canvas menu */
.ppn-offcanvas {
	position: fixed;
	inset-block: 0;
	inset-inline-start: 0;
	width: min(380px, 88vw);
	background: var(--ppn-surface);
	z-index: 1001;
	transform: translateX(-102%);
	transition: transform 220ms ease;
	overflow-y: auto;
	padding: 24px 28px 28px;
	box-shadow: 0 0 40px rgba(0, 0, 0, 0.25);
	display: flex;
	flex-direction: column;
}
html[dir="rtl"] .ppn-offcanvas { transform: translateX(102%); }
.ppn-offcanvas.is-open, html[dir="rtl"] .ppn-offcanvas.is-open { transform: translateX(0); }
.ppn-offcanvas-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
	z-index: 1000;
	opacity: 0;
	pointer-events: none;
	transition: opacity 220ms ease;
}
.ppn-offcanvas-backdrop.is-open { opacity: 1; pointer-events: auto; }
.ppn-offcanvas .ppn-offcanvas-close { align-self: flex-end; color: var(--ppn-ink); margin-block-end: 6px; }
.ppn-offcanvas details { border-block-end: 1px solid var(--ppn-border); }
.ppn-offcanvas summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-size: 19px;
	font-weight: 700;
	color: var(--ppn-ink);
	padding-block: 16px;
}
.ppn-offcanvas summary::-webkit-details-marker { display: none; }
.ppn-offcanvas summary::after {
	content: "";
	width: 9px;
	height: 9px;
	border-inline-start: 2px solid #bbb;
	border-block-end: 2px solid #bbb;
	transform: rotate(45deg);
	transition: transform 150ms ease;
	flex: none;
}
.ppn-offcanvas details[open] > summary { color: var(--ppn-green); }
.ppn-offcanvas details[open] > summary::after { transform: rotate(135deg); }
.ppn-offcanvas ul { list-style: none; margin: 0; padding: 0 0 10px; }
.ppn-offcanvas ul li { border-block-start: 1px solid var(--ppn-border); }
.ppn-offcanvas ul li:first-child { border-block-start: 0; }
.ppn-offcanvas ul a {
	display: block;
	padding: 13px 4px;
	color: #555;
	font-size: 15px;
	font-weight: 600;
}
html.ppn-dark .ppn-offcanvas ul a { color: #bbb; }
.ppn-offcanvas ul a:hover { color: var(--ppn-green); }
.ppn-offcanvas details details { border-block-end: 0; margin-inline-start: 8px; }
.ppn-offcanvas details details summary { font-size: 15px; padding-block: 12px; color: #444; }
html.ppn-dark .ppn-offcanvas details details summary { color: #ccc; }
.ppn-offcanvas .ppn-offcanvas-social { margin-block-start: auto; padding-block-start: 26px; display: flex; gap: 10px; }
.ppn-offcanvas .ppn-offcanvas-social a {
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}
.ppn-offcanvas .ppn-offcanvas-social a svg { width: 20px; height: 20px; fill: currentColor; }
.ppn-offcanvas .ppn-offcanvas-social .is-telegram { background: #0088cc; }
.ppn-offcanvas .ppn-offcanvas-social .is-instagram { background: #f0416c; }

/* --------------------------------------------------------------------------
   Hot-news ticker
   -------------------------------------------------------------------------- */

.ppn-ticker-row {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--ppn-border);
	background: var(--ppn-surface);
	min-height: 52px;
	margin-block-end: 30px;
}
.ppn-ticker-badge {
	background: var(--ppn-green);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 0 22px;
	white-space: nowrap;
	margin: 0;
}
.ppn-ticker-badge svg { width: 14px; height: 14px; fill: #fff; }
.ppn-ticker .wp-block-query { flex: 1; min-width: 0; display: flex; align-items: center; overflow: hidden; }
.ppn-ticker .wp-block-post-template {
	display: flex;
	margin: 0;
	padding: 0 18px;
	width: 100%;
}
.ppn-ticker .wp-block-post-template li.wp-block-post { list-style: none; width: 100%; display: none; }
.ppn-ticker .wp-block-post-template li.wp-block-post.is-active { display: block; }
.ppn-ticker .wp-block-post-template li.wp-block-post:first-child { display: block; }
.ppn-ticker.is-init .wp-block-post-template li.wp-block-post:first-child { display: none; }
.ppn-ticker.is-init .wp-block-post-template li.wp-block-post.is-active { display: block; }
.ppn-ticker .wp-block-post-title {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ppn-ticker-nav { display: flex; align-items: center; gap: 0; padding: 0 8px; }
.ppn-ticker-nav button {
	appearance: none;
	background: transparent;
	border: 0;
	border-inline-start: 1px solid var(--ppn-border);
	width: 44px;
	height: 100%;
	min-height: 50px;
	cursor: pointer;
	color: #999;
	font-size: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: color 150ms ease;
}
.ppn-ticker-nav button:hover { color: var(--ppn-ink); }

/* --------------------------------------------------------------------------
   Hero slider
   -------------------------------------------------------------------------- */

.ppn-hero { position: relative; margin-block-end: 40px; }
.ppn-hero .wp-block-post-template { display: block; margin: 0; padding: 0; position: relative; }
.ppn-hero li.wp-block-post { list-style: none; display: none; position: relative; }
.ppn-hero li.wp-block-post.is-active, .ppn-hero:not(.is-init) li.wp-block-post:first-child { display: block; }
.ppn-hero .ppn-hero-media { position: relative; overflow: hidden; }
.ppn-hero .ppn-hero-media .wp-block-post-featured-image { margin: 0; height: clamp(320px, 42vw, 520px); }
.ppn-hero .ppn-hero-media .wp-block-post-featured-image a { display: block; height: 100%; }
.ppn-hero .ppn-hero-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--ppn-shadow-overlay);
	pointer-events: none;
}
.ppn-hero .ppn-hero-caption {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	z-index: 2;
	padding: 30px clamp(20px, 5vw, 60px) 34px;
	text-align: center;
}
.ppn-hero .ppn-hero-caption .wp-block-post-title {
	margin: 0;
	font-size: clamp(22px, 2.6vw, 32px);
	font-weight: 700;
	line-height: 1.45;
	color: #fff;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
.ppn-hero .ppn-hero-caption .wp-block-post-title a { color: #fff; }
.ppn-hero-nav { position: absolute; left: 0; top: 42%; z-index: 3; display: flex; flex-direction: column; }
.ppn-hero-nav button {
	appearance: none;
	border: 0;
	cursor: pointer;
	width: 54px;
	height: 54px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: var(--ppn-green);
	transition: background 150ms ease;
}
.ppn-hero-nav button + button { background: #fff; color: var(--ppn-ink); }
.ppn-hero-nav button:hover { background: var(--ppn-green-dark); color: #fff; }
.ppn-hero-nav svg { width: 20px; height: 20px; fill: currentColor; }
.ppn-hero-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
	max-width: 620px;
	margin-inline-end: auto;
	margin-block-start: 14px;
	padding: 0;
	list-style: none;
}
.ppn-hero-thumbs button {
	appearance: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: #ddd;
}
.ppn-hero-thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ppn-hero-thumbs .ppn-thumb-title {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: 8px;
	font-size: 10px;
	font-weight: 600;
	line-height: 1.5;
	color: #fff;
	text-align: center;
	background: rgba(0, 0, 0, 0.45);
}
.ppn-hero-thumbs .is-active .ppn-thumb-title { background: rgba(20, 40, 25, 0.28); box-shadow: inset 0 0 0 2px var(--ppn-green); }

/* --------------------------------------------------------------------------
   Sidebar widgets
   -------------------------------------------------------------------------- */

.ppn-sidebar { position: sticky; top: 30px; align-self: start; }

/* Tabs widget */
.ppn-tabs { border: 1px solid var(--ppn-border); background: var(--ppn-surface); margin-block-end: 40px; }
.ppn-tabs-nav { display: flex; margin: 0; padding: 0; list-style: none; }
.ppn-tabs-nav button {
	appearance: none;
	background: var(--ppn-surface-2);
	border: 0;
	border-inline-end: 1px solid var(--ppn-border);
	border-block-end: 1px solid var(--ppn-border);
	flex: 1;
	font-size: 14px;
	font-weight: 600;
	color: #666;
	padding: 15px 8px;
	cursor: pointer;
	position: relative;
	transition: color 150ms ease;
}
html.ppn-dark .ppn-tabs-nav button { color: #aaa; }
.ppn-tabs-nav button:last-child { border-inline-end: 0; }
.ppn-tabs-nav button[aria-selected="true"] {
	background: var(--ppn-surface);
	border-block-end-color: transparent;
	color: var(--ppn-ink);
	font-weight: 700;
}
.ppn-tabs-nav button[aria-selected="true"]::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	bottom: -1px;
	height: 2px;
	background: var(--ppn-green);
	bottom: auto;
	top: -1px;
}
.ppn-tab-panel { padding: 10px 20px; }
.ppn-tab-panel[hidden] { display: none; }

/* Small post list (tabs, recommended, related) */
.ppn-list .wp-block-post-template { margin: 0; padding: 0; }
.ppn-list li.wp-block-post {
	list-style: none;
	display: flex;
	gap: 15px;
	padding-block: 16px;
	border-block-end: 1px solid var(--ppn-border);
}
.ppn-list li.wp-block-post:last-child { border-block-end: 0; }
.ppn-list .wp-block-post-featured-image {
	margin: 0;
	flex: none;
	width: 110px;
	aspect-ratio: 3 / 2;
}
.ppn-list .ppn-list-body { flex: 1; min-width: 0; text-align: start; }
.ppn-list .wp-block-post-title { margin: 0 0 8px; font-size: 15px; font-weight: 700; line-height: 1.55; }
.ppn-list .wp-block-post-date { font-size: 12px; }

/* Popular stories — numbered */
.ppn-popular { margin-block-end: 40px; }
.ppn-popular .wp-block-post-template { margin: 0; padding: 0; counter-reset: ppn-pop; }
.ppn-popular li.wp-block-post {
	list-style: none;
	counter-increment: ppn-pop;
	display: flex;
	gap: 18px;
	align-items: flex-start;
	padding-block: 18px;
	border-block-end: 1px solid var(--ppn-border);
}
.ppn-popular li.wp-block-post:last-child { border-block-end: 0; }
.ppn-popular li.wp-block-post::after {
	content: counter(ppn-pop, decimal-leading-zero);
	font-family: Georgia, "Times New Roman", serif;
	font-style: italic;
	font-size: 30px;
	line-height: 1;
	color: #c9c9c9;
	flex: none;
	min-width: 44px;
	text-align: center;
	padding-block-start: 4px;
}
.ppn-popular li.wp-block-post:first-child::after { font-size: 40px; color: #bdbdbd; }
.ppn-popular .ppn-pop-body { flex: 1; min-width: 0; text-align: start; }
.ppn-popular .wp-block-post-title { margin: 0 0 8px; font-size: 16px; font-weight: 700; line-height: 1.6; }
.ppn-popular .ppn-shares {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--ppn-meta);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}
.ppn-popular .ppn-shares svg { width: 13px; height: 13px; fill: #555; }

/* Overlay card (image + badge + title on gradient) */
.ppn-overlay-card { position: relative; overflow: hidden; margin-block-end: 20px; background: #ddd; }
.ppn-overlay-card .wp-block-post-featured-image { position: absolute; inset: 0; margin: 0; }
.ppn-overlay-card .wp-block-post-featured-image a { display: block; height: 100%; }
.ppn-overlay-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--ppn-shadow-overlay);
	pointer-events: none;
	z-index: 1;
}
.ppn-overlay-card .ppn-overlay-caption {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	z-index: 2;
	padding: 18px 20px 20px;
}
.ppn-overlay-card .ppn-overlay-caption .wp-block-post-title {
	margin: 8px 0 0;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
}
.ppn-overlay-card .ppn-overlay-caption .wp-block-post-title a { color: #fff; }
.ppn-overlay-card.is-tall { aspect-ratio: 4 / 5; }
.ppn-overlay-card.is-wide { aspect-ratio: 16 / 10; }
.ppn-overlay-list .wp-block-post-template { margin: 0; padding: 0; display: grid; gap: 20px; }
.ppn-overlay-list li.wp-block-post { list-style: none; }

/* Latest-post list with excerpt + read more */
.ppn-latest .wp-block-post-template { margin: 0; padding: 0; }
.ppn-latest li.wp-block-post {
	list-style: none;
	padding-block: 4px 26px;
	border-block-end: 1px solid var(--ppn-border);
	margin-block-end: 24px;
	text-align: start;
}
.ppn-latest li.wp-block-post:last-child { border-block-end: 0; margin-block-end: 0; }
.ppn-latest .wp-block-post-title { margin: 0 0 10px; font-size: 20px; font-weight: 700; line-height: 1.55; }
.ppn-latest .wp-block-post-excerpt { margin: 12px 0 0; font-size: 14px; line-height: 1.9; color: #555; }
html.ppn-dark .ppn-latest .wp-block-post-excerpt { color: #b5b5b5; }
.ppn-latest .wp-block-post-excerpt__more-text { display: none; }
.ppn-readmore { margin-block-start: 16px; }
.ppn-readmore .wp-block-read-more, a.ppn-readmore-link {
	display: inline-block;
	border: 1px solid #dedede;
	color: #444;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 12px 24px;
	transition: all 150ms ease;
}
html.ppn-dark .ppn-readmore .wp-block-read-more { color: #ccc; border-color: #3a3a3a; }
.ppn-readmore .wp-block-read-more:hover { background: var(--ppn-green); border-color: var(--ppn-green); color: #fff; }

/* Card grid (archives, sections with content) */
.ppn-grid .wp-block-post-template {
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px 20px;
}
.ppn-grid li.wp-block-post { list-style: none; }
.ppn-grid .wp-block-post-featured-image { margin: 0 0 14px; aspect-ratio: 16 / 10; }
.ppn-grid .wp-block-post-title { margin: 0 0 8px; font-size: 17px; font-weight: 700; line-height: 1.6; }
.ppn-grid.ppn-grid-featured li.wp-block-post:first-child { grid-column: 1 / -1; }
.ppn-grid.ppn-grid-featured li.wp-block-post:first-child .wp-block-post-featured-image { aspect-ratio: 16 / 8.4; }
.ppn-grid.ppn-grid-featured li.wp-block-post:first-child .wp-block-post-title { font-size: 24px; }

/* Ad placeholder bands */
.ppn-band-dark { background: var(--ppn-dark); min-height: 100px; margin-block: 10px 40px; }
.ppn-band-light { background: #f5f5f5; min-height: 110px; margin-block: 10px 40px; }
html.ppn-dark .ppn-band-light { background: #1e1e1e; }

/* Follow-us social row (sidebar) */
.ppn-follow { margin-block-end: 40px; }
.ppn-follow .wp-block-social-links { gap: 18px; justify-content: flex-start; }

/* --------------------------------------------------------------------------
   Single post
   -------------------------------------------------------------------------- */

.ppn-single-hero {
	position: relative;
	min-height: clamp(430px, 86vh, 820px);
	display: flex;
	align-items: flex-end;
	justify-content: center;
	overflow: hidden;
	background: var(--ppn-navy);
	margin: 0;
}
.ppn-single-hero .wp-block-post-featured-image {
	position: absolute;
	inset: 0;
	margin: 0;
	z-index: 0;
}
.ppn-single-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(10, 16, 28, 0.25) 0%, rgba(10, 16, 28, 0.72) 100%);
}
.ppn-single-hero .ppn-single-hero-inner {
	position: relative;
	z-index: 2;
	text-align: center;
	max-width: 900px;
	padding: 0 20px 12vh;
}
.ppn-single-hero .wp-block-post-title {
	color: #fff;
	font-size: clamp(26px, 3.6vw, 40px);
	line-height: 1.35;
	font-weight: 700;
	margin: 0 0 22px;
}
.ppn-single-hero .ppn-single-meta {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px 18px;
	color: rgba(255, 255, 255, 0.92);
	font-size: 13px;
}
.ppn-single-hero .ppn-single-meta a { color: #fff; font-weight: 700; }
.ppn-single-hero .ppn-single-meta .wp-block-post-terms { color: rgba(255, 255, 255, 0.92); }
.ppn-single-hero .ppn-single-meta .taxonomy-category::before { content: "in"; margin-inline-end: 6px; font-weight: 400; }
html[lang^="fa"] .ppn-single-hero .ppn-single-meta .taxonomy-category::before { content: "در"; }
.ppn-single-hero .ppn-scrolldown {
	position: absolute;
	bottom: 26px;
	inset-inline-start: 50%;
	transform: translateX(-50%);
	z-index: 3;
	color: #fff;
	opacity: 0.85;
}
html[dir="rtl"] .ppn-single-hero .ppn-scrolldown { transform: translateX(50%); }
.ppn-scrolldown svg { width: 34px; height: 34px; fill: currentColor; }

.ppn-single-body { padding-block-start: 50px; }

/* Article typography */
.ppn-article .wp-block-post-content, .ppn-article-content {
	font-size: 16px;
	line-height: 1.65;
	color: var(--ppn-text);
}
.ppn-article .wp-block-post-content p { margin-block: 0 1.35em; }
.ppn-article .wp-block-post-content :is(h2, h3, h4) { margin-block: 1.6em 0.7em; }
.ppn-article .wp-block-post-content a { color: var(--ppn-green); }
.ppn-article .wp-block-post-content a:hover { color: var(--ppn-green-dark); }
.ppn-article .wp-block-post-content blockquote {
	border-inline-start: 3px solid var(--ppn-green);
	margin-inline: 0;
	padding: 6px 24px;
	color: #555;
	font-style: italic;
}

/* Prev / next */
.ppn-prevnext {
	display: flex;
	justify-content: space-between;
	gap: 30px;
	border-block: 1px solid var(--ppn-border);
	padding-block: 20px;
	margin-block: 44px 40px;
}
.ppn-prevnext .wp-block-post-navigation-link { font-size: 14px; }
.ppn-prevnext .post-navigation-link__label { color: var(--ppn-green); font-weight: 700; display: block; margin-block-end: 6px; }
.ppn-prevnext a { color: var(--ppn-ink); font-weight: 700; line-height: 1.6; }
.ppn-prevnext a:hover { color: var(--ppn-green); }

/* Author box */
.ppn-authorbox {
	display: flex;
	gap: 22px;
	align-items: flex-start;
	border: 1px solid var(--ppn-border);
	background: var(--ppn-surface);
	padding: 26px;
	margin-block-end: 44px;
}
.ppn-authorbox .wp-block-post-author-biography { font-size: 14px; color: #555; line-height: 1.9; }
html.ppn-dark .ppn-authorbox .wp-block-post-author-biography { color: #b5b5b5; }
.ppn-authorbox .wp-block-avatar img { border-radius: 50%; }
.ppn-authorbox .wp-block-post-author-name { font-size: 18px; font-weight: 700; margin-block-end: 4px; }
.ppn-authorbox .wp-block-post-author-name a { color: var(--ppn-ink); }

/* Related */
.ppn-related { margin-block-end: 44px; }

/* Comments */
.ppn-comments { margin-block-end: 60px; }
.ppn-comments .wp-block-post-comments-form input[type="text"],
.ppn-comments .wp-block-post-comments-form input[type="email"],
.ppn-comments .wp-block-post-comments-form input[type="url"],
.ppn-comments .wp-block-post-comments-form textarea {
	border: 1px solid #ddd;
	border-radius: 3px;
	background: var(--ppn-surface);
	color: var(--ppn-text);
	padding: 12px;
	font-size: 16px;
	font-family: inherit;
}
.ppn-comments .wp-block-post-comments-form input[type="submit"] {
	background: var(--ppn-green);
	border: 0;
	border-radius: 3px;
	color: #fff;
	font-weight: 700;
	padding: 13px 28px;
	cursor: pointer;
}
.ppn-comments .wp-block-post-comments-form input[type="submit"]:hover { background: var(--ppn-green-dark); }

/* Reading progress */
.ppn-progress {
	position: fixed;
	inset-inline-start: 0;
	bottom: 0;
	height: 4px;
	width: 0;
	background: var(--ppn-red);
	z-index: 999;
	pointer-events: none;
}

/* --------------------------------------------------------------------------
   Archives (category / tag / author / search / 404)
   -------------------------------------------------------------------------- */

.ppn-archive-hero {
	background: linear-gradient(200deg, #223a63 0%, #1a2b4c 55%, #0d1729 100%);
	min-height: 250px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 40px 20px;
	margin: 0;
}
.ppn-archive-hero :is(h1, .wp-block-query-title) {
	color: #fff;
	font-size: clamp(30px, 4vw, 44px);
	font-weight: 700;
	margin: 0;
}
.ppn-breadcrumb-bar {
	border-block-end: 1px solid var(--ppn-border);
	background: var(--ppn-surface);
	margin-block-end: 44px;
}
.ppn-breadcrumb {
	max-width: 1220px;
	margin-inline: auto;
	padding: 15px 20px;
	font-size: 14px;
	color: var(--ppn-meta);
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.ppn-breadcrumb a { color: #555; }
html.ppn-dark .ppn-breadcrumb a { color: #bbb; }
.ppn-breadcrumb a:hover { color: var(--ppn-green); }
.ppn-breadcrumb .sep { color: #c5c5c5; }

/* Pagination */
.ppn-pagination { margin-block: 40px 70px; }
.ppn-pagination .wp-block-query-pagination-numbers a,
.ppn-pagination .wp-block-query-pagination-numbers .current,
.ppn-pagination :is(.wp-block-query-pagination-previous, .wp-block-query-pagination-next) {
	display: inline-block;
	border: 1px solid var(--ppn-border);
	padding: 9px 15px;
	font-size: 14px;
	font-weight: 600;
	color: #555;
	line-height: 1;
}
html.ppn-dark .ppn-pagination .wp-block-query-pagination-numbers a { color: #bbb; }
.ppn-pagination .wp-block-query-pagination-numbers .current {
	background: var(--ppn-green);
	border-color: var(--ppn-green);
	color: #fff;
}
.ppn-pagination a:hover { border-color: var(--ppn-green); color: var(--ppn-green); }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.ppn-footer { background: var(--ppn-navy); color: #fff; margin-block-start: 60px; }
.ppn-footer-main { text-align: center; padding: 64px 20px 56px; }
.ppn-footer-main .ppn-footer-tagline { font-size: 16px; margin: 0 0 26px; color: rgba(255, 255, 255, 0.95); }
.ppn-footer-main .ppn-footer-brand { font-size: 18px; font-weight: 700; margin: 0 0 30px; color: #fff; }
.ppn-footer-main .wp-block-social-links { justify-content: center; gap: 14px; }
.ppn-footer .wp-block-social-links .wp-block-social-link {
	background: #e9ecef !important;
	border-radius: 4px;
	width: 46px;
	height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background 150ms ease;
}
.ppn-footer .wp-block-social-links .wp-block-social-link a { color: #43464b; padding: 0; display: inline-flex; }
.ppn-footer .wp-block-social-links .wp-block-social-link svg { width: 22px; height: 22px; }
.ppn-footer .wp-block-social-links .wp-block-social-link:hover { background: var(--ppn-green) !important; }
.ppn-footer .wp-block-social-links .wp-block-social-link:hover a { color: #fff; }
.ppn-footer-bottom {
	border-block-start: 1px solid rgba(255, 255, 255, 0.12);
	padding: 22px 20px;
}
.ppn-footer-tags {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
	font-weight: 600;
}
.ppn-footer-tags a { color: rgba(255, 255, 255, 0.88); padding: 10px 14px; }
.ppn-footer-tags a:hover { color: #fff; }
.ppn-footer-tags li { display: flex; align-items: center; }
.ppn-footer-tags li + li::before { content: "/"; color: rgba(255, 255, 255, 0.35); }

/* --------------------------------------------------------------------------
   Layout scaffolding
   -------------------------------------------------------------------------- */

.ppn-container { max-width: 1220px; margin-inline: auto; padding-inline: 20px; }
.ppn-main-grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(270px, 31%, 360px); gap: 40px; align-items: start; }
.ppn-main-grid > .ppn-col-main { order: 0; min-width: 0; }
.ppn-main-grid > .ppn-col-side { order: 1; min-width: 0; }
.ppn-bottom-grid { display: grid; grid-template-columns: 3fr 4fr 3fr; gap: 40px; align-items: start; max-width: 1040px; margin-inline: auto; }

@media (max-width: 767px) {
	.ppn-main-grid { grid-template-columns: 1fr; }
	.ppn-bottom-grid { grid-template-columns: 1fr; max-width: 640px; }
	.ppn-sidebar { position: static; }
}
@media (max-width: 599px) {
	.ppn-grid .wp-block-post-template { grid-template-columns: 1fr; }
	.ppn-hero-thumbs { grid-template-columns: repeat(4, 1fr); gap: 8px; }
	.ppn-ticker-badge { padding: 0 12px; font-size: 11px; }
	.ppn-latest .wp-block-post-title { font-size: 18px; }
	.ppn-prevnext { flex-direction: column; }
	.ppn-authorbox { flex-direction: column; align-items: center; text-align: center; }
}

/* Sections stack rhythm */
.ppn-section { margin-block-end: 40px; }

/* Skip link */
.ppn-skip {
	position: absolute;
	inset-inline-start: -9999px;
	top: 0;
	background: var(--ppn-green);
	color: #fff;
	padding: 10px 18px;
	z-index: 2000;
}
.ppn-skip:focus { inset-inline-start: 0; color: #fff; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Editor niceties: make custom-HTML controls visible in canvas */
.editor-styles-wrapper .ppn-offcanvas { position: static; transform: none; box-shadow: none; }
.editor-styles-wrapper .ppn-search-overlay { display: none; }

/* --------------------------------------------------------------------------
   Module refinements
   -------------------------------------------------------------------------- */

/* Navigation containers (core renders <nav><ul class="wp-block-navigation__container">) */
.ppn-statesbar ul.wp-block-navigation__container,
.ppn-navbar ul.wp-block-navigation__container,
.ppn-footer-tags ul.wp-block-navigation__container,
ul.wp-block-navigation__container.ppn-footer-tags {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ppn-statesbar ul.wp-block-navigation__container { gap: 34px; }
.ppn-navbar ul.wp-block-navigation__container { gap: 0; }

/* Sticky navy bar */
.ppn-navbar, .ppn-mobilebar { position: sticky; top: 0; z-index: 95; }
body.admin-bar .ppn-navbar, body.admin-bar .ppn-mobilebar { top: 32px; }

/* Footer brand + tagline */
.ppn-footer-brand a { color: #fff; }
.ppn-footer-brand a:hover { color: #fff; }
.ppn-footer .wp-block-site-tagline { color: rgba(255, 255, 255, 0.95); }
.ppn-footer-tags a::after { content: none; }

/* Search overlay plain form */
.ppn-search-form { display: flex; gap: 14px; align-items: flex-end; }
.ppn-search-form input[type="search"] {
	flex: 1;
	background: transparent;
	border: 0;
	border-bottom: 2px solid rgba(255, 255, 255, 0.5);
	border-radius: 0;
	color: #fff;
	font-size: 26px;
	font-family: inherit;
	padding: 10px 4px;
	min-width: 0;
}
.ppn-search-form input[type="search"]::placeholder { color: rgba(255, 255, 255, 0.55); }
.ppn-search-form button {
	background: var(--ppn-green);
	color: #fff;
	border: 0;
	border-radius: 3px;
	font-weight: 700;
	font-family: inherit;
	font-size: 15px;
	padding: 12px 26px;
	cursor: pointer;
}
.ppn-search-form button:hover { background: var(--ppn-green-dark); }

/* In-page search box (search results / 404) */
.ppn-searchbox { max-width: 680px; margin-inline: auto; margin-block-end: 44px; }
.ppn-searchbox .wp-block-search__input {
	border: 1px solid #ddd;
	border-radius: 3px;
	padding: 12px 14px;
	font-size: 16px;
	font-family: inherit;
	background: var(--ppn-surface);
	color: var(--ppn-text);
}
.ppn-searchbox .wp-block-search__button {
	background: var(--ppn-green);
	color: #fff;
	border: 0;
	border-radius: 3px;
	font-weight: 700;
	font-family: inherit;
	padding: 12px 26px;
	cursor: pointer;
}
.ppn-searchbox .wp-block-search__button:hover { background: var(--ppn-green-dark); }

/* Recent News — first item becomes an overlay card */
.ppn-recent { margin-block-end: 40px; }
.ppn-recent-list li.wp-block-post:first-child {
	display: block;
	position: relative;
	border-block-end: 0;
	padding-block: 0 4px;
	overflow: hidden;
}
.ppn-recent-list li.wp-block-post:first-child .wp-block-post-featured-image {
	width: 100%;
	aspect-ratio: 16 / 10;
	margin: 0;
}
.ppn-recent-list li.wp-block-post:first-child .wp-block-post-featured-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--ppn-shadow-overlay);
	pointer-events: none;
}
.ppn-recent-list li.wp-block-post:first-child .wp-block-post-featured-image { position: relative; }
.ppn-recent-list li.wp-block-post:first-child .ppn-list-body {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	padding: 16px 18px;
	text-align: start;
}
.ppn-recent-list li.wp-block-post:first-child .wp-block-post-title { font-size: 17px; }
.ppn-recent-list li.wp-block-post:first-child .wp-block-post-title a { color: #fff; }

/* Archive featured-first card overlay */
.ppn-card-media { position: relative; overflow: hidden; margin-block-end: 14px; }
.ppn-card-media .wp-block-post-featured-image { margin: 0; aspect-ratio: 16 / 10; }
.ppn-grid .ppn-card-media + .ppn-card-body .wp-block-post-title { margin-block-start: 0; }
.ppn-grid-featured li.wp-block-post:first-child { position: relative; overflow: hidden; }
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-media { margin: 0; }
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-media .wp-block-post-featured-image { aspect-ratio: 16 / 9; }
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--ppn-shadow-overlay);
	pointer-events: none;
}
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-body {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	padding: 20px 24px;
}
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-body .wp-block-post-title { font-size: 24px; line-height: 1.5; }
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-body .wp-block-post-title a { color: #fff; }
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-body .wp-block-post-date { color: #e6e6e6; }

/* 404 four-up grid */
.ppn-grid-4 .wp-block-post-template { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1023px) { .ppn-grid-4 .wp-block-post-template { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 599px) { .ppn-grid-4 .wp-block-post-template { grid-template-columns: 1fr; } }
.ppn-404-body { padding-block: 10px 30px; }
.ppn-404-body > p { margin-block-end: 30px; }

/* Most Popular cards (bottom band, left column) */
.ppn-mp .wp-block-post-template { display: grid; gap: 26px; margin: 0; padding: 0; }
.ppn-mp li.wp-block-post { list-style: none; }
.ppn-mp-media { position: relative; overflow: hidden; margin-block-end: 12px; }
.ppn-mp-media .wp-block-post-featured-image { margin: 0; aspect-ratio: 16 / 9; }
.ppn-mp-media .ppn-badge { position: absolute; inset-inline-start: 0; bottom: 0; }
.ppn-mp-card .wp-block-post-title { margin: 0 0 6px; font-size: 16px; font-weight: 700; line-height: 1.6; text-align: start; }
.ppn-mp-card .ppn-date-icon { text-align: start; }

/* Bottom band columns */
.ppn-bottom-grid { padding-block: 10px 30px; }
.ppn-bottom-col { min-width: 0; }

/* Single-post meta row parts */
.ppn-single-meta .ppn-meta-comments { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-weight: 700; }
.ppn-single-meta .ppn-meta-in { font-weight: 400; opacity: 0.85; margin-inline-end: 4px; }
.ppn-single-meta .ppn-meta-cats a { color: #fff; font-weight: 700; }

/* Comments layout */
.ppn-comment { display: flex; gap: 16px; padding-block: 18px; border-block-end: 1px solid var(--ppn-border); }
.ppn-comment .wp-block-avatar img { border-radius: 50%; }
.ppn-comment-body { flex: 1; min-width: 0; }
.ppn-comment-body .wp-block-comment-author-name { font-weight: 700; font-size: 15px; }
.ppn-comment-body .wp-block-comment-date { color: var(--ppn-meta); font-size: 12px; margin-block-end: 6px; }
.ppn-comment-body .wp-block-comment-reply-link a { color: var(--ppn-green); font-size: 13px; font-weight: 700; }

/* Static page body */
.ppn-page-body { max-width: 860px; padding-block: 10px 60px; }

/* Author box body */
.ppn-authorbox-body { flex: 1; min-width: 0; }
.ppn-authorbox .wp-block-avatar { flex: none; }

/* Guides / tall overlay card caption alignment */
.ppn-overlay-card .ppn-overlay-caption { z-index: 2; text-align: start; }

/* Hero: no-JS fallback keeps first slide visible; hide nav if single slide */
.ppn-hero:not(.is-init) .ppn-hero-nav { display: none; }

/* Mobile bar end group holds toggle + search */
.ppn-mobilebar .ppn-mobile-end { display: flex; align-items: center; gap: 8px; justify-self: end; }

/* Button focus color (parent theme references an undefined accent) */
:root :where(.wp-element-button:focus, .wp-block-button__link:focus) { outline-color: var(--ppn-green); }

/* Heading style 5 — "Featured Stories": rule fills inline-end side, second word green */
.ppn-heading-5 {
	display: flex;
	direction: ltr;
	align-items: center;
	gap: 24px;
	font-size: 17px;
	font-weight: 700;
	color: var(--ppn-ink);
	margin-block: 0 20px;
}
.ppn-heading-5 span { color: var(--ppn-green); margin-inline-start: 0.35em; }
.ppn-heading-5::after { content: ""; flex: 1; height: 1px; background: var(--ppn-border); order: -1; }

/* Popular Stories — first item carries a full-width image; number divider */
.ppn-popular li.wp-block-post { flex-wrap: wrap; }
.ppn-popular .wp-block-post-featured-image { display: none; }
.ppn-popular li.wp-block-post:first-child .wp-block-post-featured-image {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	margin: 0 0 16px;
}
.ppn-popular li.wp-block-post::after { border-inline-start: 1px solid var(--ppn-border); padding-inline-start: 14px; }

/* Guides mini slider */
.ppn-mini-slider { position: relative; margin-block-end: 40px; }
.ppn-mini-slider .wp-block-post-template { display: block; margin: 0; padding: 0; }
.ppn-mini-slider li.wp-block-post { list-style: none; display: none; }
.ppn-mini-slider li.wp-block-post.is-active,
.ppn-mini-slider:not(.is-init) li.wp-block-post:first-child { display: block; }
.ppn-mini-slider .ppn-overlay-card { margin-block-end: 0; }
.ppn-mini-nav { position: absolute; inset-inline: 14px; bottom: 14px; display: flex; justify-content: space-between; pointer-events: none; z-index: 3; }
.ppn-mini-nav button {
	pointer-events: auto;
	appearance: none;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.75);
	color: #fff;
	width: 34px;
	height: 34px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background 150ms ease;
}
.ppn-mini-nav button:hover { background: var(--ppn-green); border-color: var(--ppn-green); }
.ppn-mini-nav svg { width: 16px; height: 16px; fill: currentColor; }


/* --------------------------------------------------------------------------
   Hardening against core flow-layout injected margins (live-site parity)
   Core adds margin-block-start: 20px to children of .is-layout-flow groups;
   inside our flex/grid modules those margins must not apply.
   -------------------------------------------------------------------------- */
.ppn-ticker-row > *,
.ppn-ticker .wp-block-query,
.ppn-ticker .wp-block-post-template,
.ppn-main-grid > *,
.ppn-bottom-grid > *,
.ppn-masthead-row > *,
.ppn-mobilebar-row > *,
.ppn-tabs > *,
.ppn-tab-panel > .wp-block-query,
.ppn-list li.wp-block-post > *,
.ppn-list-body > *,
.ppn-popular li.wp-block-post > *,
.ppn-pop-body > *,
.ppn-grid li.wp-block-post > *,
.ppn-card-media + .ppn-card-body,
.ppn-card-body > *,
.ppn-mp-card > *,
.ppn-mp-media > *,
.ppn-overlay-card > *,
.ppn-overlay-caption > *,
.ppn-hero-media > *,
.ppn-hero-caption > *,
.ppn-latest li.wp-block-post > *,
.ppn-authorbox > *,
.ppn-authorbox-body > *,
.ppn-comment > *,
.ppn-comment-body > *,
.ppn-prevnext > *,
.ppn-single-hero > *,
.ppn-single-hero-inner > *,
.ppn-follow > .wp-block-social-links,
.ppn-footer-main > *,
.ppn-footer-bottom > * {
	margin-block-start: 0;
}
.ppn-list-body .wp-block-post-title { margin-block-end: 8px; }
.ppn-pop-body .wp-block-post-title { margin-block-end: 8px; }
.ppn-footer-main > .ppn-footer-tagline { margin-block-end: 26px; }
.ppn-footer-main > .ppn-footer-brand { margin-block-end: 30px; }
.ppn-single-hero-inner .wp-block-post-title { margin-block-end: 22px; }

/* Font-swap stability: metric-matched fallback (kills swap CLS) */
@font-face {
	font-family: "Vazirmatn Fallback";
	src: local("Tahoma");
	size-adjust: 104%;
	ascent-override: 98.6%;
	descent-override: 51.6%;
	line-gap-override: 0%;
}

/* Small screens: slimmer hero arrows, kept clear of the caption */
@media (max-width: 599px) {
	.ppn-hero-nav button { width: 40px; height: 40px; }
	.ppn-hero-nav svg { width: 16px; height: 16px; }
}

/* --------------------------------------------------------------------------
   v1.2 — photos carry their own burned-in titles: hide duplicated overlay
   titles (kept for screen readers), lighten overlay gradients accordingly.
   -------------------------------------------------------------------------- */
.ppn-sr-only,
.ppn-hero-caption .wp-block-post-title,
.ppn-overlay-caption .wp-block-post-title {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0; border: 0;
	clip-path: inset(50%);
	overflow: hidden;
	white-space: nowrap;
}
.ppn-hero-thumbs .ppn-thumb-title { color: transparent; background: rgba(0, 0, 0, 0.18); }
.ppn-hero-thumbs .is-active .ppn-thumb-title { background: rgba(20, 40, 25, 0.1); }
.ppn-hero .ppn-hero-media::after,
.ppn-overlay-card::after {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 72%, rgba(0, 0, 0, 0.38) 100%);
}
.ppn-hero .ppn-hero-caption { padding: 0; }
.ppn-overlay-card .ppn-overlay-caption { padding: 0 14px 14px; }

/* Archive lead card + Recent News lead: title moves below the photo */
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-media::after { content: none; }
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-media { margin-block-end: 14px; }
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-body {
	position: static;
	padding: 0;
}
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-body .wp-block-post-title { font-size: 22px; }
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-body .wp-block-post-title a { color: inherit; }
.ppn-grid-featured li.wp-block-post:first-child .ppn-card-body .wp-block-post-date { color: var(--ppn-meta); }
.ppn-recent-list li.wp-block-post:first-child .wp-block-post-featured-image::after { content: none; }
.ppn-recent-list li.wp-block-post:first-child .ppn-list-body {
	position: static;
	padding: 12px 0 0;
}
.ppn-recent-list li.wp-block-post:first-child .wp-block-post-title a { color: inherit; }

/* Single post: bare image banner, then title + meta above the text */
.ppn-single-hero.is-bare {
	min-height: 0;
	height: clamp(300px, 46vw, 560px);
	display: block;
}
.ppn-single-hero.is-bare::after { content: none; }
.ppn-single-hero.is-bare .wp-block-post-featured-image { position: static; height: 100%; }
.ppn-single-head {
	border-block-end: 1px solid var(--ppn-border);
	padding-block-end: 22px;
	margin-block-end: 28px;
}
.ppn-single-head .wp-block-post-title {
	font-size: clamp(24px, 2.6vw, 34px);
	font-weight: 800;
	line-height: 1.55;
	color: var(--ppn-ink);
	margin: 0 0 14px;
}
.ppn-single-head .ppn-single-meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 18px;
	color: var(--ppn-meta);
	font-size: 13px;
}
.ppn-single-head .ppn-single-meta a { color: var(--ppn-meta); font-weight: 600; }
.ppn-single-head .ppn-single-meta .ppn-meta-cats a { color: var(--ppn-green); font-weight: 700; }
.ppn-single-head .ppn-single-meta a:hover { color: var(--ppn-green); }

/* --------------------------------------------------------------------------
   v1.2 — Instagram link-in-bio template
   -------------------------------------------------------------------------- */
.ppn-ig {
	max-width: 500px;
	margin-inline: auto;
	min-height: 100vh;
	background: var(--ppn-paper);
	padding: 40px 4px 30px;
}
.ppn-ig-head { text-align: center; padding-inline: 16px; margin-block-end: 26px; }
.ppn-ig-head > * { margin-block-start: 0; }
.ppn-ig .ppn-ig-avatar { display: flex; justify-content: center; margin-block-end: 16px; }
.ppn-ig .ppn-ig-avatar img {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid var(--ppn-border);
	padding: 3px;
	background: var(--ppn-paper);
}
.ppn-ig .ppn-ig-name { font-size: 22px; font-weight: 800; margin: 0 0 6px; }
.ppn-ig .ppn-ig-name a { color: var(--ppn-ink); }
.ppn-ig .ppn-ig-tagline { font-size: 14px; color: var(--ppn-meta); margin: 0 0 18px; }
.ppn-ig-actions { display: flex; gap: 10px; justify-content: center; }
.ppn-ig-btn {
	display: inline-block;
	padding: 10px 22px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 700;
	border: 1px solid var(--ppn-border);
	color: var(--ppn-ink);
	background: var(--ppn-surface-2);
	transition: all 150ms ease;
}
.ppn-ig-btn.is-primary { background: var(--ppn-navy); border-color: var(--ppn-navy); color: #fff; }
.ppn-ig-btn:hover { background: var(--ppn-green); border-color: var(--ppn-green); color: #fff; }
.ppn-ig-grid .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3px;
	margin: 0;
	padding: 0;
}
.ppn-ig-grid li.wp-block-post { list-style: none; }
.ppn-ig-grid .wp-block-post-featured-image {
	margin: 0;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.ppn-ig-grid .wp-block-post-featured-image a { display: block; height: 100%; }
.ppn-ig-grid .wp-block-post-featured-image img { transition: transform 200ms ease; }
.ppn-ig-grid .wp-block-post-featured-image a:hover img { transform: scale(1.04); }
.ppn-ig-foot { text-align: center; padding-block-start: 26px; }
.ppn-ig-foot .ppn-ig-footname { font-size: 13px; font-weight: 600; margin: 0; }
.ppn-ig-foot .ppn-ig-footname a { color: var(--ppn-meta); }

/* IG grid: neutralize core flow margins, keep tiles perfectly square */
.ppn-ig-grid .wp-block-post-template > li.wp-block-post,
.ppn-ig-grid li.wp-block-post > * { margin-block-start: 0; }
.ppn-ig-head .ppn-ig-actions { margin-block-start: 0; }


/* ==========================================================================
   Fixes 2026-09-02 — justified article text, full-square media, ticker
   centering, mobile crawler ticker, modern off-canvas menu + search.
   Pure CSS overrides appended after base styles; no new HTTP requests.
   ========================================================================== */

/* 1 — Single post: justified body text (desktop + mobile) */
.ppn-article .entry-content p { text-align: justify; }

/* 2 — Single post header image: full square shown uncropped,
       capped to ~85vh and centered on wide screens */
.ppn-single-hero.is-bare { height: auto; background: transparent; }
.ppn-single-hero.is-bare .wp-block-post-featured-image {
	height: auto;
	max-width: min(85vh, 100%);
	margin-inline: auto;
}
.ppn-single-hero.is-bare .wp-block-post-featured-image img { height: auto; }

/* 3 — Small-list thumbnails (trending tab, recommended, related):
       full square, never stretched to the text height */
.ppn-list li.wp-block-post { align-items: flex-start; }
.ppn-list .wp-block-post-featured-image {
	aspect-ratio: 1 / 1;
	height: auto;
	align-self: flex-start;
}

/* 4 — Ticker: vertically center the headline on the line */
.ppn-ticker .wp-block-post-template { align-items: center; min-height: 100%; }
.ppn-ticker .wp-block-post-template li.wp-block-post:first-child,
.ppn-ticker.is-init .wp-block-post-template li.wp-block-post.is-active {
	display: flex;
	align-items: center;
}
.ppn-ticker .wp-block-post-title { line-height: 1.4; }

/* 5 — Mobile ticker: red icon box + auto-moving crawler */
.ppn-ticker-crawl { display: none; }
@media (max-width: 599px) {
	.ppn-ticker.has-crawl .ppn-ticker-badge {
		background: var(--ppn-red, #dc3545);
		flex: 0 0 48px;
		padding: 0;
		gap: 0;
		font-size: 0;
		letter-spacing: 0;
		justify-content: center;
	}
	.ppn-ticker.has-crawl .ppn-ticker-badge svg { width: 18px; height: 18px; }
	.ppn-ticker.has-crawl .ppn-ticker-nav,
	.ppn-ticker.has-crawl .wp-block-query { display: none; }
	.ppn-ticker.has-crawl .ppn-ticker-crawl {
		display: flex;
		flex: 1 1 auto;
		min-width: 0;
		overflow: hidden;
		align-items: center;
	}
	.ppn-ticker-crawl-track {
		display: inline-flex;
		align-items: center;
		white-space: nowrap;
		will-change: transform;
		animation: ppn-crawl var(--ppn-crawl-dur, 30s) linear infinite;
	}
	.ppn-ticker-crawl:active .ppn-ticker-crawl-track { animation-play-state: paused; }
	.ppn-ticker-crawl-track a {
		font-size: 14px;
		font-weight: 600;
		color: var(--ppn-ink);
		text-decoration: none;
		padding: 0 14px;
	}
	.ppn-crawl-sep { color: var(--ppn-red, #dc3545); font-size: 9px; }
	@media (prefers-reduced-motion: reduce) {
		.ppn-ticker-crawl-track { animation: none; }
		.ppn-ticker.has-crawl .ppn-ticker-crawl { overflow-x: auto; }
	}
}
@keyframes ppn-crawl { from { transform: translateX(0); } to { transform: translateX(50%); } }

/* 6 — Off-canvas menu: modern layout + search box */
.ppn-offcanvas { padding: 14px 16px 20px; }
.ppn-offcanvas-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-block-end: 8px;
}
.ppn-offcanvas-brand { font-weight: 800; font-size: 16px; color: var(--ppn-ink); }
.ppn-offcanvas .ppn-offcanvas-close {
	position: static;
	width: 38px;
	height: 38px;
	border-radius: 12px;
	background: var(--ppn-surface-2);
	border: 1px solid var(--ppn-border);
	color: var(--ppn-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
}
.ppn-offcanvas .ppn-offcanvas-close svg { width: 15px; height: 15px; fill: currentColor; }

.ppn-offcanvas-search { position: relative; margin: 4px 0 14px; }
.ppn-offcanvas-search input {
	width: 100%;
	height: 48px;
	border: 1.5px solid var(--ppn-border);
	background: var(--ppn-surface-2);
	border-radius: 14px;
	padding-inline: 14px 52px;
	font: inherit;
	font-size: 14px;
	color: var(--ppn-ink);
	outline: none;
	transition: border-color 150ms, box-shadow 150ms;
}
.ppn-offcanvas-search input:focus {
	border-color: var(--ppn-green);
	box-shadow: 0 0 0 3px rgba(25, 135, 84, 0.15);
	background: var(--ppn-surface);
}
.ppn-offcanvas-search button {
	appearance: none;
	position: absolute;
	inset-inline-end: 6px;
	top: 6px;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 10px;
	background: var(--ppn-navy);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.ppn-offcanvas-search button svg { width: 16px; height: 16px; fill: #fff; }

.ppn-offcanvas > details {
	border: 1px solid var(--ppn-border);
	border-radius: 16px;
	background: var(--ppn-surface);
	overflow: hidden;
	margin: 0 0 10px;
	padding: 0;
}
.ppn-offcanvas summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
}
.ppn-offcanvas summary::-webkit-details-marker { display: none; }
.ppn-offcanvas summary::after {
	content: "";
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 200ms;
	margin-inline-start: 8px;
	opacity: 0.5;
	flex: 0 0 auto;
}
.ppn-offcanvas details[open] > summary::after { transform: rotate(-135deg); }
.ppn-offcanvas > details > summary {
	padding: 14px 16px;
	font-weight: 700;
	font-size: 14px;
	color: var(--ppn-ink);
}
.ppn-offcanvas > details[open] > summary { border-block-end: 1px solid var(--ppn-border); }

/* state links as a 2-column chip grid */
.ppn-offcanvas > details > ul {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	padding: 12px;
	margin: 0;
	list-style: none;
}
.ppn-offcanvas > details > ul > li { margin: 0; padding: 0; }
.ppn-offcanvas > details > ul > li > a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	border-radius: 12px;
	background: var(--ppn-surface-2);
	border: 1px solid var(--ppn-border);
	color: var(--ppn-ink);
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
	padding: 4px 8px;
	text-align: center;
	transition: background 150ms, color 150ms;
}
.ppn-offcanvas > details > ul > li > a:hover,
.ppn-offcanvas > details > ul > li > a:active {
	background: var(--ppn-green);
	border-color: var(--ppn-green);
	color: #fff;
}

/* nested category accordions */
.ppn-offcanvas details details { border: 0; margin: 4px 8px; border-radius: 12px; }
.ppn-offcanvas details details > summary {
	padding: 11px 10px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--ppn-ink);
	border-radius: 12px;
}
.ppn-offcanvas details details[open] > summary { color: var(--ppn-green); }
.ppn-offcanvas details details > ul { margin: 0; padding: 0 14px 8px; list-style: none; }
.ppn-offcanvas details details > ul a {
	display: block;
	padding: 9px 10px;
	font-size: 13px;
	color: var(--ppn-text, #444);
	text-decoration: none;
	border-inline-start: 2px solid var(--ppn-border);
	margin-inline-start: 6px;
}
.ppn-offcanvas details details > ul a:hover,
.ppn-offcanvas details details > ul a:active {
	color: var(--ppn-green);
	border-color: var(--ppn-green);
}

.ppn-offcanvas-social { margin-block-start: auto; padding-block-start: 18px; }

/* search icon leaves the mobile top bar (search now lives inside the menu) */
.ppn-mobile-end .ppn-search-open { display: none; }


/* ==========================================================================
   Desktop mega menu (2026-09-02 v3). Full-width panel under the navy bar:
   sub-category links + latest 3 posts of that category with thumbnails.
   Desktop only (>=1024px); mobile keeps the drawer. No new HTTP requests —
   thumbnails carry data-ppn-src and load on first hover (see ppn.js).
   ========================================================================== */
@media (min-width: 1024px) {
	.ppn-navbar { position: relative; }
	.ppn-navbar .wp-block-navigation-item.ppn-has-mega { position: static; }
	.ppn-mega-wrap {
		position: absolute;
		inset-inline: 0;
		top: 100%;
		z-index: 1000;
		display: grid;
		grid-template-columns: 260px 1fr;
		background: var(--ppn-surface);
		border: 1px solid var(--ppn-border);
		border-top: 3px solid var(--ppn-green);
		box-shadow: 0 24px 40px rgba(16, 24, 42, 0.14);
		opacity: 0;
		visibility: hidden;
		transform: translateY(6px);
		transition: opacity 160ms, transform 160ms, visibility 160ms;
		pointer-events: none;
		text-transform: none;
	}
	.ppn-has-mega:hover > .ppn-mega-wrap,
	.ppn-has-mega:focus-within > .ppn-mega-wrap {
		opacity: 1;
		visibility: visible;
		transform: none;
		pointer-events: auto;
	}
	.ppn-mega-wrap .wp-block-navigation__submenu-container {
		position: static !important;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
		height: auto !important;
		width: auto !important;
		overflow: visible !important;
		min-width: 0 !important;
		box-shadow: none !important;
		border: 0 !important;
		border-inline-end: 1px solid var(--ppn-border) !important;
		background: var(--ppn-surface-2);
		padding: 12px 0;
		margin: 0;
		display: block;
	}
	.ppn-mega-panel { padding: 18px 22px; }
	.ppn-mega-head {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-block-end: 12px;
	}
	.ppn-mega-head span { font-size: 13px; font-weight: 800; color: var(--ppn-ink); }
	.ppn-mega-head a { font-size: 12px; font-weight: 700; color: var(--ppn-green); text-decoration: none; }
	.ppn-mega-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
	.ppn-mega-card { display: block; text-decoration: none; color: var(--ppn-ink); }
	.ppn-mega-thumb {
		display: block;
		aspect-ratio: 16 / 10;
		border-radius: 8px;
		overflow: hidden;
		background: var(--ppn-surface-2);
		margin-block-end: 8px;
	}
	.ppn-mega-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
	.ppn-mega-title { display: block; font-size: 13px; line-height: 1.7; font-weight: 700; }
	.ppn-mega-card:hover .ppn-mega-title { color: var(--ppn-green); }
	.ppn-mega-card time { font-size: 11px; color: var(--ppn-meta, #8a919c); }
	@media (prefers-reduced-motion: reduce) {
		.ppn-mega-wrap { transition: none; transform: none; }
	}
}

/* ============================================================
   2026-09-04 - Homepage Sections (PPN Docs > Homepage Sections)
   Device visibility, per-device post counts, mobile layout swap.
   These rules only hide or re-flow markup that is already on the
   page: no extra requests, and hidden items never load their
   lazy images.
   ============================================================ */
@media (min-width:600px){
  .ppn-sec-w.ppn-dev-mobile{display:none}
.ppn-sec-w.ppn-dn-1 li.wp-block-post:nth-child(n+2),
.ppn-sec-w.ppn-dn-2 li.wp-block-post:nth-child(n+3),
.ppn-sec-w.ppn-dn-3 li.wp-block-post:nth-child(n+4),
.ppn-sec-w.ppn-dn-4 li.wp-block-post:nth-child(n+5),
.ppn-sec-w.ppn-dn-5 li.wp-block-post:nth-child(n+6),
.ppn-sec-w.ppn-dn-6 li.wp-block-post:nth-child(n+7),
.ppn-sec-w.ppn-dn-7 li.wp-block-post:nth-child(n+8),
.ppn-sec-w.ppn-dn-8 li.wp-block-post:nth-child(n+9),
.ppn-sec-w.ppn-dn-9 li.wp-block-post:nth-child(n+10),
.ppn-sec-w.ppn-dn-10 li.wp-block-post:nth-child(n+11),
.ppn-sec-w.ppn-dn-11 li.wp-block-post:nth-child(n+12){display:none}
}
@media (max-width:599px){
  .ppn-sec-w.ppn-dev-desktop{display:none}
.ppn-sec-w.ppn-mn-1 li.wp-block-post:nth-child(n+2),
.ppn-sec-w.ppn-mn-2 li.wp-block-post:nth-child(n+3),
.ppn-sec-w.ppn-mn-3 li.wp-block-post:nth-child(n+4),
.ppn-sec-w.ppn-mn-4 li.wp-block-post:nth-child(n+5),
.ppn-sec-w.ppn-mn-5 li.wp-block-post:nth-child(n+6),
.ppn-sec-w.ppn-mn-6 li.wp-block-post:nth-child(n+7),
.ppn-sec-w.ppn-mn-7 li.wp-block-post:nth-child(n+8),
.ppn-sec-w.ppn-mn-8 li.wp-block-post:nth-child(n+9),
.ppn-sec-w.ppn-mn-9 li.wp-block-post:nth-child(n+10),
.ppn-sec-w.ppn-mn-10 li.wp-block-post:nth-child(n+11),
.ppn-sec-w.ppn-mn-11 li.wp-block-post:nth-child(n+12){display:none}
  .ppn-sec-w.ppn-mlay-list .wp-block-post-template{display:flex;flex-direction:column;gap:14px}
  .ppn-sec-w.ppn-mlay-list li.wp-block-post{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:start}
  .ppn-sec-w.ppn-mlay-list li.wp-block-post:first-child{grid-column:auto;grid-row:auto}
  .ppn-sec-w.ppn-mlay-list .wp-block-post-featured-image{margin:0}
  .ppn-sec-w.ppn-mlay-list .wp-block-post-featured-image img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:8px}
  .ppn-sec-w.ppn-mlay-list .wp-block-post-title{font-size:.98rem;line-height:1.65;margin:0}
  .ppn-sec-w.ppn-mlay-grid .wp-block-post-template{display:flex;flex-direction:column;gap:16px}
  .ppn-sec-w.ppn-mlay-grid li.wp-block-post{display:block}
  .ppn-sec-w.ppn-mlay-grid li.wp-block-post:first-child{grid-column:auto;grid-row:auto}
}


/* ============================================================
   2026-09-04 - Layout Bank skins (PPN Docs > Layout Bank)
   Navy Classic is the baseline and deliberately has no rules
   here. Each skin re-declares the theme tokens so the header,
   homepage bands, single posts, archives and search all change
   together, plus a few structural touches. Selectors are
   html(:not)(.ppn-dark) body.ppn-skin-X so a skin never fights
   dark mode in either direction.
   ============================================================ */

/* ---------- 02 Index - data-led, petrol + brass ---------- */
html:not(.ppn-dark) body.ppn-skin-index{
  --ppn-navy:#0b1a24; --ppn-green:#0e5c63; --ppn-green-dark:#0a4247; --ppn-red:#c13a2b;
  --ppn-ink:#0d1f2b; --ppn-text:#243740; --ppn-meta:#5a6a72; --ppn-border:#dde4e4;
  --ppn-paper:#f5f7f6; --ppn-surface:#ffffff; --ppn-surface-2:#eef2f1; --ppn-topbar:#eef2f1;
  --ppn-brass:#a98b4f;
}
html.ppn-dark body.ppn-skin-index{
  --ppn-navy:#08151c; --ppn-green:#4fb3ad; --ppn-green-dark:#3d918c; --ppn-red:#e8705f;
  --ppn-ink:#e8f1f0; --ppn-text:#c6d5d5; --ppn-meta:#8ba0a2; --ppn-border:#20323a;
  --ppn-paper:#08151c; --ppn-surface:#0e1f27; --ppn-surface-2:#12262e; --ppn-topbar:#0b1a21;
  --ppn-brass:#c9a76a;
}
body.ppn-skin-index .wp-block-post-date,
body.ppn-skin-index .ppn-heading-5 span{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-variant-numeric:tabular-nums; letter-spacing:.01em;
}
body.ppn-skin-index .ppn-heading::after{background:var(--ppn-brass);width:44px;height:2px}
body.ppn-skin-index .wp-block-post-title{letter-spacing:-.006em}
body.ppn-skin-index .ppn-section{border-block-start:1px solid var(--ppn-border);padding-block-start:20px}

/* ---------- 03 Prestige - luxury editorial, green + brass ---------- */
html:not(.ppn-dark) body.ppn-skin-prestige{
  --ppn-navy:#14161a; --ppn-green:#14543f; --ppn-green-dark:#0e3b2c; --ppn-red:#9b3b2c;
  --ppn-ink:#12100e; --ppn-text:#3a3630; --ppn-meta:#8b8880; --ppn-border:#e6e1d8;
  --ppn-paper:#fbfaf8; --ppn-surface:#ffffff; --ppn-surface-2:#f5f2ec; --ppn-topbar:#f5f2ec;
  --ppn-brass:#b08a4a;
}
html.ppn-dark body.ppn-skin-prestige{
  --ppn-navy:#0f0e0c; --ppn-green:#6fae8f; --ppn-green-dark:#589478; --ppn-red:#d08874;
  --ppn-ink:#f4efe6; --ppn-text:#d6cfc2; --ppn-meta:#9a9184; --ppn-border:#2e2a24;
  --ppn-paper:#14120f; --ppn-surface:#1b1815; --ppn-surface-2:#211d19; --ppn-topbar:#17140f;
  --ppn-brass:#c9a463;
}
body.ppn-skin-prestige .ppn-section{margin-block-end:64px}
body.ppn-skin-prestige .ppn-heading{font-size:13px;letter-spacing:.16em;text-transform:uppercase}
body.ppn-skin-prestige .ppn-heading::after{background:var(--ppn-brass);width:64px;height:1px}
body.ppn-skin-prestige .wp-block-post-title{line-height:1.42;font-weight:600}
body.ppn-skin-prestige .ppn-grid.ppn-grid-featured li.wp-block-post:first-child .wp-block-post-title{font-size:clamp(20px,2.4vw,30px)}
body.ppn-skin-prestige .wp-block-post-featured-image img{border-radius:2px}
body.ppn-skin-prestige .ppn-article .entry-content{font-size:1.06rem;line-height:2.05}

/* ---------- 04 Feed - phone-first, cobalt + coral ---------- */
html:not(.ppn-dark) body.ppn-skin-feed{
  --ppn-navy:#0d1117; --ppn-green:#1b3fd8; --ppn-green-dark:#152fa4; --ppn-red:#ff4d3d;
  --ppn-ink:#0d1117; --ppn-text:#2b3340; --ppn-meta:#5b6577; --ppn-border:#e4e8ef;
  --ppn-paper:#ffffff; --ppn-surface:#ffffff; --ppn-surface-2:#f1f3f7; --ppn-topbar:#f1f3f7;
}
html.ppn-dark body.ppn-skin-feed{
  --ppn-navy:#0b0e13; --ppn-green:#7d97ff; --ppn-green-dark:#6079e0; --ppn-red:#ff7a6b;
  --ppn-ink:#e8ecf3; --ppn-text:#c3cbd8; --ppn-meta:#8b95a5; --ppn-border:#232a35;
  --ppn-paper:#0b0e13; --ppn-surface:#141920; --ppn-surface-2:#10151b; --ppn-topbar:#11161d;
}
body.ppn-skin-feed .ppn-section{margin-block-end:28px}
body.ppn-skin-feed .ppn-heading{font-size:13px;letter-spacing:.08em;text-transform:uppercase}
body.ppn-skin-feed .ppn-heading::after{width:22px;height:3px}
body.ppn-skin-feed .wp-block-post-title{font-size:.97rem;line-height:1.55;font-weight:600}
body.ppn-skin-feed .ppn-grid.ppn-grid-featured li.wp-block-post:first-child .wp-block-post-title{font-size:1.28rem}
body.ppn-skin-feed .ppn-list li.wp-block-post{padding-block:10px}
body.ppn-skin-feed .wp-block-post-featured-image img{border-radius:6px}
body.ppn-skin-feed .ppn-article .entry-content{line-height:1.95}


/* ====================================================================
   2026-09-04 (v15) — Structure Editor toggles (PPN Docs tabs)
   Body classes are printed server-side by ppn_se_body_class(); these
   rules only hide or re-flow EXISTING markup, so there is no layout
   shift (hidden blocks are display:none from first paint) and the CDN
   cache stays valid (no per-device HTML).
   ==================================================================== */
body.ppn-no-statesbar .ppn-statesbar{display:none}
body.ppn-no-ticker .ppn-ticker{display:none}
body.ppn-sp-no-img .ppn-single-hero{display:none}
body.ppn-sp-no-authorbox .ppn-authorbox{display:none}
body.ppn-sp-no-prevnext .ppn-prevnext{display:none}
body.ppn-sp-no-related .ppn-related{display:none}
body.ppn-sp-no-comments .ppn-comments{display:none}
body.ppn-sp-no-sidebar .ppn-single-body .ppn-col-side{display:none}
body.ppn-sp-no-sidebar .ppn-single-body .ppn-main-grid{grid-template-columns:minmax(0,1fr)}
body.ppn-sp-no-justify .ppn-article .entry-content p{text-align:start}
body.ppn-arch-nohero .ppn-archive-hero{display:none}
body.ppn-arch-nosidebar .ppn-archive .ppn-col-side{display:none}
body.ppn-arch-nosidebar .ppn-archive .ppn-main-grid{grid-template-columns:minmax(0,1fr)}
body.ppn-ft-no-tagline .ppn-footer-tagline{display:none}
body.ppn-ft-no-social .ppn-footer-social{display:none}
body.ppn-ft-no-tags .ppn-footer-tags{display:none}
/* archive & search: compact list layout */
body.ppn-arch-list .ppn-archive .ppn-grid .wp-block-post-template{grid-template-columns:minmax(0,1fr);gap:18px}
body.ppn-arch-list .ppn-archive .ppn-grid-featured li.wp-block-post:first-child{grid-column:auto}
body.ppn-arch-list .ppn-archive .ppn-grid li.wp-block-post{display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;align-items:start}
body.ppn-arch-list .ppn-archive .ppn-grid .ppn-card-media{margin:0}
body.ppn-arch-list .ppn-archive .ppn-grid .ppn-card-media::after{display:none}
body.ppn-arch-list .ppn-archive .ppn-grid .ppn-card-media .wp-block-post-featured-image{aspect-ratio:1/1}
body.ppn-arch-list .ppn-archive .ppn-grid .ppn-card-body{position:static;inset-inline:auto;bottom:auto;padding:0}
body.ppn-arch-list .ppn-archive .ppn-grid .ppn-card-body .wp-block-post-title,
body.ppn-arch-list .ppn-archive .ppn-grid-featured li.wp-block-post:first-child .wp-block-post-title{font-size:17px;line-height:1.6}
body.ppn-arch-list .ppn-archive .ppn-grid .ppn-card-body .wp-block-post-title a{color:var(--ppn-ink)}
body.ppn-arch-list .ppn-archive .ppn-grid .ppn-card-body .wp-block-post-date{color:var(--ppn-meta)}

/* == 2026-09-04 (v16): SEO gap fixes == */
.ppn-visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.ppn-archive-hero .ppn-archive-desc{max-width:46em;margin:10px auto 0;text-align:center;color:#dbe2ee;font-size:15px;line-height:1.9}

/* == 2026-09-04 (v18): kill WordPress blockGap sibling margins where they misalign things ==
   Core emits a flow-layout rule that puts margin-block-start:20px on every li+li in a
   post template, even display:none ones. That made: (1) ticker headlines 2..n sit 20px
   low in the bar, (2) the page scroll-jump 20px when the hero rotated past slide 1,
   (3) the second column of the first card-grid row sit 20px lower than the first.
   Grids space with gap, the ticker/hero show one item at a time - the margin is pure harm here. */
.ppn-ticker .wp-block-post-template > li.wp-block-post,
.ppn-hero .wp-block-post-template > li.wp-block-post,
.ppn-grid .wp-block-post-template > li.wp-block-post{margin-block-start:0}
