/**
 * Preluence Vertex Core — next-generation universal components.
 *
 * Only the components added by this layer live here. The original fourteen
 * keep their theme stylesheets; these are deliberately self-contained so they
 * render correctly even when the theme's component CSS bundle is not present
 * (a page builder canvas, for example).
 *
 * Tokens are read from the theme when it exists and fall back to neutral
 * values, so the same markup is styled in every editor.
 */

/* Shared tokens with safe fallbacks. */
.pn-c-heading,
.pn-c-textbox,
.pn-c-divider,
.pn-c-callout,
.pn-c-accordion,
.pn-c-ptable,
.pn-ad-component {
	--pn-c-accent: var(--pn-accent, var(--wp--preset--color--primary, #1b4ddb));
	--pn-c-text: var(--pn-text, inherit);
	--pn-c-muted: var(--pn-text-muted, rgba(15, 23, 42, .68));
	--pn-c-surface: var(--pn-surface, rgba(15, 23, 42, .04));
	--pn-c-border: var(--pn-border, rgba(15, 23, 42, .14));
	--pn-c-radius: var(--pn-radius, 14px);
	--pn-c-shadow: var(--pn-shadow, 0 18px 40px rgba(15, 23, 42, .12));
	box-sizing: border-box;
}

/* -------------------------------------------------------------------------
 * Heading
 * ---------------------------------------------------------------------- */

.pn-c-heading {
	margin: 0 0 1rem;
}
.pn-c-heading--center { text-align: center; }
.pn-c-heading--end { text-align: right; }

.pn-c-heading__eyebrow {
	margin: 0 0 .35em;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pn-c-accent);
}
.pn-c-heading__title {
	margin: 0;
	line-height: 1.1;
	letter-spacing: -.01em;
}
.pn-c-heading__sub {
	margin: .5em 0 0;
	color: var(--pn-c-muted);
	max-width: 62ch;
}
.pn-c-heading--center .pn-c-heading__sub { margin-inline: auto; }
.pn-c-heading--divider { padding-bottom: .7rem; }
.pn-c-heading__divider {
	display: block;
	width: 64px;
	height: 3px;
	margin-top: .7rem;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--pn-c-accent), transparent);
}
.pn-c-heading--center .pn-c-heading__divider { margin-inline: auto; }
.pn-c-heading--end .pn-c-heading__divider { margin-inline-start: auto; }

/* Decoration: optional panels, rules and borders. Everything falls back to the
   accent colour, so a heading looks right with nothing set. */
.pn-c-heading {
	--pn-c-heading-line: var(--pn-c-heading-line-color, var(--pn-c-accent));
	--pn-c-heading-border-c: var(--pn-c-heading-border-color, var(--pn-c-accent));
	--pn-c-heading-pad: 18px;
	--pn-c-heading-radius: 14px;
	color: var(--pn-c-heading-text, inherit);
}
.pn-c-heading__title { color: inherit; }

