/**
 * ClimaView components (design tokens: climaview-tokens.css).
 */
/* --- Base --- */
body {
	background-color: var(--cv-page-bg);
	background-image:
		radial-gradient(ellipse 120% 80% at 0% 0%, rgba(37, 99, 235, 0.04) 0%, transparent 50%),
		radial-gradient(ellipse 100% 70% at 100% 100%, rgba(16, 185, 129, 0.03) 0%, transparent 55%);
	font-family: var(--cv-font-body);
	color: var(--cv-dark-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.home,
body.front-page {
	background-image:
		radial-gradient(ellipse 110% 75% at 0% 0%, rgb(37 99 235 / 0.025) 0%, transparent 52%),
		radial-gradient(ellipse 95% 65% at 100% 100%, rgb(16 185 129 / 0.02) 0%, transparent 55%);
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
.wp-block-heading,
.wp-block-kadence-advancedheading {
	font-family: var(--cv-font-display);
	letter-spacing: -0.02em;
}

h1,
h2,
h3 {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
	line-height: 1.65;
}

/* Homepage: section leads & muted UI copy read darker on light backgrounds */
body.home .mp-section-lead {
	color: #1e293b;
	font-weight: 500;
}

body.home .cv-muted {
	color: #334155;
}

body.home .mp-attraction-body p,
body.home .mp-explorer__card p,
body.home .mp-card-pro > p.cv-muted {
	color: #334155;
}

/* Homepage / front page: section rhythm, hierarchy, calmer helpline icons */
body.home .mp-section,
body.front-page .mp-section {
	padding-top: clamp(3.25rem, 7.5vw, 5.75rem);
	padding-bottom: clamp(3.25rem, 7.5vw, 5.75rem);
}

body.home .mp-section-head,
body.front-page .mp-section-head {
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

body.home .mp-section-title,
body.front-page .mp-section-title {
	font-size: clamp(1.85rem, 4vw, 2.75rem);
	font-weight: 800;
	letter-spacing: -0.038em;
	margin-bottom: 0.65rem;
}

body.home .mp-section-head--news,
body.front-page .mp-section-head--news {
	margin-bottom: clamp(2.25rem, 4.5vw, 3.25rem);
}

body.home .mp-section-head--news .mp-section-title,
body.front-page .mp-section-head--news .mp-section-title {
	font-size: clamp(2rem, 4.65vw, 3rem);
	letter-spacing: -0.042em;
	line-height: 1.08;
}

body.home .mp-section-head--news .mp-section-lead,
body.front-page .mp-section-head--news .mp-section-lead {
	font-size: 1.125rem;
	max-width: 42rem;
	line-height: 1.62;
	color: #1e293b;
}

body.home .mp-home-news,
body.front-page .mp-home-news {
	padding-top: 0;
	margin-top: 0;
	border-top: none;
}


body.home .mp-section-lead,
body.front-page .mp-section-lead {
	max-width: 38rem;
	margin-left: auto;
	margin-right: auto;
	line-height: 1.65;
}

body.home .mp-grid-features .mp-reveal,
body.home .mp-news-grid .mp-reveal,
body.front-page .mp-grid-features .mp-reveal,
body.front-page .mp-news-grid .mp-reveal {
	transition-delay: 0s !important;
}

body.home .mp-card-pro,
body.front-page .mp-card-pro {
	padding: 26px 28px;
	border-color: var(--cv-card-border);
	transition:
		transform var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
}

body.home .mp-card-pro:hover,
body.front-page .mp-card-pro:hover {
	transform: translateY(-1px);
	border-color: rgb(203 213 225 / 0.95);
	box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
}

body.home .mp-feature-icon,
body.front-page .mp-feature-icon {
	width: var(--cv-icon-box);
	height: var(--cv-icon-box);
	border-radius: var(--cv-radius-icon-box);
	font-size: 1.25rem;
	margin-bottom: 18px;
}

body.home .mp-grid-features,
body.front-page .mp-grid-features {
	gap: clamp(1.5rem, 3vw, 2rem);
}

body.home .mp-weather-stat,
body.front-page .mp-weather-stat {
	padding: 18px 22px;
	border-color: var(--cv-card-border);
	transition:
		box-shadow var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease),
		transform var(--cv-dur) var(--cv-ease);
}

@media (hover: hover) {
	body.home .mp-weather-stat:hover,
	body.front-page .mp-weather-stat:hover {
		box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
		border-color: rgb(203 213 225 / 0.9);
		transform: translateY(-1px);
	}
}

body.home .mp-home-news .mp-news-card,
body.front-page .mp-home-news .mp-news-card {
	border-color: rgb(226 232 240 / 0.92);
}

body.home .mp-home-news .mp-news-card h3,
body.front-page .mp-home-news .mp-news-card h3 {
	font-size: clamp(1.1875rem, 1.5vw, 1.3125rem);
	font-weight: 800;
	line-height: 1.28;
	margin-bottom: 12px;
	letter-spacing: -0.025em;
}

body.home .mp-news-card h3,
body.front-page .mp-news-card h3 {
	font-size: clamp(1.125rem, 1.35vw, 1.25rem);
	font-weight: 700;
	line-height: 1.3;
	margin-bottom: 12px;
}

body.home .mp-news-card p,
body.front-page .mp-news-card p {
	line-height: 1.62;
	margin-bottom: 18px;
}

body.home .mp-news-body,
body.front-page .mp-news-body {
	padding: 22px 22px 20px;
}

body.home .mp-news-link,
body.front-page .mp-news-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	font-size: 0.875rem;
	padding: 2px 0;
	border-radius: 4px;
	transition: color var(--cv-dur) var(--cv-ease);
}

body.home .mp-news-link:hover,
body.front-page .mp-news-link:hover {
	color: var(--cv-primary-700);
	text-decoration: none;
}

body.home .mp-news-meta,
body.front-page .mp-news-meta {
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	text-shadow: 0 1px 8px rgb(0 0 0 / 0.55);
}

body.home .mp-explorer__card,
body.front-page .mp-explorer__card {
	padding: 24px 26px;
}

body.home .mp-explorer__card:hover,
body.front-page .mp-explorer__card:hover {
	transform: translateY(-1px);
	box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
}

body.home .mp-attraction-body,
body.front-page .mp-attraction-body {
	padding: 22px;
}

body.home .mp-attraction-body h3,
body.front-page .mp-attraction-body h3 {
	font-size: 1.125rem;
	margin-bottom: 10px;
}

body.home .mp-phone-grid,
body.front-page .mp-phone-grid {
	gap: clamp(1.125rem, 2vw, 1.5rem);
}

body.home .mp-phone-card,
body.front-page .mp-phone-card {
	padding: 24px 24px 22px;
}

body.home .mp-phone-card__ico,
body.front-page .mp-phone-card__ico {
	font-size: 1.5rem;
	margin-bottom: 12px;
	animation: none;
}

body.home .mp-phone-card h3,
body.front-page .mp-phone-card h3 {
	font-size: 1rem;
	margin-bottom: 10px;
}

body.home .mp-footer-grid,
body.front-page .mp-footer-grid {
	gap: clamp(2rem, 4vw, 2.75rem);
}

body.home .mp-footer-lead,
body.front-page .mp-footer-lead {
	margin-bottom: 1.25rem;
}

body.home .mp-news-thumb::after,
body.front-page .mp-news-thumb::after {
	background: linear-gradient(180deg, transparent 25%, rgb(15 23 42 / 0.08) 45%, rgb(15 23 42 / 0.55) 100%);
}

body.home .mp-weather-main,
body.front-page .mp-weather-main {
	box-shadow:
		var(--shadow-card-lg),
		inset 0 0 0 1px rgb(255 255 255 / 0.07);
}

body.home .mp-card-pro .cv-card__title,
body.front-page .mp-card-pro .cv-card__title {
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: -0.022em;
}

/* Homepage — composition: hero handoff, section bands, utility vs editorial hierarchy */
body.home .entry-content .wp-block-shortcode:has(.mp-hero-v2),
body.front-page .entry-content .wp-block-shortcode:has(.mp-hero-v2) {
	margin-bottom: clamp(0.75rem, 2vw, 1.5rem);
}

body.home #weather.mp-section,
body.front-page #weather.mp-section {
	padding-top: clamp(2.75rem, 5.5vw, 4rem) !important;
	background: linear-gradient(180deg, #fff 0%, var(--cv-surface-50) 100%);
}

body.home #features.mp-section,
body.front-page #features.mp-section {
	background: #fff;
}

body.home #features .mp-section-title,
body.home #history .mp-section-title,
body.home #attractions .mp-section-title,
body.home #phones .mp-section-title,
body.front-page #features .mp-section-title,
body.front-page #history .mp-section-title,
body.front-page #attractions .mp-section-title,
body.front-page #phones .mp-section-title {
	font-size: clamp(1.52rem, 3.1vw, 2.12rem);
	font-weight: 700;
	letter-spacing: -0.032em;
	color: #0f172a;
}

body.home #features .mp-section-lead,
body.home #history .mp-section-lead,
body.home #attractions .mp-section-lead,
body.home #phones .mp-section-lead,
body.front-page #features .mp-section-lead,
body.front-page #history .mp-section-lead,
body.front-page #attractions .mp-section-lead,
body.front-page #phones .mp-section-lead {
	font-size: 0.96875rem;
	line-height: 1.62;
	max-width: 36rem;
	margin-left: auto;
	margin-right: auto;
	color: #64748b;
	font-weight: 400;
}

body.home #weather .mp-section-title,
body.front-page #weather .mp-section-title {
	font-size: clamp(1.65rem, 3.4vw, 2.38rem);
	font-weight: 800;
	letter-spacing: -0.036em;
}

body.home #weather .mp-section-lead,
body.front-page #weather .mp-section-lead {
	font-size: 1.03125rem;
	color: #475569;
	max-width: 38rem;
}

body.home #history.mp-section,
body.front-page #history.mp-section {
	background: var(--cv-surface-50);
	border-top: 1px solid rgb(226 232 240 / 0.75);
	border-bottom: 1px solid rgb(226 232 240 / 0.75);
}

body.home #history .mp-section-head,
body.front-page #history .mp-section-head {
	margin-bottom: clamp(1.85rem, 3.75vw, 2.65rem);
}

body.home #attractions.mp-section,
body.front-page #attractions.mp-section {
	background: #fff;
}

body.home #attractions .mp-section-head,
body.front-page #attractions .mp-section-head {
	margin-bottom: clamp(1.85rem, 3.75vw, 2.65rem);
}

body.home #phones.mp-section,
body.front-page #phones.mp-section {
	background: linear-gradient(180deg, #fff 0%, var(--cv-surface-50) 100%);
	border-top: 1px solid var(--cv-surface-200);
}

body.home #news.mp-section,
body.front-page #news.mp-section {
	background: linear-gradient(180deg, var(--cv-surface-50) 0%, #fafbff 38%, #fff 100%);
	border-top: 1px solid var(--cv-surface-200);
	border-bottom: 1px solid var(--cv-surface-200);
	padding-top: clamp(3.5rem, 7vw, 5.5rem);
	padding-bottom: clamp(3.75rem, 7.5vw, 5.75rem);
}

body.home #news .mp-news-grid,
body.front-page #news .mp-news-grid {
	gap: clamp(1.5rem, 3.25vw, 2.25rem);
}

body.home #news .mp-news-grid--6 .mp-news-thumb,
body.front-page #news .mp-news-grid--6 .mp-news-thumb {
	height: clamp(152px, 20vw, 188px);
}

body.home #news .mp-news-body,
body.front-page #news .mp-news-body {
	padding: 24px 24px 22px;
}

body.home .mp-weather-hero,
body.front-page .mp-weather-hero {
	gap: clamp(1.35rem, 2.75vw, 1.85rem);
}

body.home .mp-section--social,
body.front-page .mp-section--social {
	padding-top: clamp(3rem, 6.5vw, 4.5rem);
	padding-bottom: clamp(3rem, 6.5vw, 4.5rem);
}

body.home .mp-footer:not(.mp-footer--global),
body.front-page .mp-footer:not(.mp-footer--global) {
	padding: clamp(3.5rem, 7vw, 5rem) 0 clamp(2rem, 4vw, 2.75rem);
	margin-top: clamp(0.5rem, 1.5vw, 1.25rem);
	border-top: 1px solid var(--cv-surface-200);
	background: linear-gradient(180deg, var(--cv-surface-50) 0%, #fff 42%);
}

body.home footer.mp-footer.mp-footer--global,
body.front-page footer.mp-footer.mp-footer--global {
	margin-top: clamp(1rem, 2.5vw, 1.75rem);
	padding: clamp(2.75rem, 6vw, 4.25rem) 0 clamp(1.75rem, 3.5vw, 2.25rem);
}

body.home .mp-footer-grid,
body.front-page .mp-footer-grid {
	padding-top: 0.35rem;
}

body.home .mp-footer-bar,
body.front-page .mp-footer-bar {
	margin-top: clamp(1.25rem, 3vw, 1.75rem);
	padding-top: clamp(1.25rem, 2.5vw, 1.5rem);
	border-top: 1px solid rgb(226 232 240 / 0.9);
}

body.home .mp-portal-footer-shell,
body.front-page .mp-portal-footer-shell {
	padding-top: clamp(1.75rem, 3.5vw, 2.5rem);
	background: linear-gradient(180deg, var(--cv-surface-100) 0%, var(--cv-page-bg) 55%);
	border-top: 1px solid var(--cv-surface-200);
}

body.home .mp-explorer,
body.front-page .mp-explorer {
	margin-top: 4px;
}

/* Homepage — responsive visual QA (mobile / tablet / short viewports) */
@media (max-width: 640px) {
	body.home .mp-section,
	body.front-page .mp-section {
		padding-top: clamp(1.65rem, 5vw, 2.75rem);
		padding-bottom: clamp(1.65rem, 5vw, 2.75rem);
	}

	body.home .mp-section-head,
	body.front-page .mp-section-head {
		margin-bottom: clamp(1.1rem, 3.5vw, 1.65rem);
	}

	body.home .mp-section-title,
	body.front-page .mp-section-title {
		font-size: clamp(1.35rem, 5vw, 1.68rem);
		line-height: 1.14;
		margin-bottom: 0.45rem;
	}

	body.home .mp-section-head--news .mp-section-title,
	body.front-page .mp-section-head--news .mp-section-title {
		font-size: clamp(1.42rem, 5.5vw, 1.78rem);
		line-height: 1.12;
	}

	body.home .mp-section-head--news .mp-section-lead,
	body.front-page .mp-section-head--news .mp-section-lead {
		font-size: 0.9375rem;
		line-height: 1.52;
	}

	body.home .mp-section-head--news,
	body.front-page .mp-section-head--news {
		margin-bottom: clamp(1.1rem, 3.25vw, 1.5rem);
	}

	body.home #features .mp-section-title,
	body.home #history .mp-section-title,
	body.home #attractions .mp-section-title,
	body.home #phones .mp-section-title,
	body.front-page #features .mp-section-title,
	body.front-page #history .mp-section-title,
	body.front-page #attractions .mp-section-title,
	body.front-page #phones .mp-section-title {
		font-size: clamp(1.32rem, 4.5vw, 1.58rem);
	}

	body.home #weather .mp-section-title,
	body.front-page #weather .mp-section-title {
		font-size: clamp(1.4rem, 5vw, 1.72rem);
	}

	body.home #weather .mp-section-lead,
	body.front-page #weather .mp-section-lead {
		font-size: 0.9375rem;
	}

	body.home #weather.mp-section,
	body.front-page #weather.mp-section {
		padding-top: clamp(2.1rem, 5vw, 3.25rem) !important;
	}

	body.home #news.mp-section,
	body.front-page #news.mp-section {
		padding-top: clamp(1.65rem, 5vw, 2.85rem);
		padding-bottom: clamp(1.65rem, 5vw, 2.85rem);
	}

	body.home #news .mp-news-grid,
	body.front-page #news .mp-news-grid {
		gap: 1rem;
		align-items: start;
	}

	body.home #news .mp-news-grid--6 .mp-news-thumb,
	body.front-page #news .mp-news-grid--6 .mp-news-thumb {
		height: min(118px, 32vw);
		min-height: 96px;
	}

	body.home #news .mp-news-body,
	body.front-page #news .mp-news-body {
		padding: 14px 14px 12px;
	}

	body.home .mp-home-news .mp-news-card h3,
	body.front-page .mp-home-news .mp-news-card h3 {
		font-size: 1rem;
		line-height: 1.28;
		margin-bottom: 8px;
	}

	body.home #news .mp-news-grid--6 .mp-news-card h3,
	body.front-page #news .mp-news-grid--6 .mp-news-card h3 {
		font-size: 0.96875rem;
		margin-bottom: 8px;
	}

	body.home #news .mp-news-grid--6 .mp-news-card p,
	body.front-page #news .mp-news-grid--6 .mp-news-card p {
		font-size: 0.875rem;
		line-height: 1.5;
		margin-bottom: 10px;
	}

	body.home .mp-news-card p,
	body.front-page .mp-news-card p {
		margin-bottom: 10px;
	}

	body.home .mp-news-link,
	body.front-page .mp-news-link {
		font-size: 0.8125rem;
		padding: 6px 0;
		min-height: 40px;
		box-sizing: border-box;
		align-items: center;
	}

	body.home .mp-news-meta,
	body.front-page .mp-news-meta {
		bottom: 10px;
		left: 10px;
		right: 10px;
		font-size: 0.625rem;
		gap: 6px;
	}

	body.home .mp-card-pro,
	body.front-page .mp-card-pro {
		padding: 16px 14px;
		min-width: 0;
	}

	body.home .mp-card-pro .cv-card__title,
	body.front-page .mp-card-pro .cv-card__title {
		font-size: 1rem;
		line-height: 1.3;
	}

	body.home .mp-feature-icon,
	body.front-page .mp-feature-icon {
		margin-bottom: 12px;
	}

	body.home .mp-weather-main,
	body.front-page .mp-weather-main {
		padding: 22px 18px;
	}

	body.home .mp-weather-stat,
	body.front-page .mp-weather-stat {
		padding: 14px 16px;
		gap: 12px;
	}

	body.home .mp-weather-hero,
	body.front-page .mp-weather-hero {
		gap: 1.15rem;
	}

	body.home .mp-forecast,
	body.front-page .mp-forecast {
		gap: 6px;
		font-size: 0.6875rem;
		margin-top: 16px;
	}

	body.home .mp-phone-card,
	body.front-page .mp-phone-card {
		padding: 20px 18px 18px;
	}

	body.home .mp-explorer__card,
	body.front-page .mp-explorer__card {
		padding: 20px 18px;
	}

	body.home .mp-explorer__tabs,
	body.front-page .mp-explorer__tabs {
		gap: 6px;
		margin-bottom: 22px;
	}

	body.home .mp-explorer__tab,
	body.front-page .mp-explorer__tab {
		padding: 9px 14px;
		font-size: 0.8125rem;
	}

	body.home .mp-attraction-body,
	body.front-page .mp-attraction-body {
		padding: 18px 16px;
	}

	body.home .mp-attraction-body h3,
	body.front-page .mp-attraction-body h3 {
		font-size: 1.0625rem;
	}

	/* Hero height & type: overridden below “Front page: hero first…” for ≤640px (higher cascade) */

	body.home .mp-hero-v2__stats,
	body.front-page .mp-hero-v2__stats {
		gap: 10px 14px;
		margin-bottom: clamp(0.75rem, 2.5vw, 1.25rem);
	}

	body.home .mp-hero-v2__stat-divider,
	body.front-page .mp-hero-v2__stat-divider {
		display: none;
	}

	body.home .mp-hero-v2__btn,
	body.front-page .mp-hero-v2__btn {
		min-height: 44px;
		padding: 10px 18px;
		font-size: 0.875rem;
	}

	body.home .mp-footer:not(.mp-footer--global),
	body.front-page .mp-footer:not(.mp-footer--global) {
		padding: clamp(2.35rem, 8vw, 3.25rem) 0 clamp(1.5rem, 5vw, 2rem);
	}

	body.home footer.mp-footer.mp-footer--global,
	body.front-page footer.mp-footer.mp-footer--global {
		padding: clamp(2.35rem, 8vw, 3.25rem) 0 clamp(1.5rem, 5vw, 2rem);
	}

	body.home .mp-footer-grid,
	body.front-page .mp-footer-grid {
		gap: 1.75rem;
	}

	body.home .mp-section--social,
	body.front-page .mp-section--social {
		padding-top: clamp(2.35rem, 6vw, 3.25rem);
		padding-bottom: clamp(2.35rem, 6vw, 3.25rem);
	}

	body.home .entry-content .wp-block-shortcode:has(.mp-hero-v2),
	body.front-page .entry-content .wp-block-shortcode:has(.mp-hero-v2) {
		margin-bottom: clamp(0.35rem, 1.5vw, 0.85rem);
	}
}

@media (min-width: 640px) and (max-width: 899px) {
	body.home .mp-section,
	body.front-page .mp-section {
		padding-top: clamp(2.85rem, 5.8vw, 4.35rem);
		padding-bottom: clamp(2.85rem, 5.8vw, 4.35rem);
	}

	body.home .mp-section-head,
	body.front-page .mp-section-head {
		margin-bottom: clamp(1.65rem, 3.2vw, 2.35rem);
	}

	body.home #news.mp-section,
	body.front-page #news.mp-section {
		padding-top: clamp(3rem, 5.5vw, 4.65rem);
		padding-bottom: clamp(3.1rem, 5.6vw, 4.85rem);
	}

	body.home .mp-card-pro,
	body.front-page .mp-card-pro {
		padding: 24px 22px;
	}

	body.home #news .mp-news-grid,
	body.front-page #news .mp-news-grid {
		gap: 1.35rem;
	}

	body.home .mp-hero-v2,
	body.front-page .mp-hero-v2 {
		--mp-home-chrome: clamp(124px, 16vh, 178px);
	}
}

@media (min-width: 900px) and (max-width: 1199px) {
	body.home .mp-hero-v2,
	body.front-page .mp-hero-v2 {
		--mp-home-chrome: clamp(120px, 14vh, 172px);
	}

	body.home .mp-section-head--news .mp-section-title,
	body.front-page .mp-section-head--news .mp-section-title {
		font-size: clamp(1.85rem, 3.8vw, 2.65rem);
	}
}

@media (max-width: 640px) and (max-height: 720px) {
	body.home .mp-hero-v2__title,
	body.front-page .mp-hero-v2__title {
		font-size: clamp(1.65rem, 7vw, 2.15rem);
		margin-bottom: 10px;
	}

	body.home .mp-hero-v2__sub,
	body.front-page .mp-hero-v2__sub {
		font-size: 0.90625rem;
		line-height: 1.5;
		margin-bottom: 14px;
	}

	body.home .mp-hero-v2__actions,
	body.front-page .mp-hero-v2__actions {
		margin-bottom: 12px;
		gap: 8px;
	}

	body.home .mp-hero-v2__stats,
	body.front-page .mp-hero-v2__stats {
		margin-bottom: 1rem;
	}
}

/* --- Focus (keyboard) --- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
	outline: 2px solid var(--cv-primary-600);
	outline-offset: 2px;
}

/* --- Content width shell (header, patterns, footer shell — same math) --- */
.cv-container {
	max-width: var(--cv-content-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--cv-gutter);
	padding-right: var(--cv-gutter);
	box-sizing: border-box;
	width: 100%;
}

.cv-section {
	padding-top: 32px;
	padding-bottom: 32px;
}

@media (min-width: 768px) {
	.cv-section {
		padding-top: 48px;
		padding-bottom: 48px;
	}
}

.cv-section--hero {
	padding-top: 24px;
	padding-bottom: 24px;
}

@media (min-width: 768px) {
	.cv-section--hero {
		padding-top: 32px;
		padding-bottom: 32px;
	}
}

/* --- Cards --- */
.cv-card {
	background: #ffffff;
	border: 1px solid var(--cv-card-border);
	border-radius: var(--cv-radius-card);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	padding: 24px;
	transition:
		transform var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
}

.cv-card--hover:hover {
	transform: translateY(-1px);
	border-color: rgb(203 213 225 / 0.92);
	box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
}

.cv-card--sm {
	border-radius: var(--cv-radius-sm);
	padding: 16px;
}

.cv-card--lg {
	border-radius: var(--cv-radius-lg);
}

.cv-card__title {
	font-family: var(--cv-font-display);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--cv-dark-text);
	margin: 0 0 16px;
}

.cv-card--glass {
	background: rgba(255, 255, 255, 0.7);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: var(--shadow-glass);
}

.cv-muted {
	color: var(--cv-muted);
	font-size: 0.9375rem;
	line-height: 1.6;
}

/* --- Buttons --- */
.cv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-weight: 500;
	font-family: var(--cv-font-body);
	border-radius: var(--cv-radius-btn);
	transition:
		background-color var(--cv-dur) var(--cv-ease),
		color var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease),
		transform 150ms var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease);
	text-decoration: none;
	cursor: pointer;
	border: none;
	line-height: 1.4;
}