/* Panels. */
.pn-c-heading--bg-soft,
.pn-c-heading--bg-surface,
.pn-c-heading--bg-brand,
.pn-c-heading--bg-gradient,
.pn-c-heading--bg-glass,
.pn-c-heading--bg-dark {
	padding: var(--pn-c-heading-pad) clamp(16px, 4vw, 28px);
	border-radius: var(--pn-c-heading-radius);
}
.pn-c-heading--bg-soft { background: var(--pn-c-heading-bg-color, var(--pn-c-surface)); }
.pn-c-heading--bg-surface {
	background: var(--pn-c-heading-bg-color, rgba(255, 255, 255, .72));
	border: 1px solid var(--pn-c-border);
}
.pn-c-heading--bg-brand {
	background: var(--pn-c-heading-bg-color, var(--pn-c-accent));
	color: var(--pn-c-heading-text, #fff);
}
.pn-c-heading--bg-gradient {
	background: var(--pn-c-heading-bg-color, linear-gradient(135deg, var(--pn-c-accent), color-mix(in srgb, var(--pn-c-accent) 30%, #0b1020)));
	color: var(--pn-c-heading-text, #fff);
}
.pn-c-heading--bg-dark {
	background: var(--pn-c-heading-bg-color, #0b1020);
	color: var(--pn-c-heading-text, #f8fafc);
}
.pn-c-heading--bg-glass {
	background: var(--pn-c-heading-bg-color, rgba(255, 255, 255, .55));
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border: 1px solid var(--pn-c-border);
	box-shadow: var(--pn-c-shadow);
}
@supports not ((-webkit-backdrop-filter: blur(2px)) or (backdrop-filter: blur(2px))) {
	.pn-c-heading--bg-glass { background: var(--pn-c-heading-bg-color, rgba(255, 255, 255, .92)); }
}
.pn-c-heading--bg-brand .pn-c-heading__eyebrow,
.pn-c-heading--bg-dark .pn-c-heading__eyebrow,
.pn-c-heading--bg-gradient .pn-c-heading__eyebrow { color: currentColor; }
.pn-c-heading--bg-brand .pn-c-heading__sub,
.pn-c-heading--bg-dark .pn-c-heading__sub,
.pn-c-heading--bg-gradient .pn-c-heading__sub { color: currentColor; opacity: .82; }

/* Rules and lines. */
.pn-c-heading--rule-top { border-top: 3px solid var(--pn-c-heading-line); padding-top: .7rem; }
.pn-c-heading--rule-bottom { border-bottom: 3px solid var(--pn-c-heading-line); padding-bottom: .7rem; }
.pn-c-heading--rule-underline .pn-c-heading__title::after {
	content: "";
	display: block;
	width: 68px;
	height: 3px;
	margin-top: .45rem;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--pn-c-heading-line), transparent);
}
.pn-c-heading--center.pn-c-heading--rule-underline .pn-c-heading__title::after { margin-inline: auto; }
.pn-c-heading--end.pn-c-heading--rule-underline .pn-c-heading__title::after { margin-inline-start: auto; }
.pn-c-heading--rule-sides .pn-c-heading__title { display: flex; align-items: center; gap: .75rem; }
.pn-c-heading--rule-sides .pn-c-heading__title::before,
.pn-c-heading--rule-sides .pn-c-heading__title::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: var(--pn-c-heading-line);
	opacity: .45;
}

/* Borders. */
.pn-c-heading--border-box {
	border: 1px solid var(--pn-c-heading-border-c);
	border-radius: var(--pn-c-heading-radius);
	padding: var(--pn-c-heading-pad) clamp(14px, 4vw, 24px);
}
.pn-c-heading--border-top { border-top: 2px solid var(--pn-c-heading-border-c); padding-top: .6rem; }
.pn-c-heading--border-bottom { border-bottom: 2px solid var(--pn-c-heading-border-c); padding-bottom: .6rem; }
.pn-c-heading--border-left,
.pn-c-heading--border-left_accent {
	border-left: 4px solid var(--pn-c-heading-border-c);
	padding-left: .9rem;
}
.pn-c-heading--border-left_accent { padding-block: .4rem; }

/* Eyebrow styles. */
.pn-c-heading--eyebrow-pill .pn-c-heading__eyebrow {
	display: inline-block;
	padding: .28em .75em;
	border-radius: 999px;
	background: color-mix(in srgb, var(--pn-c-accent) 14%, transparent);
}
.pn-c-heading--eyebrow-tag .pn-c-heading__eyebrow {
	display: inline-block;
	padding: .3em .7em;
	border-radius: 4px;
	background: var(--pn-c-accent);
	color: #fff;
	letter-spacing: .08em;
}
.pn-c-heading--eyebrow-line .pn-c-heading__eyebrow {
	display: flex;
	align-items: center;
	gap: .6rem;
}
.pn-c-heading--eyebrow-line .pn-c-heading__eyebrow::before {
	content: "";
	display: inline-block;
	width: 28px;
	height: 2px;
	background: var(--pn-c-accent);
}

/* -------------------------------------------------------------------------
 * Text Box
 * ---------------------------------------------------------------------- */

.pn-c-textbox {
	margin: 0 0 1rem;
}
.pn-c-textbox__body { color: var(--pn-c-text); }
.pn-c-textbox--align-center { text-align: center; }
.pn-c-textbox--align-end { text-align: right; }
.pn-c-textbox--align-justify { text-align: justify; }

.pn-c-textbox--narrow { max-width: 62ch; }
.pn-c-textbox--normal { max-width: 78ch; }
.pn-c-textbox--wide { max-width: 1100px; }
.pn-c-textbox--full { max-width: none; }

.pn-c-textbox--bg-surface { padding: 1.25rem 1.4rem; background: var(--pn-c-surface); border-radius: var(--pn-c-radius); }
.pn-c-textbox--bg-glass {
	padding: 1.25rem 1.4rem;
	background: color-mix(in srgb, var(--pn-c-surface) 80%, transparent);
	border: 1px solid var(--pn-c-border);
	border-radius: var(--pn-c-radius);
	backdrop-filter: blur(14px) saturate(140%);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
}
.pn-c-textbox--bg-brand {
	padding: 1.25rem 1.4rem;
	border-radius: var(--pn-c-radius);
	border-inline-start: 4px solid var(--pn-c-accent);
	background: color-mix(in srgb, var(--pn-c-accent) 8%, transparent);
}
.pn-c-textbox--dropcap .pn-c-textbox__body > p:first-of-type::first-letter {
	float: left;
	font-size: 3.2em;
	line-height: .82;
	padding-inline-end: .08em;
	font-weight: 700;
	color: var(--pn-c-accent);
}

/* Multi-column text: progressive enhancement only. */
@supports (columns: 2) {
	.pn-c-textbox[style*="--pn-c-cols"] .pn-c-textbox__body {
		column-count: var(--pn-c-cols, 1);
		column-gap: 2rem;
	}
}

/* -------------------------------------------------------------------------
 * Section Divider
 * ---------------------------------------------------------------------- */

.pn-c-divider {
	position: relative;
	display: flex;
	align-items: center;
	width: var(--pn-c-div-w, 100%);
	margin: 1.5rem 0;
	color: var(--pn-c-div-color, var(--pn-c-border));
}
.pn-c-divider::before { content: ""; flex: 1; }
.pn-c-divider--start { margin-inline-end: auto; margin-inline-start: 0; }
.pn-c-divider--center { margin-inline: auto; }
.pn-c-divider--end { margin-inline-start: auto; margin-inline-end: 0; }

.pn-c-divider--line::before,
.pn-c-divider--dotted::before,
.pn-c-divider--dashed::before,
.pn-c-divider--double::before {
	height: var(--pn-c-div-t, 1px);
	background: currentColor;
}
.pn-c-divider--dotted::before { background: none; border-top: var(--pn-c-div-t, 1px) dotted currentColor; }
.pn-c-divider--dashed::before { background: none; border-top: var(--pn-c-div-t, 1px) dashed currentColor; }
.pn-c-divider--double::before { background: none; border-top: var(--pn-c-div-t, 1px) double currentColor; }
.pn-c-divider--gradient::before {
	height: var(--pn-c-div-t, 1px);
	background: linear-gradient(90deg, transparent, var(--pn-c-div-color, var(--pn-c-accent)), transparent);
}
.pn-c-divider--glow::before {
	height: var(--pn-c-div-t, 1px);
	background: var(--pn-c-div-color, var(--pn-c-accent));
	box-shadow: 0 0 18px 2px color-mix(in srgb, var(--pn-c-div-color, var(--pn-c-accent)) 70%, transparent);
}
.pn-c-divider--beam::before {
	height: calc(var(--pn-c-div-t, 1px) * 3);
	border-radius: 999px;
	background: linear-gradient(90deg, transparent, var(--pn-c-div-color, var(--pn-c-accent)), transparent);
	filter: blur(1px);
	opacity: .9;
}
.pn-c-divider__text {
	padding-inline: .9rem;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pn-c-muted);
}

/* -------------------------------------------------------------------------
 * Callout
 * ---------------------------------------------------------------------- */

.pn-c-callout {
	margin: 0 0 1.25rem;
	padding: 1.1rem 1.3rem;
	border-radius: var(--pn-c-radius);
	border: 1px solid var(--pn-c-border);
	border-inline-start: 4px solid var(--pn-c-accent);
	background: var(--pn-c-surface);
}
.pn-c-callout--align-center { text-align: center; }
.pn-c-callout__title { margin: 0 0 .35rem; font-weight: 700; }
.pn-c-callout__text > :last-child { margin-bottom: 0; }
.pn-c-callout__action {
	display: inline-block;
	margin-top: .7rem;
	font-weight: 600;
	color: var(--pn-c-accent);
	text-decoration: underline;
	text-underline-offset: .2em;
}
.pn-c-callout--success { border-inline-start-color: var(--pn-success, #15803d); }
.pn-c-callout--warning { border-inline-start-color: var(--pn-warning, #b45309); }
.pn-c-callout--danger { border-inline-start-color: var(--pn-breaking, #dc2626); }
.pn-c-callout--brand { border-inline-start-color: var(--pn-c-accent); }
.pn-c-callout--info { border-inline-start-color: var(--pn-c-accent); }

/* -------------------------------------------------------------------------
 * Accordion
 * ---------------------------------------------------------------------- */

.pn-c-accordion {
	margin: 0 0 1.25rem;
	border: 1px solid var(--pn-c-border);
	border-radius: var(--pn-c-radius);
	overflow: hidden;
}
.pn-c-accordion__title { margin: 0; padding: 1rem 1.2rem; font-weight: 700; background: var(--pn-c-surface); }
.pn-c-accordion__item + .pn-c-accordion__item { border-top: 1px solid var(--pn-c-border); }
.pn-c-accordion__summary {
	position: relative;
	cursor: pointer;
	padding: 1rem 1.2rem;
	padding-inline-end: 3rem;
	font-weight: 600;
	list-style: none;
}
.pn-c-accordion__summary::-webkit-details-marker { display: none; }
.pn-c-accordion__summary::after {
	content: "+";
	position: absolute;
	inset-inline-end: 1.2rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.2rem;
	line-height: 1;
	color: var(--pn-c-accent);
	transition: transform .2s ease;
}
.pn-c-accordion__item[open] > .pn-c-accordion__summary::after { content: "\2013"; }
.pn-c-accordion__summary:focus-visible { outline: 2px solid var(--pn-c-accent); outline-offset: -2px; }
.pn-c-accordion__body { padding: 0 1.2rem 1.1rem; color: var(--pn-c-muted); }

/* -------------------------------------------------------------------------
 * Posts Table (turns into cards on small screens)
 * ---------------------------------------------------------------------- */

.pn-c-ptable { margin: 0 0 1.5rem; }
.pn-c-ptable__title { margin: 0 0 .2rem; font-weight: 700; }
.pn-c-ptable__subtitle { margin: 0 0 .8rem; color: var(--pn-c-muted); }
.pn-c-ptable__scroll { overflow-x: auto; }
.pn-c-ptable__table { width: 100%; border-collapse: collapse; }
.pn-c-ptable__table th,
.pn-c-ptable__table td {
	padding: .6rem .7rem;
	text-align: start;
	vertical-align: top;
	border-bottom: 1px solid var(--pn-c-border);
}
.pn-c-ptable__table thead th {
	font-size: .75rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pn-c-muted);
}
.pn-c-ptable__badge {
	display: inline-block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pn-c-accent);
}
.pn-c-ptable__link { font-weight: 600; color: inherit; text-decoration: none; }
.pn-c-ptable__link:hover { color: var(--pn-c-accent); }
.pn-c-ptable__excerpt { display: block; margin-top: .25rem; font-weight: 400; color: var(--pn-c-muted); }
.pn-c-ptable__table img { display: block; width: 100%; max-width: 120px; height: auto; border-radius: 8px; }
.pn-c-ptable__thumb { display: block; width: 96px; }
.pn-c-ptable__thumb img { max-width: 100%; }

/* Search / filters on ONE row above the table. */
.pn-c-ptable__toolbar {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: .5rem;
	margin: 0 0 .85rem;
	/* The row never wraps; if the column is very narrow it scrolls instead of
	   stacking the controls onto separate lines. */
	overflow-x: auto;
	scrollbar-width: thin;
	padding-bottom: 2px;
}
.pn-c-ptable__toolbar > * { min-width: 0; flex: 0 0 auto; }

.pn-c-ptable__search,
.pn-c-ptable__filter,
.pn-c-ptable__date {
	width: auto;
	max-width: none;
	padding: .55rem .8rem;
	border: 1px solid var(--pn-c-border);
	border-radius: 10px;
	background: var(--pn-c-surface);
	background: color-mix(in srgb, var(--pn-c-surface) 92%, transparent);
	color: inherit;
	font: inherit;
	line-height: 1.2;
}
.pn-c-ptable__search {
	flex: 1 1 12rem;
	min-width: 7rem;
}
.pn-c-ptable__filter {
	flex: 0 1 auto;
	max-width: 13rem;
}
.pn-c-ptable__dates {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	flex: 0 0 auto;
}
.pn-c-ptable__date { flex: 0 0 auto; }
.pn-c-ptable__date-sep { color: var(--pn-c-muted); }
.pn-c-ptable__search:focus-visible,
.pn-c-ptable__filter:focus-visible,
.pn-c-ptable__date:focus-visible {
	outline: 2px solid var(--pn-c-accent);
	outline-offset: 1px;
}

/* Inside a widget, a theme rule may set inputs/selects to full width; keep the
   toolbar controls on one line regardless. */
.pn-widget .pn-c-ptable__toolbar,
.pn-fp-widget .pn-c-ptable__toolbar { width: 100%; }
.pn-widget .pn-c-ptable__search,
.pn-widget .pn-c-ptable__filter,
.pn-widget .pn-c-ptable__date,
.pn-fp-widget .pn-c-ptable__search,
.pn-fp-widget .pn-c-ptable__filter,
.pn-fp-widget .pn-c-ptable__date {
	width: auto;
	min-width: 0;
}

/* Numbered pagination. */
.pn-c-ptable__pager {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem;
}
.pn-c-ptable__page {
	min-width: 2.3rem;
	padding: .4rem .6rem;
	border: 1px solid var(--pn-c-border);
	border-radius: 10px;
	background: var(--pn-c-surface);
	color: inherit;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}
.pn-c-ptable__page:hover:not(:disabled) {
	border-color: var(--pn-c-accent);
	color: var(--pn-c-accent);
}
.pn-c-ptable__page.is-current {
	background: var(--pn-c-accent);
	border-color: transparent;
	color: #fff;
}
.pn-c-ptable__page:disabled { opacity: .45; cursor: default; }
.pn-c-ptable__gap { padding: 0 .2rem; color: var(--pn-c-muted); }

.pn-c-ptable__foot {
	display: flex;
	align-items: center;
	gap: .8rem;
	margin-top: .7rem;
}
.pn-c-ptable__more {
	padding: .5rem 1.05rem;
	border: 1px solid var(--pn-c-border);
	border-radius: 999px;
	background: var(--pn-c-surface);
	color: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: color .15s ease, border-color .15s ease, transform .15s ease;
}
.pn-c-ptable__more:hover {
	border-color: var(--pn-c-accent);
	color: var(--pn-c-accent);
	transform: translateY(-1px);
}
.pn-c-ptable__count { font-size: .8rem; color: var(--pn-c-muted); }

/* Row interaction and sticky header. */
.pn-c-ptable__table tbody tr { transition: background-color .15s ease, box-shadow .15s ease; }
.pn-c-ptable__table tbody tr:hover { background: color-mix(in srgb, var(--pn-c-accent) 7%, transparent); }
.pn-c-ptable--zebra tbody tr:nth-child(even) { background: color-mix(in srgb, var(--pn-c-surface) 55%, transparent); }
.pn-c-ptable--compact :is(th, td) { padding: .35rem .55rem; }
.pn-c-ptable--sticky .pn-c-ptable__table thead th {
	position: sticky;
	top: 0;
	z-index: 2;
	background: var(--pn-bg, #fff);
	background: color-mix(in srgb, var(--pn-surface, #fff) 92%, #fff);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

/* Style variants (additive; the base table is unchanged). */
.pn-c-ptable--style-auto {
	padding: .4rem .5rem .1rem;
	border: 1px solid var(--pn-c-border);
	border-radius: var(--pn-c-radius);
	background: color-mix(in srgb, var(--pn-c-surface) 55%, transparent);
	backdrop-filter: blur(10px) saturate(140%);
	-webkit-backdrop-filter: blur(10px) saturate(140%);
}
.pn-c-ptable--style-auto .pn-c-ptable__table thead th {
	background: linear-gradient(90deg, color-mix(in srgb, var(--pn-c-accent) 12%, transparent), transparent);
}
.pn-c-ptable--style-glass {
	padding: .5rem .6rem .2rem;
	border: 1px solid color-mix(in srgb, var(--pn-c-accent) 22%, var(--pn-c-border));
	border-radius: var(--pn-c-radius);
	background: color-mix(in srgb, var(--pn-c-surface) 72%, transparent);
	backdrop-filter: blur(16px) saturate(150%);
	-webkit-backdrop-filter: blur(16px) saturate(150%);
	box-shadow: var(--pn-c-shadow);
}
.pn-c-ptable--style-neon {
	padding: .5rem .6rem .2rem;
	border: 1px solid color-mix(in srgb, var(--pn-c-accent) 45%, transparent);
	border-radius: var(--pn-c-radius);
	background: color-mix(in srgb, var(--pn-c-surface) 40%, transparent);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--pn-c-accent) 18%, transparent), 0 18px 50px -22px color-mix(in srgb, var(--pn-c-accent) 65%, transparent);
}
.pn-c-ptable--style-neon .pn-c-ptable__table tbody tr:hover {
	box-shadow: inset 3px 0 0 var(--pn-c-accent);
}
.pn-c-ptable--style-neon .pn-c-ptable__badge { color: var(--pn-c-accent); }

@media (max-width: 640px) {
	.pn-c-ptable__table thead { display: none; }
	.pn-c-ptable__table,
	.pn-c-ptable__table tbody,
	.pn-c-ptable__table tr,
	.pn-c-ptable__table td { display: block; width: 100%; }
	.pn-c-ptable__table tr {
		margin-bottom: 1rem;
		border: 1px solid var(--pn-c-border);
		border-radius: var(--pn-c-radius);
		padding: .4rem .2rem;
	}
	.pn-c-ptable__table td { border: 0; padding: .3rem .8rem; }
	.pn-c-ptable__table td[data-label]::before {
		content: attr(data-label) ": ";
		font-size: .7rem;
		font-weight: 700;
		letter-spacing: .06em;
		text-transform: uppercase;
		color: var(--pn-c-muted);
	}
	.pn-c-ptable__table img { max-width: 100%; }
}

/* -------------------------------------------------------------------------
 * Advertisement component wrapper
 * ---------------------------------------------------------------------- */

.pn-ad-component {
	display: flex;
	width: 100%;
	margin: 1rem 0;
}
.pn-ad-component--align-start { justify-content: flex-start; }
.pn-ad-component--align-center { justify-content: center; }
.pn-ad-component--align-end { justify-content: flex-end; }
.pn-ad-component--sticky { position: sticky; top: var(--pn-adc-sticky, 90px); }
.pn-ad-component > .pn-ad {
	width: 100%;
	max-width: var(--pn-adc-w, none);
	min-height: var(--pn-adc-min-h, 0);
	border-radius: var(--pn-adc-radius, 0);
}

/* Administrators only: an empty zone kept visible for layout checking. */
.pn-ad-component--empty {
	min-height: var(--pn-adc-min-h, 90px);
	outline: 1px dashed color-mix(in srgb, var(--pn-c-border) 80%, transparent);
	outline-offset: -1px;
	border-radius: var(--pn-adc-radius, 0);
}

/* -------------------------------------------------------------------------
 * Content Tabs (reuses .pn-tabs markup/JS; only a title is added)
 * ---------------------------------------------------------------------- */

.pn-c-tabs .pn-tabs__title {
	margin: 0 0 .5rem;
	font-weight: 700;
}

/* -------------------------------------------------------------------------
 * Timeline
 * ---------------------------------------------------------------------- */

.pn-c-timeline {
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
	position: relative;
}
.pn-c-timeline__title { margin: 0 0 .8rem; font-weight: 700; }
.pn-c-timeline__item {
	position: relative;
	padding: 0 0 1.2rem 1.5rem;
	border-inline-start: 2px solid color-mix(in srgb, var(--pn-c-accent) 35%, transparent);
}
.pn-c-timeline__item:last-child { padding-bottom: 0; }
.pn-c-timeline__item::before {
	content: "";
	position: absolute;
	inset-inline-start: -7px;
	top: .25rem;
	width: 12px;
	height: 12px;
	border-radius: 999px;
	background: var(--pn-c-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--pn-c-accent) 20%, transparent);
}
.pn-c-timeline__date {
	display: block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pn-c-muted);
}
.pn-c-timeline__heading { margin: .15rem 0 0; font-weight: 700; }
.pn-c-timeline__body > :last-child { margin-bottom: 0; }

/* -------------------------------------------------------------------------
 * Statistics
 * ---------------------------------------------------------------------- */

.pn-c-stats {
	display: grid;
	grid-template-columns: repeat(var(--pn-c-stats-cols, 3), minmax(0, 1fr));
	gap: 1rem;
	margin: 0 0 1.5rem;
}
.pn-c-stats__title { margin: 0 0 .8rem; font-weight: 700; }
.pn-c-stats__item { display: flex; flex-direction: column; gap: .25rem; }
.pn-c-stats--card .pn-c-stats__item,
.pn-c-stats--glass .pn-c-stats__item {
	padding: 1rem 1.1rem;
	border-radius: var(--pn-c-radius);
	background: var(--pn-c-surface);
	border: 1px solid var(--pn-c-border);
}
.pn-c-stats--glass .pn-c-stats__item {
	background: color-mix(in srgb, var(--pn-c-surface) 75%, transparent);
	backdrop-filter: blur(12px) saturate(140%);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
}
.pn-c-stats__value {
	font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.02em;
	color: var(--pn-c-accent);
}
.pn-c-stats__label { font-size: .85rem; color: var(--pn-c-muted); }
.pn-c-stats__bar {
	display: block;
	height: 6px;
	margin-top: .35rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--pn-c-accent) 18%, transparent);
	overflow: hidden;
}
.pn-c-stats__bar > span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--pn-c-accent);
}

/* -------------------------------------------------------------------------
 * Quote / Pull quote
 * ---------------------------------------------------------------------- */

.pn-c-quote {
	margin: 1.5rem 0;
	padding: 0;
	border: 0;
	display: flex;
	gap: 1rem;
	align-items: flex-start;
}
.pn-c-quote--center { flex-direction: column; align-items: center; text-align: center; }
.pn-c-quote__body { flex: 1; }
.pn-c-quote__body > p:first-of-type { margin-top: 0; }
.pn-c-quote--pull .pn-c-quote__body > p:first-of-type {
	font-size: clamp(1.3rem, 1.1rem + 1.4vw, 1.9rem);
	line-height: 1.25;
	font-weight: 700;
	letter-spacing: -.01em;
}
.pn-c-quote--bordered {
	padding: 1rem 1.25rem;
	border-inline-start: 4px solid var(--pn-c-accent);
	background: var(--pn-c-surface);
	border-radius: var(--pn-c-radius);
}
.pn-c-quote--glass {
	padding: 1rem 1.25rem;
	background: color-mix(in srgb, var(--pn-c-surface) 75%, transparent);
	border: 1px solid var(--pn-c-border);
	border-radius: var(--pn-c-radius);
	backdrop-filter: blur(12px) saturate(140%);
	-webkit-backdrop-filter: blur(12px) saturate(140%);
}
.pn-c-quote__image {
	width: 56px;
	height: 56px;
	border-radius: 999px;
	object-fit: cover;
	flex: 0 0 auto;
}
.pn-c-quote__cite {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	margin-top: .6rem;
	font-size: .85rem;
	font-style: normal;
	color: var(--pn-c-muted);
}
.pn-c-quote__role::before { content: "· "; }

/* -------------------------------------------------------------------------
 * Data Table additions (rows use the .pn-c-ptable base above)
 * ---------------------------------------------------------------------- */

.pn-c-dtable--zebra tbody tr:nth-child(even) { background: color-mix(in srgb, var(--pn-c-surface) 60%, transparent); }
.pn-c-dtable--compact :is(th, td) { padding: .35rem .55rem; }
.pn-c-dtable__caption { margin: .5rem 0 0; font-size: .8rem; color: var(--pn-c-muted); }

/* -------------------------------------------------------------------------
 * Related Posts
 * ---------------------------------------------------------------------- */

.pn-c-related {
	display: grid;
	grid-template-columns: repeat(var(--pn-c-related-cols, 2), minmax(0, 1fr));
	gap: .9rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}
.pn-c-related__title { margin: 0 0 .8rem; font-weight: 700; grid-column: 1 / -1; }
.pn-c-related__item { display: flex; gap: .7rem; align-items: flex-start; }
.pn-c-related__thumb { flex: 0 0 auto; display: block; width: 96px; border-radius: 10px; overflow: hidden; }
.pn-c-related__thumb img { display: block; width: 100%; height: auto; }
.pn-c-related__link { font-weight: 600; color: inherit; text-decoration: none; }
.pn-c-related__link:hover { color: var(--pn-c-accent); }
.pn-c-related__excerpt { display: block; margin-top: .2rem; font-size: .85rem; color: var(--pn-c-muted); }

/* -------------------------------------------------------------------------
 * Author Box
 * ---------------------------------------------------------------------- */

.pn-c-author {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	margin: 1.5rem 0;
	padding: 1.1rem 1.25rem;
	border: 1px solid var(--pn-c-border);
	border-radius: var(--pn-c-radius);
	background: var(--pn-c-surface);
}
.pn-c-author--stacked { flex-direction: column; align-items: center; text-align: center; }
.pn-c-author__avatar img { display: block; width: 72px; height: 72px; border-radius: 999px; }
.pn-c-author__eyebrow {
	margin: 0 0 .2rem;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pn-c-muted);
}
.pn-c-author__name { margin: 0; font-weight: 800; font-size: 1.1rem; }
.pn-c-author__bio { margin: .4rem 0 0; color: var(--pn-c-muted); }
.pn-c-author__bio > :last-child { margin-bottom: 0; }
.pn-c-author__meta { margin: .35rem 0 0; font-size: .82rem; color: var(--pn-c-muted); }
.pn-c-author__link { display: inline-block; margin-top: .5rem; font-weight: 600; color: var(--pn-c-accent); }

/* -------------------------------------------------------------------------
 * Video
 * ---------------------------------------------------------------------- */

.pn-c-video { margin: 0 0 1.5rem; }
.pn-c-video__frame {
	position: relative;
	aspect-ratio: var(--pn-c-video-ratio, 16 / 9);
	border-radius: var(--pn-c-radius);
	overflow: hidden;
	background: #000;
}
.pn-c-video__frame iframe,
.pn-c-video__frame video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
.pn-c-video__caption { margin: .5rem 0 0; font-size: .85rem; color: var(--pn-c-muted); }

/* -------------------------------------------------------------------------
 * Audio / Podcast
 * ---------------------------------------------------------------------- */

.pn-c-audio {
	margin: 0 0 1.5rem;
	padding: 1rem 1.1rem;
	border: 1px solid var(--pn-c-border);
	border-radius: var(--pn-c-radius);
	background: var(--pn-c-surface);
}
.pn-c-audio__title { margin: 0; font-weight: 700; }
.pn-c-audio__artist { margin: .1rem 0 .6rem; font-size: .85rem; color: var(--pn-c-muted); }
.pn-c-audio__player { width: 100%; }
.pn-c-audio__desc { margin-top: .6rem; color: var(--pn-c-muted); }
.pn-c-audio__desc > :last-child { margin-bottom: 0; }

/* -------------------------------------------------------------------------
 * Featured Story
 * ---------------------------------------------------------------------- */

.pn-c-story { margin: 0 0 1.75rem; }
.pn-c-story__link { display: block; color: inherit; text-decoration: none; }
.pn-c-story__media { display: block; overflow: hidden; }
.pn-c-story__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pn-c-story__title {
	display: block;
	font-size: clamp(1.4rem, 1.1rem + 1.8vw, 2.3rem);
	line-height: 1.12;
	font-weight: 800;
	letter-spacing: -.02em;
}
.pn-c-story__excerpt { display: block; margin-top: .55rem; color: var(--pn-c-muted); }
.pn-c-story__meta { margin: 0 0 .35rem; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--pn-c-muted); }
.pn-c-story__sep { padding: 0 .4rem; opacity: .6; }
.pn-c-story__button {
	display: inline-block;
	margin-top: .8rem;
	padding: .5rem .9rem;
	border-radius: 999px;
	background: var(--pn-c-accent);
	color: #fff;
	font-size: .82rem;
	font-weight: 700;
}

/* Overlay: text sits on the image. */
.pn-c-story--overlay .pn-c-story__link { position: relative; border-radius: var(--pn-c-radius); overflow: hidden; }
.pn-c-story--overlay .pn-c-story__media { aspect-ratio: var(--pn-c-story-ratio, 21 / 9); }
.pn-c-story--overlay .pn-c-story__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgb(0 0 0 / 82%) 8%, rgb(0 0 0 / 20%) 55%, rgb(0 0 0 / 5%));
}
.pn-c-story--overlay .pn-c-story__body {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	padding: clamp(1rem, 2vw, 2rem);
	color: #fff;
}
.pn-c-story--overlay .pn-c-story__meta { color: rgb(255 255 255 / 85%); }
.pn-c-story--overlay .pn-c-story__excerpt { color: rgb(255 255 255 / 88%); }