.cv-btn--primary {
	background: var(--cv-primary-600);
	color: #fff;
	padding: 12px 22px;
	min-height: 42px;
	box-shadow: 0 1px 2px rgb(37 99 235 / 0.14), 0 2px 8px rgb(15 23 42 / 0.06);
}

.cv-btn--primary:hover {
	background: var(--cv-primary-700);
	color: #fff;
	box-shadow: 0 2px 6px rgb(37 99 235 / 0.22), 0 4px 14px rgb(15 23 42 / 0.08);
}

.cv-btn--primary:active {
	transform: scale(0.98);
}

.cv-btn--outline {
	background: transparent;
	color: var(--cv-primary-600);
	border: 2px solid var(--cv-primary-600);
	padding: 10px 20px;
	min-height: 42px;
}

.cv-btn--outline:hover {
	background: var(--cv-primary-50);
	border-color: var(--cv-primary-700);
	color: var(--cv-primary-700);
}

.cv-btn--ghost {
	background: transparent;
	color: var(--cv-dark-text);
	padding: 8px 12px;
	border-radius: var(--cv-radius-btn);
}

.cv-btn--ghost:hover {
	background: var(--cv-surface-100);
	color: var(--cv-primary-600);
}

/* Text link */
.cv-link {
	color: var(--cv-primary-600);
	text-decoration: none;
	transition: text-decoration-color var(--cv-dur) var(--cv-ease);
}

.cv-link:hover {
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* --- Portal header: Pulse + nav + full-bleed city strip (single sticky unit) --- */
.cv-portal-header-shell {
	position: sticky;
	top: 0;
	z-index: 10050;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	border-bottom: 1px solid var(--cv-header-border);
}

/* --- Header bar (pattern + Kadence masthead glass) --- */
.cv-header-bar {
	position: relative;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(24px) saturate(1.2);
	-webkit-backdrop-filter: blur(24px) saturate(1.2);
	border-bottom: none;
	min-height: 0;
}

/* City info strip: same stack as header (not a floating card); full-bleed band + constrained text */
.cv-header-city {
	width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	background: linear-gradient(180deg, #0f172a 0%, #020617 50%, #0b1120 100%);
	border-top: 1px solid rgb(226 232 240 / 0.22);
}

.cv-header-city .mp-ticker-wrap.cv-container {
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
}

.cv-header-city .mp-ticker {
	background: transparent;
	border-radius: 0;
	padding: 7px 0;
	font-size: 0.75rem;
	line-height: 1.35;
}

.cv-header-city .mp-ticker::before,
.cv-header-city .mp-ticker::after {
	width: 32px;
}

.cv-header-city .mp-ticker::before {
	background: linear-gradient(90deg, #0f172a, transparent);
}

.cv-header-city .mp-ticker::after {
	background: linear-gradient(90deg, transparent, #0b1120);
}

.cv-header-bar__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-height: 64px;
	flex-wrap: wrap;
}

@media (min-width: 640px) {
	.cv-header-bar__inner {
		flex-wrap: nowrap;
	}
}

/* Portal news ticker (RSS + optional OpenAI rewrite; text only, no links) */
.cv-news-ticker {
	border-bottom: 1px solid rgba(15, 23, 42, 0.06);
	background: linear-gradient(90deg, rgba(30, 64, 175, 0.06) 0%, rgba(248, 250, 252, 0.95) 45%, rgba(255, 255, 255, 0.98) 100%);
	overflow-x: hidden;
	max-width: 100%;
	box-sizing: border-box;
}

.cv-news-ticker__inner {
	display: flex;
	align-items: center;
	gap: 0.75rem 1rem;
	min-height: 36px;
	padding-top: 0.35rem;
	padding-bottom: 0.35rem;
}

.cv-news-ticker__badge {
	flex-shrink: 0;
	font-size: 0.5625rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--cv-primary-700);
	padding: 0.2rem 0.45rem;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.85);
	border: 1px solid var(--cv-primary-200);
	line-height: 1;
}

.cv-news-ticker__viewport {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent 0%, #000 2%, #000 98%, transparent 100%);
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 2%, #000 98%, transparent 100%);
}

.cv-news-ticker__track {
	--cv-news-marquee-duration: 160s;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	width: max-content;
	gap: 0;
	/* Duration set by portal-home.js from scrollWidth so 15 items are not faster than 3 */
	animation: cv-news-marquee var(--cv-news-marquee-duration, 160s) linear infinite !important;
	animation-play-state: running !important;
}

/* Beat parent-theme :hover { animation-play-state: paused } */
div.cv-news-ticker .cv-news-ticker__track:hover,
div.cv-news-ticker:hover .cv-news-ticker__track,
div.cv-news-ticker__viewport:hover .cv-news-ticker__track,
div.cv-news-ticker .cv-news-ticker__inner:hover .cv-news-ticker__track {
	animation: cv-news-marquee var(--cv-news-marquee-duration, 160s) linear infinite !important;
	animation-play-state: running !important;
}

.cv-news-ticker__item {
	flex-shrink: 0;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--cv-dark-text);
	line-height: 1.35;
	white-space: nowrap;
	padding-right: 0.35rem;
}

.cv-news-ticker__sep {
	flex-shrink: 0;
	width: 0.35rem;
	height: 1em;
	position: relative;
	align-self: center;
	margin-right: 0.85rem;
}

.cv-news-ticker__sep::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--cv-primary-400);
	opacity: 0.65;
}

@keyframes cv-news-marquee {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.cv-news-ticker__track {
		animation: none !important;
		flex-wrap: wrap;
		width: 100%;
		row-gap: 0.35rem;
		white-space: normal;
	}

	.cv-news-ticker__item {
		white-space: normal;
	}

	.cv-news-ticker__viewport {
		mask-image: none;
		-webkit-mask-image: none;
	}
}

.cv-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	color: inherit;
}

.cv-brand__mark {
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: var(--cv-primary-600);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.cv-brand__mark svg {
	width: 20px;
	height: 20px;
	color: #fff;
}

.cv-brand__wordmark {
	font-family: var(--cv-font-display);
	font-weight: 800;
	font-size: 1.125rem;
	letter-spacing: -0.03em;
	line-height: 1;
}

.cv-brand__wordmark span:last-child {
	color: var(--cv-primary-600);
}

/* Enhanced brand */
.cv-brand--enhanced {
	gap: 10px;
}

.cv-brand--enhanced .cv-brand__mark {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: transparent;
	box-shadow: 0 4px 12px rgba(30, 64, 175, 0.15);
}

.cv-brand--enhanced .cv-brand__mark svg {
	width: 36px;
	height: 36px;
}

.cv-brand--enhanced .cv-brand__wordmark {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.cv-brand__name {
	font-family: var(--cv-font-display);
	font-weight: 700;
	font-size: 1.15rem;
	letter-spacing: -0.02em;
	color: var(--cv-dark-text);
}

.cv-brand__name strong {
	color: var(--cv-primary-600);
	font-weight: 800;
}

.cv-brand__tagline {
	font-size: 0.65rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cv-muted);
}

/* Navigation improvements */
.cv-nav-row--main {
	display: none;
}

@media (min-width: 900px) {
	.cv-nav-row--main {
		display: flex;
		align-items: center;
		gap: 6px;
	}
}

.cv-nav-row--main a {
	font-size: 0.875rem;
	font-weight: 600;
	padding: 8px 14px;
	border-radius: 8px;
	transition: background var(--cv-dur) var(--cv-ease), color var(--cv-dur) var(--cv-ease);
}

.cv-nav-row--main a:hover {
	background: var(--cv-surface-100);
}

.cv-btn--contact {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.cv-btn--contact svg {
	flex-shrink: 0;
}

/* Header “Contact Us” — strong default contrast on light bar + clear hover */
.cv-header-bar .cv-btn--primary.cv-btn--contact {
	min-height: 0;
	padding: 10px 18px;
	font-weight: 600;
	color: #fff;
	background: #1d4ed8;
	border: 1px solid #1e3a8a;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.14) inset,
		0 1px 2px rgba(15, 23, 42, 0.1),
		0 4px 14px rgba(29, 78, 216, 0.4);
	text-shadow: 0 1px 1px rgba(0, 0, 0, 0.12);
}

.cv-header-bar .cv-btn--primary.cv-btn--contact:hover {
	background: #1e40af;
	color: #fff;
	border-color: #172554;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.18) inset,
		0 2px 4px rgba(15, 23, 42, 0.1),
		0 10px 28px rgba(30, 64, 175, 0.55);
	transform: translateY(-1px);
}

.cv-header-bar .cv-btn--primary.cv-btn--contact:active {
	transform: translateY(0);
	box-shadow:
		0 1px 3px rgba(15, 23, 42, 0.1),
		0 4px 12px rgba(37, 99, 235, 0.4);
}

.cv-header-bar .cv-btn--primary.cv-btn--contact:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
	box-shadow:
		0 0 0 3px var(--cv-primary-600),
		0 8px 24px rgba(37, 99, 235, 0.45);
}

/* Mobile nav toggle */
.cv-nav-toggle {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 40px;
	height: 40px;
	padding: 8px;
	border: 1px solid var(--cv-surface-200);
	border-radius: 10px;
	background: #fff;
	cursor: pointer;
}

@media (min-width: 900px) {
	.cv-nav-toggle {
		display: none;
	}
}

.cv-nav-toggle span {
	display: block;
	width: 100%;
	height: 2px;
	background: var(--cv-dark-text);
	border-radius: 2px;
	transition: transform 0.2s var(--cv-ease), opacity 0.2s var(--cv-ease);
}

.cv-nav-toggle.is-active span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.cv-nav-toggle.is-active span:nth-child(2) {
	opacity: 0;
}

.cv-nav-toggle.is-active span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* Mobile nav open state */
.cv-nav-row--main.is-open {
	display: flex;
	flex-direction: column;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: #fff;
	border-top: 1px solid var(--cv-header-border);
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.1);
	padding: 16px;
	gap: 4px;
	z-index: 100;
}

.cv-nav-row--main.is-open a {
	width: 100%;
	text-align: left;
	padding: 12px 16px;
}

@media (min-width: 900px) {
	.cv-nav-row--main.is-open {
		position: static;
		flex-direction: row;
		background: transparent;
		border: none;
		box-shadow: none;
		padding: 0;
	}
	.cv-nav-row--main.is-open a {
		width: auto;
	}
}

/* Prominent pill search */
.cv-search-wrap {
	flex: 1 1 100%;
	max-width: 36rem;
	margin: 8px 0;
	order: 3;
}

@media (min-width: 640px) {
	.cv-search-wrap {
		order: 0;
		margin: 0 auto;
		flex: 1 1 auto;
	}
}

@media (min-width: 1024px) {
	.cv-search-wrap {
		max-width: 42rem;
	}
}

.cv-search-field {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
}

.cv-search-field svg {
	position: absolute;
	left: 16px;
	width: 20px;
	height: 20px;
	color: var(--cv-muted);
	pointer-events: none;
	stroke-width: 2;
}

.cv-search-field input[type="search"],
.cv-search-field input[type="text"] {
	width: 100%;
	height: 44px;
	padding: 0 16px 0 48px;
	border-radius: var(--cv-radius-pill);
	border: 1px solid var(--cv-surface-200);
	background: var(--cv-surface-50);
	font-family: var(--cv-font-body);
	font-size: 0.9375rem;
	color: var(--cv-dark-text);
	transition: border-color var(--cv-dur) var(--cv-ease), box-shadow var(--cv-dur) var(--cv-ease);
}

.cv-search-field input::placeholder {
	color: var(--cv-muted);
}

.cv-search-field input:focus {
	border-color: var(--cv-primary-500);
	box-shadow: 0 0 0 2px var(--cv-primary-100);
	outline: none;
}

.cv-nav-row {
	display: none;
	align-items: center;
	gap: 4px;
}

@media (min-width: 640px) {
	.cv-nav-row {
		display: flex;
	}
}

.cv-nav-row a {
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--cv-muted);
	text-decoration: none;
	padding: 8px 12px;
	border-radius: var(--cv-radius-btn);
	transition: background var(--cv-dur) var(--cv-ease), color var(--cv-dur) var(--cv-ease);
}

.cv-nav-row a:hover {
	background: var(--cv-surface-100);
	color: var(--cv-dark-text);
}

.cv-nav-row--all {
	display: flex;
	flex-wrap: wrap;
}

/* Shortcode wrapper: same max width + gutters as header / sections (.cv-container.mp-ticker-wrap) */
.mp-ticker-wrap.cv-container {
	display: block;
	width: 100%;
	max-width: var(--cv-content-max);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

/* Header city strip: same max-width + gutters as .cv-header-bar__inner (.cv-container) */
.mp-ticker-wrap--header {
	display: block;
}

.mp-ticker-wrap {
	box-sizing: border-box;
}

.mp-ticker-wrap .mp-ticker {
	border-radius: var(--cv-radius-sm);
}

/* Header-integrated strip: wins over .mp-ticker-wrap .mp-ticker (no floating card) */
.cv-header-city .mp-ticker-wrap .mp-ticker {
	border-radius: 0;
	background: transparent;
}

/* --- Live ticker strip --- */
.mp-ticker {
	background: linear-gradient(90deg, #020617 0%, #0f172a 50%, #1e3a5f 100%);
	color: #fff;
	overflow: hidden;
	position: relative;
	padding: 10px 0;
	font-size: 0.8125rem;
	max-width: 100%;
}

.mp-ticker::before,
.mp-ticker::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 80px;
	z-index: 2;
	pointer-events: none;
}

.mp-ticker::before {
	left: 0;
	background: linear-gradient(90deg, #020617, transparent);
}

.mp-ticker::after {
	right: 0;
	background: linear-gradient(90deg, transparent, #1e3a5f);
}

.mp-ticker__track {
	display: flex;
	width: max-content;
	animation: mp-ticker-scroll 40s linear infinite;
}

.mp-ticker__track:hover {
	animation-play-state: paused;
}

.mp-ticker__content {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-right: 48px;
	flex-shrink: 0;
}

.mp-ticker__item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
}

.mp-ticker__item--weather strong {
	color: #fbbf24;
}

.mp-ticker__item--crops span {
	background: rgba(255, 255, 255, 0.1);
	padding: 3px 8px;
	border-radius: 999px;
	font-size: 0.75rem;
}

.mp-ticker__label {
	font-weight: 600;
	opacity: 0.75;
}

.mp-ticker__sep {
	opacity: 0.3;
	font-size: 0.625rem;
}

@keyframes mp-ticker-scroll {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.mp-ticker__track {
		animation: none;
		flex-wrap: wrap;
		justify-content: center;
		gap: 8px 16px;
		width: auto;
		padding: 0 16px;
	}
	.mp-ticker__content:last-child {
		display: none;
	}
	.mp-ticker::before,
	.mp-ticker::after {
		display: none;
	}
}

/* Dropdown / assistant panel */
.cv-search-panel {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 8px);
	background: #fff;
	border: 1px solid var(--cv-surface-200);
	border-radius: var(--cv-radius-card);
	box-shadow: var(--shadow-card-lg);
	padding: 24px;
	opacity: 0;
	transform: scale(0.95);
	transform-origin: top center;
	pointer-events: none;
	visibility: hidden;
	transition:
		opacity var(--cv-dur-slow) ease-out,
		transform var(--cv-dur-slow) var(--cv-ease),
		visibility 0s linear var(--cv-dur-slow);
	z-index: 50;
}

.cv-search-panel.is-open {
	opacity: 1;
	transform: scale(1);
	pointer-events: auto;
	visibility: visible;
	transition-delay: 0s, 0s, 0s;
}

.cv-search-wrap {
	position: relative;
}

.cv-panel-close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: none;
	background: transparent;
	color: var(--cv-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition:
		background var(--cv-dur) var(--cv-ease),
		transform 150ms var(--cv-ease);
}

.cv-panel-close:hover {
	background: var(--cv-surface-100);
}

.cv-panel-close:hover svg {
	transform: rotate(90deg);
}

.cv-panel-close:active {
	transform: scale(0.92);
}

.cv-panel-close svg {
	width: 18px;
	height: 18px;
	transition: transform var(--cv-dur) var(--cv-ease);
}

/* --- Hero --- */
.cv-hero {
	border-radius: var(--cv-radius-card);
	padding: 40px 24px;
	color: #fff;
	text-align: center;
	box-shadow: var(--shadow-card-lg);
}

@media (min-width: 768px) {
	.cv-hero {
		padding: 56px 48px;
		border-radius: var(--cv-radius-lg);
	}
}

.cv-hero--clear {
	background: linear-gradient(135deg, #2563eb 0%, #3b82f6 30%, #60a5fa 70%, #93c5fd 100%);
}

.cv-hero--cloudy {
	background: linear-gradient(135deg, #475569 0%, #64748b 40%, #94a3b8 100%);
}

.cv-hero--rain {
	background: linear-gradient(135deg, #1e3a5f 0%, #334155 45%, #3b82f6 100%);
}

.cv-hero--storm {
	background: linear-gradient(135deg, #312e81 0%, #1e1b4b 50%, #4c1d95 100%);
}

.cv-hero--night {
	background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #312e81 100%);
}

.cv-hero--fog {
	background: linear-gradient(135deg, #94a3b8 0%, #cbd5e1 60%, #e2e8f0 100%);
	color: var(--cv-dark-text);
}

.cv-hero--fog .cv-muted {
	color: var(--cv-muted);
}

.cv-hero h1 {
	color: inherit;
	margin: 0 0 16px;
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 800;
}

.cv-hero .cv-hero__lede {
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	line-height: 1.65;
}

.cv-hero .cv-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-top: 24px;
}

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

.cv-hero .cv-btn--outline:hover {
	background: rgba(255, 255, 255, 0.12);
}

.cv-hero--fog .cv-btn--outline {
	border-color: var(--cv-primary-600);
	color: var(--cv-primary-600);
}

/* --- Grids --- */
.cv-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.cv-grid--2 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.cv-grid--3 {
		grid-template-columns: repeat(3, 1fr);
	}
	.cv-grid--4 {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* Stats row */
.cv-stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

@media (min-width: 768px) {
	.cv-stats {
		grid-template-columns: repeat(4, 1fr);
		gap: 24px;
	}
}

.cv-stat {
	text-align: center;
	padding: 16px;
}

.cv-stat__value {
	font-family: var(--cv-font-display);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 800;
	color: var(--cv-primary-600);
	letter-spacing: -0.03em;
}

.cv-stat__label {
	font-size: 0.8125rem;
	color: var(--cv-muted);
	margin-top: 8px;
}

/* Newsletter strip */
.cv-newsletter {
	background: #fff;
	border: 1px solid var(--cv-card-border);
	border-radius: var(--cv-radius-card);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-items: stretch;
}

@media (min-width: 768px) {
	.cv-newsletter {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		padding: 32px;
	}
}

.cv-newsletter form {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	width: 100%;
	max-width: 28rem;
}

.cv-newsletter input[type="email"] {
	flex: 1 1 200px;
	height: 44px;
	padding: 0 16px;
	border-radius: var(--cv-radius-btn);
	border: 1px solid var(--cv-surface-200);
	font-family: var(--cv-font-body);
}

.cv-newsletter input[type="email"]:focus {
	border-color: var(--cv-primary-500);
	box-shadow: 0 0 0 2px var(--cv-primary-100);
	outline: none;
}

/* Chart placeholder */
.cv-chart {
	background: #fff;
	border: 1px solid var(--cv-card-border);
	border-radius: var(--cv-radius-card);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	padding: 24px;
	min-height: 240px;
	position: relative;
	overflow: hidden;
}

.cv-chart__grid {
	position: absolute;
	inset: 24px;
	background-image: linear-gradient(to right, var(--cv-surface-200) 1px, transparent 1px);
	background-size: 48px 100%;
	opacity: 0.35;
	pointer-events: none;
}

.cv-chart__line {
	position: absolute;
	left: 24px;
	right: 24px;
	bottom: 48px;
	height: 120px;
	background: linear-gradient(
		180deg,
		rgba(37, 99, 235, 0.2) 0%,
		rgba(37, 99, 235, 0.02) 100%
	);
	border-radius: 8px 8px 0 0;
	clip-path: polygon(0% 85%, 12% 70%, 28% 75%, 42% 40%, 58% 55%, 72% 25%, 88% 35%, 100% 15%, 100% 100%, 0% 100%);
	border-top: 2px solid var(--cv-primary-600);
	transition: clip-path 250ms var(--cv-ease);
}

.cv-chart__meta {
	display: flex;
	justify-content: space-between;
	font-size: 0.75rem;
	color: var(--cv-muted);
	margin-top: 8px;
	padding-top: 140px;
	position: relative;
	z-index: 1;
}

/* FAQ — core details */
.cv-faq details {
	background: #fff;
	border: 1px solid var(--cv-card-border);
	border-radius: var(--cv-radius-sm);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	margin-bottom: 8px;
	overflow: hidden;
	transition: box-shadow var(--cv-dur) var(--cv-ease);
}

.cv-faq details[open] {
	box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
}

.cv-faq summary {
	padding: 16px 20px;
	font-weight: 600;
	font-family: var(--cv-font-display);
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}

.cv-faq summary::-webkit-details-marker {
	display: none;
}

.cv-faq summary::after {
	content: "";
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--cv-muted);
	border-bottom: 2px solid var(--cv-muted);
	transform: rotate(45deg);
	transition: transform var(--cv-dur) var(--cv-ease);
	flex-shrink: 0;
}

.cv-faq details[open] summary::after {
	transform: rotate(-135deg);
}

.cv-faq .cv-faq__content {
	padding: 0 20px 16px;
	color: var(--cv-muted);
	font-size: 0.9375rem;
	margin: 0;
}

/* Footer (pattern) */
.cv-footer {
	background: #fff;
	border-top: 1px solid var(--cv-header-border);
	padding: 48px 0 48px;
}

.cv-footer__grid {
	display: grid;
	gap: 40px;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.cv-footer__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.cv-footer__grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.cv-footer__brand-desc {
	font-size: 0.875rem;
	color: var(--cv-muted);
	line-height: 1.65;
	margin-top: 16px;
	max-width: 280px;
}

.cv-footer__group-title {
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--cv-dark-text);
	margin: 0 0 16px;
}

.cv-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.cv-footer__links a {
	font-size: 0.875rem;
	color: var(--cv-muted);
	text-decoration: none;
	transition: color var(--cv-dur) var(--cv-ease);
}

.cv-footer__links a:hover {
	color: var(--cv-dark-text);
}

.cv-footer__bar {
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid var(--cv-header-border);
	text-align: center;
	font-size: 0.75rem;
	color: var(--cv-surface-300);
}

.cv-footer__mark {
	width: 28px;
	height: 28px;
	border-radius: 8px;
	background: var(--cv-primary-600);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 8px;
}

.cv-footer__mark svg {
	width: 16px;
	height: 16px;
	color: #fff;
}

/* Small utility badges */
.cv-badge {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 600;
	padding: 4px 8px;
	border-radius: 6px;
	background: var(--cv-surface-100);
	color: var(--cv-muted);
}

.cv-badge--green {
	background: rgba(16, 185, 129, 0.12);
	color: var(--cv-secondary-hover);
}

.cv-badge--amber {
	background: rgba(245, 158, 11, 0.15);
	color: var(--cv-amber-hover);
}

/* --- Kadence masthead: glass sticky --- */
#masthead.site-header {
	position: sticky;
	top: 0;
	z-index: 10001;
}

#main-header .site-header-upper-inner-wrap {
	background: rgba(255, 255, 255, 0.85) !important;
	backdrop-filter: blur(24px) saturate(1.2);
	-webkit-backdrop-filter: blur(24px) saturate(1.2);
	border-bottom: 1px solid var(--cv-header-border);
	min-height: 64px;
	align-items: center;
}

/* Header search fields (drawer + inline) */
#search-drawer .search-field,
.site-header .search-form .search-field {
	height: 44px;
	border-radius: var(--cv-radius-pill) !important;
	background: var(--cv-surface-50) !important;
	border: 1px solid var(--cv-surface-200) !important;
	padding-left: 48px !important;
	font-family: var(--cv-font-body) !important;
	transition: border-color var(--cv-dur) var(--cv-ease), box-shadow var(--cv-dur) var(--cv-ease) !important;
}

#search-drawer .search-field:focus,
.site-header .search-form .search-field:focus {
	border-color: var(--cv-primary-500) !important;
	box-shadow: 0 0 0 2px var(--cv-primary-100) !important;
}

/* Primary nav ghost pills */
.primary-navigation .primary-menu-container > ul > li > a {
	border-radius: var(--cv-radius-btn);
	padding: 8px 12px !important;
	transition: background var(--cv-dur) var(--cv-ease), color var(--cv-dur) var(--cv-ease);
}

.primary-navigation .primary-menu-container > ul > li > a:hover {
	background: var(--cv-surface-100);
	color: var(--cv-primary-600) !important;
}

/* Kadence header buttons */
.site-header-item .button.header-button-wrap .button {
	border-radius: var(--cv-radius-btn) !important;
	font-weight: 500;
	transition: transform 150ms var(--cv-ease), background var(--cv-dur) var(--cv-ease) !important;
}

.site-header-item .button.header-button-wrap .button:not(.button-secondary):not(.button-tertiary) {
	background: var(--cv-primary-600) !important;
	border-color: var(--cv-primary-600) !important;
}

.site-header-item .button.header-button-wrap .button:not(.button-secondary):not(.button-tertiary):hover {
	background: var(--cv-primary-700) !important;
	border-color: var(--cv-primary-700) !important;
}

.site-header-item .button.header-button-wrap .button:active {
	transform: scale(0.98);
}

/* --- WooCommerce product cards --- */
.woocommerce ul.products li.product,
.wc-block-grid__product {
	background: #fff !important;
	border: 1px solid var(--cv-card-border) !important;
	border-radius: var(--cv-radius-card) !important;
	box-shadow: var(--shadow-card) !important;
	padding: 16px !important;
	transition: transform var(--cv-dur) var(--cv-ease), box-shadow var(--cv-dur) var(--cv-ease) !important;
	overflow: hidden;
}

.woocommerce ul.products li.product:hover,
.wc-block-grid__product:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-card-hover) !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__product-title {
	font-family: var(--cv-font-display);
	font-weight: 600;
	font-size: 1rem !important;
	color: var(--cv-dark-text) !important;
}

.woocommerce ul.products li.product .price,
.wc-block-grid__product-price {
	color: var(--cv-muted) !important;
}

.woocommerce ul.products li.product img,
.wc-block-grid__product-image img {
	border-radius: var(--cv-radius-sm) !important;
}

/* Lazy images in patterns */
.cv-card img,
.cv-hero img {
	content-visibility: auto;
}

img[loading="lazy"] {
	background: var(--cv-surface-100);
}

/* Core utility: screen reader text (patterns) */
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
	word-wrap: normal !important;
}

/* ========== Multan city portal (SaaS homepage) ========== */

.mp-section {
	padding-top: 40px;
	padding-bottom: 40px;
}

@media (min-width: 768px) {
	.mp-section {
		padding-top: 56px;
		padding-bottom: 56px;
	}
}

.mp-section-head {
	text-align: center;
	max-width: 100%;
	width: 100%;
	margin: 0 auto 32px;
	box-sizing: border-box;
}

.mp-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cv-primary-600);
	margin-bottom: 12px;
}

.mp-section-title {
	font-family: var(--cv-font-display);
	font-size: clamp(1.5rem, 3.5vw, 2.25rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--cv-dark-text);
	margin: 0 0 12px;
}

.mp-section-lead {
	margin: 0;
	color: var(--cv-muted);
	font-size: 1.0625rem;
	line-height: 1.6;
}

/* Social panel (Settings → Multan Portal) */
.mp-section--social {
	background: linear-gradient(180deg, var(--cv-surface-50, #f8fafc) 0%, #fff 45%);
	border-block: 1px solid var(--cv-surface-200);
}

.mp-social {
	padding-bottom: 0.5rem;
}

.mp-social__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
}

.mp-social__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.65rem 1rem;
	border-radius: var(--cv-radius-pill, 999px);
	border: 1px solid var(--cv-card-border);
	background: #fff;
	color: var(--cv-dark-text);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	transition:
		border-color var(--cv-dur) var(--cv-ease),
		color var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease),
		transform var(--cv-dur) var(--cv-ease);
}

.mp-social__link:hover {
	border-color: var(--cv-primary-300);
	color: var(--cv-primary-700);
	box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
	transform: translateY(-1px);
}

.mp-social__icon {
	display: flex;
	color: var(--cv-primary-600);
}

.mp-social__svg {
	flex-shrink: 0;
}

.mp-social__hint {
	text-align: center;
	margin: 0;
	padding: 0.75rem 1rem;
	font-size: 0.9375rem;
	color: var(--cv-muted);
	background: var(--cv-surface-50, #f8fafc);
	border-radius: 12px;
	border: 1px dashed var(--cv-surface-200);
	max-width: 36rem;
	margin-left: auto;
	margin-right: auto;
}

/* ========================================
   Category / archive templates
   ======================================== */
body.archive #archive-container,
body.blog #archive-container,
body.author #archive-container,
body.category #archive-container,
body.tag #archive-container,
body.search #archive-container {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
}

@media (min-width: 640px) {
	body.archive #archive-container,
	body.blog #archive-container,
	body.author #archive-container,
	body.category #archive-container,
	body.tag #archive-container,
	body.search #archive-container {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px;
	}
}

@media (min-width: 900px) {
	body.archive #archive-container,
	body.blog #archive-container,
	body.author #archive-container,
	body.category #archive-container,
	body.tag #archive-container,
	body.search #archive-container {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 24px;
	}
}

body.archive #archive-container > li,
body.blog #archive-container > li,
body.author #archive-container > li,
body.category #archive-container > li,
body.tag #archive-container > li,
body.search #archive-container > li {
	margin: 0;
}

.hm-archive-card .hm-archive-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.hm-archive-card .mp-news-card {
	overflow: hidden;
	transition:
		transform var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
}

body.archive .mp-news-thumb,
body.blog .mp-news-thumb,
body.author .mp-news-thumb,
body.category .mp-news-thumb,
body.tag .mp-news-thumb,
body.search .mp-news-thumb {
	min-height: 190px;
}

/* Category archive — full-bleed hero with optional term image or latest-post fallback */
body.category .entry-hero.post-archive-hero-section {
	display: none !important;
}

body.category #main.site-main {
	padding-top: 0;
}

.hm-category-hero {
	position: relative;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
	padding: clamp(2.25rem, 5.5vw, 3.75rem) clamp(1.25rem, 4vw, 2rem);
	overflow: hidden;
	border-bottom: 1px solid rgba(15, 23, 42, 0.15);
}

.hm-category-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--hm-category-hero-bg, none);
	background-size: cover;
	background-position: center;
	z-index: 0;
}

.hm-category-hero--no-image::before {
	background-image: none;
	background: linear-gradient(135deg, #1e3a8a 0%, #2563eb 42%, #0d9488 100%);
}

.hm-category-hero__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 23, 42, 0.42) 0%, rgba(15, 23, 42, 0.78) 100%);
	z-index: 1;
	pointer-events: none;
}

.hm-category-hero--no-image .hm-category-hero__scrim {
	background: linear-gradient(180deg, rgba(15, 23, 42, 0.35) 0%, rgba(15, 23, 42, 0.65) 100%);
}

.hm-category-hero__inner {
	position: relative;
	z-index: 2;
	max-width: 48rem;
	margin: 0 auto;
	text-align: center;
}

.hm-category-hero__kicker {
	margin: 0 0 0.65rem;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.88);
}

.hm-category-hero__kicker-sep {
	margin: 0 0.4rem;
	opacity: 0.5;
}

.hm-category-hero__count {
	font-weight: 800;
	color: rgba(255, 255, 255, 0.95);
}

.hm-category-hero__title {
	margin: 0 0 0.85rem;
	font-family: var(--cv-font-display);
	font-weight: 900;
	letter-spacing: -0.04em;
	line-height: 1.12;
	color: #fff;
	font-size: clamp(1.85rem, 4.5vw, 3rem);
	text-shadow: 0 2px 24px rgba(15, 23, 42, 0.35);
}

.hm-category-hero__desc {
	margin: 0 auto 1.35rem;
	max-width: 42rem;
	color: rgba(255, 255, 255, 0.92);
	font-size: clamp(1rem, 2vw, 1.125rem);
	line-height: 1.65;
	text-align: center;
	text-shadow: 0 1px 12px rgba(15, 23, 42, 0.35);
}

.hm-category-hero__desc > *:first-child {
	margin-top: 0;
}

.hm-category-hero__desc > *:last-child {
	margin-bottom: 0;
}

.hm-category-hero__desc a {
	color: #fff;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.hm-category-hero__desc a:hover {
	opacity: 0.92;
}

.hm-category-hero__actions {
	display: flex;
	justify-content: center;
}

.hm-category-hero__search {
	display: flex;
	gap: 10px;
	width: min(40rem, 100%);
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
}

.hm-category-hero__input {
	flex: 1 1 220px;
	min-width: 0;
	border-radius: 14px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	padding: 12px 14px;
	font-size: 0.9375rem;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 4px 20px rgba(15, 23, 42, 0.12);
}

.hm-category-hero__btn {
	border: 0;
	border-radius: 14px;
	padding: 12px 18px;
	font-weight: 800;
	font-size: 0.9375rem;
	cursor: pointer;
	color: #0f172a;
	background: #fff;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.2);
}

.hm-category-hero__btn:hover {
	filter: brightness(1.04);
}

.hm-archive-hero {
	padding: clamp(1.25rem, 3.5vw, 2.25rem) var(--cv-gutter);
	background: radial-gradient(1200px 420px at 50% 0%, rgba(59, 130, 246, 0.12) 0%, transparent 60%),
		linear-gradient(180deg, rgba(248, 250, 252, 0.95) 0%, transparent 80%);
	border-bottom: 1px solid var(--cv-surface-200);
}

.hm-archive-hero__inner {
	max-width: var(--cv-content-max);
	margin: 0 auto;
	text-align: center;
}

.hm-archive-hero__eyebrow {
	margin: 0 0 0.5rem;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--cv-primary-700);
}

.hm-archive-hero__dot {
	opacity: 0.5;
	margin: 0 0.35rem;
}

.hm-archive-hero__title {
	margin: 0 0 0.75rem;
	font-family: var(--cv-font-display);
	font-weight: 900;
	letter-spacing: -0.04em;
	color: var(--cv-dark-text);
	font-size: clamp(1.75rem, 4.2vw, 2.75rem);
}

.hm-archive-hero__desc {
	margin: 0 auto 1rem;
	max-width: 56rem;
	color: var(--cv-muted);
	font-size: 1.05rem;
	line-height: 1.65;
}

.hm-archive-hero__actions {
	display: flex;
	justify-content: center;
}

.hm-archive-hero__search {
	display: flex;
	gap: 10px;
	width: min(44rem, 100%);
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
}

.hm-archive-hero__input {
	flex: 1 1 260px;
	min-width: 0;
	border-radius: var(--cv-radius-sm);
	border: 1px solid var(--cv-surface-200);
	padding: 12px 14px;
	font-size: 0.9375rem;
	background: #fff;
}

.hm-archive-hero__btn {
	border: 0;
	border-radius: var(--cv-radius-btn);
	padding: 12px 16px;
	font-weight: 800;
	font-size: 0.9375rem;
	cursor: pointer;
	color: #fff;
	background: linear-gradient(135deg, #0f172a, #1e40af);
	box-shadow: 0 10px 24px rgba(30, 58, 138, 0.28);
}

.hm-archive-hero__btn:hover {
	filter: brightness(1.06);
}

/* -------------------------------------------------------------------------
   Author archive — journalist portfolio (full-width, ACF fields, story grid)
   ------------------------------------------------------------------------- */
/* If Customizer still had “title above content”, hide duplicate Kadence strip (we ship our own hero). */
body.author .entry-hero.post-archive-hero-section {
	display: none !important;
}

body.author #main.site-main {
	padding-top: 0;
}

body.author #archive-container {
	margin-top: 0;
	padding-bottom: clamp(2rem, 5vw, 3rem);
}

.hm-author-portfolio {
	display: block;
	margin-bottom: 0;
}

.hm-author-portfolio__hero {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
	padding: clamp(2rem, 5vw, 3.25rem) clamp(1.25rem, 4vw, 2rem) clamp(2rem, 4vw, 2.75rem);
	background:
		radial-gradient(1000px 420px at 12% 0%, rgba(59, 130, 246, 0.16) 0%, transparent 58%),
		radial-gradient(800px 360px at 92% 30%, rgba(13, 148, 136, 0.1) 0%, transparent 52%),
		linear-gradient(180deg, #f1f5f9 0%, #f8fafc 55%, #ffffff 100%);
	border-bottom: 1px solid var(--cv-surface-200);
}

.hm-author-portfolio__hero-inner {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: clamp(1.5rem, 4vw, 2.75rem);
	align-items: center;
	max-width: var(--cv-content-max);
	margin: 0 auto;
}

.hm-author-portfolio__avatar-wrap {
	line-height: 0;
	flex-shrink: 0;
}

.hm-author-portfolio__avatar-wrap .hm-archive-hero__avatar-img,
.hm-author-portfolio__avatar-wrap img {
	width: clamp(7rem, 22vw, 11rem) !important;
	height: auto !important;
	border-radius: 24px;
	border: 4px solid #fff;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.95) inset,
		0 16px 48px rgba(15, 23, 42, 0.14),
		0 0 0 1px rgba(15, 23, 42, 0.06);
}

.hm-author-portfolio__intro {
	min-width: 0;
	text-align: left;
}

.hm-author-portfolio__kicker {
	margin: 0 0 0.35rem;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cv-primary-700);
}

.hm-author-portfolio__kicker-sep {
	margin: 0 0.4rem;
	opacity: 0.45;
}

.hm-author-portfolio__kicker-site {
	font-weight: 800;
	color: var(--cv-dark-text);
	letter-spacing: 0.06em;
}

.hm-author-portfolio__stat {
	margin: 0 0 0.75rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--cv-muted);
}

.hm-author-portfolio__name {
	margin: 0 0 0.5rem;
	font-family: var(--cv-font-display);
	font-size: clamp(2rem, 4.5vw, 2.85rem);
	font-weight: 900;
	letter-spacing: -0.045em;
	line-height: 1.1;
	color: var(--cv-dark-text);
}

.hm-author-portfolio__role {
	margin: 0 0 1rem;
	font-size: clamp(1.1rem, 2.2vw, 1.35rem);
	font-weight: 600;
	color: var(--cv-primary-700);
	letter-spacing: -0.02em;
	line-height: 1.35;
	max-width: 40rem;
}

.hm-author-portfolio__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.65rem;
	margin: 0 0 1.1rem;
	padding: 0;
	list-style: none;
}

.hm-author-portfolio__chip {
	display: inline-block;
	margin: 0;
	padding: 0.35rem 0.75rem;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--cv-dark-text);
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid var(--cv-surface-200);
	border-radius: 999px;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.hm-author-portfolio__social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hm-author-portfolio__social-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.5rem 1rem;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--cv-primary-700);
	text-decoration: none;
	background: #fff;
	border: 1px solid var(--cv-surface-200);
	border-radius: 10px;
	box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
	transition:
		background 0.15s var(--cv-ease),
		border-color 0.15s var(--cv-ease),
		color 0.15s var(--cv-ease);
}

.hm-author-portfolio__social-btn:hover {
	color: #fff;
	background: var(--cv-primary-600);
	border-color: var(--cv-primary-600);
}

.hm-author-portfolio__social-ext {
	flex-shrink: 0;
	font-size: 0.92em;
	opacity: 0.92;
}

.hm-author-portfolio__main {
	background: var(--cv-page-bg, #f8fafc);
	padding: clamp(1.75rem, 4vw, 2.5rem) clamp(1rem, 3vw, 1.5rem) clamp(2rem, 4vw, 2.75rem);
	border-bottom: 1px solid var(--cv-surface-200);
}

.hm-author-portfolio__main-inner {
	max-width: 52rem;
	margin: 0 auto;
}

.hm-author-portfolio__section--about {
	margin-bottom: clamp(1.5rem, 3vw, 2rem);
}

.hm-author-portfolio__h2 {
	margin: 0 0 0.75rem;
	font-family: var(--cv-font-display);
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cv-primary-700);
}

.hm-author-portfolio__bio {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--cv-dark-text);
}

.hm-author-portfolio__bio--fallback {
	color: var(--cv-muted);
	font-size: 1rem;
	line-height: 1.65;
}

.hm-author-portfolio__bio > p:first-child {
	margin-top: 0;
}

.hm-author-portfolio__bio > p:last-child {
	margin-bottom: 0;
}

.hm-author-portfolio__columns {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.25rem, 3vw, 1.75rem);
	margin-bottom: clamp(1.5rem, 3vw, 2rem);
}

@media (min-width: 768px) {
	.hm-author-portfolio__columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.5rem;
		align-items: start;
	}
}

.hm-author-portfolio__card {
	margin: 0;
	padding: 1.25rem 1.35rem 1.35rem;
	background: #fff;
	border: 1px solid var(--cv-card-border);
	border-radius: var(--cv-radius-card);
	box-shadow: var(--shadow-editorial), var(--cv-card-inset);
	min-width: 0;
}

.hm-author-portfolio__card-title {
	margin: 0 0 0.65rem;
	font-family: var(--cv-font-display);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--cv-primary-700);
}

.hm-author-portfolio__card-body {
	margin: 0;
}

.hm-author-portfolio__search-wrap {
	max-width: 40rem;
	margin: 0 auto;
	padding-top: 0.25rem;
}

.hm-author-portfolio__search-label {
	display: block;
	margin: 0 0 0.5rem;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cv-muted);
}

.hm-author-portfolio__search {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	align-items: center;
}

.hm-author-portfolio__search-input {
	flex: 1 1 220px;
	min-width: 0;
	border-radius: 12px;
	border: 1px solid var(--cv-surface-200);
	padding: 12px 14px;
	font-size: 0.9375rem;
	background: #fff;
}

.hm-author-portfolio__search-btn {
	border: 0;
	border-radius: 12px;
	padding: 12px 18px;
	font-weight: 800;
	font-size: 0.9375rem;
	cursor: pointer;
	color: #fff;
	background: linear-gradient(135deg, #0f172a, #1e40af);
	box-shadow: 0 8px 20px rgba(30, 58, 138, 0.25);
}

.hm-author-portfolio__search-btn:hover {
	filter: brightness(1.05);
}

.hm-author-portfolio__stories-head {
	max-width: var(--cv-content-max);
	margin: 0 auto;
	padding: clamp(1.5rem, 3vw, 2rem) clamp(1.25rem, 4vw, 2rem) 0.5rem;
	box-sizing: border-box;
}

.hm-author-portfolio__stories-title {
	margin: 0 0 0.35rem;
	font-family: var(--cv-font-display);
	font-size: clamp(1.35rem, 2.8vw, 1.65rem);
	font-weight: 900;
	letter-spacing: -0.03em;
	color: var(--cv-dark-text);
}

.hm-author-portfolio__stories-lede {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--cv-muted);
	line-height: 1.5;
	max-width: 40rem;
}

/* Rich text blocks (coverage, achievements, about) */
.hm-author-portfolio__rich {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--cv-muted);
}

.hm-author-portfolio__card-body.hm-author-portfolio__rich {
	color: var(--cv-dark-text);
}

.hm-author-portfolio__rich > *:first-child {
	margin-top: 0;
}

.hm-author-portfolio__rich > *:last-child {
	margin-bottom: 0;
}

.hm-author-portfolio__rich p {
	margin: 0 0 0.65em;
}

.hm-author-portfolio__rich ul,
.hm-author-portfolio__rich ol {
	margin: 0.35em 0 0.65em;
	padding-left: 1.35rem;
}

.hm-author-portfolio__rich li {
	margin-bottom: 0.3em;
}

.hm-author-portfolio__rich ul {
	list-style: disc;
}

.hm-author-portfolio__rich ol {
	list-style: decimal;
}

.hm-author-portfolio__rich a {
	color: var(--cv-primary-700);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.hm-author-portfolio__rich a:hover {
	color: var(--cv-primary-600);
}

.hm-author-portfolio__rich h3 {
	margin: 1em 0 0.4em;
	font-family: var(--cv-font-display);
	font-size: 1rem;
	font-weight: 800;
	color: var(--cv-dark-text);
}

@media (max-width: 640px) {
	.hm-author-portfolio__hero-inner {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
	}

	.hm-author-portfolio__intro {
		text-align: center;
	}

	.hm-author-portfolio__chips {
		justify-content: center;
	}

	.hm-author-portfolio__social {
		justify-content: center;
	}

	.hm-author-portfolio__stories-head {
		text-align: center;
	}

	.hm-author-portfolio__stories-lede {
		margin-left: auto;
		margin-right: auto;
	}
}

/* ========================================
   Pages
   ======================================== */
.hm-page-head {
	max-width: 52rem;
	margin: 0 auto clamp(1.25rem, 3vw, 1.75rem);
	padding-left: var(--cv-gutter);
	padding-right: var(--cv-gutter);
	box-sizing: border-box;
	text-align: center;
}

.hm-page-head__eyebrow {
	margin: 0 0 0.5rem;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--cv-primary-700);
}

.hm-page-head__title {
	margin: 0 0 0.65rem;
	font-family: var(--cv-font-display);
	font-weight: 900;
	letter-spacing: -0.04em;
	color: var(--cv-dark-text);
	font-size: clamp(1.75rem, 4.2vw, 2.75rem);
}

.hm-page-head__lead {
	margin: 0 auto;
	max-width: 46rem;
	color: var(--cv-muted);
	font-size: 1.0625rem;
	line-height: 1.7;
}

/* Pages (exclude portal homepage which is also a page) */
body.page:not(.home):not(.front-page) .single-content,
body.page:not(.home):not(.front-page) .entry-content.single-content {
	max-width: 52rem;
	margin-left: auto;
	margin-right: auto;
	font-size: 1.03rem;
	line-height: 1.8;
}

body.page:not(.home):not(.front-page) .single-content h2,
body.page:not(.home):not(.front-page) .single-content h3 {
	font-family: var(--cv-font-display);
	letter-spacing: -0.02em;
}

body.page:not(.home):not(.front-page) .single-content a {
	color: var(--cv-primary-700);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: rgba(29, 78, 216, 0.35);
}

body.page:not(.home):not(.front-page) .single-content a:hover {
	text-decoration-color: rgba(29, 78, 216, 0.85);
}

/* Pages — prose scale aligned with single posts */
body.page:not(.home):not(.front-page) .entry-content.single-content {
	font-family: var(--cv-font-body);
	font-size: 1.0625rem;
	line-height: 1.72;
	letter-spacing: -0.011em;
	color: var(--cv-dark-text);
	padding-top: clamp(1.75rem, 4vw, 2.75rem);
	padding-bottom: clamp(1.75rem, 4vw, 2.75rem);
	box-sizing: border-box;
	text-rendering: optimizeLegibility;
}

body.page:not(.home):not(.front-page) .entry-content.single-content h2,
body.page:not(.home):not(.front-page) .entry-content.single-content h3,
body.page:not(.home):not(.front-page) .entry-content.single-content h4 {
	font-family: var(--cv-font-display);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--cv-dark-text);
	line-height: 1.22;
	margin-top: 2rem;
	margin-bottom: 0.65rem;
}

body.page:not(.home):not(.front-page) .entry-content.single-content h2 {
	font-size: clamp(1.35rem, 2.8vw, 1.72rem);
	padding-bottom: 0.45rem;
	border-bottom: 1px solid var(--cv-surface-200);
}

body.page:not(.home):not(.front-page) .entry-content.single-content h3 {
	font-size: clamp(1.15rem, 2.4vw, 1.35rem);
	font-weight: 700;
}

body.page:not(.home):not(.front-page) .entry-content.single-content h4 {
	font-size: clamp(1.05rem, 2vw, 1.2rem);
	font-weight: 700;
}

body.page:not(.home):not(.front-page) .entry-content.single-content p {
	margin-top: 0;
	margin-bottom: 1.15em;
}

body.page:not(.home):not(.front-page) .entry-content.single-content img {
	border-radius: var(--cv-radius-sm);
}

.mp-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition:
		opacity 0.55s var(--cv-ease),
		transform 0.55s var(--cv-ease);
}

.mp-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.mp-card-pro {
	background: #fff;
	border: 1px solid var(--cv-card-border);
	border-radius: var(--cv-radius-card);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	padding: 24px;
	transition:
		transform var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
}

.mp-card-pro:hover {
	transform: translateY(-1px);
	border-color: rgb(203 213 225 / 0.92);
	box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
}

.mp-card-pro .cv-muted + .mp-card-pro__cta-label {
	margin-top: 14px;
}

.mp-card-pro__cta-label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--cv-primary-600);
}

.mp-card-pro__cta {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: 2px;
	font-size: 0.875rem;
	font-weight: 700;
	font-family: var(--cv-font-body);
	color: var(--cv-primary-700);
	text-decoration: none;
	border-bottom: 1px solid rgba(29, 78, 216, 0.35);
	transition:
		color var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
}

.mp-card-pro__cta:hover,
.mp-card-pro__cta:focus-visible {
	color: var(--cv-primary-600);
	border-bottom-color: rgba(37, 99, 235, 0.65);
}

/* Feature cards: Facebook follow CTAs */
.mp-card-pro__cta--facebook {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	margin-top: 6px;
	padding: 0.5rem 0.85rem 0.5rem 0.65rem;
	max-width: 100%;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.35;
	color: #fff;
	text-decoration: none;
	border: none;
	border-radius: 999px;
	background: linear-gradient(135deg, #1877f2 0%, #0c63d4 100%);
	box-shadow:
		0 1px 2px rgb(24 119 242 / 0.35),
		0 4px 14px rgb(24 119 242 / 0.22);
	transition:
		transform var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease),
		filter var(--cv-dur) var(--cv-ease);
}