/* Split: image beside the text. */
.pn-c-story--split .pn-c-story__link { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.5rem; align-items: center; }
.pn-c-story--split .pn-c-story__media { aspect-ratio: var(--pn-c-story-ratio, 4 / 3); border-radius: var(--pn-c-radius); }
.pn-c-story--minimal { border-inline-start: 4px solid var(--pn-c-accent); padding-inline-start: 1.1rem; }

@media (max-width: 720px) {
	.pn-c-story--split .pn-c-story__link { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------------------
 * Posts Carousel (scroll-snap; keyboard and touch friendly, no JS)
 * ---------------------------------------------------------------------- */

.pn-c-carousel {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc(100% / var(--pn-c-carousel-cols, 3) - 0.75rem);
	gap: 1rem;
	margin: 0 0 1.5rem;
	padding: 0 0 .6rem;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}
.pn-c-carousel__title { margin: 0 0 .2rem; font-weight: 700; }
.pn-c-carousel__subtitle { margin: 0 0 .8rem; color: var(--pn-c-muted); }
.pn-c-carousel__item { scroll-snap-align: start; }
.pn-c-carousel__card { height: 100%; }
.pn-c-carousel__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.pn-c-carousel__media { display: block; aspect-ratio: 16 / 9; border-radius: var(--pn-c-radius); overflow: hidden; }
.pn-c-carousel__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pn-c-carousel__body { display: block; padding-top: .55rem; }
.pn-c-carousel__cat { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pn-c-accent); }
.pn-c-carousel__headline { display: block; font-weight: 700; line-height: 1.25; }
.pn-c-carousel__excerpt { display: block; margin-top: .25rem; font-size: .85rem; color: var(--pn-c-muted); }

@media (max-width: 720px) {
	.pn-c-carousel { grid-auto-columns: 78%; }
}

/* -------------------------------------------------------------------------
 * Video Playlist
 * ---------------------------------------------------------------------- */

.pn-c-vplaylist { margin: 0 0 1.5rem; }
.pn-c-vplaylist__title { margin: 0 0 .8rem; font-weight: 700; }
.pn-c-vplaylist { display: grid; grid-template-columns: repeat(var(--pn-c-vpl-cols, 2), minmax(0, 1fr)); gap: 1rem; }
.pn-c-vplaylist__frame {
	position: relative;
	aspect-ratio: var(--pn-c-vpl-ratio, 16 / 9);
	border-radius: var(--pn-c-radius);
	overflow: hidden;
	background: #000;
}
.pn-c-vplaylist__frame iframe,
.pn-c-vplaylist__frame video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.pn-c-vplaylist__caption { display: block; margin-top: .4rem; font-size: .88rem; font-weight: 600; }
.pn-c-vplaylist__title { grid-column: 1 / -1; }

/* -------------------------------------------------------------------------
 * Podcast List
 * ---------------------------------------------------------------------- */

.pn-c-podcast { margin: 0 0 1.5rem; }
.pn-c-podcast__title { margin: 0 0 .8rem; font-weight: 700; }
.pn-c-podcast__item {
	padding: .8rem 0;
	border-bottom: 1px solid var(--pn-c-border);
}
.pn-c-podcast__item:last-child { border-bottom: 0; }
.pn-c-podcast__meta { display: flex; flex-wrap: wrap; gap: .5rem; align-items: baseline; margin-bottom: .4rem; }
.pn-c-podcast__name { font-weight: 700; }
.pn-c-podcast__date { font-size: .78rem; color: var(--pn-c-muted); }
.pn-c-podcast__player { width: 100%; }

/* -------------------------------------------------------------------------
 * Contact Card
 * ---------------------------------------------------------------------- */

.pn-c-contact {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	margin: 0 0 1.5rem;
	padding: 1.1rem 1.25rem;
	border: 1px solid var(--pn-c-border);
	border-radius: var(--pn-c-radius);
	background: var(--pn-c-surface);
}
.pn-c-contact--stacked { flex-direction: column; }
.pn-c-contact__logo { display: block; max-width: 140px; height: auto; }
.pn-c-contact__eyebrow {
	margin: 0 0 .2rem;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--pn-c-muted);
}
.pn-c-contact__name { margin: 0; font-weight: 800; font-size: 1.1rem; }
.pn-c-contact__lines { display: flex; flex-direction: column; gap: .35rem; margin-top: .5rem; font-size: .9rem; }
.pn-c-contact__address p { margin: 0; }
.pn-c-contact__address > :last-child { margin-bottom: 0; }
.pn-c-contact__phone,
.pn-c-contact__email,
.pn-c-contact__map { color: var(--pn-c-accent); font-weight: 600; }