.mp-card-pro__cta--facebook::before {
	content: "";
	flex-shrink: 0;
	width: 1.125rem;
	height: 1.125rem;
	margin-right: 0.4rem;
	background: no-repeat center / contain;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z'/%3E%3C/svg%3E");
}

.mp-card-pro__cta--facebook:hover,
.mp-card-pro__cta--facebook:focus-visible {
	color: #fff;
	border-bottom: none;
	filter: brightness(1.06);
	box-shadow:
		0 2px 4px rgb(24 119 242 / 0.4),
		0 8px 22px rgb(24 119 242 / 0.28);
	transform: translateY(-1px);
}

.mp-card-pro__cta--facebook:active {
	transform: translateY(0);
	filter: brightness(0.98);
}

.mp-feature-icon {
	width: var(--cv-icon-box);
	height: var(--cv-icon-box);
	border-radius: var(--cv-radius-icon-box);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	margin-bottom: 16px;
	background: linear-gradient(180deg, #fff 0%, var(--cv-primary-50) 100%);
	border: 1px solid var(--cv-primary-100);
}

.mp-grid-features {
	display: grid;
	gap: 24px;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.mp-grid-features {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.mp-grid-features {
		grid-template-columns: repeat(3, 1fr);
	}
}

.mp-grid-features .mp-reveal:nth-child(1) {
	transition-delay: 0s;
}
.mp-grid-features .mp-reveal:nth-child(2) {
	transition-delay: 0.06s;
}
.mp-grid-features .mp-reveal:nth-child(3) {
	transition-delay: 0.12s;
}
.mp-grid-features .mp-reveal:nth-child(4) {
	transition-delay: 0.18s;
}
.mp-grid-features .mp-reveal:nth-child(5) {
	transition-delay: 0.24s;
}
.mp-grid-features .mp-reveal:nth-child(6) {
	transition-delay: 0.3s;
}

.mp-news-grid .mp-reveal:nth-child(2) {
	transition-delay: 0.1s;
}
.mp-news-grid .mp-reveal:nth-child(3) {
	transition-delay: 0.2s;
}

/* Weather strip */
.mp-weather-hero {
	display: grid;
	gap: 24px;
	align-items: stretch;
}

@media (min-width: 900px) {
	.mp-weather-hero {
		grid-template-columns: 1.15fr 1fr;
	}
}

.mp-weather-main {
	/* Default when no mood class (should not happen); moods override below */
	background: linear-gradient(155deg, #1e3a8a 0%, #2563eb 50%, #38bdf8 100%);
	border-radius: var(--cv-radius-lg);
	padding: 28px 24px;
	color: #fff;
	box-shadow: var(--shadow-card-lg);
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

/* Vignette / sheen between paint layer and fx (must stay below .mp-weather-fx) */
.mp-weather-main::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	border-radius: inherit;
	background: radial-gradient(ellipse 90% 55% at 85% 8%, rgba(255, 255, 255, 0.14), transparent 52%);
	opacity: 0.85;
}

.mp-weather-fx {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	overflow: hidden;
	pointer-events: none;
	z-index: 1;
}

/* SVG rain: sparse tiles, cool tones — readable type, no dense white “hatch” */
.mp-weather-rain-svg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	pointer-events: none;
	display: block;
	z-index: 0;
	mix-blend-mode: soft-light;
	opacity: 0.9;
}

.mp-weather-mood--rain .mp-weather-rain-svg,
.mp-weather-mood--storm .mp-weather-rain-svg,
.mp-weather-rain-on .mp-weather-rain-svg {
	-webkit-mask-image: radial-gradient(ellipse 118% 88% at 50% 24%, rgba(0, 0, 0, 0.28) 0%, rgba(0, 0, 0, 0.72) 48%, #000 86%);
	mask-image: radial-gradient(ellipse 118% 88% at 50% 24%, rgba(0, 0, 0, 0.28) 0%, rgba(0, 0, 0, 0.72) 48%, #000 86%);
	transform: skewX(-7deg) scale(1.07);
	transform-origin: 52% 34%;
	left: -6%;
	top: -3%;
	width: 112%;
	height: 106%;
}

.mp-weather-rain-layer {
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	will-change: transform;
	transform-origin: 0 0;
}

.mp-weather-rain-layer--far {
	animation-name: mp-rain-tile-far;
	filter: blur(1.05px);
	opacity: 0.68;
}

.mp-weather-rain-layer--mid {
	animation-name: mp-rain-tile-mid;
	animation-delay: -0.22s;
	opacity: 0.76;
}

.mp-weather-rain-layer--near {
	animation-name: mp-rain-tile-near;
	animation-delay: -0.38s;
	opacity: 0.82;
}

.mp-weather-mood--storm .mp-weather-rain-layer--far {
	opacity: 0.74;
}

.mp-weather-mood--storm .mp-weather-rain-layer--mid {
	opacity: 0.82;
}

.mp-weather-mood--storm .mp-weather-rain-layer--near {
	opacity: 0.9;
}

/* Vertical distance = pattern height in PHP (seamless loop) */
@keyframes mp-rain-tile-far {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(0, 56px, 0);
	}
}

@keyframes mp-rain-tile-mid {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(0, 40px, 0);
	}
}

@keyframes mp-rain-tile-near {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(0, 30px, 0);
	}
}

.mp-weather-main > *:not(.mp-weather-fx) {
	position: relative;
	z-index: 2;
}

/* Weather moods (Open-Meteo WMO codes) — distinct, broadcast-style cards */
.mp-weather-mood--unavailable {
	background: linear-gradient(145deg, #3f4f63 0%, #5c6b7e 55%, #64748b 100%) !important;
	box-shadow: var(--shadow-card-lg), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.mp-weather-mood--unavailable::after {
	background: radial-gradient(ellipse 70% 50% at 50% 100%, rgba(15, 23, 42, 0.35), transparent 60%);
	opacity: 1;
}

/* Clear / sunny — warm sky, strong sun glow */
.mp-weather-mood--sunny {
	background:
		linear-gradient(165deg, #0284c7 0%, #0ea5e9 35%, #7dd3fc 70%, #fde68a 100%) !important;
	box-shadow: var(--shadow-card-lg), inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.mp-weather-mood--sunny::after {
	background:
		radial-gradient(circle at 88% 12%, rgba(255, 253, 220, 0.55) 0%, transparent 38%),
		radial-gradient(ellipse 100% 80% at 50% 120%, rgba(251, 191, 36, 0.2), transparent 45%);
	opacity: 1;
}

.mp-weather-mood--sunny .mp-weather-fx::before {
	content: "";
	position: absolute;
	width: 150%;
	height: 150%;
	top: -65%;
	right: -35%;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.08) 35%, transparent 48%);
	animation: mp-sun-pulse 5s ease-in-out infinite;
}

.mp-weather-mood--partly {
	background: linear-gradient(145deg, #1d4ed8 0%, #3b82f6 38%, #93c5fd 72%, #fde047 100%) !important;
	box-shadow: var(--shadow-card-lg), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.mp-weather-mood--partly::after {
	background:
		radial-gradient(circle at 75% 18%, rgba(255, 255, 255, 0.35) 0%, transparent 45%),
		radial-gradient(ellipse 90% 60% at 20% 90%, rgba(30, 58, 138, 0.25), transparent 50%);
	opacity: 1;
}

.mp-weather-mood--cloudy {
	background: linear-gradient(155deg, #1e293b 0%, #475569 42%, #78716c 88%) !important;
	box-shadow: var(--shadow-card-lg), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.mp-weather-mood--cloudy::after {
	background: radial-gradient(ellipse 120% 100% at 50% -10%, rgba(148, 163, 184, 0.35), transparent 55%);
	opacity: 0.9;
}

.mp-weather-mood--night {
	background: linear-gradient(165deg, #020617 0%, #1e1b4b 40%, #312e81 85%) !important;
	box-shadow: var(--shadow-card-lg), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.mp-weather-mood--night::after {
	background: radial-gradient(ellipse 80% 70% at 50% 0%, rgba(99, 102, 241, 0.2), transparent 55%);
	opacity: 1;
}

.mp-weather-mood--night .mp-weather-fx::before {
	content: "✦ ✧ · ✦";
	position: absolute;
	inset: 0;
	font-size: 0.65rem;
	letter-spacing: 2.5em;
	line-height: 4.5;
	color: rgba(255, 255, 255, 0.35);
	animation: mp-twinkle 4s ease-in-out infinite;
	opacity: 0.85;
}

/* Rain — slate-navy, visible streaks, wet lower vignette */
.mp-weather-mood--rain {
	background:
		linear-gradient(168deg, #0f2942 0%, #1e3a5f 28%, #334155 65%, #1e293b 100%) !important;
	box-shadow: var(--shadow-card-lg), inset 0 -40px 80px rgba(15, 23, 42, 0.45), inset 0 1px 0 rgba(148, 163, 184, 0.12);
}

.mp-weather-mood--rain .mp-weather-fx,
.mp-weather-mood--storm .mp-weather-fx,
.mp-weather-rain-on .mp-weather-fx {
	-webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.42) 20%, rgba(0, 0, 0, 0.88) 40%, #000 100%);
	mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.42) 20%, rgba(0, 0, 0, 0.88) 40%, #000 100%);
}

.mp-weather-mood--rain::after {
	background:
		radial-gradient(ellipse 110% 90% at 50% 100%, rgba(15, 23, 42, 0.65), transparent 55%),
		linear-gradient(185deg, rgba(56, 189, 248, 0.08) 0%, transparent 42%);
	opacity: 1;
}

.mp-weather-mood--storm {
	background: linear-gradient(150deg, #0c0a1d 0%, #1e1b4b 35%, #3730a3 75%, #4338ca 100%) !important;
	box-shadow: var(--shadow-card-lg), inset 0 -30px 60px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(165, 180, 252, 0.15);
}

.mp-weather-mood--storm::after {
	background: radial-gradient(ellipse 100% 70% at 50% 0%, rgba(67, 56, 202, 0.35), transparent 50%);
	opacity: 1;
}

.mp-weather-mood--storm .mp-weather-fx::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 10;
	background: linear-gradient(transparent 52%, rgba(255, 255, 255, 0.12) 53.5%, transparent 55%);
	animation: mp-lightning 2.8s steps(2, end) infinite;
	pointer-events: none;
}

.mp-weather-mood--snow {
	background: linear-gradient(155deg, #475569 0%, #94a3b8 45%, #e2e8f0 100%) !important;
	box-shadow: var(--shadow-card-lg), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.mp-weather-mood--snow::after {
	background: radial-gradient(ellipse 90% 60% at 50% 0%, rgba(255, 255, 255, 0.4), transparent 50%);
	opacity: 0.85;
}

.mp-weather-mood--snow .mp-weather-fx::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle, rgba(255, 255, 255, 0.95) 1px, transparent 1.6px);
	background-size: 22px 30px;
	animation: mp-snow 2.2s linear infinite;
	opacity: 0.6;
}

.mp-weather-mood--fog {
	background: linear-gradient(185deg, #94a3b8 0%, #cbd5e1 50%, #e2e8f0 100%) !important;
	color: #0f172a;
	box-shadow: var(--shadow-card-lg), inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.mp-weather-mood--fog::after {
	background: radial-gradient(ellipse 100% 90% at 50% 40%, rgba(255, 255, 255, 0.45), transparent 65%);
	opacity: 0.75;
}

.mp-weather-mood--fog .mp-eyebrow {
	color: rgba(15, 23, 42, 0.85) !important;
}

.mp-weather-mood--fog .mp-weather-chip {
	border-color: rgba(15, 23, 42, 0.12);
	background: rgba(255, 255, 255, 0.45);
	color: #0f172a;
}

.mp-weather-mood--fog .mp-weather-fx::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
	animation: mp-fog 8s ease-in-out infinite;
}

.mp-weather-mood--fog .mp-weather-temp,
.mp-weather-mood--fog .mp-forecast,
.mp-weather-mood--fog .mp-forecast strong {
	color: #0f172a;
}

@keyframes mp-sun-pulse {
	0%,
	100% {
		opacity: 0.55;
		transform: scale(1);
	}
	50% {
		opacity: 0.85;
		transform: scale(1.08);
	}
}

@keyframes mp-twinkle {
	0%,
	100% {
		opacity: 0.45;
	}
	50% {
		opacity: 0.9;
	}
}

@keyframes mp-lightning {
	0%,
	90% {
		opacity: 0;
	}
	92% {
		opacity: 1;
	}
	94% {
		opacity: 0;
	}
}

@keyframes mp-snow {
	from {
		transform: translateY(-8px);
	}
	to {
		transform: translateY(32px);
	}
}

@keyframes mp-fog {
	0%,
	100% {
		transform: translateX(-8%);
		opacity: 0.4;
	}
	50% {
		transform: translateX(8%);
		opacity: 0.75;
	}
}

.mp-weather-temp {
	font-family: var(--cv-font-display);
	font-size: clamp(2.5rem, 5vw, 3.5rem);
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1;
}

.mp-weather-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 20px;
}

.mp-weather-chip {
	background: rgba(255, 255, 255, 0.14);
	backdrop-filter: blur(8px);
	border-radius: var(--cv-radius-pill);
	padding: 8px 14px;
	font-size: 0.8125rem;
	font-weight: 500;
	border: 1px solid rgba(255, 255, 255, 0.2);
}

.mp-forecast {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 8px;
	margin-top: 20px;
	text-align: center;
	font-size: 0.75rem;
}

.mp-forecast span {
	display: block;
	opacity: 0.9;
}

.mp-weather-side {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.mp-weather-stat {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 16px 20px;
	border-radius: var(--cv-radius-card);
	background: #fff;
	border: 1px solid var(--cv-card-border);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	transition:
		box-shadow var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease),
		transform var(--cv-dur) var(--cv-ease);
}

.mp-weather-stat strong {
	display: block;
	font-size: 0.9375rem;
	color: var(--cv-dark-text);
}

.mp-weather-stat small {
	color: var(--cv-muted);
	font-size: 0.8125rem;
}

/* News cards */
.mp-news-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.mp-news-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 900px) {
	.mp-news-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* 6-column news grid */
.mp-news-grid--6 {
	gap: 20px;
}

@media (min-width: 1100px) {
	.mp-news-grid--6 {
		grid-template-columns: repeat(3, 1fr);
	}
}

.mp-news-grid--6 .mp-news-card {
	min-height: auto;
}

.mp-news-grid--6 .mp-news-thumb {
	height: 140px;
}

.mp-news-grid--6 .mp-news-body {
	padding: 16px;
}

.mp-news-grid--6 .mp-news-card h3 {
	font-size: 1rem;
	margin-bottom: 8px;
}

.mp-news-grid--6 .mp-news-card p {
	font-size: 0.875rem;
	margin-bottom: 12px;
}

.mp-news-card {
	background: #fff;
	border-radius: var(--cv-radius-card);
	border: 1px solid var(--cv-card-border);
	box-shadow: var(--shadow-editorial), var(--cv-card-inset);
	overflow: hidden;
	transition:
		transform var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
	display: flex;
	flex-direction: column;
	min-height: 100%;
}

.mp-news-card:hover {
	transform: translateY(-2px);
	border-color: rgb(203 213 225 / 0.95);
	box-shadow: var(--shadow-editorial-hover), var(--cv-card-inset);
}

.mp-news-thumb {
	height: 160px;
	background-size: cover;
	background-position: center;
	position: relative;
}

.mp-news-thumb::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 40%, rgba(15, 23, 42, 0.45));
}

.mp-news-meta {
	position: absolute;
	bottom: 12px;
	left: 12px;
	right: 12px;
	z-index: 1;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 8px;
	font-size: 0.6875rem;
	font-weight: 600;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.mp-news-body {
	padding: 20px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.mp-news-card h3 {
	font-family: var(--cv-font-display);
	font-size: 1.125rem;
	font-weight: 700;
	margin: 0 0 10px;
	line-height: 1.35;
	letter-spacing: -0.02em;
}

.mp-news-card p {
	margin: 0 0 16px;
	font-size: 0.9375rem;
	color: var(--cv-muted);
	flex: 1;
}

.mp-news-link {
	font-weight: 600;
	font-size: 0.875rem;
	color: var(--cv-primary-600);
	text-decoration: none;
	margin-top: auto;
}

.mp-news-link:hover {
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* History timeline */
.mp-history {
	display: grid;
	gap: 24px;
}

@media (min-width: 768px) {
	.mp-history {
		grid-template-columns: 1fr 1fr;
	}
}

.mp-history-card {
	border-left: 3px solid var(--cv-primary-500);
	padding-left: 20px;
	margin-left: 4px;
}

.mp-history-card time {
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--cv-primary-600);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.mp-history-card h3 {
	margin: 8px 0 10px;
	font-size: 1.125rem;
	font-family: var(--cv-font-display);
}

.mp-history-card p {
	margin: 0;
	color: var(--cv-muted);
	font-size: 0.9375rem;
}

/* Carousel — slide width uses container queries (cqw) so cards never exceed the portal column */
.mp-carousel {
	position: relative;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
	box-sizing: border-box;
	container-type: inline-size;
	container-name: mp-carousel;
}

.mp-carousel__toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 16px;
	flex-wrap: wrap;
	color: var(--cv-dark-text);
}

.mp-carousel__arrows {
	display: flex;
	gap: 8px;
}

.mp-carousel__dots {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	min-height: 44px;
}

.mp-carousel__dot {
	width: 10px;
	height: 10px;
	border-radius: 999px;
	border: 2px solid var(--cv-surface-300);
	background: #fff;
	padding: 0;
	cursor: pointer;
	transition:
		transform 0.15s var(--cv-ease),
		background var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
}

.mp-carousel__dot:hover {
	border-color: var(--cv-primary-400);
}

.mp-carousel__dot.is-active {
	background: var(--cv-primary-600);
	border-color: var(--cv-primary-600);
}

.mp-carousel__btn {
	width: 44px;
	height: 44px;
	border-radius: var(--cv-radius-sm);
	border: 2px solid var(--cv-primary-500);
	background: #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	line-height: 1;
	position: relative;
	color: var(--cv-primary-700);
	transition:
		background var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease),
		color var(--cv-dur) var(--cv-ease),
		transform 0.15s var(--cv-ease);
	box-shadow: 0 2px 8px rgb(15 23 42 / 0.08);
}

/*
 * WP often strips inline <svg> from Custom HTML / saved patterns — use pseudo arrows so controls never render empty.
 * ‹ › (U+2039 / U+203A) stay visible regardless of inherited parent color.
 */
.mp-carousel__btn--prev::before,
.mp-carousel__btn--next::before {
	display: block;
	font-size: 1.625rem;
	font-weight: 700;
	line-height: 1;
	color: var(--cv-primary-700);
}

.mp-carousel__btn--prev::before {
	content: "\2039";
	margin-right: 1px;
}

.mp-carousel__btn--next::before {
	content: "\203A";
	margin-left: 1px;
}

.mp-carousel__btn svg {
	display: none !important;
}

.mp-carousel__btn:hover {
	background: var(--cv-primary-50);
	border-color: var(--cv-primary-600);
	color: var(--cv-primary-800);
	box-shadow: 0 4px 14px rgb(37 99 235 / 0.18);
}

.mp-carousel__btn:hover::before {
	color: var(--cv-primary-800);
}

.mp-carousel__btn:active {
	opacity: 0.92;
}

.mp-carousel__track {
	display: flex;
	flex-wrap: nowrap;
	gap: 20px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding-bottom: 8px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.mp-carousel__track::-webkit-scrollbar {
	height: 6px;
}

.mp-carousel__track::-webkit-scrollbar-thumb {
	background: var(--cv-surface-300);
	border-radius: 999px;
}

.mp-carousel__slide {
	flex: 0 0 min(300px, 85%);
	scroll-snap-align: start;
	min-width: 0;
}

@supports (container-type: inline-size) {
	.mp-carousel__slide {
		flex: 0 0 min(300px, 85cqw);
	}
}

.mp-attraction-card {
	height: 100%;
	border-radius: var(--cv-radius-card);
	overflow: hidden;
	border: 1px solid var(--cv-card-border);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	background: #fff;
	transition:
		transform var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
}

.mp-attraction-card:hover {
	transform: translateY(-1px);
	border-color: rgb(203 213 225 / 0.92);
	box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
}

.mp-attraction-visual {
	height: 140px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 3rem;
	background: linear-gradient(135deg, var(--cv-surface-100), var(--cv-primary-50));
}

.mp-attraction-body {
	padding: 20px;
}

.mp-attraction-body h3 {
	margin: 0 0 8px;
	font-size: 1.0625rem;
	font-family: var(--cv-font-display);
	font-weight: 700;
}

.mp-attraction-body p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--cv-muted);
	line-height: 1.55;
}

/* Hero Multan variant */
.mp-hero {
	border-radius: var(--cv-radius-lg);
	padding: 48px 24px 40px;
	text-align: center;
	color: #fff;
	position: relative;
	overflow: hidden;
	box-shadow: var(--shadow-card-lg);
	background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 35%, #2563eb 70%, #3b82f6 100%);
}

@media (min-width: 768px) {
	.mp-hero {
		padding: 64px 48px 56px;
	}
}

.mp-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 80% 50% at 20% 0%, rgba(251, 191, 36, 0.12), transparent),
		radial-gradient(ellipse 60% 40% at 100% 100%, rgba(16, 185, 129, 0.1), transparent);
	pointer-events: none;
}

.mp-hero > * {
	position: relative;
	z-index: 1;
}

.mp-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--cv-radius-pill);
	padding: 8px 16px;
	font-size: 0.8125rem;
	font-weight: 600;
	margin-bottom: 20px;
	backdrop-filter: blur(10px);
}

.mp-hero h1 {
	font-family: var(--cv-font-display);
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	margin: 0 0 16px;
	line-height: 1.1;
}

.mp-hero .mp-hero-sub {
	font-size: 1.125rem;
	line-height: 1.65;
	opacity: 0.92;
	max-width: 100%;
	margin: 0 auto 28px;
}

.mp-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
}

.mp-hero-statbar {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px 24px;
	margin-top: 40px;
	padding-top: 28px;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	font-size: 0.875rem;
}

.mp-hero-stat {
	display: flex;
	align-items: center;
	gap: 12px;
	background: rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 14px;
	padding: 12px 18px;
	transition: transform 0.2s var(--cv-ease), background 0.2s var(--cv-ease);
}

.mp-hero-stat:hover {
	background: rgba(255, 255, 255, 0.14);
	transform: translateY(-2px);
}

.mp-hero-stat__icon {
	font-size: 1.5rem;
	line-height: 1;
}

.mp-hero-stat > div {
	text-align: left;
}

.mp-hero-stat strong {
	display: block;
	font-size: 1.15rem;
	font-weight: 800;
	font-family: var(--cv-font-display);
	letter-spacing: -0.02em;
}

.mp-hero-stat span {
	display: block;
	font-size: 0.75rem;
	opacity: 0.85;
	margin-top: 2px;
}

.mp-hero-statbar > div > strong {
	display: block;
	font-size: 1.25rem;
	font-weight: 800;
	font-family: var(--cv-font-display);
}

/* Hero badge live indicator */
.mp-hero-badge__live {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #22c55e;
	box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.3);
	animation: mp-live-pulse 1.5s ease-in-out infinite;
}

@keyframes mp-live-pulse {
	0%, 100% {
		box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.3);
	}
	50% {
		box-shadow: 0 0 0 6px rgba(34, 197, 94, 0.1);
	}
}

/* Large buttons */
.cv-btn--lg {
	padding: 14px 24px;
	font-size: 0.9375rem;
	border-radius: var(--cv-radius-btn);
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.cv-btn--lg svg {
	flex-shrink: 0;
}

.cv-btn--ghost {
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.25);
	color: #fff;
	backdrop-filter: blur(8px);
}

.cv-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.18);
}

/* Footer portal */
.mp-footer {
	background: transparent;
	border-top: none;
	padding: clamp(2.5rem, 5vw, 3.25rem) 0 clamp(1.5rem, 3vw, 2rem);
}

.mp-footer-grid {
	display: grid;
	gap: clamp(1.75rem, 4vw, 2.5rem);
	grid-template-columns: 1fr;
	align-items: start;
	text-align: left;
}

@media (min-width: 640px) {
	.mp-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.mp-footer-grid {
		grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr));
		gap: 2rem 2.5rem;
	}
}

/* Brand block: logo + title share row 1; lead + social align with title (column 2), not the logo edge */
.mp-footer-brand-col {
	max-width: 26rem;
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 0.85rem;
	row-gap: 1rem;
	align-items: start;
}

.mp-footer-brand-row {
	display: contents;
}

.mp-footer-logo {
	grid-column: 1;
	grid-row: 1;
	align-self: start;
	flex-shrink: 0;
	display: flex;
	border-radius: 12px;
	box-shadow: 0 6px 20px rgba(30, 64, 175, 0.18);
}

.mp-footer-logo svg {
	display: block;
}