/* -------------------------------------------------------------------------
 * Steps (stepper)
 * ---------------------------------------------------------------------- */

.pn-c-steps { margin: 0 0 1.5rem; padding: 0; list-style: none; counter-reset: pn-step; }
.pn-c-steps__title { margin: 0 0 .8rem; font-weight: 700; }
.pn-c-steps__item {
	position: relative;
	display: flex;
	gap: 1rem;
	padding: 0 0 1.3rem 0;
}
.pn-c-steps__item::before {
	content: "";
	position: absolute;
	inset-inline-start: 15px;
	top: 32px;
	bottom: 0;
	width: 2px;
	background: color-mix(in srgb, var(--pn-c-accent) 30%, transparent);
}
.pn-c-steps__item:last-child::before { display: none; }
.pn-c-steps__marker {
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: .9rem;
	color: #fff;
	background: var(--pn-c-accent);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--pn-c-accent) 18%, transparent);
}
.pn-c-steps__body { flex: 1; }
.pn-c-steps__label { margin: 0; font-weight: 700; font-size: 1.05rem; }
.pn-c-steps__text { color: var(--pn-c-muted); }
.pn-c-steps__text > :last-child { margin-bottom: 0; }
.pn-c-steps__media img { display: block; margin-top: .5rem; max-width: 260px; height: auto; border-radius: var(--pn-c-radius); }