.mp-footer-brand-text {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
}

.mp-footer-brand {
	font-family: var(--cv-font-display);
	font-weight: 800;
	font-size: 1.35rem;
	letter-spacing: -0.03em;
	line-height: 1.15;
	margin: 0;
	color: var(--cv-dark-text);
}

.mp-footer-brand span {
	color: var(--cv-primary-600);
	font-weight: 800;
}

.mp-footer-tagline {
	margin: 0.2rem 0 0;
	font-size: 0.625rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--cv-muted);
}

.mp-footer-lead {
	grid-column: 2;
	grid-row: 2;
	margin: 0;
	line-height: 1.65;
	font-size: 0.9375rem;
	color: var(--cv-muted);
	min-width: 0;
}

.mp-footer-social-nav {
	grid-column: 2;
	grid-row: 3;
	margin-top: 0;
	align-self: start;
}

.mp-footer-social {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}

.mp-footer-social__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 12px;
	border: 1px solid var(--cv-surface-200);
	background: var(--cv-surface-50);
	color: var(--cv-primary-700);
	text-decoration: none;
	transition:
		background-color var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease),
		color var(--cv-dur) var(--cv-ease),
		transform var(--cv-dur) var(--cv-ease);
}

.mp-footer-social__link:hover {
	background: #fff;
	border-color: var(--cv-primary-300);
	color: var(--cv-primary-600);
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(30, 64, 175, 0.1);
}

.mp-footer-social__icon {
	display: flex;
	line-height: 0;
}

.mp-footer-social__icon .mp-social__svg {
	width: 20px;
	height: 20px;
}

.mp-footer-col h4 {
	font-family: var(--cv-font-display);
	font-size: 0.7rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin: 0 0 1rem;
	padding-bottom: 0.65rem;
	color: var(--cv-dark-text);
	border-bottom: 2px solid var(--cv-primary-200);
}

.mp-footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.mp-footer-col li {
	margin: 0;
}

.mp-footer-col a {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	color: var(--cv-muted);
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 600;
	padding: 0.25rem 0;
	transition:
		color var(--cv-dur) var(--cv-ease),
		transform var(--cv-dur) var(--cv-ease);
}

.mp-footer-col a::before {
	content: "";
	width: 0;
	height: 1px;
	background: var(--cv-primary-500);
	transition: width var(--cv-dur) var(--cv-ease);
}

.mp-footer-col a:hover {
	color: var(--cv-primary-700);
	transform: translateX(2px);
}

.mp-footer-col a:hover::before {
	width: 10px;
}

.mp-footer-bar {
	margin-top: clamp(2rem, 4vw, 2.75rem);
	padding-top: clamp(1.25rem, 3vw, 1.75rem);
	padding-bottom: clamp(1rem, 2.5vw, 1.5rem);
	border-top: 1px solid var(--cv-surface-200);
	background: linear-gradient(180deg, rgba(248, 250, 252, 0.15) 0%, rgba(241, 245, 249, 0.75) 100%);
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	width: 100vw;
	max-width: 100vw;
	box-sizing: border-box;
}

.mp-footer-bar__inner {
	max-width: min(var(--cv-content-max), 100%);
	margin: 0 auto;
	padding: 0 clamp(1.25rem, 4vw, 2rem);
	text-align: center;
}

.mp-footer-bar__copy {
	margin: 0 0 0.35rem;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--cv-dark-text);
}

.mp-footer-bar__name {
	color: var(--cv-primary-700);
}

.mp-footer-bar__note {
	margin: 0;
	font-size: 0.75rem;
	line-height: 1.5;
	color: var(--cv-muted);
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
}

@media (min-width: 768px) {
	.mp-footer-bar__inner {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		gap: 1rem 1.25rem;
		text-align: left;
	}

	.mp-footer-bar__copy {
		margin: 0;
	}

	.mp-footer-bar__note {
		max-width: 44rem;
		margin: 0;
		text-align: right;
	}
}

/* Footer: better hierarchy on larger screens */
@media (min-width: 900px) {
	.mp-footer-grid {
		align-items: start;
	}

	.mp-footer-brand-col {
		max-width: 30rem;
	}

	.mp-footer-lead {
		font-size: 0.95rem;
	}

	.mp-footer-col h4 {
		color: #0b1220;
		border-bottom-color: rgba(59, 130, 246, 0.25);
	}
}

/* Mobile footer: center the logo + title group; stack lead + social below */
@media (max-width: 639px) {
	.mp-footer-brand-col {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
		row-gap: 0;
	}

	.mp-footer-brand-row {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: 0.85rem;
		margin-bottom: 0;
	}

	.mp-footer-logo,
	.mp-footer-brand-text,
	.mp-footer-lead,
	.mp-footer-social-nav {
		grid-column: unset;
		grid-row: unset;
	}

	.mp-footer-brand-text {
		text-align: left;
	}

	.mp-footer-lead {
		margin: 0 0 1rem;
		max-width: 24rem;
		text-align: center;
	}

	.mp-footer-social-nav {
		margin-top: 0.25rem;
	}

	.mp-footer-social {
		justify-content: center;
	}
}

.mp-icon-float {
	animation: none;
}

/* Premium hero (deeper gradient, glass badge, subtle ring) */
.mp-hero--premium {
	background:
		radial-gradient(ellipse 90% 60% at 10% 0%, rgba(251, 191, 36, 0.18), transparent 55%),
		radial-gradient(ellipse 70% 50% at 90% 20%, rgba(56, 189, 248, 0.2), transparent 50%),
		linear-gradient(125deg, #020617 0%, #0f172a 18%, #1d4ed8 52%, #2563eb 78%, #38bdf8 100%);
	border: 1px solid rgba(255, 255, 255, 0.12);
	box-shadow:
		var(--shadow-card-lg),
		0 0 0 1px rgba(255, 255, 255, 0.04) inset;
}

.mp-hero--premium .mp-hero-badge {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.28);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
}

.mp-hero--premium .cv-btn--outline {
	border-color: rgba(255, 255, 255, 0.85);
	color: #fff;
	background: rgba(255, 255, 255, 0.06);
	backdrop-filter: blur(8px);
}

.mp-hero--premium .cv-btn--outline:hover {
	background: rgba(255, 255, 255, 0.16);
}

/* Hero: Multan landmark photo + brighter readable overlay */
.mp-hero--photo {
	background-image:
		linear-gradient(105deg, rgba(15, 23, 42, 0.15) 0%, rgba(15, 23, 42, 0.35) 42%, rgba(30, 64, 175, 0.55) 100%),
		var(--mp-hero-image);
	background-size: cover;
	background-position: center 38%;
	border: 1px solid rgba(255, 255, 255, 0.18);
}

.mp-hero--photo::before {
	background:
		radial-gradient(ellipse 70% 55% at 15% 15%, rgba(251, 191, 36, 0.22), transparent 55%),
		radial-gradient(ellipse 60% 50% at 95% 80%, rgba(56, 189, 248, 0.18), transparent 50%);
}

.mp-hero--photo h1,
.mp-hero--photo .mp-hero-sub {
	text-shadow: 0 2px 28px rgba(0, 0, 0, 0.45);
}

.mp-hero--photo .mp-hero-badge {
	background: rgba(255, 255, 255, 0.18);
	border-color: rgba(255, 255, 255, 0.35);
}

/* ========================================
   Hero V2 — Multan photo + above-the-fold viewport
   ======================================== */
.mp-hero-v2 {
	--mp-hero-px: 0px;
	--mp-hero-py: 0px;
	/* Set in theme CSS — inline url() on posts is stripped by wp_kses */
	--mp-hero-image: url("https://upload.wikimedia.org/wikipedia/commons/thumb/e/e8/Shah_Rukn-e-Alam_Tomb_20180420_174315.jpg/1920px-Shah_Rukn-e-Alam_Tomb_20180420_174315.jpg");
	position: relative;
	box-sizing: border-box;
	/* One screen only — hero does not extend below the fold */
	min-height: 100vh;
	height: 100vh;
	max-height: 100vh;
	min-height: 100svh;
	height: 100svh;
	max-height: 100svh;
	display: flex;
	flex-direction: column;
	/* Anchor copy to the top so the viewport isn’t “empty” above the badge */
	align-items: stretch;
	/* Horizontal alignment matches .cv-container below the fold */
	padding: calc(10px + env(safe-area-inset-top, 0px)) 0 calc(20px + env(safe-area-inset-bottom, 0px));
	overflow: hidden;
}

/* Same max width + gutters as header / patterns (portal-shortcodes hero wrapper). */
.mp-hero-v2__inner.cv-container {
	position: relative;
	z-index: 6;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	column-gap: clamp(1.25rem, 3vw, 2rem);
	row-gap: 1.25rem;
	flex: 1 1 auto;
	min-width: 0;
	align-content: flex-start;
	width: 100%;
	max-width: var(--cv-content-max);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

@media (min-width: 1200px) {
	.mp-hero-v2__inner.cv-container {
		align-items: center;
		align-content: center;
	}
}

@media (max-height: 720px) {
	.mp-hero-v2__badge {
		margin-bottom: 6px;
		padding: 2px 8px;
		font-size: 0.625rem;
	}

	.mp-hero-v2__title {
		margin-bottom: 10px;
	}

	.mp-hero-v2__sub {
		font-size: 0.9375rem;
		margin-bottom: 14px;
		line-height: 1.45;
	}

	.mp-hero-v2__actions {
		margin-bottom: 14px;
	}

	.mp-hero-v2__btn {
		padding: 10px 18px;
		font-size: 0.875rem;
	}

	.mp-hero-v2__stat strong {
		font-size: 1.15rem;
	}

	.mp-hero-v2__stat-divider {
		height: 28px;
	}
}

.mp-hero-v2__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

/* YouTube background (muted autoplay — required by browsers) */
.mp-hero-v2__video-wrap {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.mp-hero-v2__video-iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100vw;
	height: 56.25vw;
	min-height: 100vh;
	min-height: 100svh;
	min-width: 177.78vh;
	border: 0;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

/* Static photo: only when user prefers reduced motion (video hidden) */
.mp-hero-v2__photo-fallback {
	display: none;
	position: absolute;
	inset: -12%;
	z-index: 0;
	pointer-events: none;
}

/* Photo layer: extra inset for parallax / Ken Burns without edges showing */
.mp-hero-v2__photo-mover {
	position: absolute;
	inset: 0;
	animation: mp-hero-kenburns 26s ease-in-out infinite alternate;
	will-change: transform;
}

.mp-hero-v2__photo {
	position: absolute;
	inset: 0;
	background-image: var(--mp-hero-image);
	background-size: cover;
	background-position: center 38%;
	background-repeat: no-repeat;
	transform: translate3d(var(--mp-hero-px), var(--mp-hero-py), 0);
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

@keyframes mp-hero-kenburns {
	0% {
		transform: scale(1.05) translate(0%, 0%);
	}
	100% {
		transform: scale(1.14) translate(-1.8%, -1.2%);
	}
}

.mp-hero-v2__photo-vignette {
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		radial-gradient(ellipse 88% 72% at 42% 42%, transparent 0%, rgba(15, 23, 42, 0.5) 100%),
		linear-gradient(180deg, rgba(15, 23, 42, 0.38) 0%, transparent 36%, rgba(15, 23, 42, 0.78) 100%);
	pointer-events: none;
}

.mp-hero-v2__shine {
	position: absolute;
	inset: -5%;
	z-index: 2;
	background: linear-gradient(
		115deg,
		transparent 0%,
		transparent 42%,
		rgba(255, 255, 255, 0.055) 50%,
		transparent 58%,
		transparent 100%
	);
	background-size: 220% 100%;
	background-position: 52% 0;
	animation: none;
	mix-blend-mode: overlay;
	pointer-events: none;
}

.mp-hero-v2__gradient {
	position: absolute;
	inset: 0;
	z-index: 3;
	background: linear-gradient(
		122deg,
		rgba(15, 23, 42, 0.78) 0%,
		rgba(30, 58, 138, 0.42) 40%,
		rgba(67, 56, 202, 0.28) 72%,
		rgba(30, 64, 175, 0.22) 100%
	);
	background-size: 200% 200%;
	animation: mp-hero-gradient 28s ease infinite;
	mix-blend-mode: multiply;
}

@keyframes mp-hero-gradient {
	0%, 100% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
}

.mp-hero-v2__orb {
	position: absolute;
	z-index: 4;
	border-radius: 50%;
	filter: blur(80px);
	opacity: 0.22;
	animation: mp-orb-float 14s ease-in-out infinite;
	pointer-events: none;
}

.mp-hero-v2__orb--1 {
	width: 500px;
	height: 500px;
	background: radial-gradient(circle, #3b82f6 0%, transparent 70%);
	top: -20%;
	left: -10%;
	animation-delay: 0s;
}

.mp-hero-v2__orb--2 {
	width: 400px;
	height: 400px;
	background: radial-gradient(circle, #8b5cf6 0%, transparent 70%);
	top: 30%;
	right: -5%;
	animation-delay: 2s;
}

.mp-hero-v2__orb--3 {
	width: 350px;
	height: 350px;
	background: radial-gradient(circle, #ec4899 0%, transparent 70%);
	bottom: -10%;
	left: 30%;
	animation-delay: 4s;
}

@keyframes mp-orb-float {
	0%, 100% { transform: translate(0, 0) scale(1); }
	33% { transform: translate(30px, -20px) scale(1.05); }
	66% { transform: translate(-20px, 20px) scale(0.95); }
}

.mp-hero-v2__grid {
	position: absolute;
	inset: 0;
	z-index: 5;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
	background-size: 60px 60px;
	mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 20%, transparent 70%);
	pointer-events: none;
}

.mp-hero-v2__content {
	position: relative;
	z-index: 1;
	flex: 1 1 0;
	min-width: 0;
	max-width: 100%;
	width: 100%;
	margin-top: clamp(0.25rem, 2.5vh, 1.5rem);
	color: #fff;
	text-shadow: 0 1px 2px rgb(0 0 0 / 0.25), 0 2px 28px rgb(0 0 0 / 0.45);
	box-sizing: border-box;
	padding-left: 0;
	padding-right: 0;
}

@media (min-width: 1200px) {
	.mp-hero-v2__content {
		max-width: min(36rem, 100%);
	}
}

.mp-hero-v2__badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: rgba(15, 23, 42, 0.45);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 999px;
	padding: 3px 10px 3px 8px;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin-bottom: 8px;
	line-height: 1.2;
	white-space: nowrap;
}

.mp-hero-v2__pulse {
	flex-shrink: 0;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #22c55e;
	box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.35);
	animation: mp-live-pulse 1.5s ease-in-out infinite;
}

.mp-hero-v2__title {
	font-family: var(--cv-font-display);
	font-size: clamp(2rem, 5.5vw, 3.65rem);
	font-weight: 800;
	line-height: 1.06;
	letter-spacing: -0.038em;
	margin: 0 0 18px;
}

.mp-hero-v2__highlight {
	display: inline;
	background: linear-gradient(135deg, #fbbf24, #f97316, #ec4899);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: #fbbf24;
}

.mp-hero-v2__sub {
	font-size: clamp(0.96875rem, 2.15vw, 1.125rem);
	line-height: 1.62;
	opacity: 0.94;
	margin: 0 0 22px;
	max-width: 38rem;
}

.mp-hero-v2__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 22px;
}

.mp-hero-v2__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 28px;
	border-radius: var(--cv-radius-pill);
	font-size: 0.9375rem;
	font-weight: 700;
	text-decoration: none;
	min-height: 48px;
	transition:
		background-color 0.22s var(--cv-ease),
		border-color 0.22s var(--cv-ease),
		color 0.22s var(--cv-ease),
		box-shadow 0.22s var(--cv-ease),
		transform 0.22s var(--cv-ease),
		text-shadow 0.22s var(--cv-ease);
}

.mp-hero-v2__btn--primary {
	background: #fff;
	color: #0f172a;
	border: 1px solid rgba(255, 255, 255, 0.65);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.5) inset,
		0 8px 28px rgba(0, 0, 0, 0.22);
}

.mp-hero-v2__btn--primary:hover {
	transform: translateY(-2px);
	background: #f8fafc;
	color: #020617;
	border-color: #fff;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.85) inset,
		0 0 0 1px rgba(255, 255, 255, 0.35),
		0 14px 42px rgba(0, 0, 0, 0.32);
}

.mp-hero-v2__btn--primary:active {
	transform: translateY(0);
}

.mp-hero-v2__btn--primary:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.mp-hero-v2__btn--secondary {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.38);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1) inset;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.mp-hero-v2__btn--secondary:hover {
	background: rgba(255, 255, 255, 0.26);
	border-color: rgba(255, 255, 255, 0.72);
	color: #fff;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.22) inset,
		0 0 0 1px rgba(255, 255, 255, 0.12),
		0 12px 36px rgba(0, 0, 0, 0.38);
	transform: translateY(-2px);
	text-shadow: 0 1px 14px rgba(0, 0, 0, 0.55);
}

.mp-hero-v2__btn--secondary:active {
	transform: translateY(0);
	background: rgba(255, 255, 255, 0.18);
	border-color: rgba(255, 255, 255, 0.5);
}

.mp-hero-v2__btn--secondary:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.65);
}

.mp-hero-v2__stats {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
	margin-bottom: clamp(1.25rem, 4vw, 2.75rem);
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.mp-hero-v2__stat {
	text-align: left;
}

.mp-hero-v2__stat strong {
	display: block;
	font-family: var(--cv-font-display);
	font-size: clamp(1.35rem, 2.8vw, 1.65rem);
	font-weight: 800;
	letter-spacing: -0.025em;
}

.mp-hero-v2__stat span {
	font-size: 0.8125rem;
	opacity: 0.82;
	font-weight: 500;
}

.mp-hero-v2__stat-divider {
	width: 1px;
	height: 40px;
	background: rgba(255, 255, 255, 0.2);
}

/* Hero stat pills — intentional 2×2 grid on large screens (aligns with .cv-container) */
.mp-hero-v2__visual {
	display: none;
	position: relative;
	width: 100%;
	max-width: min(360px, 32vw);
	margin-left: auto;
	margin-right: auto;
	z-index: 1;
	pointer-events: none;
	flex: 0 0 auto;
	align-self: center;
}

@media (min-width: 1200px) {
	.mp-hero-v2__visual {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 12px;
		align-content: center;
		margin-left: 0;
		margin-right: 0;
		align-self: center;
	}
}

.mp-hero-v2__card {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	pointer-events: auto;
	background: rgb(255 255 255 / 0.11);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border: 1px solid rgb(255 255 255 / 0.2);
	border-radius: 14px;
	padding: 14px 16px;
	color: #fff;
	box-shadow:
		0 1px 0 rgb(255 255 255 / 0.12) inset,
		0 12px 40px rgb(0 0 0 / 0.2);
	transition:
		background-color 0.25s var(--cv-ease),
		border-color 0.25s var(--cv-ease),
		box-shadow 0.25s var(--cv-ease),
		transform 0.25s var(--cv-ease);
}

@media (hover: hover) {
	.mp-hero-v2__card:hover {
		background: rgb(255 255 255 / 0.16);
		border-color: rgb(255 255 255 / 0.32);
		transform: translateY(-2px);
		box-shadow:
			0 1px 0 rgb(255 255 255 / 0.18) inset,
			0 16px 48px rgb(0 0 0 / 0.28);
	}
}

.mp-hero-v2__card-icon {
	font-size: 1.375rem;
	line-height: 1;
	flex-shrink: 0;
}

.mp-hero-v2__card-text {
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.3;
	white-space: normal;
	min-width: 0;
}

.mp-hero-v2__card--1,
.mp-hero-v2__card--2,
.mp-hero-v2__card--3,
.mp-hero-v2__card--4,
.mp-hero-v2__card--5 {
	top: auto;
	right: auto;
	bottom: auto;
	left: auto;
}

/* Fifth hero chip: full width under the 2×2 grid */
@media (min-width: 1200px) {
	.mp-hero-v2__visual .mp-hero-v2__card--5 {
		grid-column: 1 / -1;
	}
}

/* Compact section heads */
.mp-section-head--compact {
	margin-bottom: 24px;
}

.mp-section-head--compact .mp-section-title {
	margin-bottom: 0;
}

.mp-section-head--compact .mp-section-lead {
	margin-top: 12px;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
}

@media (prefers-reduced-motion: reduce) {
	.mp-hero-v2__video-wrap {
		display: none !important;
	}

	.mp-hero-v2__photo-fallback {
		display: block;
	}

	.mp-hero-v2__photo-mover {
		animation: none;
		transform: scale(1.08);
	}

	.mp-hero-v2__shine {
		animation: none;
		opacity: 0.4;
	}

	.mp-hero-v2__gradient {
		animation: none;
		background-position: 0% 50%;
	}
	.mp-hero-v2__orb {
		animation: none;
	}
	.mp-hero-v2__card {
		animation: none;
	}
}

/* Live radar embed */
.mp-radar {
	margin-top: 28px;
}

.mp-radar__head {
	margin-bottom: 16px;
}

.mp-radar__title {
	font-family: var(--cv-font-display);
	font-size: 1.35rem;
	font-weight: 800;
	margin: 0 0 8px;
	letter-spacing: -0.02em;
}

.mp-radar__lead {
	margin: 0;
	color: var(--cv-muted);
	font-size: 0.9375rem;
	max-width: 42rem;
}

.mp-radar__chrome {
	position: relative;
	border-radius: var(--cv-radius-lg);
	overflow: hidden;
	border: 1px solid var(--cv-card-border);
	box-shadow: var(--shadow-card-lg);
	background: #0f172a;
	aspect-ratio: 16 / 10;
	min-height: 280px;
}

.mp-radar__frame {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.mp-radar__sweep {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background: conic-gradient(from 0deg at 50% 50%, transparent 0deg, rgba(56, 189, 248, 0.12) 32deg, transparent 64deg);
	animation: mp-radar-sweep 4.5s linear infinite;
	mix-blend-mode: screen;
	opacity: 0.65;
}

.mp-radar__credit {
	margin: 12px 0 0;
	font-size: 0.75rem;
	color: var(--cv-muted);
}

.mp-radar__credit a {
	color: var(--cv-primary-600);
	text-decoration: none;
}

.mp-radar__credit a:hover {
	text-decoration: underline;
}

@keyframes mp-radar-sweep {
	to {
		transform: rotate(360deg);
	}
}

/* Phone directory */
.mp-phone-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.mp-phone-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.mp-phone-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.mp-phone-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--cv-card-border);
	border-radius: var(--cv-radius-card);
	padding: 22px 22px 20px;
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	transition:
		transform var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
	overflow: hidden;
}

.mp-phone-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--cv-primary-500), #38bdf8);
	transform: scaleX(0.35);
	transform-origin: left;
	transition: transform var(--cv-dur) var(--cv-ease);
}

.mp-phone-card:hover {
	transform: translateY(-1px);
	border-color: rgb(203 213 225 / 0.92);
	box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
}

.mp-phone-card:hover::before {
	transform: scaleX(1);
}

.mp-phone-card__ico {
	display: inline-flex;
	font-size: 1.5rem;
	line-height: 1;
	margin-bottom: 10px;
}

.mp-phone-card h3 {
	margin: 0 0 8px;
	font-size: 0.9375rem;
	font-weight: 700;
	font-family: var(--cv-font-display);
}

.mp-phone-card__num {
	display: inline-block;
	font-size: 1.35rem;
	font-weight: 800;
	font-family: var(--cv-font-display);
	color: var(--cv-primary-600);
	text-decoration: none;
	letter-spacing: -0.02em;
	margin-bottom: 8px;
}

.mp-phone-card__num:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.mp-phone-card p {
	margin: 0;
	font-size: 0.8125rem;
	color: var(--cv-muted);
	line-height: 1.5;
}

/* Multan Command chat */
.mp-chat {
	position: fixed;
	right: max(16px, env(safe-area-inset-right));
	bottom: max(16px, env(safe-area-inset-bottom));
	z-index: 10080;
	font-family: var(--cv-font-body);
}