/* -------------------------------------------------------------------------
 * Image
 * ---------------------------------------------------------------------- */

.pn-c-image {
	--pn-c-img-overlay: var(--pn-c-accent);
	margin: 0 0 1.25rem;
}
.pn-c-image--center { margin-inline: auto; }
.pn-c-image--end { margin-inline-start: auto; }
.pn-c-image[style*="--pn-c-img-w"] { max-width: var(--pn-c-img-w); width: 100%; }

.pn-c-image__link { display: block; color: inherit; }
.pn-c-image__media {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--pn-c-img-radius, var(--pn-c-radius));
	background: var(--pn-c-surface);
}
.pn-c-image[style*="--pn-c-img-ratio"] .pn-c-image__media { aspect-ratio: var(--pn-c-img-ratio); }
.pn-c-image__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: var(--pn-c-img-fit, cover);
	transition: transform .55s cubic-bezier(.2, .7, .2, 1);
	will-change: transform;
}

/* Frames */
.pn-c-image--frame-flat .pn-c-image__media { border-radius: 0; }
.pn-c-image--frame-glow .pn-c-image__media {
	border: 1px solid color-mix(in srgb, var(--pn-c-accent) 45%, transparent);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--pn-c-accent) 16%, transparent), 0 22px 60px -26px color-mix(in srgb, var(--pn-c-accent) 70%, transparent);
}
.pn-c-image--frame-glass {
	padding: clamp(6px, 1vw, 12px);
	border: 1px solid var(--pn-c-border);
	border-radius: calc(var(--pn-c-img-radius, var(--pn-c-radius)) + 6px);
	background: color-mix(in srgb, var(--pn-c-surface) 72%, transparent);
	backdrop-filter: blur(14px) saturate(150%);
	-webkit-backdrop-filter: blur(14px) saturate(150%);
	box-shadow: var(--pn-c-shadow);
}