.mp-chat__fab {
	position: relative;
	width: 58px;
	height: 58px;
	border-radius: 18px;
	border: 1px solid rgba(15, 23, 42, 0.2);
	background: linear-gradient(145deg, #0f172a, #1e3a8a);
	color: #fff;
	cursor: pointer;
	box-shadow:
		0 18px 40px rgba(15, 23, 42, 0.35),
		0 0 0 1px rgba(255, 255, 255, 0.08) inset;
	display: grid;
	place-items: center;
	transition:
		transform 0.2s var(--cv-ease),
		box-shadow 0.2s var(--cv-ease);
}

.mp-chat__fab:hover {
	transform: translateY(-2px) scale(1.02);
	box-shadow: 0 22px 48px rgba(30, 58, 138, 0.45);
}

.mp-chat__fab-inner {
	font-size: 1.35rem;
	line-height: 1;
}

.mp-chat__fab-pulse {
	position: absolute;
	inset: -4px;
	border-radius: 22px;
	border: 2px solid rgba(56, 189, 248, 0.55);
	animation: mp-chat-pulse 2.2s ease-out infinite;
	pointer-events: none;
}

.mp-chat__panel {
	position: absolute;
	right: 0;
	bottom: 72px;
	width: min(100vw - 32px, 400px);
	max-height: min(72vh, 560px);
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 20px;
	border: 1px solid var(--cv-card-border);
	box-shadow:
		0 28px 80px rgba(15, 23, 42, 0.22),
		0 0 0 1px rgba(15, 23, 42, 0.04);
	overflow: hidden;
}

/* `hidden` must win over `display:flex` or the panel never disappears */
.mp-chat__panel[hidden] {
	display: none !important;
}

.mp-chat__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 18px;
	background: linear-gradient(125deg, #020617 0%, #1e3a8a 55%, #2563eb 100%);
	color: #fff;
}

.mp-chat__brand {
	display: block;
	font-size: 1rem;
	letter-spacing: -0.02em;
}

.mp-chat__tag {
	display: inline-block;
	margin-top: 4px;
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	opacity: 0.85;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	padding: 3px 10px;
}

.mp-chat__close {
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.25);
	color: #fff;
	width: 36px;
	height: 36px;
	border-radius: 12px;
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
}

.mp-chat__close:hover {
	background: rgba(255, 255, 255, 0.22);
}

.mp-chat__intro {
	padding: 12px 18px;
	font-size: 0.8125rem;
	color: var(--cv-muted);
	border-bottom: 1px solid var(--cv-header-border);
	background: var(--cv-surface-50, #f8fafc);
}

.mp-chat__messages {
	flex: 1;
	overflow-y: auto;
	padding: 14px 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-height: 200px;
	max-height: 320px;
}

.mp-chat__bubble {
	display: flex;
}

.mp-chat__bubble--user {
	justify-content: flex-end;
}

.mp-chat__bubble-inner {
	max-width: 92%;
	padding: 10px 14px;
	border-radius: 14px;
	font-size: 0.875rem;
	line-height: 1.55;
}

.mp-chat__bubble--user .mp-chat__bubble-inner {
	background: linear-gradient(135deg, #1d4ed8, #2563eb);
	color: #fff;
	border-bottom-right-radius: 4px;
}

.mp-chat__bubble--bot .mp-chat__bubble-inner {
	background: var(--cv-surface-100, #f1f5f9);
	color: var(--cv-dark-text);
	border: 1px solid var(--cv-card-border);
	border-bottom-left-radius: 4px;
}

.mp-chat__bubble--bot .mp-chat__bubble-inner a {
	color: var(--cv-primary-600);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
	word-break: break-word;
}

.mp-chat__bubble--bot .mp-chat__bubble-inner a:hover {
	color: var(--cv-primary-700);
}

.mp-chat__typing {
	display: flex;
	gap: 5px;
	padding: 10px 16px;
	align-items: center;
}

.mp-chat__typing[hidden] {
	display: none !important;
}

.mp-chat__typing span {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--cv-primary-500);
	animation: mp-chat-bounce 1s ease-in-out infinite;
}

.mp-chat__typing span:nth-child(2) {
	animation-delay: 0.15s;
}

.mp-chat__typing span:nth-child(3) {
	animation-delay: 0.3s;
}

.mp-chat__form {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 12px 14px 16px;
	border-top: 1px solid var(--cv-header-border);
	background: #fff;
}

.mp-chat__form textarea {
	width: 100%;
	resize: vertical;
	min-height: 52px;
	max-height: 120px;
	border-radius: 12px;
	border: 1px solid var(--cv-surface-200);
	padding: 10px 12px;
	font-family: inherit;
	font-size: 0.875rem;
}

.mp-chat__send {
	align-self: flex-end;
	border: 0;
	border-radius: 12px;
	padding: 10px 18px;
	font-weight: 700;
	font-size: 0.875rem;
	cursor: pointer;
	background: linear-gradient(135deg, #0f172a, #1e40af);
	color: #fff;
	box-shadow: 0 10px 24px rgba(30, 58, 138, 0.3);
}

.mp-chat__send:hover {
	filter: brightness(1.06);
}

@keyframes mp-chat-pulse {
	0% {
		transform: scale(1);
		opacity: 0.9;
	}
	70% {
		transform: scale(1.12);
		opacity: 0;
	}
	100% {
		opacity: 0;
	}
}

@keyframes mp-chat-bounce {
	0%,
	80%,
	100% {
		transform: translateY(0);
		opacity: 0.5;
	}
	40% {
		transform: translateY(-5px);
		opacity: 1;
	}
}

/* Site-wide: no Kadence masthead — sticky portal bar + admin bar offset */
body.no-header #masthead {
	display: none !important;
}

body.no-header #inner-wrap {
	padding-top: 0;
}

body.no-header #inner-wrap #main,
body.no-header #inner-wrap #primary {
	margin-top: 0;
	padding-top: 0;
}

body.no-header #inner-wrap .content-wrap,
body.no-header #inner-wrap .content-area {
	margin-top: 0;
	padding-top: 0;
}

body.no-header #inner-wrap article .entry-content-wrap {
	padding-top: 0;
	margin-top: 0;
}

/* Full-width homepage: remove side constraints on main column only (#inner-wrap).
   Do NOT use body.home .site-container — that also matches the colophon footer .site-container
   and makes the portal footer full-bleed while .cv-header-bar stays max 1280px. */
body.home #inner-wrap,
body.front-page #inner-wrap {
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
}

body.home #inner-wrap .site-container,
body.front-page #inner-wrap .site-container {
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
}

body.home #inner-wrap .content-container,
body.front-page #inner-wrap .content-container,
body.home #inner-wrap .site-container > .site-inner-wrap,
body.front-page #inner-wrap .site-container > .site-inner-wrap {
	max-width: 100%;
	padding-left: 0;
	padding-right: 0;
}

body.home .entry-content-wrap,
body.front-page .entry-content-wrap {
	padding-left: 0;
	padding-right: 0;
}

/*
 * Homepage: Kadence outputs --global-calc-content-width from Customizer (often ≠ portal 1280px).
 * Override on home/front so block "constrained" layouts and theme.json contentSize match .cv-container.
 */
body.home,
body.front-page {
	--global-content-width: var(--cv-content-max);
	--global-content-edge-padding: var(--cv-gutter);
	--global-calc-content-width: calc(var(--cv-content-max) - 2 * var(--cv-gutter));
	--global-content-wide-width: var(--cv-content-max);
	--wp--style--global--content-size: var(--global-calc-content-width);
	--wp--style--global--wide-size: var(--cv-content-max);
}

/* Homepage: block editor wrappers must not offset hero/ticker vs sticky header .cv-container */
body.home .entry-content,
body.front-page .entry-content {
	max-width: 100%;
	overflow-x: clip;
	box-sizing: border-box;
}

body.home .entry-content .wp-block-shortcode:has(.mp-hero-v2),
body.front-page .entry-content .wp-block-shortcode:has(.mp-hero-v2),
body.home .entry-content .wp-block-shortcode:has(.mp-ticker-wrap),
body.front-page .entry-content .wp-block-shortcode:has(.mp-ticker-wrap) {
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
}

/*
 * Top attractions (#attractions): WP outputs outer .is-layout-constrained + inner .wp-block-group.cv-container
 * + .wp-block-group__inner-container.is-layout-flow — stacked max-width + padding can reach ~1376px.
 * One shell: constrain the first inner-container to the portal column; inner .cv-container fills it (no double gutter).
 */
#attractions {
	overflow-x: clip;
	max-width: 100%;
	box-sizing: border-box;
}

#attractions > .wp-block-group__inner-container {
	max-width: var(--cv-content-max) !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--cv-gutter) !important;
	padding-right: var(--cv-gutter) !important;
	box-sizing: border-box !important;
}

#attractions .wp-block-group.cv-container {
	max-width: 100% !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	min-width: 0 !important;
	overflow-x: clip !important;
	box-sizing: border-box !important;
}

#attractions .wp-block-group.cv-container > .wp-block-group__inner-container {
	max-width: 100% !important;
	width: 100% !important;
	min-width: 0 !important;
	overflow-x: clip !important;
	box-sizing: border-box !important;
}

/* Toolbar + controls stay legible even when a parent block sets light text */
#attractions .mp-carousel__toolbar {
	color: var(--cv-dark-text);
}

/* Core block themes use .alignfull + 100vw margins — reset so sections match .cv-container */
body.home .alignfull,
body.front-page .alignfull {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	left: auto !important;
	right: auto !important;
}

body.home .wp-block-group.alignfull,
body.front-page .wp-block-group.alignfull {
	padding-left: 0;
	padding-right: 0;
}

/*
 * Front page: hero first in the flow — fit headline + background in the first viewport
 * below the sticky portal shell (Pulse + nav + full-bleed city strip).
 */
body.home .mp-hero-v2,
body.front-page .mp-hero-v2 {
	--mp-home-chrome: clamp(116px, 17vh, 188px);
	min-height: calc(100svh - var(--mp-home-chrome));
	height: calc(100svh - var(--mp-home-chrome));
	max-height: calc(100svh - var(--mp-home-chrome));
	padding-top: max(4px, env(safe-area-inset-top, 0px));
}

body.home .mp-hero-v2__content,
body.front-page .mp-hero-v2__content {
	margin-top: 0;
}

/* Legacy pages: weather ticker block still placed above hero — cancel block gap */
body.home .entry-content .wp-block-shortcode:has(.mp-ticker) + .wp-block-shortcode .mp-hero-v2,
body.front-page .entry-content .wp-block-shortcode:has(.mp-ticker) + .wp-block-shortcode .mp-hero-v2 {
	margin-top: 0;
}

body.home .entry-content .wp-block-shortcode:has(.mp-ticker),
body.front-page .entry-content .wp-block-shortcode:has(.mp-ticker) {
	margin-block-end: 0;
}

body.home .entry-content .wp-block-shortcode:has(.mp-ticker) + .wp-block-shortcode,
body.front-page .entry-content .wp-block-shortcode:has(.mp-ticker) + .wp-block-shortcode {
	margin-block-start: 0;
}

/*
 * Homepage ≤640px: overrides global hero height (above), comfortable gutters + safe-area insets,
 * capped hero band, news excerpt clamp — mobile-first rhythm without edge-clamped content.
 */
@media (max-width: 640px) {
	body.home,
	body.front-page {
		/* Wider side rhythm than 16px; scales slightly on narrow phones, caps at 24px */
		--cv-gutter: max(18px, min(5.5vw, 24px));
	}

	/* Portal sections: reinforce horizontal inset (WP alignfull often zeros outer padding) */
	body.home .mp-section .cv-container,
	body.front-page .mp-section .cv-container {
		padding-left: max(var(--cv-gutter), env(safe-area-inset-left, 0px));
		padding-right: max(var(--cv-gutter), env(safe-area-inset-right, 0px));
		box-sizing: border-box;
	}

	body.home .mp-hero-v2__inner.cv-container,
	body.front-page .mp-hero-v2__inner.cv-container {
		padding-left: max(var(--cv-gutter), env(safe-area-inset-left, 0px));
		padding-right: max(var(--cv-gutter), env(safe-area-inset-right, 0px));
		box-sizing: border-box;
		row-gap: 0.35rem;
	}

	body.home .mp-hero-v2__actions,
	body.front-page .mp-hero-v2__actions {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		max-width: 100%;
		gap: 10px;
		margin-bottom: 18px;
	}

	body.home .mp-hero-v2__btn,
	body.front-page .mp-hero-v2__btn {
		width: 100%;
		max-width: 100%;
		justify-content: center;
		box-sizing: border-box;
		min-height: 42px;
		padding: 10px 18px;
	}

	body.home .mp-hero-v2,
	body.front-page .mp-hero-v2 {
		--mp-home-chrome: clamp(96px, 17vh, 148px);
		min-height: min(64svh, calc(100svh - var(--mp-home-chrome)));
		height: min(64svh, calc(100svh - var(--mp-home-chrome)));
		max-height: min(64svh, calc(100svh - var(--mp-home-chrome)));
		padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
	}

	body.home .mp-hero-v2__content,
	body.front-page .mp-hero-v2__content {
		margin-top: clamp(0.35rem, 2vh, 0.85rem);
		padding-bottom: 0.25rem;
	}

	body.home .mp-hero-v2__badge,
	body.front-page .mp-hero-v2__badge {
		margin-bottom: 12px;
		font-size: 0.625rem;
		padding: 4px 10px 4px 8px;
	}

	body.home .mp-hero-v2__title,
	body.front-page .mp-hero-v2__title {
		font-size: clamp(1.38rem, 5.75vw, 1.72rem);
		line-height: 1.14;
		margin-bottom: 14px;
	}

	body.home .mp-hero-v2__sub,
	body.front-page .mp-hero-v2__sub {
		font-size: 0.875rem;
		line-height: 1.55;
		margin-bottom: 18px;
		max-width: 100%;
	}

	body.home .mp-hero-v2__stats,
	body.front-page .mp-hero-v2__stats {
		margin-top: 4px;
		padding-top: 4px;
		margin-bottom: 0;
	}

	body.home .mp-hero-v2__stat strong,
	body.front-page .mp-hero-v2__stat strong {
		font-size: 1.0625rem;
	}

	body.home .mp-hero-v2__stat span,
	body.front-page .mp-hero-v2__stat span {
		font-size: 0.75rem;
		line-height: 1.35;
	}

	body.home #news .mp-news-card,
	body.front-page #news .mp-news-card {
		min-height: 0;
	}

	body.home #news .mp-news-body,
	body.front-page #news .mp-news-body {
		min-height: 0;
	}

	body.home .mp-news-card p,
	body.front-page .mp-news-card p {
		flex: 0 1 auto;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		overflow: hidden;
		line-height: 1.48;
	}

	body.home .mp-card-pro__cta--facebook,
	body.front-page .mp-card-pro__cta--facebook {
		font-size: 0.75rem;
		padding: 0.42rem 0.55rem 0.42rem 0.48rem;
		line-height: 1.2;
		max-width: 100%;
	}

	body.home .mp-grid-features,
	body.front-page .mp-grid-features {
		gap: 1rem;
	}

	body.home #inner-wrap,
	body.front-page #inner-wrap {
		overflow-x: clip;
	}

	/* City strip in header: thin edge fades so words aren’t clipped mid-character */
	.cv-header-city .mp-ticker::before,
	.cv-header-city .mp-ticker::after {
		width: 22px;
	}
}

body.admin-bar.no-header .cv-portal-header-shell {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar.no-header .cv-portal-header-shell {
		top: 46px;
	}
}

/* Archives, search, author: breathing room + portal column (matches .cv-container / header) */
body.no-header:not(.home):not(.front-page):not(.single-post) #inner-wrap .content-wrap {
	padding-top: clamp(1.25rem, 3vw, 2rem);
	padding-left: var(--cv-gutter);
	padding-right: var(--cv-gutter);
	max-width: var(--cv-content-max);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

/* Portal templates — block editor + layout vars (align with homepage column) */
body.no-header.single-post,
body.no-header.archive,
body.no-header.blog,
body.no-header.search,
body.no-header.author,
body.no-header.page:not(.home):not(.front-page),
body.no-header.error404 {
	--global-content-width: var(--cv-content-max);
	--global-content-edge-padding: var(--cv-gutter);
	--global-calc-content-width: calc(var(--cv-content-max) - 2 * var(--cv-gutter));
	--global-content-wide-width: var(--cv-content-max);
	--wp--style--global--content-size: var(--global-calc-content-width);
	--wp--style--global--wide-size: var(--cv-content-max);
}

.cv-portal-primary {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Singular shell: main column width matches portal header */
body.no-header.single-post:not(.has-sidebar) #inner-wrap .cv-portal-site-container.content-container,
body.no-header.page:not(.home):not(.front-page):not(.has-sidebar) #inner-wrap .cv-portal-site-container.content-container {
	max-width: var(--cv-content-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--cv-gutter);
	padding-right: var(--cv-gutter);
	box-sizing: border-box;
	width: 100%;
}

/* Archive loop: section rhythm (inherits .mp-section padding; tuned so it doesn’t stack awkwardly vs hero) */
.mp-portal-archive-list.mp-section {
	padding-top: clamp(1.5rem, 3vw, 2.5rem);
	padding-bottom: clamp(2rem, 4vw, 3.5rem);
	border-top: 1px solid rgb(226 232 240 / 0.65);
	margin-top: 0;
}

body.author .mp-portal-archive-list.mp-section,
body.archive.category .mp-portal-archive-list.mp-section {
	border-top: none;
	padding-top: clamp(1rem, 2vw, 1.75rem);
}

/* Hero → list: single separator (hero already has border-bottom) */
body.archive header.hm-archive-hero + .mp-portal-archive-list.mp-section,
body.blog header.hm-archive-hero + .mp-portal-archive-list.mp-section,
body.search header.hm-archive-hero + .mp-portal-archive-list.mp-section,
body.tag header.hm-archive-hero + .mp-portal-archive-list.mp-section,
body.date header.hm-archive-hero + .mp-portal-archive-list.mp-section,
body.post-type-archive header.hm-archive-hero + .mp-portal-archive-list.mp-section {
	border-top: none;
	padding-top: clamp(1.35rem, 2.75vw, 2.1rem);
}

body.category header.hm-category-hero + .mp-portal-archive-list.mp-section {
	border-top: none;
	padding-top: clamp(1.35rem, 2.75vw, 2.1rem);
}

body.author header.hm-author-portfolio + .mp-portal-archive-list.mp-section {
	border-top: none;
	padding-top: clamp(1.25rem, 2.25vw, 1.85rem);
}

/* Archive cards — same chrome as homepage news */
.hm-archive-card .mp-news-card {
	border-radius: var(--cv-radius-card);
	border: 1px solid var(--cv-card-border);
	box-shadow: var(--shadow-editorial), var(--cv-card-inset);
}

.hm-archive-card .mp-news-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-editorial-hover), var(--cv-card-inset);
	border-color: rgb(203 213 225 / 0.95);
}

/* Pagination — portal buttons */
.mp-portal-archive-list .navigation.pagination,
.mp-portal-archive-list nav.navigation.pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.35rem 0.5rem;
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
	padding-top: 1.25rem;
	border-top: 1px solid var(--cv-surface-200);
}

.mp-portal-archive-list .page-numbers,
.mp-portal-archive-list .page-numbers.dots {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.65rem;
	margin: 0.15rem;
	border-radius: var(--cv-radius-btn);
	font-weight: 600;
	font-size: 0.875rem;
	text-decoration: none;
	border: 1px solid var(--cv-card-border);
	background: #fff;
	color: var(--cv-dark-text);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	transition:
		background-color var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease),
		color var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease);
}

.mp-portal-archive-list .page-numbers:hover,
.mp-portal-archive-list .page-numbers:focus {
	border-color: var(--cv-primary-300);
	color: var(--cv-primary-700);
	box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
}

.mp-portal-archive-list .page-numbers.current {
	background: var(--cv-primary-600);
	border-color: var(--cv-primary-600);
	color: #fff;
	box-shadow: 0 2px 8px rgb(37 99 235 / 0.22);
}

.mp-portal-archive-list .page-numbers.prev,
.mp-portal-archive-list .page-numbers.next {
	min-width: auto;
	padding-left: 1rem;
	padding-right: 1rem;
}

/* Search: empty results — same vertical rhythm as hero → list (no double rule under hero) */
body.search header.hm-archive-hero + .mp-portal-archive-empty.mp-section {
	border-top: none;
	padding-top: clamp(1.35rem, 2.75vw, 2.1rem);
	padding-bottom: clamp(2rem, 4vw, 3.5rem);
}

/* Archive / search empty state (no results) */
.mp-portal-archive-empty {
	margin-top: 0;
}

.mp-portal-archive-empty__inner {
	max-width: 40rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--cv-gutter);
	padding-right: var(--cv-gutter);
	box-sizing: border-box;
	text-align: center;
}

.mp-portal-archive-empty__title {
	margin: 0 0 0.65rem;
	font-family: var(--cv-font-display);
	font-size: clamp(1.2rem, 2.4vw, 1.45rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--cv-dark-text);
}

.mp-portal-archive-empty__lead,
.mp-portal-archive-empty__text {
	margin: 0 0 1.5rem;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--cv-muted);
}

.mp-portal-archive-empty__text {
	text-align: center;
}