/* Hover */
.pn-c-image--hover-zoom:hover .pn-c-image__img { transform: scale(1.06); }
.pn-c-image--hover-lift { transition: transform .3s ease, box-shadow .3s ease; }
.pn-c-image--hover-lift:hover { transform: translateY(-5px); box-shadow: 0 26px 60px -28px rgb(0 0 0 / .45); }
.pn-c-image--hover-glow:hover .pn-c-image__media {
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--pn-c-accent) 40%, transparent), 0 28px 70px -28px color-mix(in srgb, var(--pn-c-accent) 85%, transparent);
}

/* Overlays */
.pn-c-image__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	border-radius: inherit;
}
.pn-c-image--overlay-gradient .pn-c-image__overlay {
	background: linear-gradient(to top, color-mix(in srgb, var(--pn-c-img-overlay) 78%, transparent), transparent 58%);
}
.pn-c-image--overlay-tint .pn-c-image__overlay {
	background: color-mix(in srgb, var(--pn-c-img-overlay) 52%, transparent);
}

/* Caption */
.pn-c-image__caption {
	margin: .55rem 0 0;
	font-size: .85rem;
	color: var(--pn-c-muted);
}

/* Entrance animation (load-time; reduced motion disables it). */
.pn-c-image--reveal-fade .pn-c-image__media { animation: pn-c-img-fade .7s ease both; }
.pn-c-image--reveal-fade-up .pn-c-image__media { animation: pn-c-img-up .7s cubic-bezier(.2, .7, .2, 1) both; }
.pn-c-image--reveal-zoom .pn-c-image__media { animation: pn-c-img-zoom .7s cubic-bezier(.2, .7, .2, 1) both; }