.mp-portal-archive-empty__text a {
	color: var(--cv-primary-700);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.mp-portal-archive-empty__form {
	width: 100%;
	max-width: 44rem;
	margin-left: auto;
	margin-right: auto;
}

.mp-portal-archive-empty__form .search-form,
.mp-portal-archive-empty__form form[role="search"] {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: center;
	gap: 10px;
	width: 100%;
	box-sizing: border-box;
}

.mp-portal-archive-empty__form .search-form label {
	flex: 1 1 220px;
	min-width: 0;
	display: block;
}

.mp-portal-archive-empty__form .search-field,
.mp-portal-archive-empty__form input[type="search"] {
	width: 100%;
	box-sizing: border-box;
	min-width: 0;
	border-radius: var(--cv-radius-sm);
	border: 1px solid var(--cv-surface-200);
	padding: 12px 14px;
	font-size: 0.9375rem;
	font-family: var(--cv-font-body);
	background: #fff;
	color: var(--cv-dark-text);
	box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
}

.mp-portal-archive-empty__form .search-field:focus,
.mp-portal-archive-empty__form input[type="search"]:focus {
	outline: 2px solid var(--cv-primary-200);
	outline-offset: 1px;
	border-color: var(--cv-primary-300);
}

.mp-portal-archive-empty__form .search-submit,
.mp-portal-archive-empty__form input[type="submit"] {
	flex-shrink: 0;
	border: 0;
	border-radius: var(--cv-radius-btn);
	padding: 12px 18px;
	font-weight: 800;
	font-size: 0.9375rem;
	font-family: var(--cv-font-body);
	cursor: pointer;
	color: #fff;
	background: linear-gradient(135deg, #0f172a, #1e40af);
	box-shadow: 0 10px 24px rgba(30, 58, 138, 0.28);
	transition:
		filter var(--cv-dur) var(--cv-ease),
		transform 0.15s var(--cv-ease);
}

.mp-portal-archive-empty__form .search-submit:hover,
.mp-portal-archive-empty__form input[type="submit"]:hover {
	filter: brightness(1.06);
}

@media (max-width: 480px) {
	.mp-portal-archive-empty__form .search-submit,
	.mp-portal-archive-empty__form input[type="submit"] {
		width: 100%;
	}
}

/* Post nav — card-like strip */
.cv-portal-post-nav-wrap,
.post-navigation-wrap.cv-portal-post-nav-wrap {
	border-radius: var(--cv-radius-card);
	border: 1px solid var(--cv-card-border);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	margin-top: var(--cv-single-section-gap, 1.5rem);
	overflow: hidden;
}

body.single-post .post-navigation a,
body.page:not(.home):not(.front-page) .post-navigation a {
	color: var(--cv-primary-700);
	font-weight: 600;
}

/* Boxed post nav: outer wrap carries chrome — flatten inner link cards */
body.single-post .cv-portal-post-nav-wrap .post-navigation,
body.page:not(.home):not(.front-page) .cv-portal-post-nav-wrap .post-navigation {
	padding: 0.65rem var(--cv-gutter);
	margin-top: 0;
}

body.single-post .cv-portal-post-nav-wrap .post-navigation .nav-links,
body.page:not(.home):not(.front-page) .cv-portal-post-nav-wrap .post-navigation .nav-links {
	gap: 0.65rem;
}

body.single-post .cv-portal-post-nav-wrap .post-navigation a,
body.page:not(.home):not(.front-page) .cv-portal-post-nav-wrap .post-navigation a {
	box-shadow: none;
	border-radius: var(--cv-radius-sm);
	background: var(--cv-surface-50);
}

body.single-post .cv-portal-post-nav-wrap .post-navigation a:hover,
body.page:not(.home):not(.front-page) .cv-portal-post-nav-wrap .post-navigation a:hover {
	background: #fff;
}

/* Interactive explorer */
.mp-explorer {
	margin-top: 8px;
}

.mp-explorer__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin-bottom: 28px;
}

.mp-explorer__tab {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 1px solid var(--cv-card-border);
	background: #fff;
	border-radius: var(--cv-radius-pill);
	padding: 10px 18px;
	font-size: 0.875rem;
	font-weight: 600;
	font-family: var(--cv-font-body);
	color: var(--cv-muted);
	cursor: pointer;
	transition:
		background var(--cv-dur) var(--cv-ease),
		color var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
}

.mp-explorer__tab:hover {
	background: var(--cv-surface-50);
	border-color: var(--cv-primary-300);
	color: var(--cv-primary-700);
	box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
}

.mp-explorer__tab.is-active {
	background: var(--cv-primary-600);
	border-color: var(--cv-primary-600);
	color: #fff;
	box-shadow: 0 2px 8px rgb(37 99 235 / 0.25), 0 4px 16px rgb(15 23 42 / 0.08);
}

.mp-explorer__tab:active {
	opacity: 0.96;
}

.mp-explorer__tab-ico {
	font-size: 1.125rem;
	line-height: 1;
}

.mp-explorer__panel {
	animation: mp-panel-in 0.35s var(--cv-ease) both;
}

.mp-explorer__panel[hidden] {
	display: none !important;
}

@keyframes mp-panel-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.mp-explorer__grid {
	display: grid;
	gap: 20px;
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.mp-explorer__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Single topic with one card: span full grid so copy aligns with centered tabs */
.mp-explorer__grid > .mp-explorer__card:only-child {
	grid-column: 1 / -1;
	width: 100%;
	max-width: 100%;
	justify-self: stretch;
}

.mp-explorer__card {
	background: #fff;
	border: 1px solid var(--cv-card-border);
	border-radius: var(--cv-radius-card);
	padding: 22px 24px;
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	transition:
		box-shadow var(--cv-dur) var(--cv-ease),
		transform var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
}

.mp-explorer__card:hover {
	transform: translateY(-1px);
	border-color: rgb(203 213 225 / 0.92);
	box-shadow: var(--shadow-utility-hover), var(--cv-card-inset);
}

.mp-explorer__card h3 {
	margin: 0 0 10px;
	font-size: 1rem;
	font-family: var(--cv-font-display);
	font-weight: 700;
	color: var(--cv-dark-text);
}

.mp-explorer__card p {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--cv-muted);
	line-height: 1.6;
}

.mp-explorer__card-top {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 10px;
}

.mp-explorer__card-ico {
	flex-shrink: 0;
	width: var(--cv-icon-box);
	height: var(--cv-icon-box);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	border-radius: var(--cv-radius-icon-box);
	background: linear-gradient(180deg, #fff 0%, var(--cv-primary-50) 100%);
	border: 1px solid var(--cv-primary-100, #dbeafe);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
}

.mp-explorer__card-top h3 {
	margin: 0;
	padding-top: 4px;
}


/* Global footer inside Kadence colophon */
.mp-portal-footer-shell {
	background: linear-gradient(180deg, #ffffff 0%, #f8fafc 55%, #f1f5f9 100%);
	border-top: 1px solid var(--cv-header-border);
	width: 100%;
	box-sizing: border-box;
}

.mp-portal-footer-shell .site-footer-row-container-inner {
	padding-top: clamp(0.75rem, 2vw, 1.25rem);
	padding-bottom: clamp(1rem, 2.5vw, 1.75rem);
}

.mp-portal-footer-shell .site-container {
	max-width: var(--cv-content-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--cv-gutter);
	padding-right: var(--cv-gutter);
	width: 100%;
	box-sizing: border-box;
}

/* Match main column (.cv-portal-site-container): Kadence footer .site-container can load after theme CSS */
#colophon .mp-portal-footer-shell .site-container {
	max-width: min(var(--cv-content-max), 100%) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--cv-gutter) !important;
	padding-right: var(--cv-gutter) !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

#colophon .mp-portal-footer-shell .footer-widget-area.site-info,
#colophon .mp-portal-footer-shell .footer-widget-area-inner.site-info-inner {
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: 100%;
	box-sizing: border-box;
}

.mp-portal-footer-shell .site-bottom-footer-inner-wrap {
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.mp-portal-footer-shell .footer-widget-area.site-info {
	margin: 0 !important;
}

.mp-global-footer-inner {
	padding: 0;
	display: flex;
	justify-content: stretch;
	align-items: stretch;
	width: 100%;
	box-sizing: border-box;
}

footer.mp-footer.mp-footer--global {
	border-top: none;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid var(--cv-surface-200);
	border-radius: 22px;
	box-shadow: 0 16px 50px rgba(15, 23, 42, 0.12);
	overflow: hidden;
	/* Horizontal: gutters on #colophon .site-container only (matches one layer on .cv-portal-site-container) */
	padding-left: 0;
	padding-right: 0;
	padding-top: clamp(1.35rem, 3vw, 1.85rem);
	padding-bottom: clamp(1.15rem, 2.5vw, 1.5rem);
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Global footer: remove center-aligned feel */
footer.mp-footer.mp-footer--global .mp-footer-grid,
footer.mp-footer.mp-footer--global .mp-footer-col,
footer.mp-footer.mp-footer--global .mp-footer-brand-col {
	text-align: left;
}

@media (max-width: 639px) {
	footer.mp-footer.mp-footer--global .mp-footer-brand-col {
		text-align: center;
	}
}

footer.mp-footer.mp-footer--global .mp-footer-grid {
	padding-top: 0.25rem;
	/* Inset from the rounded card edge so the logo/columns aren’t flush to the border */
	padding-left: var(--cv-gutter);
	padding-right: var(--cv-gutter);
	box-sizing: border-box;
}

/* Footer bar: contained (avoid 100vw inside Kadence colophon) */
footer.mp-footer.mp-footer--global .mp-footer-bar {
	background: linear-gradient(180deg, rgba(248, 250, 252, 0.35) 0%, rgba(241, 245, 249, 0.85) 100%);
	margin-left: 0;
	margin-right: 0;
	width: auto;
	max-width: none;
	padding-left: var(--cv-gutter);
	padding-right: var(--cv-gutter);
	padding-top: clamp(1.1rem, 2.5vw, 1.4rem);
	padding-bottom: clamp(0.95rem, 2vw, 1.25rem);
}

footer.mp-footer.mp-footer--global .mp-footer-bar__inner {
	max-width: none;
	padding: 0;
}

@media (prefers-reduced-motion: reduce) {
	.mp-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.mp-icon-float {
		animation: none;
	}

	.mp-carousel__track {
		scroll-behavior: auto;
	}

	.mp-explorer__panel {
		animation: none;
	}

	.mp-explorer__panel.is-active .mp-explorer__card {
		animation: none;
	}

	.mp-explorer__card-ico,
	.mp-phone-card__ico {
		animation: none;
	}

	.mp-radar__sweep,
	.mp-weather-mood--sunny .mp-weather-fx::before,
	.mp-weather-mood--night .mp-weather-fx::before,
	.mp-weather-mood--storm .mp-weather-fx::before,
	.mp-weather-rain-layer,
	.mp-weather-mood--snow .mp-weather-fx::before,
	.mp-weather-mood--fog .mp-weather-fx::before {
		animation: none;
	}

	.mp-weather-mood--rain .mp-weather-rain-svg,
	.mp-weather-mood--storm .mp-weather-rain-svg,
	.mp-weather-rain-on .mp-weather-rain-svg {
		transform: none;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
	}

	.mp-chat__fab-pulse,
	.mp-chat__typing span {
		animation: none;
	}
}

/* ==========================================================================
   Single post — SaaS / landing layout (not “blog card”)
   ========================================================================== */
body.single-post {
	overflow-x: hidden;
	/* Horizontal rhythm aligns with header/footer gutters (not a narrow prose column). */
	--cv-single-inset: var(--cv-gutter);
	--cv-single-section-gap: clamp(1.5rem, 3.75vw, 2.25rem);
	--cv-single-bottom-pad: clamp(1.5rem, 3.75vw, 2.25rem);
}

body.single-post #inner-wrap .content-wrap {
	padding-top: 0;
	padding-bottom: clamp(2rem, 5vw, 3.5rem);
}

/* No sidebar: one shell = same as .cv-container / footer .site-container (1280px + gutters) */
body.single-post:not(.has-sidebar) #inner-wrap .site-container {
	max-width: var(--cv-content-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--cv-gutter);
	padding-right: var(--cv-gutter);
	box-sizing: border-box;
	width: 100%;
}

/* Gutters live on .site-container (no sidebar); avoid double padding vs .cv-container */
body.single-post:not(.has-sidebar) #main .content-wrap {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
	width: 100%;
}

/* Sidebar layout: keep theme gutters on the main column (do not zero .site-container) */
body.single-post.has-sidebar #main .content-wrap {
	max-width: none;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--cv-gutter);
	padding-right: var(--cv-gutter);
	box-sizing: border-box;
	width: 100%;
}

/* Gutenberg full/wide: cancel viewport breakout so content matches header/footer column */
body.single-post .entry-content.single-content .alignfull,
body.single-post .entry-content.single-content .wp-block-group.alignfull {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	left: auto !important;
	right: auto !important;
}

body.single-post .entry-content.single-content .alignwide {
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	left: auto !important;
	right: auto !important;
}

/*
 * Related coverage (Kadence entry_related.php): outer wrapper is .entry-related.alignfull — same
 * full-bleed breakout as Gutenberg; it sits outside .entry-content so it needs its own reset.
 */
body.single-post .entry-related.alignfull {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	left: auto !important;
	right: auto !important;
}

body.single-post .entry-related .entry-related-inner-content.alignwide {
	max-width: 100% !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	left: auto !important;
	right: auto !important;
	box-sizing: border-box !important;
}

body.single-post article.single-entry {
	position: relative;
	max-width: none;
	margin: 0;
	background: linear-gradient(180deg, #f1f5f9 0%, #ffffff 22rem);
	border: none;
	border-radius: 0;
	box-shadow: none;
	overflow: visible;
}

body.page:not(.home):not(.front-page) article.single-entry.mp-portal-single-entry {
	background: linear-gradient(180deg, #f1f5f9 0%, #ffffff 18rem);
	border: none;
	border-radius: 0;
	box-shadow: none;
}

body.single-post article.single-entry .entry-content-wrap {
	padding: 0;
	padding-bottom: var(--cv-single-bottom-pad);
	max-width: none;
	box-sizing: border-box;
}

/* Featured image above title — keep inside same column as header/footer (no 100vw breakout). */
body.single-post .entry-content-wrap > .post-thumbnail.article-post-thumbnail:first-child {
	position: relative;
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
	margin-bottom: 0;
	border-radius: var(--cv-radius-lg) var(--cv-radius-lg) 0 0;
	overflow: hidden;
	max-height: min(52vh, 520px);
	border: none;
	box-shadow: none;
}

body.single-post .entry-content-wrap > .post-thumbnail.article-post-thumbnail:first-child .post-thumbnail-inner,
body.single-post .entry-content-wrap > .post-thumbnail.article-post-thumbnail:first-child img {
	height: min(52vh, 520px);
}

body.single-post .entry-content-wrap > .post-thumbnail.article-post-thumbnail:first-child img {
	width: 100%;
	object-fit: cover;
	display: block;
}

body.single-post .post-thumbnail.article-post-thumbnail .post-thumbnail-inner img,
body.single-post .post-thumbnail.article-post-thumbnail .post-top-featured {
	display: block;
	width: 100%;
	height: auto;
}

body.single-post .article-post-thumbnail-caption {
	padding: 0.65rem clamp(1.25rem, 4vw, 2rem);
	font-size: 0.8125rem;
	color: var(--cv-muted);
	line-height: 1.5;
	background: var(--cv-surface-50);
	border-bottom: 1px solid var(--cv-surface-200);
}

/* Hero band: title + meta — aligned to content column (matches .cv-container width). */
body.single-post .entry-header.post-title {
	margin: 0;
	padding: clamp(1.25rem, 3.25vw, 1.85rem) var(--cv-gutter);
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
	box-sizing: border-box;
	border: none;
	border-radius: 0 0 var(--cv-radius-lg) var(--cv-radius-lg);
	background:
		radial-gradient(ellipse 80% 120% at 100% 0%, rgba(56, 189, 248, 0.2) 0%, transparent 55%),
		radial-gradient(ellipse 70% 100% at 0% 100%, rgba(99, 102, 241, 0.25) 0%, transparent 50%),
		linear-gradient(135deg, #0f172a 0%, #1e3a8a 38%, #3730a3 100%);
}

body.single-post .entry-header.post-title h1 {
	font-family: var(--cv-font-display);
	font-size: clamp(1.55rem, 4vw, 2.35rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.04em;
	color: #fff;
	margin: 0 0 0.65rem;
	max-width: 100%;
	text-shadow: 0 2px 28px rgba(0, 0, 0, 0.25);
}

body.single-post .post-title .entry-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1.25rem;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: rgba(255, 255, 255, 0.78);
}

body.single-post .post-title .entry-meta a {
	color: #bfdbfe;
	font-weight: 700;
	text-decoration: none;
}

body.single-post .post-title .entry-meta a:hover {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Featured image below title — product shot */
body.single-post .entry-content-wrap > .post-thumbnail.article-post-thumbnail:not(:first-child) {
	margin: clamp(1.5rem, 4vw, 2rem) auto;
	max-width: min(920px, 100%);
	border-radius: var(--cv-radius-lg);
	overflow: hidden;
	border: 1px solid var(--cv-surface-200);
	box-shadow: var(--shadow-card-lg);
}

/* Body copy — full width of content shell (same as header/footer); readable line-length via font-size/line-height */
body.single-post .entry-content.single-content {
	font-family: var(--cv-font-body);
	font-size: 1.0625rem;
	line-height: 1.72;
	letter-spacing: -0.011em;
	color: var(--cv-dark-text);
	max-width: 100%;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
	padding: clamp(2rem, 5vw, 3rem) var(--cv-single-inset) var(--cv-single-section-gap);
	box-sizing: border-box;
	text-rendering: optimizeLegibility;
	font-feature-settings: "kern" 1, "liga" 1;
	hyphens: auto;
}

body.single-post .entry-content.single-content > *:first-child {
	margin-top: 0;
}

body.single-post .entry-content.single-content > *:last-child {
	margin-bottom: 0;
}

body.single-post .entry-content.single-content > p:first-of-type {
	font-size: 1.05em;
	line-height: 1.75;
}

body.single-post .entry-content.single-content p {
	margin-top: 0;
	margin-bottom: 1.2em;
}

body.single-post .entry-content.single-content h2,
body.single-post .entry-content.single-content h3,
body.single-post .entry-content.single-content h4,
body.single-post .entry-content.single-content h5,
body.single-post .entry-content.single-content h6 {
	font-family: var(--cv-font-display);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--cv-dark-text);
	line-height: 1.22;
	margin-top: 2.35rem;
	margin-bottom: 0.7rem;
	scroll-margin-top: 5.5rem;
}

body.single-post .entry-content.single-content h2:first-child,
body.single-post .entry-content.single-content h3:first-child,
body.single-post .entry-content.single-content h4:first-child {
	margin-top: 0;
}

body.single-post .entry-content.single-content h2 {
	font-size: clamp(1.4rem, 2.9vw, 1.8rem);
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--cv-surface-200);
}

body.single-post .entry-content.single-content h3 {
	font-size: clamp(1.22rem, 2.5vw, 1.42rem);
}

body.single-post .entry-content.single-content h4 {
	font-size: clamp(1.08rem, 2.1vw, 1.22rem);
	font-weight: 700;
}

body.single-post .entry-content.single-content h5 {
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.055em;
	color: var(--cv-muted);
}

body.single-post .entry-content.single-content h6 {
	font-size: 0.9375rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cv-muted);
}

body.single-post .entry-content.single-content a {
	color: var(--cv-primary-600);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	text-decoration-skip-ink: auto;
}

body.single-post .entry-content.single-content a:hover {
	color: var(--cv-primary-700);
}

body.single-post .entry-content.single-content strong {
	font-weight: 700;
	color: var(--cv-dark-text);
}

body.single-post .entry-content.single-content em {
	font-style: italic;
}

body.single-post .entry-content.single-content sup,
body.single-post .entry-content.single-content sub {
	font-size: 0.75em;
	line-height: 0;
}

body.single-post .entry-content.single-content mark {
	background: rgba(251, 191, 36, 0.38);
	color: var(--cv-dark-text);
	padding: 0.06em 0.22em;
	border-radius: 4px;
}

body.single-post .entry-content.single-content kbd {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 0.85em;
	padding: 0.12em 0.4em;
	border-radius: 6px;
	background: var(--cv-surface-100);
	border: 1px solid var(--cv-surface-300);
	box-shadow: 0 1px 0 var(--cv-surface-200);
}

body.single-post .entry-content.single-content ul,
body.single-post .entry-content.single-content ol {
	margin: 0.5em 0 1.35em;
	padding-left: 1.5rem;
}

body.single-post .entry-content.single-content ul {
	list-style-type: disc;
}

body.single-post .entry-content.single-content ul ul {
	list-style-type: circle;
	margin-top: 0.45em;
	margin-bottom: 0.45em;
}

body.single-post .entry-content.single-content ol {
	list-style-type: decimal;
}

body.single-post .entry-content.single-content li {
	margin-bottom: 0.5em;
	padding-left: 0.28em;
	line-height: 1.65;
}

body.single-post .entry-content.single-content li::marker {
	color: var(--cv-primary-600);
	font-weight: 700;
}

body.single-post .entry-content.single-content ol li::marker {
	color: var(--cv-primary-700);
	font-variant-numeric: tabular-nums;
}

body.single-post .entry-content.single-content dl {
	margin: 1.25rem 0;
}

body.single-post .entry-content.single-content dt {
	font-family: var(--cv-font-display);
	font-weight: 700;
	margin-top: 1rem;
	color: var(--cv-dark-text);
}

body.single-post .entry-content.single-content dt:first-child {
	margin-top: 0;
}

body.single-post .entry-content.single-content dd {
	margin: 0.35em 0 0;
	padding-left: 1rem;
	border-left: 3px solid var(--cv-surface-200);
	color: var(--cv-muted);
	line-height: 1.65;
}

body.single-post .entry-content.single-content blockquote {
	margin: 1.75rem 0;
	padding: 1.25rem 1.35rem 1.25rem 1.5rem;
	border-left: 4px solid var(--cv-primary-500);
	background: linear-gradient(90deg, var(--cv-surface-50) 0%, #ffffff 100%);
	border-radius: 0 var(--cv-radius-sm) var(--cv-radius-sm) 0;
	font-style: italic;
	font-size: 1.04em;
	line-height: 1.65;
	color: #334155;
	box-shadow: var(--shadow-card);
}

body.single-post .entry-content.single-content blockquote cite {
	display: block;
	margin-top: 0.65rem;
	font-style: normal;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--cv-muted);
}

body.single-post .entry-content.single-content .wp-block-quote {
	margin: 1.75rem 0;
	padding: 0 0 0 1.25rem;
	border-left: 4px solid var(--cv-primary-500);
}

body.single-post .entry-content.single-content .wp-block-quote cite,
body.single-post .entry-content.single-content .wp-block-quote .wp-block-quote__citation {
	font-style: normal;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--cv-muted);
}

body.single-post .entry-content.single-content .wp-block-pullquote {
	margin: 1.75rem 0;
	padding: 1.5rem 1.25rem;
	border-top: 3px solid var(--cv-primary-400);
	border-bottom: 3px solid var(--cv-primary-400);
	background: var(--cv-surface-50);
	border-radius: var(--cv-radius-sm);
	text-align: center;
	font-size: clamp(1.05rem, 2.2vw, 1.2rem);
	line-height: 1.5;
}

body.single-post .entry-content.single-content .wp-block-pullquote cite {
	font-style: normal;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--cv-muted);
	margin-top: 0.75rem;
	display: block;
}

body.single-post .entry-content.single-content .wp-block-table {
	margin: 1.5rem 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

body.single-post .entry-content.single-content .wp-block-table table {
	width: 100%;
	min-width: 16rem;
	border-collapse: collapse;
	font-size: 0.9375rem;
	line-height: 1.55;
	border: 1px solid var(--cv-surface-200);
	border-radius: var(--cv-radius-sm);
	overflow: hidden;
	box-shadow: var(--shadow-card);
}

body.single-post .entry-content.single-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
	line-height: 1.55;
	margin: 1.5rem 0;
	border: 1px solid var(--cv-surface-200);
	border-radius: var(--cv-radius-sm);
	overflow: hidden;
	box-shadow: var(--shadow-card);
}

body.single-post .entry-content.single-content thead th,
body.single-post .entry-content.single-content thead td {
	background: var(--cv-surface-100);
	font-family: var(--cv-font-display);
	font-weight: 700;
	text-align: left;
	padding: 0.65rem 1rem;
	border-bottom: 2px solid var(--cv-surface-200);
	color: var(--cv-dark-text);
}

body.single-post .entry-content.single-content tbody td,
body.single-post .entry-content.single-content tbody th {
	padding: 0.62rem 1rem;
	border-bottom: 1px solid var(--cv-surface-200);
	vertical-align: top;
}

body.single-post .entry-content.single-content tbody tr:nth-child(even) td {
	background: rgba(241, 245, 249, 0.45);
}

body.single-post .entry-content.single-content tbody tr:last-child td,
body.single-post .entry-content.single-content tbody tr:last-child th {
	border-bottom: none;
}

body.single-post .entry-content.single-content table caption {
	caption-side: bottom;
	font-size: 0.8125rem;
	color: var(--cv-muted);
	margin-top: 0.55rem;
	text-align: left;
	font-weight: 500;
}

body.single-post .entry-content.single-content pre,
body.single-post .entry-content.single-content code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 0.9em;
}

body.single-post .entry-content.single-content :not(pre) > code {
	padding: 0.12em 0.35em;
	background: var(--cv-surface-100);
	border: 1px solid var(--cv-surface-200);
	border-radius: 6px;
	font-size: 0.88em;
}

body.single-post .entry-content.single-content pre {
	padding: 1.1rem 1.2rem;
	background: #0f172a;
	color: #e2e8f0;
	border: 1px solid rgba(30, 41, 59, 0.9);
	border-radius: var(--cv-radius-sm);
	overflow-x: auto;
	margin: 1.35rem 0;
	line-height: 1.55;
}

body.single-post .entry-content.single-content pre code {
	background: transparent;
	border: 0;
	padding: 0;
	font-size: 0.88rem;
	color: inherit;
}

body.single-post .entry-content.single-content img {
	border-radius: var(--cv-radius-sm);
}

body.single-post .entry-content.single-content .wp-block-image,
body.single-post .entry-content.single-content .wp-block-media-text {
	margin: 1.75rem 0;
}

body.single-post .entry-content.single-content .wp-block-image img {
	box-shadow: var(--shadow-card);
}

body.single-post .entry-content.single-content .wp-block-image figcaption,
body.single-post .entry-content.single-content figcaption {
	font-size: 0.875rem;
	color: var(--cv-muted);
	margin-top: 0.55rem;
	line-height: 1.5;
}

body.single-post .entry-content.single-content .wp-block-separator,
body.single-post .entry-content.single-content hr {
	border: 0;
	height: auto;
	background: none;
	margin: 2.25rem 0;
}

body.single-post .entry-content.single-content hr {
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--cv-surface-300), transparent);
}

body.single-post .entry-content.single-content .wp-block-separator {
	border-top: 2px solid var(--cv-surface-200);
	max-width: 4.5rem;
	margin-left: auto;
	margin-right: auto;
	opacity: 1;
}

body.single-post .entry-content.single-content .wp-block-separator.is-style-wide {
	max-width: none;
	border-top-width: 1px;
}

body.single-post .entry-content.single-content .wp-block-columns {
	gap: 1.5rem clamp(1.25rem, 3vw, 2rem);
	margin: 1.5rem 0;
}

@media (max-width: 781px) {
	body.single-post .entry-content.single-content .wp-block-columns {
		flex-wrap: wrap;
	}
}

body.single-post .page-links {
	margin-top: 1.5rem;
	padding: 0.85rem 1rem;
	background: var(--cv-surface-50);
	border-radius: var(--cv-radius-sm);
	border: 1px solid var(--cv-surface-200);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--cv-dark-text);
}

/* Tags: shown in .mp-story-topics; hide Kadence footer (tags-only). */
body.single-post footer.entry-footer {
	display: none !important;
}

/* Prev / next — CTA strip */
body.single-post .post-navigation,
body.single-post .post-navigation-wrap {
	margin-top: clamp(2rem, 5vw, 2.75rem);
	max-width: 100%;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
	padding: 0 var(--cv-single-inset);
	box-sizing: border-box;
}

body.single-post nav.navigation.post-navigation {
	display: block;
	width: 100%;
	border: 0;
}

body.single-post .post-navigation .nav-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	width: 100%;
	align-items: stretch;
	margin: 0;
	padding: 0;
}

@media (max-width: 640px) {
	body.single-post .post-navigation .nav-links {
		grid-template-columns: 1fr;
	}
}

body.single-post .post-navigation .nav-previous,
body.single-post .post-navigation .nav-next {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.single-post .post-navigation a {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.35rem;
	padding: 1.15rem 1.25rem;
	min-height: 100%;
	background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
	border: 1px solid var(--cv-surface-200);
	border-radius: var(--cv-radius-lg);
	box-shadow: 0 4px 20px rgba(15, 23, 42, 0.06);
	text-decoration: none;
	font-family: var(--cv-font-display);
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--cv-dark-text);
	transition:
		border-color var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease),
		transform var(--cv-dur) var(--cv-ease),
		color var(--cv-dur) var(--cv-ease);
}

body.single-post .post-navigation .nav-next a {
	align-items: flex-end;
	text-align: right;
}

body.single-post .post-navigation a:hover {
	border-color: var(--cv-primary-200);
	box-shadow: var(--shadow-card-hover);
	transform: translateY(-2px);
	color: var(--cv-primary-700);
}

body.single-post .post-navigation .post-navigation-sub {
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--cv-muted);
	font-family: var(--cv-font-body);
}

/* Related — same horizontal measure as article (no viewport breakout). */
body.single-post .entry-related {
	margin-top: 0;
	padding: clamp(2.25rem, 5vw, 3rem) 0;
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
	box-sizing: border-box;
	background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
	border-top: 1px solid var(--cv-surface-200);
	border-radius: 0 0 var(--cv-radius-lg) var(--cv-radius-lg);
}

body.single-post .entry-related-title {
	font-family: var(--cv-font-display);
	font-size: clamp(1rem, 1.8vw, 1.2rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--cv-dark-text);
	margin: 0 0 1.5rem;
	max-width: 100%;
	width: 100%;
	padding: 0 var(--cv-single-inset) 0.65rem;
	box-sizing: border-box;
	text-align: left;
	border-bottom: 2px solid var(--cv-primary-200);
}

/* Category + author: hide from hero title; category + author live in story index card below. */
body.single-post .entry-header.post-title .entry-taxonomies,
body.single-post .post-title .entry-meta .category-links,
body.single-post .entry-header.post-title .posted-by {
	display: none !important;
}

/* Story topics: categories + tags (single card, editorial index) */
body.single-post .mp-story-topics {
	display: block;
	max-width: 100%;
	width: 100%;
	/* Space above comes from .entry-content.single-content padding-bottom only (no double gap). */
	margin: 0;
	padding: 0 var(--cv-single-inset) 0;
	box-sizing: border-box;
	clear: both;
}

body.single-post .mp-story-topics__card {
	position: relative;
	padding: 1.35rem 1.5rem 1.4rem 1.65rem;
	background:
		linear-gradient(145deg, #ffffff 0%, rgba(248, 250, 252, 0.97) 55%, rgba(241, 245, 249, 0.92) 100%);
	border: 1px solid rgba(226, 232, 240, 0.95);
	border-radius: calc(var(--cv-radius-lg) + 2px);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.8) inset,
		0 1px 2px rgba(15, 23, 42, 0.05),
		0 18px 48px rgba(15, 23, 42, 0.08);
	overflow: hidden;
}

@media (min-width: 768px) {
	body.single-post .mp-story-topics__card {
		padding: 1.5rem 1.65rem 1.55rem 1.85rem;
	}
}

body.single-post .mp-story-topics__card::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 5px;
	background: linear-gradient(180deg, var(--cv-primary-400) 0%, var(--cv-primary-700) 100%);
	border-radius: var(--cv-radius-lg) 0 0 var(--cv-radius-lg);
	z-index: 0;
}

/* Three columns: category | author | tags */
body.single-post .mp-story-topics__row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	/* Horizontal gap separates columns before the divider; padding on bordered cols clears pills from the line. */
	gap: 0.75rem clamp(1.25rem, 3vw, 2rem);
	align-items: start;
	position: relative;
	z-index: 1;
}

body.single-post .mp-story-topics__section--categories {
	padding: 0 0.35rem 0 0;
}

body.single-post .mp-story-topics__section--author,
body.single-post .mp-story-topics__section--tags {
	border-left: 1px solid var(--cv-surface-200);
	padding-left: clamp(2rem, 5.5vw, 2.85rem);
	padding-top: 0;
	padding-right: 0;
	padding-bottom: 0;
	margin: 0;
}

@media (max-width: 700px) {
	body.single-post .mp-story-topics__row {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	body.single-post .mp-story-topics__section--author,
	body.single-post .mp-story-topics__section--tags {
		border-left: none;
		padding-left: 0;
		border-top: 1px solid var(--cv-surface-200);
		padding-top: 1rem;
	}
}

/* Do not set padding: 0 here — it overrides padding-left on --author/--tags (same specificity, comes later). */
body.single-post .mp-story-topics__section {
	margin: 0;
	min-width: 0;
}

body.single-post .mp-story-topics__section-head {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: 0.55rem 0.65rem;
	margin-bottom: 0.55rem;
}

body.single-post .mp-story-topics__titles {
	min-width: 0;
}

body.single-post .mp-story-topics__marker {
	display: block;
	width: 2rem;
	height: 2rem;
	border-radius: 10px;
	background: linear-gradient(145deg, var(--cv-primary-500) 0%, var(--cv-primary-700) 100%);
	box-shadow:
		0 4px 16px rgba(37, 99, 235, 0.28),
		inset 0 1px 0 rgba(255, 255, 255, 0.2);
	flex-shrink: 0;
}

body.single-post .mp-story-topics__marker--author {
	background: linear-gradient(145deg, #0d9488 0%, #0f766e 100%);
	box-shadow:
		0 4px 16px rgba(15, 118, 110, 0.28),
		inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

body.single-post .mp-story-topics__marker--tags {
	background: linear-gradient(145deg, #64748b 0%, #1e293b 100%);
	box-shadow:
		0 4px 16px rgba(30, 41, 59, 0.25),
		inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

body.single-post .mp-story-topics__chip--author {
	border-color: rgba(13, 148, 136, 0.45);
	color: #0f766e;
	background: linear-gradient(180deg, #f0fdfa 0%, #ecfdf5 100%);
}

body.single-post .mp-story-topics__chip--author:hover {
	background: #0d9488;
	border-color: #0d9488;
	color: #fff;
	box-shadow: 0 6px 20px rgba(13, 148, 136, 0.28);
}

/* Same pill as category chips; non-interactive (No tags, etc.) */
body.single-post .mp-story-topics__chip--placeholder {
	cursor: default;
	pointer-events: none;
}

body.single-post .mp-story-topics__label {
	margin: 0 0 0.15rem;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cv-muted);
	line-height: 1.2;
}

body.single-post .mp-story-topics__title {
	margin: 0;
	font-family: var(--cv-font-display);
	font-size: 0.9375rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.2;
	color: var(--cv-dark-text);
}

body.single-post .mp-story-topics__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 0.55rem;
	align-items: center;
	align-content: flex-start;
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 1;
	width: 100%;
	min-width: 0;
}

body.single-post .mp-story-topics__list li {
	margin: 0;
	padding: 0;
}

body.single-post .mp-story-topics__chip--category {
	display: inline-flex;
	align-items: center;
	padding: 0.4rem 0.95rem;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--cv-primary-800);
	background: #fff;
	border: 1px solid var(--cv-primary-200);
	border-radius: var(--cv-radius-pill);
	text-decoration: none;
	transition:
		background var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease),
		color var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease),
		transform var(--cv-dur) var(--cv-ease);
}

body.single-post .mp-story-topics__chip--category:hover {
	background: var(--cv-primary-600);
	border-color: var(--cv-primary-600);
	color: #fff;
	box-shadow: 0 6px 20px rgba(37, 99, 235, 0.25);
	transform: translateY(-1px);
}

body.single-post .mp-story-topics__chip--tag {
	display: inline-flex;
	align-items: center;
	gap: 0.12em;
	padding: 0.32rem 0.75rem;
	font-size: 0.78rem;
	font-weight: 600;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	letter-spacing: -0.02em;
	color: var(--cv-dark-text);
	background: rgba(255, 255, 255, 0.65);
	border: 1px dashed var(--cv-surface-300);
	border-radius: 999px;
	text-decoration: none;
	backdrop-filter: blur(6px);
	transition:
		border-color var(--cv-dur) var(--cv-ease),
		background var(--cv-dur) var(--cv-ease),
		color var(--cv-dur) var(--cv-ease),
		transform var(--cv-dur) var(--cv-ease);
}

body.single-post .mp-story-topics__chip--tag:hover {
	border-color: var(--cv-primary-400);
	border-style: solid;
	background: var(--cv-primary-50);
	color: var(--cv-primary-800);
	transform: translateY(-1px);
}

body.single-post .mp-story-topics__hash {
	opacity: 0.45;
	font-weight: 700;
}

body.single-post .mp-story-topics__divider {
	height: 1px;
	margin: 1.15rem 0 1.25rem;
	background: linear-gradient(
		90deg,
		transparent 0%,
		var(--cv-primary-200) 20%,
		var(--cv-surface-300) 50%,
		var(--cv-primary-200) 80%,
		transparent 100%
	);
	opacity: 0.85;
}

/* Share toolbar: label + one aligned row (scroll on narrow), SVG icons, motion
   Do not use a[class*="share"] — it matches .mp-share-row ("mp-share"). */
@keyframes mp-share-pop {
	0% {
		transform: scale(1);
	}
	45% {
		transform: scale(1.1);
	}
	100% {
		transform: scale(1.05);
	}
}

body.single-post .mp-share-wrap {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem 1.15rem;
	margin: 0 0 1.5rem;
	max-width: 100%;
	width: 100%;
	padding: 0.35rem 0 1.25rem;
	border-bottom: 1px solid var(--cv-surface-200);
	box-sizing: border-box;
}

body.single-post .mp-share-wrap__label {
	flex-shrink: 0;
	margin: 0;
	padding: 0;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--cv-muted);
	line-height: 1;
	white-space: nowrap;
}

body.single-post .mp-share-wrap__cluster {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: 0.5rem;
	flex: 1 1 auto;
	min-width: 0;
	max-width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: var(--cv-surface-300) transparent;
	padding: 0.2rem 0;
	margin: 0;
}

body.single-post .mp-share-wrap__cluster::-webkit-scrollbar {
	height: 5px;
}

body.single-post .mp-share-wrap__cluster::-webkit-scrollbar-thumb {
	background: var(--cv-surface-300);
	border-radius: 5px;
}

body.single-post .mp-share-wrap__cluster > [class*="simple_share"] {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

body.single-post .mp-share-wrap__cluster [class*="simple_share"] [class*="simple_share"] {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	border: 0;
}

body.single-post .mp-share-row--extra {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

@media (max-width: 480px) {
	body.single-post .mp-share-wrap {
		align-items: flex-start;
	}

	body.single-post .mp-share-wrap__cluster {
		width: 100%;
		max-width: none;
		mask-image: linear-gradient(90deg, #000 92%, transparent 100%);
		-webkit-mask-image: linear-gradient(90deg, #000 92%, transparent 100%);
	}
}

/* Kadence Simple Share: outer + inner rows (plugin markup; no child JS wrapper). */
body.single-post .entry-content .kt_simple_share_container.kt_share_beforecontent,
body.single-post .entry-content .kt_simple_share_container.kt_share_aftercontent {
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1.5rem;
	max-width: 100%;
	width: 100%;
	padding: 0.35rem 0 1.25rem;
	border-bottom: 1px solid var(--cv-surface-200);
	box-sizing: border-box;
}

body.single-post .entry-content .kt_simple_share_container.kt_share_beforecontent .kt_simple_share_container,
body.single-post .entry-content .kt_simple_share_container.kt_share_aftercontent .kt_simple_share_container {
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

body.single-post .mp-share-icon-btn,
body.single-post .entry-content .kt_simple_share_container a[class^="kt_"] {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0 !important;
	margin: 0;
	border: 1px solid var(--cv-surface-200);
	border-radius: 12px;
	background: #fff;
	color: #475569;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
	cursor: pointer;
	text-decoration: none !important;
	flex-shrink: 0;
	transition:
		transform 0.22s cubic-bezier(0.34, 1.45, 0.64, 1),
		box-shadow 0.2s ease,
		border-color 0.2s ease,
		background 0.2s ease,
		color 0.2s ease;
}

body.single-post .mp-share-icon-btn:hover,
body.single-post .entry-content .kt_simple_share_container a[class^="kt_"]:hover {
	transform: translateY(-2px) scale(1.06);
	border-color: var(--cv-primary-300);
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
	color: var(--cv-primary-700);
}

body.single-post .mp-share-icon-btn:active,
body.single-post .entry-content .kt_simple_share_container a[class^="kt_"]:active {
	transform: scale(0.94);
	transition-duration: 0.08s;
}

body.single-post .mp-share-icon-btn:focus-visible,
body.single-post .entry-content .kt_simple_share_container a[class^="kt_"]:focus-visible {
	outline: 2px solid var(--cv-primary-500);
	outline-offset: 3px;
}

body.single-post .mp-share-icon,
body.single-post .entry-content .kt_simple_share_container a[class^="kt_"] svg {
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	flex-shrink: 0;
	pointer-events: none;
}

body.single-post .mp-share-icon-btn .mp-share-icon {
	width: 1.25rem;
	height: 1.25rem;
}

body.single-post .mp-share-icon-btn--copy.mp-share-icon-btn--copied {
	border-color: #16a34a;
	color: #15803d;
	background: #f0fdf4;
	animation: mp-share-pop 0.5s ease;
}

/* Related posts — editorial cards: no byline / reading-time blog strip */
body.single-post .entry-related .loop-entry {
	border-radius: var(--cv-radius-lg);
	border: 1px solid var(--cv-surface-200);
	background: #fff;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	overflow: hidden;
	transition:
		box-shadow var(--cv-dur) var(--cv-ease),
		transform var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
}

body.single-post .entry-related .loop-entry:hover {
	box-shadow: 0 12px 40px rgba(15, 23, 42, 0.08);
	transform: translateY(-2px);
	border-color: var(--cv-primary-200);
}

body.single-post .entry-related .loop-entry .entry-content-wrap {
	padding: 0 1rem 1.15rem;
}

body.single-post .entry-related .loop-entry .post-thumbnail {
	overflow: hidden;
	border-radius: var(--cv-radius-lg) var(--cv-radius-lg) 0 0;
}

body.single-post .entry-related .loop-entry .post-thumbnail img {
	width: 100%;
	height: auto;
	object-fit: cover;
	display: block;
}

body.single-post .entry-related .loop-entry .entry-header {
	margin: 0;
	padding: 1rem 0 0;
	border: 0;
	background: transparent;
}

body.single-post .entry-related .entry-title {
	font-family: var(--cv-font-display);
	font-size: clamp(1rem, 2.1vw, 1.15rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.3;
	margin: 0;
}

body.single-post .entry-related .entry-title a {
	color: var(--cv-dark-text);
	text-decoration: none;
}

body.single-post .entry-related .entry-title a:hover {
	color: var(--cv-primary-600);
}

body.single-post .entry-related .loop-entry .entry-meta {
	display: none !important;
}

body.single-post .entry-related .loop-entry .entry-summary,
body.single-post .entry-related .loop-entry .entry-excerpt {
	display: none !important;
}

body.single-post .entry-related .loop-entry .entry-taxonomies,
body.single-post .entry-related .loop-entry .entry-footer {
	display: none !important;
}

/* Related carousel: Kadence Splide defaults to white arrows on dark (--splide-nav-color: #fff).
   We use light nav pills, so scope dark glyph + full opacity (Kadence uses .5 on .splide__arrows). */
body.single-post .entry-related .entry-related-carousel.splide {
	--splide-nav-color: #0f172a;
	--splide-nav-background: #ffffff;
	--splide-nav-border: 1px solid rgba(15, 23, 42, 0.14);
	/* Gutter matches header/footer; arrows sit just inside padding */
	padding-left: var(--cv-single-inset);
	padding-right: var(--cv-single-inset);
	box-sizing: border-box;
	overflow: visible;
}

body.single-post .entry-related .splide__arrows .splide__arrow {
	opacity: 1;
}

body.single-post .entry-related .splide__arrow {
	background: var(--splide-nav-background);
	border: var(--splide-nav-border);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.9) inset,
		0 2px 12px rgba(15, 23, 42, 0.1);
	color: var(--splide-nav-color);
	border-radius: 6px;
}

body.single-post .entry-related .splide__arrow:hover {
	--splide-nav-border: 1px solid var(--cv-primary-400);
	color: var(--cv-primary-700);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.95) inset,
		0 4px 18px rgba(37, 99, 235, 0.15);
}

body.single-post .entry-related .splide__arrow:focus-visible {
	outline: 2px solid var(--cv-primary-500);
	outline-offset: 3px;
}

body.single-post .entry-related .splide__arrow:disabled {
	opacity: 0.35;
}

/* Keep prev/next in the side gutter (overrides Kadence RTL / .splide__arrows edge offsets). */
body.single-post .entry-related .splide__arrow--prev {
	left: clamp(0.25rem, 1.25vw, 0.65rem) !important;
	right: auto !important;
}

body.single-post .entry-related .splide__arrow--next {
	right: clamp(0.25rem, 1.25vw, 0.65rem) !important;
	left: auto !important;
}

/* =============================================================================
   WordPress comments — universal (single post, pages, any template with #primary)
   Kadence float labels + list + replies + forms
   ============================================================================= */

#primary #comments,
#primary .comments-area {
	margin-top: 2.5rem;
	padding: 2rem var(--cv-gutter) 1.25rem;
	border-top: 1px solid var(--cv-surface-200);
	max-width: 100%;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
	box-sizing: border-box;
	text-align: left;
	background: linear-gradient(180deg, rgba(248, 250, 252, 0.65) 0%, transparent 42%);
	border-radius: var(--cv-radius-card);
}

/* Singular: match section rhythm + card shell (overrides generic #primary block above) */
body.single-post #primary #comments.comments-area,
body.page:not(.home):not(.front-page) #primary #comments.comments-area {
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
	padding: clamp(1.25rem, 2.5vw, 1.75rem) var(--cv-gutter) clamp(1.5rem, 3vw, 2rem);
	border: 1px solid var(--cv-card-border);
	background: #fff;
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
}

#primary .comments-title,
#primary .comment-reply-title {
	font-family: var(--cv-font-display);
	font-size: clamp(1.15rem, 2.4vw, 1.35rem);
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--cv-dark-text);
	margin: 0 0 1rem;
}

#primary .comment-reply-title {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem 1rem;
}

#primary .comment-reply-title small a {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--cv-primary-700);
	text-decoration: none;
}

#primary .comment-reply-title small a:hover {
	text-decoration: underline;
	text-underline-offset: 2px;
}

#primary #cancel-comment-reply-link {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--cv-primary-700);
}

/* Logged-in strip + notes — full width, aligned with form */
#primary .comment-form > .logged-in-as,
#primary .comment-form > p.logged-in-as {
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	background: var(--cv-surface-50);
	border: 1px solid var(--cv-surface-200);
	border-radius: 12px;
	font-size: 0.875rem;
	line-height: 1.55;
	color: var(--cv-muted);
	width: 100%;
	box-sizing: border-box;
}

#primary .comment-form .logged-in-as a {
	color: var(--cv-primary-700);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: rgba(29, 78, 216, 0.35);
}

#primary .comment-form .logged-in-as a:hover {
	text-decoration-color: rgba(29, 78, 216, 0.95);
}

#primary .comment-notes,
#primary .comment-form .comment-notes {
	margin: 0 0 1rem;
	font-size: 0.8125rem;
	color: var(--cv-muted);
}

#primary .comment-form-cookies-consent {
	margin: 0.75rem 0 0;
	font-size: 0.8125rem;
	color: var(--cv-muted);
}

#primary .comment-form-cookies-consent label {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.5rem;
	cursor: pointer;
}

/* Form shell */
#primary .comment-form {
	display: flex;
	flex-direction: column;
	gap: 0;
	background: rgba(255, 255, 255, 0.96);
	border: 1px solid var(--cv-surface-200);
	border-radius: 18px;
	box-shadow: 0 10px 32px rgba(15, 23, 42, 0.07);
	padding: 1.15rem 1.2rem 1.25rem;
	box-sizing: border-box;
}

@media (min-width: 640px) {
	#primary .comment-form {
		padding: 1.3rem 1.4rem 1.35rem;
	}
}

#primary .comment-form > p {
	margin: 0 0 1rem;
}

#primary .comment-form > p:last-child {
	margin-bottom: 0;
}

#primary .comment-form .comment-form-comment {
	margin-bottom: 1rem;
}

#primary .comment-form .comment-form-author,
#primary .comment-form .comment-form-email {
	margin-bottom: 0.85rem;
}

@media (min-width: 720px) {
	#primary .comment-form .comment-form-author,
	#primary .comment-form .comment-form-email {
		display: inline-block;
		width: calc(50% - 10px);
		vertical-align: top;
		box-sizing: border-box;
	}

	#primary .comment-form .comment-form-author {
		margin-right: 16px;
	}
}

/* Non-float labels only */
#primary .comment-form p:not(.comment-form-float-label) label:not(.float-label) {
	display: block;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--cv-dark-text);
	margin-bottom: 0.35rem;
}

#primary .comment-form input[type="text"],
#primary .comment-form input[type="email"],
#primary .comment-form input[type="url"],
#primary .comment-form textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.7rem 0.9rem;
	border: 1px solid var(--cv-surface-200);
	border-radius: var(--cv-radius-sm);
	font-family: var(--cv-font-body);
	font-size: 0.9375rem;
	line-height: 1.45;
	transition:
		border-color var(--cv-dur) var(--cv-ease),
		box-shadow var(--cv-dur) var(--cv-ease);
}

/* Kadence float-label */
#primary .comment-form-float-label {
	position: relative;
	display: block;
}

#primary .comment-form-float-label input,
#primary .comment-form-float-label textarea {
	padding-top: 1.45rem;
	min-height: 0;
}

#primary .comment-form-float-label textarea {
	min-height: 9.5rem;
	resize: vertical;
}

#primary .comment-form-float-label .float-label {
	position: absolute;
	left: 0.85rem;
	top: 0.62rem;
	margin: 0;
	padding: 0 0.25rem;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--cv-muted);
	line-height: 1.2;
	pointer-events: none;
	background: transparent;
	transform-origin: left top;
	transition:
		transform var(--cv-dur) var(--cv-ease),
		color var(--cv-dur) var(--cv-ease),
		background var(--cv-dur) var(--cv-ease);
}

#primary .comment-form-float-label textarea:focus + .float-label,
#primary .comment-form-float-label textarea:not(:placeholder-shown) + .float-label,
#primary .comment-form-float-label input:focus + .float-label,
#primary .comment-form-float-label input:not(:placeholder-shown) + .float-label {
	transform: translateY(-0.45rem) scale(0.9);
	color: var(--cv-primary-700);
	background: rgba(255, 255, 255, 0.96);
}

#primary .comment-form input:focus,
#primary .comment-form textarea:focus {
	outline: none;
	border-color: var(--cv-primary-400);
	box-shadow: 0 0 0 3px var(--cv-primary-100);
}

#primary .comment-form .form-submit {
	margin: 0.35rem 0 0;
	display: flex;
	justify-content: flex-start;
}

#primary .comment-form .form-submit .submit,
#primary .comment-form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.65rem 1.4rem;
	font-weight: 700;
	font-size: 0.9375rem;
	color: #fff;
	background: var(--cv-primary-600);
	border: 1px solid var(--cv-primary-600);
	border-radius: var(--cv-radius-btn);
	cursor: pointer;
	box-shadow: 0 12px 26px rgba(37, 99, 235, 0.22);
	transition:
		background var(--cv-dur) var(--cv-ease),
		border-color var(--cv-dur) var(--cv-ease);
}

#primary .comment-form .form-submit .submit:hover,
#primary .comment-form input[type="submit"]:hover {
	background: var(--cv-primary-700);
	border-color: var(--cv-primary-700);
}

/* Comment list */
#primary .comment-list,
#primary .comment-list ol {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
}

#primary .comment-list .children {
	margin: 0.75rem 0 0;
	padding-left: 0;
	border-left: 2px solid var(--cv-primary-100);
	margin-left: 0.5rem;
	padding-left: 1rem;
}

@media (min-width: 768px) {
	#primary .comment-list .children {
		margin-left: 1.25rem;
		padding-left: 1.25rem;
	}
}

#primary .comment-body {
	padding: 1rem 1.1rem;
	border: 1px solid var(--cv-card-border);
	border-radius: var(--cv-radius-card);
	background: rgba(255, 255, 255, 0.95);
	box-shadow: var(--shadow-utility), var(--cv-card-inset);
	margin-bottom: 0.75rem;
}

#primary .comment-list > li.comment {
	margin: 0 0 0.85rem;
}

#primary .comment .avatar {
	border-radius: 999px;
	border: 2px solid var(--cv-surface-200);
}

#primary .comment-meta,
#primary .comment-metadata {
	font-size: 0.8125rem;
	color: var(--cv-muted);
	line-height: 1.45;
}

#primary .comment-meta .fn,
#primary .comment-author .fn {
	font-weight: 800;
	color: var(--cv-dark-text);
}

#primary .comment-metadata a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid transparent;
}

#primary .comment-metadata a:hover {
	color: var(--cv-primary-700);
	border-bottom-color: rgba(29, 78, 216, 0.35);
}

#primary .comment-content p {
	margin: 0.65rem 0 0;
	color: var(--cv-muted);
	line-height: 1.7;
}

#primary .reply a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 800;
	font-size: 0.8125rem;
	color: var(--cv-primary-700);
	text-decoration: none;
	margin-top: 0.65rem;
}

#primary .reply a:hover {
	text-decoration: underline;
	text-underline-offset: 2px;
}

#primary .comments-area .no-comments,
#primary .comments-area .comments-closed {
	font-size: 0.875rem;
	color: var(--cv-muted);
	margin: 0.5rem 0 0;
}