@keyframes pn-c-img-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pn-c-img-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes pn-c-img-zoom { from { opacity: 0; transform: scale(.955); } to { opacity: 1; transform: none; } }

/* -------------------------------------------------------------------------
 * Button
 * ---------------------------------------------------------------------- */

.pn-c-button-wrap { margin: 0 0 1rem; display: flex; }
.pn-c-button-wrap--start { justify-content: flex-start; }
.pn-c-button-wrap--center { justify-content: center; }
.pn-c-button-wrap--end { justify-content: flex-end; }

.pn-c-button {
	--pn-c-btn-accent: var(--pn-c-accent);
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--pn-font-ui, inherit);
	font-weight: 700;
	line-height: 1;
	letter-spacing: .01em;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	overflow: hidden;
	transition: transform .2s ease, box-shadow .25s ease, filter .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
}
.pn-c-button--block { width: 100%; }
.pn-c-button__icon { flex: 0 0 auto; }
.pn-c-button__icon { transition: transform .25s ease; }
.pn-c-button:hover .pn-c-button__icon { transform: translateX(2px); }

/* Sizes */
.pn-c-button--size-sm { padding: .5rem .9rem; font-size: .82rem; }
.pn-c-button--size-md { padding: .68rem 1.25rem; font-size: .92rem; }
.pn-c-button--size-lg { padding: .85rem 1.6rem; font-size: 1.02rem; }

/* Variants */
.pn-c-button--style-solid {
	background: var(--pn-c-btn-accent);
	color: #fff;
}
.pn-c-button--style-solid:hover { filter: brightness(1.08); transform: translateY(-1px); box-shadow: 0 14px 30px -14px color-mix(in srgb, var(--pn-c-btn-accent) 85%, transparent); }

.pn-c-button--style-outline {
	background: transparent;
	color: var(--pn-c-btn-accent);
	border-color: color-mix(in srgb, var(--pn-c-btn-accent) 60%, transparent);
}
.pn-c-button--style-outline:hover { background: color-mix(in srgb, var(--pn-c-btn-accent) 12%, transparent); transform: translateY(-1px); }

.pn-c-button--style-ghost {
	background: transparent;
	color: var(--pn-c-btn-accent);
}
.pn-c-button--style-ghost:hover { background: color-mix(in srgb, var(--pn-c-btn-accent) 12%, transparent); }

.pn-c-button--style-gradient {
	background-image: linear-gradient(120deg, var(--pn-c-btn-accent), color-mix(in srgb, var(--pn-c-btn-accent) 55%, #101418));
	background-color: var(--pn-c-btn-accent);
	color: #fff;
}
.pn-c-button--style-gradient:hover { filter: brightness(1.08); transform: translateY(-1px); box-shadow: 0 16px 34px -16px color-mix(in srgb, var(--pn-c-btn-accent) 85%, transparent); }

.pn-c-button--style-glow {
	background: var(--pn-c-btn-accent);
	color: #fff;
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--pn-c-btn-accent) 30%, transparent), 0 12px 34px -12px color-mix(in srgb, var(--pn-c-btn-accent) 90%, transparent);
}
.pn-c-button--style-glow:hover { transform: translateY(-1px); box-shadow: 0 0 0 1px color-mix(in srgb, var(--pn-c-btn-accent) 45%, transparent), 0 18px 46px -14px color-mix(in srgb, var(--pn-c-btn-accent) 100%, transparent); }

.pn-c-button--style-glass {
	background: color-mix(in srgb, var(--pn-c-surface, #fff) 72%, transparent);
	color: var(--pn-c-btn-accent);
	border-color: color-mix(in srgb, var(--pn-c-btn-accent) 30%, var(--pn-c-border));
	backdrop-filter: blur(12px) saturate(150%);
	-webkit-backdrop-filter: blur(12px) saturate(150%);
}
.pn-c-button--style-glass:hover { background: color-mix(in srgb, var(--pn-c-btn-accent) 14%, transparent); transform: translateY(-1px); }

/* Light sweep on hover (composited, skipped under reduced motion). */
.pn-c-button::after {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline-start: -60%;
	width: 45%;
	background: linear-gradient(100deg, transparent, rgb(255 255 255 / 35%), transparent);
	transform: skewX(-18deg);
	opacity: 0;
	pointer-events: none;
}
.pn-c-button:hover::after { animation: pn-c-btn-sweep .7s ease; }
@keyframes pn-c-btn-sweep { from { inset-inline-start: -60%; opacity: .9; } to { inset-inline-start: 130%; opacity: 0; } }

/* -------------------------------------------------------------------------
 * Banner Ad
 * ---------------------------------------------------------------------- */

.pn-c-banner {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	margin: 0 0 1rem;
	width: 100%;
}
.pn-c-banner--start { align-items: flex-start; }
.pn-c-banner--center { align-items: center; }
.pn-c-banner--end { align-items: flex-end; }
.pn-c-banner[style*="--pn-c-banner-w"] { max-width: var(--pn-c-banner-w); }

.pn-c-banner__link { display: block; width: 100%; color: inherit; text-decoration: none; }
.pn-c-banner__media {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
	border-radius: var(--pn-c-banner-radius, var(--pn-c-radius));
	background: var(--pn-c-banner-bg, var(--pn-c-surface));
	min-height: var(--pn-c-banner-minh, 0);
}
.pn-c-banner__img { display: block; width: 100%; height: auto; }

/* Fixed shapes crop; auto keeps the photo's own proportions. */
.pn-c-banner[style*="--pn-c-banner-ratio"] .pn-c-banner__media { aspect-ratio: var(--pn-c-banner-ratio); }
.pn-c-banner[style*="--pn-c-banner-ratio"] .pn-c-banner__img { height: 100%; object-fit: var(--pn-c-banner-fit, cover); }

/* Frames */
.pn-c-banner--frame-flat .pn-c-banner__media { border-radius: 0; }
.pn-c-banner--frame-glow .pn-c-banner__media {
	border: 1px solid color-mix(in srgb, var(--pn-c-accent) 40%, transparent);
	box-shadow: 0 20px 60px -26px color-mix(in srgb, var(--pn-c-accent) 70%, transparent);
}
.pn-c-banner--frame-glass {
	padding: clamp(6px, 1vw, 12px);
	border: 1px solid var(--pn-c-border);
	border-radius: calc(var(--pn-c-banner-radius, var(--pn-c-radius)) + 6px);
	background: color-mix(in srgb, var(--pn-c-surface) 72%, transparent);
	backdrop-filter: blur(14px) saturate(150%);
	-webkit-backdrop-filter: blur(14px) saturate(150%);
	box-shadow: var(--pn-c-shadow);
}
.pn-c-banner--frame-glass .pn-c-banner__media { border-radius: var(--pn-c-banner-radius, var(--pn-c-radius)); }

/* Overlay + creative */
.pn-c-banner__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	border-radius: inherit;
}
.pn-c-banner--overlay-none .pn-c-banner__overlay { display: none; }
.pn-c-banner--overlay-gradient .pn-c-banner__overlay {
	background: linear-gradient(to top, color-mix(in srgb, var(--pn-c-banner-overlay, var(--pn-c-accent)) 80%, transparent), transparent 60%);
}
.pn-c-banner--overlay-tint .pn-c-banner__overlay {
	background: color-mix(in srgb, var(--pn-c-banner-overlay, var(--pn-c-accent)) 50%, transparent);
}
.pn-c-banner__creative {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	gap: .3rem;
	align-items: flex-start;
	padding: clamp(.8rem, 2vw, 1.6rem);
	color: #fff;
}
.pn-c-banner--tone-dark .pn-c-banner__creative { color: #101418; }
.pn-c-banner--center .pn-c-banner__creative { align-items: center; text-align: center; inset-inline: 0; }
.pn-c-banner--end .pn-c-banner__creative { align-items: flex-end; text-align: right; }
.pn-c-banner__headline { font-size: clamp(1.1rem, .9rem + 1.4vw, 1.7rem); font-weight: 800; line-height: 1.15; letter-spacing: -.01em; }
.pn-c-banner__text { font-size: .92rem; opacity: .92; }
.pn-c-banner__cta {
	display: inline-block;
	margin-top: .35rem;
	padding: .45rem .9rem;
	border-radius: 999px;
	background: var(--pn-c-accent);
	color: #fff;
	font-weight: 700;
	font-size: .82rem;
}
.pn-c-banner__label {
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pn-c-muted);
}

/* Overlay variants applied by class from the renderer. */
.pn-c-banner--overlay-none .pn-c-banner__overlay { display: none; }

/* Slight lift on hover (interactive banners only). */
.pn-c-banner__link { transition: transform .25s ease, box-shadow .3s ease; }
.pn-c-banner__link:hover { transform: translateY(-2px); }

@media (prefers-reduced-motion: reduce) {
	.pn-c-accordion__summary::after { transition: none; }
	.pn-c-carousel { scroll-behavior: auto; }
	.pn-c-image__img { transition: none; }
	.pn-c-image--hover-zoom:hover .pn-c-image__img,
	.pn-c-image--hover-lift:hover { transform: none; }
	.pn-c-image--reveal-fade .pn-c-image__media,
	.pn-c-image--reveal-fade-up .pn-c-image__media,
	.pn-c-image--reveal-zoom .pn-c-image__media { animation: none; }
	.pn-c-button { transition: none; }
	.pn-c-button:hover { transform: none; }
	.pn-c-button:hover .pn-c-button__icon { transform: none; }
	.pn-c-button:hover::after { animation: none; content: none; }
}
