/* ============================================
   Digital Legacy — Mobile-First Theme
   ============================================ */

:root {
	--color-primary: #1B4D7A;
	--color-primary-light: #2E6EA6;
	--color-primary-lighter: #4A90D9;
	--color-heading-underline: #5E97CB;
	--color-heading-underline-strong: #3E78AF;
	--color-inline-underline: #FF4FA3;
	--color-secondary: #6B8E23;
	--color-secondary-dark: #5A7A1C;
	--color-bg: #FFFFFF;
	--color-bg-light: #F0F4F8;
	--color-bg-hero: #E8EFF6;
	--color-text: #2D3748;
	--color-text-light: #4A5568;
	--color-border: #E2E8F0;
	--font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--header-height: 60px;
	--content-width: 1100px;
	--content-padding: 20px;
}

/* ---- Reset ---- */
*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	font-size: 16px;
	-webkit-text-size-adjust: 100%;
	scrollbar-gutter: stable;
}

body {
	font-family: var(--font-family);
	color: var(--color-text);
	background: var(--color-bg);
	line-height: 1.6;
	padding-top: var(--header-height);
	-webkit-font-smoothing: antialiased;
}

a {
	color: inherit;
	text-decoration: none;
}

img, svg {
	max-width: 100%;
	height: auto;
	display: block;
}

/* ---- Content container ---- */
.site-footer__inner {
	max-width: var(--content-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--content-padding);
	padding-right: var(--content-padding);
}

/* Sections are full-width for backgrounds; inner content is constrained */
.site-main section {
	padding-left: var(--content-padding);
	padding-right: var(--content-padding);
}

.hero > *,
.tagline > *,
.testimonial > * {
	max-width: var(--content-width);
	margin-left: auto;
	margin-right: auto;
}

.services {
	max-width: var(--content-width);
	margin-left: auto;
	margin-right: auto;
}

.site-main .entry {
	max-width: var(--content-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--content-padding);
	padding-right: var(--content-padding);
}

/* ============================================
   Header
   ============================================ */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background: var(--color-bg);
	border-bottom: 1px solid var(--color-border);
	height: var(--header-height);
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: var(--header-height);
	padding: 0 var(--content-padding);
	max-width: var(--content-width);
	margin: 0 auto;
	position: relative;
}

/* Logo */
.site-logo {
	display: flex;
	align-items: center;
	gap: 10px;
}

.site-logo__icon {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
}

.site-logo__photo {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

.site-logo__text-short {
	display: none;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	color: var(--color-primary);
}

.site-logo__text {
	font-size: 14px;
	line-height: 1.2;
	color: var(--color-primary);
}

.site-logo__text strong {
	font-size: 16px;
	font-weight: 700;
}

.site-logo__text span {
	font-weight: 400;
	color: var(--color-text-light);
}

/* Custom logo from WP */
.custom-logo-link {
	display: flex;
	align-items: center;
}

.site-header__logo {
	min-width: 0;
	flex: 0 1 auto;
}

.custom-logo {
	max-height: 40px;
	width: auto;
}

/* Header Search */
.header-search {
	display: flex;
	align-items: center;
	position: relative;
	flex: 1;
	min-width: 0;
	max-width: 280px;
	margin: 0 12px;
}

@media (min-width: 768px) {
	.header-search {
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		flex: none;
		width: 280px;
		margin: 0;
	}
}

.header-search__icon {
	position: absolute;
	left: 10px;
	color: var(--color-text-light);
	pointer-events: none;
}

.header-search__input {
	width: 100%;
	padding: 8px 12px 8px 34px;
	border: 1px solid var(--color-border);
	border-radius: 8px;
	font-size: 14px;
	font-family: var(--font-family);
	background: var(--color-bg-light);
	color: var(--color-text);
	outline: none;
	transition: border-color 0.2s, background 0.2s;
}

.header-search__input::placeholder {
	color: var(--color-text-light);
}

.header-search__input:focus {
	border-color: var(--color-primary);
	background: var(--color-bg);
}

.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field,
.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field-textual,
.entry--elementor .elementor-widget-form .elementor-field-group input.elementor-field,
.entry--elementor .elementor-widget-form .elementor-field-group textarea.elementor-field,
.entry--elementor .elementor-widget-form .elementor-field-group select.elementor-field {
	border: 1px solid var(--color-border);
	border-radius: 8px;
	font-family: var(--font-family);
	background: var(--color-bg-light);
	background-color: var(--color-bg-light);
	color: var(--color-text);
	box-shadow: none;
	transition: border-color 0.2s, background 0.2s;
}

.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field::placeholder,
.entry--elementor .elementor-widget-form .elementor-field-group textarea.elementor-field::placeholder {
	color: var(--color-text-light);
}

.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field:focus,
.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field-textual:focus,
.entry--elementor .elementor-widget-form .elementor-field-group input.elementor-field:focus,
.entry--elementor .elementor-widget-form .elementor-field-group textarea.elementor-field:focus,
.entry--elementor .elementor-widget-form .elementor-field-group select.elementor-field:focus {
	border-color: var(--color-primary);
	background: var(--color-bg);
	background-color: var(--color-bg);
	outline: none;
}

.entry--elementor .elementor-widget-form .elementor-field-type-submit {
	margin-top: 12px;
}

/* Hamburger */
.hamburger {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 36px;
	height: 36px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 6px;
}

.hamburger__line {
	display: block;
	width: 100%;
	height: 2.5px;
	background: var(--color-primary);
	border-radius: 2px;
	transition: transform 0.3s, opacity 0.3s;
}

.hamburger--active .hamburger__line:nth-child(1) {
	transform: translateY(7.5px) rotate(45deg);
}

.hamburger--active .hamburger__line:nth-child(2) {
	opacity: 0;
}

.hamburger--active .hamburger__line:nth-child(3) {
	transform: translateY(-7.5px) rotate(-45deg);
}

/* Alpine cloak — hide elements until Alpine initialises */
[x-cloak] { display: none !important; }

/* ============================================
   Mega Menu
   ============================================ */
.mega-menu {
	position: absolute;
	top: var(--header-height);
	left: 0;
	right: 0;
	background: var(--color-bg);
	border-top: 1px solid var(--color-border);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
	max-height: calc(100vh - var(--header-height));
	max-height: calc(100dvh - var(--header-height));
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.mega-menu__inner {
	max-width: var(--content-width);
	margin: 0 auto;
	padding: 24px var(--content-padding);
}

/* Transition: ease down on open, ease up on close */
.mega-menu--transition {
	transition: opacity 0.25s ease, transform 0.25s ease;
}

.mega-menu--closed {
	opacity: 0;
	transform: translateY(-8px);
}

.mega-menu--open {
	opacity: 1;
	transform: translateY(0);
}

/* Grid — CSS grid so top-level items flow left-to-right (menu editor order
   determines the top row), then wrap down to the next row. */
.mega-menu__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px 32px;
}

.mega-menu__section {
	padding-bottom: 16px;
	border-bottom: 1px solid var(--color-border);
}

.mega-menu__section:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.mega-menu__heading {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 700;
	color: var(--color-primary);
	padding: 4px 0;
	transition: color 0.2s;
}

.mega-menu__heading:hover {
	color: var(--color-primary-light);
}

.mega-menu__icon {
	display: flex;
	flex-shrink: 0;
}

.mega-menu__links {
	list-style: none;
	margin: 4px 0 0;
	padding: 0 0 0 28px;
}

.mega-menu__links li a {
	display: block;
	padding: 3px 0;
	font-size: 14px;
	color: var(--color-text-light);
	transition: color 0.2s;
}

.mega-menu__links li a:hover {
	color: var(--color-primary);
}

.mega-menu__empty {
	color: var(--color-text-light);
	font-size: 14px;
	text-align: center;
	padding: 20px;
}

/* Tablet: 2 columns */
@media (min-width: 600px) {
	.mega-menu__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.mega-menu__section {
		border-bottom: none;
		padding-bottom: 0;
	}
}

/* Desktop: 3 columns */
@media (min-width: 960px) {
	.mega-menu__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ============================================
   Hero Section
   ============================================ */
.hero {
	background: linear-gradient(180deg, var(--color-bg-hero) 0%, var(--color-bg) 100%);
	text-align: center;
	padding: 24px 0 32px;
}

.hero__illustration {
	max-width: 320px;
	margin: 0 auto 20px;
}

.hero__svg {
	width: 100%;
}

.hero__title {
	font-size: 26px;
	font-weight: 700;
	color: var(--color-primary);
	line-height: 1.2;
	margin-bottom: 24px;
}

.hero__buttons {
	display: flex;
	gap: 12px;
	justify-content: center;
	padding: 0 8px;
}

/* Buttons */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 28px;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s, transform 0.1s;
	flex: 1;
	max-width: 200px;
}

.btn:active {
	transform: scale(0.97);
}

.btn--primary {
	background: var(--color-primary);
	color: #fff;
}

.btn--primary:hover {
	background: var(--color-primary-light);
}

.btn--secondary {
	background: var(--color-secondary);
	color: #fff;
}

.btn--secondary:hover {
	background: var(--color-secondary-dark);
}

/* ============================================
   Tagline
   ============================================ */
.tagline {
	text-align: center;
	padding: 28px 0;
	border-bottom: 1px solid var(--color-border);
}

.tagline p {
	font-size: 16px;
	color: var(--color-text-light);
	line-height: 1.6;
	max-width: 360px;
	margin: 0 auto;
}

/* ============================================
   Services
   ============================================ */
.services {
	display: flex;
	justify-content: center;
	padding: 28px 0;
}

.services__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	flex: 1;
	padding: 12px 8px;
	border-right: 1px solid var(--color-border);
	transition: background 0.2s;
}

.services__item:last-child {
	border-right: none;
}

.services__item:hover {
	background: var(--color-bg-light);
	border-radius: 8px;
}

.services__icon {
	width: 48px;
	height: 48px;
}

.services__label {
	font-size: 14px;
	font-weight: 700;
	color: var(--color-primary);
}

/* ============================================
   Testimonial
   ============================================ */
.testimonial {
	padding: 28px 0;
	background: var(--color-bg-light);
}

.testimonial__card {
	background: var(--color-bg);
	border-radius: 12px;
	padding: 28px 24px;
	max-width: 400px;
	margin: 0 auto;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.testimonial__quote p {
	font-size: 17px;
	font-style: italic;
	color: var(--color-text);
	line-height: 1.6;
	text-align: center;
}

.testimonial__author {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	margin-top: 20px;
}

.testimonial__avatar {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	overflow: hidden;
}

.testimonial__name {
	font-size: 15px;
	font-weight: 600;
	color: var(--color-text-light);
}

/* ============================================
   Talks Table
   ============================================ */
.talks-table {
	width: 100%;
	border-collapse: collapse;
	margin: 16px 0;
	font-size: 0.95rem;
}
.talks-table th {
	background: var(--color-primary);
	color: #fff;
	text-align: left;
	padding: 12px 16px;
	font-weight: 600;
}
.talks-table td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--color-border);
	vertical-align: top;
}
.talks-table tbody tr:nth-child(even) {
	background: var(--color-bg-light);
}
.talks-table tbody tr:hover {
	background: var(--color-bg-hero);
}
@media (max-width: 768px) {
	.talks-table th,
	.talks-table td {
		padding: 8px 10px;
		font-size: 0.85rem;
	}
}

/* ============================================
   Recent Posts (above footer)
   ============================================ */
.recent-posts {
	background: var(--color-bg-light);
	padding: 48px 0;
}
.recent-posts__inner {
	max-width: var(--content-width);
	margin: 0 auto;
	padding: 0 var(--content-padding);
}
.recent-posts__heading {
	font-size: 1.5rem;
	color: var(--color-primary);
	margin-bottom: 24px;
	border-bottom: 4px solid var(--color-heading-underline);
	display: inline-block;
	padding-bottom: 2px;
}
.recent-posts__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.recent-posts__card {
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
	transition: box-shadow 0.2s, transform 0.2s;
	display: flex;
	flex-direction: column;
}
.recent-posts__card:hover {
	box-shadow: 0 4px 16px rgba(0,0,0,0.14);
	transform: translateY(-2px);
}
.recent-posts__thumb img {
	width: 100%;
	height: 160px;
	object-fit: cover;
	display: block;
}
.recent-posts__body {
	padding: 16px;
}
.recent-posts__title {
	font-size: 1rem;
	color: var(--color-primary);
	margin-bottom: 8px;
	line-height: 1.4;
}
.recent-posts__date {
	font-size: 0.85rem;
	color: var(--color-text-light);
}
@media (max-width: 768px) {
	.recent-posts__grid {
		grid-template-columns: 1fr;
	}
}

/* ============================================
   Footer
   ============================================ */
.site-footer {
	padding: 20px 0;
	border-top: 1px solid var(--color-border);
	background: var(--color-bg-light, #f5f5f5);
}

.site-footer__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

.site-footer__left {
	flex: 1;
}

.site-footer__text {
	font-size: 13px;
	color: var(--color-text-light);
	margin: 0;
}

.site-footer__social {
	display: flex;
	gap: 10px;
}

.site-footer__social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--color-primary);
	color: #fff;
	transition: background 0.2s ease, transform 0.2s ease;
}

.site-footer__social-link:hover {
	background: var(--color-primary-light, #2a6ca3);
	transform: translateY(-2px);
}

/* Scroll to top */
.scroll-top {
	position: fixed;
	bottom: 80px;
	right: 20px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-primary);
	color: #fff;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
	transition: background 0.2s ease, transform 0.2s ease;
	z-index: 90;
}

.scroll-top:hover {
	background: var(--color-primary-light, #2a6ca3);
	transform: translateY(-2px);
}

@media (max-width: 600px) {
	.site-footer__inner {
		flex-direction: column;
		text-align: center;
	}
}

/* ============================================
   Cookie Banner
   ============================================ */
.cookie-banner {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 999;
	background: var(--color-primary);
	color: #fff;
	box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.15);
}

.cookie-banner__inner {
	max-width: var(--content-width);
	margin: 0 auto;
	padding: 16px var(--content-padding);
	display: flex;
	align-items: center;
	gap: 16px;
}

.cookie-banner__text {
	flex: 1;
	font-size: 13px;
	line-height: 1.5;
	margin: 0;
}

.cookie-banner__text a {
	color: #fff;
	text-decoration: underline;
	font-weight: 600;
}

.cookie-banner__actions {
	display: flex;
	gap: 8px;
	flex-shrink: 0;
}

.cookie-banner__btn {
	padding: 8px 20px;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	border: none;
	transition: background 0.2s;
}

.cookie-banner__btn--accept {
	background: #fff;
	color: var(--color-primary);
}

.cookie-banner__btn--accept:hover {
	background: var(--color-bg-light);
}

.cookie-banner__btn--decline {
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
}

.cookie-banner__btn--decline:hover {
	background: rgba(255, 255, 255, 0.3);
}

@media (max-width: 600px) {
	.cookie-banner__inner {
		flex-direction: column;
		text-align: center;
	}
}

/* ============================================
   Search results header
   ============================================ */
.search-header {
	background: var(--color-bg-light);
	border-bottom: 1px solid var(--color-border);
}

.search-header__inner {
	max-width: var(--content-width);
	margin: 0 auto;
	padding: 56px var(--content-padding) 48px;
}

.search-header__eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-secondary);
	margin-bottom: 14px;
}

.search-header__title {
	display: inline-block;
	font-size: 32px;
	font-weight: 700;
	color: var(--color-primary);
	line-height: 1.25;
	margin: 0 0 20px;
	padding-bottom: 3px;
	border-bottom: 4px solid var(--color-heading-underline);
}

.search-header__query {
	color: var(--color-text);
	font-weight: 700;
}

.search-header__meta {
	font-size: 15px;
	color: var(--color-text-light);
	margin: 0;
}

.search-empty {
	max-width: var(--content-width);
	margin: 0 auto;
	padding: 48px var(--content-padding);
	text-align: center;
}

.search-empty__hint {
	font-size: 17px;
	color: var(--color-text-light);
	line-height: 1.6;
	margin: 0 0 20px;
}

.search-empty__browse {
	display: inline-block;
	color: var(--color-primary);
	font-weight: 600;
	text-decoration: none;
}

.search-empty__browse:hover {
	text-decoration: underline;
}

.pagination,
.nav-links {
	max-width: var(--content-width);
	margin: 0 auto 48px;
	padding: 0 var(--content-padding);
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

.nav-links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	min-height: 42px;
	padding: 0 14px;
	border: 1px solid var(--color-border);
	border-radius: 8px;
	background: var(--color-bg);
	color: var(--color-primary);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.nav-links .page-numbers:hover {
	background: var(--color-bg-light);
	border-color: var(--color-primary);
	color: var(--color-primary);
}

.nav-links .page-numbers.current {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: #fff;
}

.nav-links .page-numbers.dots {
	min-width: auto;
	padding: 0 4px;
	border: 0;
	background: transparent;
	color: var(--color-text-light);
}

@media (max-width: 600px) {
	.search-header__inner {
		padding: 40px var(--content-padding) 32px;
	}

	.search-header__title {
		font-size: 26px;
	}

	.pagination,
	.nav-links {
		margin-bottom: 36px;
	}

	.nav-links .page-numbers {
		flex: 1 0 auto;
	}

	.nav-links .page-numbers.prev,
	.nav-links .page-numbers.next {
		flex-basis: calc(50% - 5px);
	}
}

/* ============================================
   404 not found
   ============================================ */
.error-404 {
	min-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 80px var(--content-padding);
}

.error-404__inner {
	max-width: 520px;
	text-align: center;
}

.error-404__code {
	font-size: clamp(96px, 18vw, 180px);
	font-weight: 800;
	line-height: 1;
	color: var(--color-primary);
	letter-spacing: -0.04em;
	display: inline-block;
	padding-bottom: 14px;
	border-bottom: 6px solid var(--color-secondary);
	margin-bottom: 24px;
}

.error-404__title {
	font-size: 28px;
	font-weight: 700;
	color: var(--color-text);
	margin: 0 0 12px;
}

.error-404__text {
	font-size: 17px;
	line-height: 1.6;
	color: var(--color-text-light);
	margin: 0 0 32px;
}

.error-404__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
}

.error-404__btn {
	display: inline-block;
	padding: 12px 24px;
	font-size: 15px;
	font-weight: 600;
	border-radius: 8px;
	text-decoration: none;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.error-404__btn--primary {
	background: var(--color-primary);
	color: #fff;
	border: 1px solid var(--color-primary);
}

.error-404__btn--primary:hover {
	background: var(--color-primary-light);
	border-color: var(--color-primary-light);
	color: #fff;
}

.error-404__btn--secondary {
	background: transparent;
	color: var(--color-primary);
	border: 1px solid var(--color-border);
}

.error-404__btn--secondary:hover {
	border-color: var(--color-primary);
	color: var(--color-primary-light);
}

@media (max-width: 600px) {
	.error-404 {
		padding: 56px var(--content-padding);
	}

	.error-404__title {
		font-size: 22px;
	}

	.error-404__text {
		font-size: 16px;
	}

	.error-404__btn {
		flex: 1 1 100%;
	}
}

/* ============================================
   Blog listing
   ============================================ */
.blog-list {
	max-width: var(--content-width);
	margin: 0 auto;
	padding: 32px var(--content-padding);
	display: grid;
	gap: 24px;
}

.blog-card {
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.blog-card:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
	transform: translateY(-2px);
}

.blog-card__link {
	display: flex;
	text-decoration: none;
	color: inherit;
}

.blog-card__thumb {
	flex: 0 0 240px;
	min-height: 180px;
	background: var(--color-bg-light, #f0f0f0);
	overflow: hidden;
}

.blog-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.blog-card__thumb-placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--color-bg-light, #eee) 0%, #ddd 100%);
}

.blog-card__body {
	flex: 1;
	padding: 20px 24px;
	display: flex;
	flex-direction: column;
}

.blog-card__title {
	font-size: 20px;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 8px;
	line-height: 1.3;
}

.blog-card__date {
	font-size: 13px;
	color: var(--color-text-light, #888);
	margin-bottom: 12px;
}

.blog-card__excerpt {
	font-size: 15px;
	line-height: 1.6;
	color: var(--color-text);
}

.blog-card__excerpt p {
	margin: 0;
}

/* Blog list responsive */
@media (max-width: 600px) {
	.blog-card__link {
		flex-direction: column;
	}

	.blog-card__thumb {
		flex: none;
		height: 200px;
	}

	.blog-card__body {
		padding: 16px;
	}
}

/* ============================================
   Generic page content
   ============================================ */
.site-main .entry {
	padding: 24px 0;
}

.site-main .entry--front-page,
.site-main .entry--elementor {
	padding: 0;
	max-width: none;
}

.site-main .entry--single {
	max-width: none;
	padding: 0;
}

.site-main .entry--with-sidebar {
	max-width: none;
	padding: 0;
}

/* ---- Page body: content + sidebar ---- */
.page-body {
	max-width: var(--content-width);
	margin: 0 auto;
	padding: 32px var(--content-padding) 48px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}

.page-hero {
	max-width: var(--content-width);
	margin: 0 auto;
	padding: 24px var(--content-padding) 0;
}

.page-body__main {
	min-width: 0;
}

/* Page sidebar — reuses the .sidebar-popular__* card styles from single.php
   (featured image on top, title underneath, vertical gap between items). */
.page-body__sidebar {
	border-top: 1px solid var(--color-border);
	padding-top: 32px;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.page-sidebar__elementor,
.post-sidebar__elementor {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.page-sidebar__elementor > .elementor-element:last-child,
.page-sidebar__elementor > .e-con:last-child,
.page-sidebar__elementor > .elementor-widget:last-child,
.post-sidebar__elementor > .elementor-element:last-child,
.post-sidebar__elementor > .e-con:last-child,
.post-sidebar__elementor > .elementor-widget:last-child {
	margin-bottom: 0;
}

@media (min-width: 768px) {
	.page-body {
		grid-template-columns: 1fr 360px;
		gap: var(--content-padding);
	}

	.page-body__sidebar {
		border-top: none;
		border-left: 1px solid var(--color-border);
		padding-top: 0;
		padding-left: var(--content-padding);
	}
}

.entry__title {
	font-size: 28px;
	font-weight: 700;
	color: var(--color-primary);
	line-height: 1.3;
}

.entry__title a {
	color: var(--color-primary);
	font-size: 22px;
}

/* Content area */
.entry__content {
	margin-top: 16px;
	color: var(--color-text);
	line-height: 1.7;
	font-size: 18px;
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* Content typography */
.entry__content h2 {
	display: inline-block;
	font-size: 28px;
	font-weight: 700;
	color: var(--color-primary);
	margin: 32px 0 16px;
	padding-bottom: 2px;
	border-bottom: 4px solid var(--color-heading-underline);
	text-decoration: none;
}

.entry__content h3 {
	display: inline-block;
	font-size: 22px;
	font-weight: 700;
	color: var(--color-primary);
	margin: 24px 0 12px;
	padding-bottom: 1px;
	border-bottom: 3px solid var(--color-heading-underline-strong);
	text-decoration: none;
}

.entry__content h4 {
	display: inline-block;
	font-size: 20px;
	font-weight: 700;
	color: var(--color-text);
	margin: 20px 0 10px;
	padding-bottom: 4px;
	border-bottom: 2px solid var(--color-secondary);
	margin: 20px 0 8px;
	text-decoration: none;
}

/* Strip underlines from inline-styled spans inside headings */
.entry__content h2 *,
.entry__content h3 *,
.entry__content h4 *,
.entry__content p strong span[style*="underline"] {
	text-decoration: none !important;
}

.entry__content h2 a,
.entry__content h3 a,
.entry__content h4 a,
.entry--elementor .elementor-widget-text-editor h2 a,
.entry--elementor .elementor-widget-text-editor h3 a,
.entry--elementor .elementor-widget-text-editor h4 a {
	text-decoration: none !important;
}

.entry__content p {
	margin: 0 0 16px;
}

.entry__content ul,
.entry__content ol {
	margin: 0 0 16px;
	padding-left: 24px;
}

.entry__content li {
	margin-bottom: 6px;
}

.entry__content a {
	color: var(--color-primary);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--color-border);
	text-decoration-thickness: 3px;
	text-underline-offset: 6px;
	transition: color 0.2s, text-decoration-color 0.2s;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.entry__content a:hover {
	color: var(--color-secondary);
	text-decoration-color: var(--color-secondary-dark, var(--color-secondary));
}

.entry__content u,
.entry__content span[style*="underline"] {
	text-decoration-color: var(--color-inline-underline) !important;
	text-decoration-thickness: 3px !important;
	text-underline-offset: 6px !important;
}

.entry__content img {
	border-radius: 6px;
	margin: 16px 0;
}

.entry__content blockquote {
	border-left: 3px solid var(--color-primary);
	padding: 12px 20px;
	margin: 16px 0;
	background: var(--color-bg-light);
	border-radius: 0 6px 6px 0;
	font-style: italic;
	color: var(--color-text-light);
}

.entry__content iframe,
.entry__content video {
	max-width: 100%;
	margin: 16px 0;
	border-radius: 6px;
}

/* ============================================
   Single Post — Hero Image
   ============================================ */
.post-hero {
	position: relative;
	margin-bottom: 0;
}

.post-hero__image {
	border-radius: 12px;
	overflow: hidden;
	aspect-ratio: 16 / 9;
}

.post-hero__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Overlay pins to bottom edge of image — children straddle the edge */
.post-hero__overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	pointer-events: none;
	z-index: 1;
}

/* Author pill — bottom-left of image */
.post-hero__meta {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--color-bg);
	padding: 8px 16px 8px 8px;
	border-radius: 0 12px 0 0;
	pointer-events: auto;
}

/* Concave cutout — top of author pill */
.post-hero__meta::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 12px;
	height: 12px;
	transform: translateY(-100%);
	background: transparent;
	border-bottom-left-radius: 12px;
	box-shadow: 0 6px 0 0 var(--color-bg);
	pointer-events: none;
}
/* Concave cutout — right side of author pill */
.post-hero__meta::before {
	content: '';
	position: absolute;
	bottom: 0;
	right: 0;
	width: 12px;
	height: 12px;
	transform: translateX(100%);
	background: transparent;
	border-bottom-left-radius: 12px;
	box-shadow: -6px 0 0 0 var(--color-bg);
	pointer-events: none;
}

.post-hero__meta img.avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
}

.post-hero__meta-text {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.post-hero__author {
	font-size: 13px;
	font-weight: 600;
	color: var(--color-text);
	line-height: 1.3;
}

.post-hero__date {
	font-size: 11px;
	color: var(--color-text-light);
	line-height: 1.3;
}

/* Share pill — bottom-right of image */
.post-hero__share {
	position: relative;
	display: flex;
	align-items: center;
	gap: 6px;
	background: var(--color-bg);
	padding: 8px 10px;
	border-radius: 12px 0 0 0;
	pointer-events: auto;
}

/* Concave cutout — top of share pill */
.post-hero__share::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 12px;
	height: 12px;
	transform: translateY(-100%);
	background: transparent;
	border-bottom-right-radius: 12px;
	box-shadow: 0 6px 0 0 var(--color-bg);
	pointer-events: none;
}
/* Concave cutout — left side of share pill */
.post-hero__share::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 12px;
	height: 12px;
	transform: translateX(-100%);
	background: transparent;
	border-bottom-right-radius: 12px;
	box-shadow: 6px 0 0 0 var(--color-bg);
	pointer-events: none;
}

.post-hero__share-label {
	font-size: 12px;
	color: var(--color-text-light);
	font-weight: 500;
	padding-left: 4px;
}

.post-hero__share-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--color-text);
	color: #fff;
	transition: background 0.2s;
	text-decoration: none;
}

.post-hero__share-btn:hover {
	background: var(--color-primary);
}

.post-hero__share-btn svg {
	width: 16px;
	height: 16px;
}

/* Taxonomy pills — below the hero, clearing the overlapping pills */
.post-hero__taxonomy {
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	gap: 6px;
	padding: 30px 16px 20px;
	margin: 0 var(--content-padding);
	min-height: 76px;
}

.post-hero__cat,
.post-hero__tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 5px 12px;
	border-radius: 4px;
	text-decoration: none;
	transition: opacity 0.2s;
}

.post-hero__cat {
	background: var(--color-primary);
	color: #fff;
}

.post-hero__tag {
	background: var(--color-bg-light);
	color: var(--color-text);
	border: 1px solid var(--color-border);
}

.post-hero__cat:hover,
.post-hero__tag:hover {
	opacity: 0.8;
}

/* ============================================
   Single Post — Body (main + sidebar)
   ============================================ */
.post-body {
	max-width: var(--content-width);
	margin: 0 auto;
	padding: 44px var(--content-padding) 48px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}

/* Taxonomy row (categories + tags together) */
.post-body__taxonomy {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 12px;
}

.post-body__cat {
	display: inline-block;
	padding: 4px 12px;
	background: var(--color-primary);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	border-radius: 4px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.post-body__cat:hover {
	background: var(--color-text);
	color: #fff;
}

/* Post title — big editorial */
.post-body__title {
	display: inline-block;
	font-size: 30px;
	font-weight: 800;
	color: var(--color-primary);
	line-height: 1.2;
	margin-bottom: 32px;
	padding-bottom: 3px;
	border-bottom: 4px solid var(--color-heading-underline);
	letter-spacing: -0.01em;
}

/* Inline meta fallback (no featured image) */
.post-body__meta-inline {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 20px;
	font-size: 14px;
	color: var(--color-text-light);
}

.post-body__meta-inline img.avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
}

.post-body__meta-inline .post-body__author {
	font-weight: 600;
	color: var(--color-text);
}

/* Main content column */
.post-body__main {
	min-width: 0;
}

.post-body__main .entry__content {
	margin-top: 0;
}

/* Tag pills (in taxonomy row) */
.post-body__tag {
	display: inline-block;
	padding: 4px 12px;
	background: var(--color-bg-light);
	color: var(--color-text-light);
	font-size: 12px;
	font-weight: 500;
	border-radius: 4px;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.post-body__tag:hover {
	background: var(--color-primary);
	color: #fff;
}

/* ============================================
   Sidebar — Popular Posts
   ============================================ */
.post-body__sidebar {
	border-top: 1px solid var(--color-border);
	padding-top: 32px;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.sidebar-popular__heading {
	font-size: 18px;
	font-weight: 700;
	color: var(--color-text);
	margin-bottom: 20px;
}

.sidebar-popular__heading a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s;
}

.sidebar-popular__heading a:hover {
	color: var(--color-primary);
}

.sidebar-popular__item {
	display: block;
	text-decoration: none;
	color: inherit;
	transition: opacity 0.2s;
}

.sidebar-popular__item:hover {
	opacity: 0.8;
}

.sidebar-popular__thumb {
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 10px;
	aspect-ratio: 16 / 9;
}

.sidebar-popular__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.sidebar-popular__title {
	font-size: 18px;
	font-weight: 400;
	color: var(--color-text);
	line-height: 1.4;
}

.sidebar-popular__item--active .sidebar-popular__title {
	color: var(--color-primary);
}

.sidebar-popular__item--active .sidebar-popular__thumb {
	box-shadow: 0 0 0 3px var(--color-primary);
}

.sidebar-popular__empty {
	font-size: 14px;
	color: var(--color-text-light);
}

/* ============================================
   Desktop: two-column post layout
   ============================================ */
@media (min-width: 768px) {
	.post-body {
		grid-template-columns: 1fr 360px;
		gap: var(--content-padding);
	}

	.post-body__title {
		font-size: 36px;
	}

	.post-body__sidebar {
		border-top: none;
		border-left: 1px solid var(--color-border);
		padding-top: 0;
		padding-left: var(--content-padding);
	}

	.sidebar-popular__thumb {
		aspect-ratio: 16 / 9;
		border-radius: 12px;
	}
}

@media (min-width: 960px) {
	.post-body__title {
		font-size: 40px;
	}
}

/* ============================================
   Post Navigation (prev / next)
   ============================================ */
.post-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 96px 0 40px;
	padding: 24px 10px 0;
	border-top: 1px solid var(--color-border);
}

.post-nav__link {
	display: block;
	padding: 16px 20px;
	border: 1px solid var(--color-border);
	border-radius: 8px;
	text-decoration: none;
	transition: border-color 0.2s;
	min-width: 0;
	overflow: hidden;
}

.post-nav__link:hover {
	border-color: var(--color-primary);
}

.post-nav__link--next {
	text-align: right;
}

.post-nav__link--empty {
	border: none;
}

.post-nav__label {
	display: block;
	font-size: 12px;
	font-weight: 500;
	color: var(--color-text-light);
	margin-bottom: 4px;
}

.post-nav__title {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: var(--color-primary);
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

@media (max-width: 767px) {
	.post-nav {
		grid-template-columns: 1fr;
		padding-left: 0;
		padding-right: 0;
	}

	.post-nav__title {
		white-space: normal;
	}
}

/* ============================================
   Elementor page overrides
   ============================================ */
/* Let Elementor control its own widths */
.entry--elementor .entry__content {
	margin-top: 0;
}

/* Match Elementor container width to site header (overrides Kit default of 1140px) */
.elementor-section.elementor-section-boxed > .elementor-container {
	max-width: var(--content-width) !important;
}
.e-con {
	--container-max-width: var(--content-width) !important;
}
.e-con.e-con-boxed > .e-con-inner {
	max-width: var(--content-width) !important;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

/* Elementor now uses top-level containers instead of boxed sections in many
   places. Keep direct front-page containers aligned to the same site width
   as the rest of the page sections. */
.entry--front-page.entry--elementor > .elementor > .e-con,
.entry--front-page.entry--elementor > .elementor > .e-con-boxed {
	max-width: var(--content-width);
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	flex-wrap: nowrap;
	align-self: stretch;
}

.entry--front-page.entry--elementor > .elementor > .e-con > .elementor-element,
.entry--front-page.entry--elementor > .elementor > .e-con-boxed > .elementor-element {
	width: 100%;
	max-width: 100%;
}

/* Inside post-body__main, Elementor containers should fill the column */
.post-body__main .elementor-section.elementor-section-boxed > .elementor-container {
	max-width: 100% !important;
}
.post-body__main .e-con {
	--container-max-width: 100% !important;
}
.post-body__main .e-con.e-con-boxed > .e-con-inner {
	max-width: 100% !important;
}

/* Elementor column gap override — wider gutter between columns */
.entry--elementor .elementor-row {
	gap: 40px;
}

/* Zero horizontal padding site-wide on Elementor sections, columns, and v3
   containers. Vertical padding is preserved. Inter-column spacing comes from
   the flex gap rule below, not from internal column padding.
   !important is required because Elementor's per-post compiled CSS (stored
   in _elementor_css post meta) targets with higher-specificity selectors
   like `.elementor-{post-id} .elementor-element.elementor-element-{widget}`
   and would otherwise win. Covers:
   - .elementor-section (Elementor core default: 20px horizontal)
   - .elementor-column > widget-wrap / element-populated (was 10px)
   - .e-con / .e-con-boxed (Elementor v3 default: 10px) */
.entry--elementor .elementor-section,
.entry--elementor .elementor-column > .elementor-widget-wrap,
.entry--elementor .elementor-column > .elementor-element-populated,
.entry--elementor .e-con,
.entry--elementor .e-con-boxed {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Gap between side-by-side columns (replaces the gutter that column padding
   used to provide). Covers both the legacy container and the v3 flex container. */
.entry--elementor .elementor-container.elementor-column-gap-default,
.entry--elementor .e-con.e-flex {
	gap: 32px;
}

/* Elementor section spacing */
.entry--elementor .elementor-section {
	padding-top: 12px;
	padding-bottom: 12px;
}

/* ---- Elementor text widgets ---- */
.entry--elementor .elementor-widget-text-editor {
	line-height: 1.7;
	color: var(--color-text);
	font-size: 18px;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.entry--elementor .elementor-widget-text-editor h2 {
	font-size: 28px;
	font-weight: 700;
	color: var(--color-primary);
	margin: 28px 0 12px;
	line-height: 1.3;
}

.entry--elementor .elementor-widget-text-editor h3 {
	font-size: 22px;
	font-weight: 700;
	color: var(--color-primary);
	margin: 24px 0 10px;
	line-height: 1.3;
}

.entry--elementor .elementor-widget-text-editor h4 {
	font-size: 20px;
	font-weight: 700;
	color: var(--color-text);
	margin: 20px 0 8px;
}

.entry--elementor .elementor-widget-text-editor strong {
	color: var(--color-text);
}

.entry--elementor .elementor-widget-text-editor p {
	margin-bottom: 14px;
}

.entry--elementor .elementor-widget-text-editor ul,
.entry--elementor .elementor-widget-text-editor ol {
	margin: 8px 0 16px;
	padding-left: 24px;
}

.entry--elementor .elementor-widget-text-editor li {
	margin-bottom: 6px;
}

.entry--elementor .elementor-widget-text-editor a {
	color: var(--color-primary);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--color-border);
	text-decoration-thickness: 3px;
	text-underline-offset: 6px;
	transition: color 0.2s, text-decoration-color 0.2s;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.entry--elementor .elementor-widget-text-editor a:hover {
	color: var(--color-secondary);
	text-decoration-color: var(--color-secondary-dark, var(--color-secondary));
}

.entry--elementor .elementor-widget-text-editor u,
.entry--elementor .elementor-widget-text-editor span[style*="underline"] {
	text-decoration-color: var(--color-inline-underline) !important;
	text-decoration-thickness: 3px !important;
	text-underline-offset: 6px !important;
}

/* ---- Elementor images ---- */
.entry--elementor .elementor-widget-image img {
	border-radius: 8px;
}

/* Image captions */
.entry--elementor .elementor-widget-image .widget-image-caption,
.entry--elementor .elementor-widget-image figcaption,
.entry__content figcaption,
.entry__content .wp-caption-text {
	font-size: 13px;
	color: var(--color-text-light);
	text-align: center;
	margin-top: 8px;
	padding: 8px 12px;
	line-height: 1.4;
	border-left: 2px solid var(--color-border);
	text-align: left;
	font-style: italic;
}

.eex-markdown .eex-md-cols {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	margin: 24px 0;
}

.eex-markdown .eex-md-cols-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.eex-markdown .eex-md-cols-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.eex-markdown .eex-md-cols-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.eex-markdown .eex-md-cols-5 {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.eex-markdown .eex-md-cols-6 {
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.eex-markdown .eex-md-cols__item > :first-child {
	margin-top: 0;
}

.eex-markdown .eex-md-cols__item > :last-child {
	margin-bottom: 0;
}

.eex-markdown .eex-md-cols figure,
.eex-markdown .eex-md-cols p {
	margin: 0;
}

@media (max-width: 767px) {
	.eex-markdown .eex-md-cols,
	.eex-markdown .eex-md-cols-2,
	.eex-markdown .eex-md-cols-3,
	.eex-markdown .eex-md-cols-4,
	.eex-markdown .eex-md-cols-5,
	.eex-markdown .eex-md-cols-6 {
		grid-template-columns: 1fr;
	}
}

/* Remove default spacer gap between image and caption */
.entry--elementor .elementor-widget-image + .elementor-widget-spacer {
	display: none;
}

/* ---- Elementor headings — thick underline accent ---- */
.entry--elementor .elementor-widget-heading .elementor-heading-title {
	color: var(--color-primary);
	font-weight: 700;
	display: inline-block;
	padding-bottom: 3px;
	border-bottom: 4px solid var(--color-heading-underline);
	margin-bottom: 16px;
}

/* Same underline for h1–h4 inside text-editor widgets. Border thickness
   scales down with heading level so smaller headings don't look heavy. */
.entry--elementor .elementor-widget-text-editor h1,
.entry--elementor .elementor-widget-text-editor h2 {
	display: inline-block;
	padding-bottom: 2px;
	border-bottom: 4px solid var(--color-heading-underline);
	margin-bottom: 16px;
	color: var(--color-primary);
	font-weight: 700;
}

.entry--elementor .elementor-widget-text-editor h3 {
	display: inline-block;
	padding-bottom: 1px;
	border-bottom: 3px solid var(--color-heading-underline-strong);
	margin-bottom: 12px;
}

.entry--elementor .elementor-widget-text-editor h4 {
	display: inline-block;
	padding-bottom: 4px;
	border-bottom: 2px solid var(--color-secondary);
	margin-bottom: 10px;
}

/* ---- Homepage section spacing ---- */
.entry--elementor .elementor-section {
	/* override existing rule — give sections more breathing room */
}

/* Alternating section backgrounds */
.entry--elementor .elementor-section.hp-section--tinted {
	background: var(--color-bg-light);
}

.entry--elementor .elementor-section.hp-section--dark {
	background: var(--color-primary);
	color: #fff;
}

.entry--elementor .elementor-section.hp-section--dark h1,
.entry--elementor .elementor-section.hp-section--dark h2,
.entry--elementor .elementor-section.hp-section--dark .elementor-heading-title {
	color: #fff;
	border-bottom-color: var(--color-secondary);
}

.entry--elementor .elementor-section.hp-section--dark a {
	color: var(--color-bg-hero);
}

.entry--elementor .elementor-section.hp-section--dark .elementor-widget-text-editor {
	color: rgba(255, 255, 255, 0.9);
}

/* ---- Elementor blockquote ---- */
.entry--elementor .elementor-widget-blockquote blockquote,
.entry--elementor .elementor-blockquote {
	border-left: 3px solid var(--color-primary);
	padding: 16px 24px;
	margin: 8px 0 20px;
	background: var(--color-bg-light);
	border-radius: 0 8px 8px 0;
	font-style: italic;
	color: var(--color-text);
}

.entry--elementor .elementor-blockquote__content {
	font-size: 16px;
	line-height: 1.7;
}

/* ---- Elementor buttons ---- */
.entry--elementor .elementor-button {
	background: var(--color-primary);
	color: #fff;
	border-radius: 8px;
	font-weight: 600;
	font-size: 15px;
	padding: 14px 28px;
	letter-spacing: 0.02em;
	transition: background 0.2s, transform 0.1s, box-shadow 0.2s;
	box-shadow: 0 2px 8px rgba(27, 77, 122, 0.15);
	display: inline-block;
	text-decoration: none;
}

.entry--elementor .elementor-button:hover {
	background: var(--color-primary-light);
	box-shadow: 0 4px 12px rgba(27, 77, 122, 0.25);
	color: #fff;
	text-decoration: none;
}

.entry--elementor .elementor-button:active {
	transform: scale(0.97);
}

/* Override Elementor's default button wrapper */
.entry--elementor .elementor-button-wrapper {
	margin: 8px 0 16px;
}


/* ---- CTA shortcode banner ---- */
.dl-cta {
	display: flex;
	align-items: center;
	gap: 24px;
	border-radius: 12px;
	padding: 32px;
	margin: 32px 0;
}

.dl-cta__body {
	flex: 1;
	min-width: 0;
}

.dl-cta__heading {
	color: #fff !important;
	font-size: 26px !important;
	font-weight: 700 !important;
	margin: 0 0 14px !important;
	padding: 0 !important;
	line-height: 1.25;
}

.dl-cta__text {
	color: rgba(255, 255, 255, 0.85) !important;
	font-size: 17px !important;
	line-height: 1.55;
	margin: 0 !important;
	padding: 0 !important;
}

.dl-cta__action {
	flex-shrink: 0;
}

.dl-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 28px;
	font-size: 15px;
	font-weight: 700;
	color: var(--color-primary);
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	text-decoration: none;
	white-space: nowrap;
	transition: transform 0.2s, box-shadow 0.2s;
}

.dl-cta__btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
	text-decoration: none;
	color: var(--color-primary);
}

.dl-cta__btn:hover svg {
	transform: translateX(3px);
}

.dl-cta__btn svg {
	transition: transform 0.2s;
}

.dl-cta__btn:active {
	transform: translateY(0) scale(0.98);
}

@media (max-width: 767px) {
	.dl-cta {
		flex-direction: column;
		text-align: center;
		padding: 24px 20px;
	}

	.dl-cta__btn {
		width: 100%;
		justify-content: center;
	}
}

/* ---- Elementor testimonial ---- */
.entry--elementor .elementor-widget-testimonial {
	background: var(--color-bg-light);
	padding: 24px;
	border-radius: 8px;
}

/* ---- Elementor spacer tuning ---- */
/* Reduce excessive spacers from old layouts */
.entry--elementor .elementor-widget-spacer .elementor-spacer-inner {
	max-height: 40px;
}

@media (min-width: 768px) {
	.entry--elementor .elementor-widget-text-editor h2 {
		font-size: 28px;
	}

	.entry--elementor .elementor-widget-text-editor h3 {
		font-size: 24px;
	}
}

/* ============================================
   WP Admin Bar offset
   ============================================ */
.admin-bar .site-header {
	top: 32px;
}

.admin-bar body {
	padding-top: calc(var(--header-height) + 32px);
}

@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}

	.admin-bar body {
		padding-top: calc(var(--header-height) + 46px);
	}
}

/* ============================================
   Desktop (768px+)
   ============================================ */
@media (min-width: 768px) {
	.hero__illustration {
		max-width: 420px;
	}

	.hero__title {
		font-size: 34px;
	}

}

/* ============================================
   Card Widget (.eex-card)
   Three-zone: header / body / footer
   ============================================ */
/* Make Elementor columns stretch card to full height */
.elementor-widget-eex-card,
.elementor-widget-eex-card .elementor-widget-container {
	height: 100%;
}

.eex-card {
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.eex-card:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
	transform: translateY(-2px);
}

/* Book review variant: product-card layout for book links/reviews. */
.eex-card--book-review {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 8px;
	border: 1px solid var(--color-border);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	overflow: hidden;
	transform: none;
}

.eex-card--book-review:hover {
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
	transform: none;
}

.eex-card--book-review .eex-card__header {
	aspect-ratio: auto;
	max-height: 300px;
	padding: 0 !important;
	background: linear-gradient(180deg, #f8fafc 0%, #eef3f7 100%) !important;
	border: 0;
	border-bottom: 1px solid var(--color-border);
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	overflow: hidden;
}

.eex-card--book-review .eex-card__header img {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: 300px !important;
	object-fit: contain !important;
	display: block !important;
	margin: 0 !important;
	border-radius: 0;
	box-shadow: none;
}

.eex-card--book-review .eex-card__body {
	padding: 14px 16px 10px !important;
	background: transparent !important;
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
}

.eex-card--book-review .eex-card__title {
	order: 3;
	margin: 0 0 6px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--color-text);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.eex-card--book-review .eex-card__subtitle {
	order: 4;
	margin: 0 0 8px;
	font-size: 12px;
	line-height: 1.45;
	color: var(--color-text-light);
}

.eex-card--book-review .eex-card__meta {
	order: 1;
	margin: 0 0 8px;
	font-size: 18px;
	font-weight: 800;
	color: var(--color-text);
	line-height: 1.1;
}

.eex-card--book-review .eex-card__desc {
	order: 5;
	font-size: 13px;
	line-height: 1.5;
	color: var(--color-text-light);
}

.eex-card--book-review .eex-card__footer {
	margin-top: auto;
	padding: 0 16px 16px !important;
	background: transparent !important;
	border: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}

.eex-card--book-review .eex-card__actions {
	width: 100%;
}

.eex-card--book-review .eex-card__btn {
	width: 100%;
	padding: 9px 14px;
	border-radius: 4px;
	font-size: 13px;
	text-align: center;
}

.eex-card--book-review .eex-card__btn--primary {
	background: var(--color-secondary);
	color: #fff;
	box-shadow: 0 2px 6px rgba(107, 142, 35, 0.24);
}

.eex-card--book-review .eex-card__btn--primary:hover {
	background: #58751d;
	color: #fff;
	box-shadow: 0 4px 10px rgba(107, 142, 35, 0.3);
}

.eex-card--book-review .eex-card__footer-text {
	width: 100%;
	margin-right: 0;
	font-size: 12px;
	line-height: 1.35;
	color: var(--color-text-light);
}

/* Horizontal variant */
.eex-card--horizontal {
	flex-direction: row;
	align-items: stretch;
}

.eex-card--horizontal .eex-card__header {
	flex: 0 0 40%;
	max-width: 40%;
}

.eex-card--horizontal .eex-card__header img {
	height: 100%;
}

.eex-card--book-review.eex-card--horizontal .eex-card__header {
	flex: none;
	max-width: none;
}

.eex-card--book-review.eex-card--horizontal .eex-card__header img {
	height: 230px;
}

/* ── Header ── */
.eex-card__header {
	position: relative;
	overflow: hidden;
	background: var(--color-bg-light);
	padding: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-bottom: 1px solid var(--color-border);
}

.eex-card__header img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
	border-radius: 6px;
}

/* Sidebars only: force Elementor image widgets + card header images to
   16:9 so stacked sidebar cards align cleanly. Content-area images keep
   their natural aspect ratio (posters, diagrams, etc.). !important beats
   Elementor's per-widget inline height control ({{WRAPPER}} = 0,3,1). */
.page-body__sidebar .elementor-widget-image img,
.post-body__sidebar .elementor-widget-image img,
.page-body__sidebar .eex-card__header img,
.post-body__sidebar .eex-card__header img {
	aspect-ratio: 16 / 9 !important;
	width: 100% !important;
	height: auto !important;
	object-fit: cover;
}

.page-body__sidebar .eex-card--book-review .eex-card__header img,
.post-body__sidebar .eex-card--book-review .eex-card__header img {
	aspect-ratio: 2 / 3 !important;
	height: auto !important;
	max-height: 300px !important;
	object-fit: contain;
}

.eex-card__badge {
	position: absolute;
	top: 12px;
	right: 12px;
	padding: 4px 12px;
	border-radius: 20px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	line-height: 1.4;
	background: var(--color-primary);
	color: #fff;
	box-shadow: 0 2px 6px rgba(27, 77, 122, 0.3);
}

/* ── Body ── */
.eex-card__body {
	padding: 24px;
	flex: 1;
	background: #fff;
}

.eex-card__title {
	font-size: 20px;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 6px;
	line-height: 1.3;
}

.eex-card__subtitle {
	font-size: 13px;
	color: var(--color-text-light);
	margin: 0 0 14px;
	line-height: 1.4;
	letter-spacing: 0.01em;
}

.eex-card__desc {
	font-size: 15px;
	color: var(--color-text);
	line-height: 1.65;
	margin-bottom: 0;
}

.eex-card__desc p:last-child {
	margin-bottom: 0;
}

/* ── Footer ── */
.eex-card__footer {
	padding: 14px 24px;
	background: var(--color-bg-light);
	border-top: 1px solid var(--color-border);
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	flex-wrap: wrap;
}

.eex-card__actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.eex-card__btn {
	display: inline-block;
	padding: 8px 20px;
	text-decoration: none;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
	transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
	cursor: pointer;
}

.eex-card__btn--primary {
	background: var(--color-primary);
	color: #fff;
	box-shadow: 0 1px 3px rgba(27, 77, 122, 0.25);
}

.eex-card__btn--primary:hover {
	background: var(--color-primary-light);
	color: #fff;
	box-shadow: 0 3px 8px rgba(27, 77, 122, 0.3);
	transform: translateY(-1px);
}

.eex-card__btn--secondary {
	background: #fff;
	color: var(--color-primary);
	border: 1px solid var(--color-border);
}

.eex-card__btn--secondary:hover {
	background: var(--color-primary);
	color: #fff;
	border-color: var(--color-primary);
	transform: translateY(-1px);
}

.eex-card__footer-text {
	font-size: 12px;
	color: var(--color-text-light);
	margin-right: auto;
}

@media (max-width: 767px) {
	.eex-card--horizontal {
		flex-direction: column;
	}

	.eex-card--horizontal .eex-card__header {
		flex: none;
		max-width: 100%;
	}
}

/* ============================================
   Twitter / X Profile Card (.eex-twitter-card)
   ============================================ */
.eex-twitter-card {
	display: flex;
	width: 100%;
}

.eex-twitter-card--align-left   { justify-content: flex-start; }
.eex-twitter-card--align-center { justify-content: center; }
.eex-twitter-card--align-right  { justify-content: flex-end; }

.eex-twitter-card__inner {
	position: relative;
	width: 100%;
	max-width: 360px;
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
	text-align: center;
}

.eex-twitter-card__inner:hover {
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

.eex-twitter-card__banner {
	position: relative;
	height: 72px;
	background:
		linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%);
}

.eex-twitter-card__logo {
	position: absolute;
	top: 14px;
	right: 16px;
	fill: #fff;
	opacity: 0.85;
}

.eex-twitter-card__avatar {
	position: relative;
	width: 96px;
	height: 96px;
	margin: -48px auto 0;
	border-radius: 50%;
	background: var(--color-bg-light);
	overflow: hidden;
	/* White ring drawn via shadow (not border) so the inner image fills
	   the full 96×96 — no sub-pixel gap from box-sizing border math. */
	box-shadow: 0 0 0 4px #fff, 0 2px 6px rgba(0, 0, 0, 0.08);
}

.eex-twitter-card__avatar img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.eex-twitter-card__avatar-fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-size: 36px;
	font-weight: 700;
	color: var(--color-primary);
}

.eex-twitter-card__body {
	padding: 14px 24px 4px;
}

.eex-twitter-card__name {
	margin: 0 0 2px;
	font-size: 18px;
	font-weight: 700;
	color: var(--color-primary);
	line-height: 1.3;
}

.eex-twitter-card__handle {
	display: inline-block;
	font-size: 14px;
	color: var(--color-text-light);
	text-decoration: none;
	margin-bottom: 10px;
}

.eex-twitter-card__handle:hover {
	color: var(--color-primary);
	text-decoration: underline;
}

.eex-twitter-card__bio {
	margin: 6px 0 0;
	font-size: 14px;
	line-height: 1.55;
	color: var(--color-text);
}

.eex-twitter-card__footer {
	padding: 16px 24px 20px;
}

.eex-twitter-card__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 18px;
	background: #000;
	color: #fff;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.15s ease;
}

.eex-twitter-card__btn:hover {
	background: #222;
	color: #fff;
	transform: translateY(-1px);
}

.eex-twitter-card__btn svg {
	fill: currentColor;
}

/* Tweet embed alignment (inline tweet card) */
.eex-twitter-embed { display: flex; }
.eex-twitter-embed--align-left   { justify-content: flex-start; }
.eex-twitter-embed--align-center { justify-content: center; }
.eex-twitter-embed--align-right  { justify-content: flex-end; }

/* ============================================
   Elementor Section Spacing & Backgrounds
   ============================================ */
.elementor-section {
	padding: 48px 0;
}

.elementor-section.elementor-section-boxed > .elementor-container {
	max-width: var(--content-width);
}

/* Alternating section backgrounds via CSS classes */
.elementor-section.wb2e-bg-light {
	background: var(--color-bg-light);
}

.elementor-section.wb2e-bg-white {
	background: #fff;
}

.elementor-section.wb2e-bg-primary {
	background: var(--color-primary);
	color: #fff;
}

.elementor-section.wb2e-bg-primary .elementor-heading-title,
.elementor-section.wb2e-bg-primary .elementor-widget-text-editor {
	color: #fff;
}

.elementor-section.wb2e-bg-primary .elementor-button {
	background: #fff;
	color: var(--color-primary);
}

/* Section dividers */
.elementor-section + .elementor-section {
	border-top: 1px solid var(--color-border);
}

.elementor-section.wb2e-bg-primary + .elementor-section,
.elementor-section + .elementor-section.wb2e-bg-primary {
	border-top: none;
}

/* ============================================
   Blockquote Styling
   ============================================ */
.elementor-widget-text-editor blockquote {
	border-left: 4px solid var(--color-primary);
	padding: 16px 24px;
	margin: 24px 0;
	background: var(--color-bg-light);
	border-radius: 0 8px 8px 0;
	font-style: italic;
	color: var(--color-text);
}

/* ============================================
   Accordion Refinements
   ============================================ */
.elementor-accordion .elementor-accordion-item {
	border-radius: 8px;
	margin-bottom: 8px;
	overflow: hidden;
	border: 1px solid var(--color-border);
}

.elementor-accordion .elementor-tab-title {
	padding: 16px 20px;
	font-weight: 600;
}

.elementor-accordion .elementor-tab-content {
	padding: 16px 20px;
}

/* ============================================
   Image Consistency — 12px radius everywhere
   ============================================ */
.elementor img,
.elementor-widget img,
.elementor-widget-image img,
.elementor-image img,
.elementor figure img,
.wp-caption img,
img.wp-image {
	border-radius: 12px !important;
}

.elementor-widget-image-carousel img,
.elementor-widget-image-gallery img,
.elementor-image-carousel img {
	border-radius: 12px !important;
}

/* Ensure containers clip rounded corners */
.elementor-widget-image .elementor-widget-container,
.elementor-image {
	overflow: hidden;
	border-radius: 12px;
}

/* Elementor Slides hero blocks need clipping on the slide surface itself,
   otherwise the zooming background stays visually square. */
.elementor-widget-slides,
.elementor-widget-slides .elementor-widget-container,
.elementor-widget-slides .elementor-swiper,
.elementor-widget-slides .elementor-main-swiper,
.elementor-widget-slides .swiper,
.elementor-widget-slides .swiper-wrapper,
.elementor-widget-slides .swiper-slide,
.elementor-widget-slides .swiper-slide-inner,
.elementor-widget-slides .swiper-slide-bg {
	border-radius: 12px;
}

.elementor-widget-slides .elementor-widget-container,
.elementor-widget-slides .elementor-swiper,
.elementor-widget-slides .elementor-main-swiper,
.elementor-widget-slides .swiper,
.elementor-widget-slides .swiper-wrapper,
.elementor-widget-slides .swiper-slide,
.elementor-widget-slides .swiper-slide-inner {
	overflow: hidden;
}

.elementor-widget-slides .elementor-slide-content,
.elementor-widget-slides .elementor-slide-heading,
.elementor-widget-slides .elementor-slide-description,
.elementor-widget-slides .elementor-slide-button,
.elementor-widget-slides .swiper-slide-inner .elementor-slide-heading,
.elementor-widget-slides .swiper-slide-inner .elementor-slide-description,
.elementor-widget-slides .swiper-slide-inner .elementor-slide-button {
	font-family: var(--font-family) !important;
}

.elementor-widget-slides .elementor-slide-button,
.elementor-widget-slides .swiper-slide-inner .elementor-slide-button,
.elementor-widget-slides .elementor-slide-button:hover,
.elementor-widget-slides .swiper-slide-inner .elementor-slide-button:hover {
	background: var(--color-secondary) !important;
	border-color: var(--color-secondary) !important;
	color: #fff !important;
	text-decoration: none !important;
}

.elementor-widget-slides .elementor-slide-button:hover,
.elementor-widget-slides .swiper-slide-inner .elementor-slide-button:hover {
	background: var(--color-secondary-dark) !important;
	border-color: var(--color-secondary-dark) !important;
}

/* Pro Elements Call To Action widgets use a background-image surface rather
   than a plain img tag, so they need explicit clipping to match site image
   rounding. */
.elementor-widget-call-to-action,
.elementor-widget-call-to-action .elementor-widget-container,
.elementor-widget-call-to-action .elementor-cta {
	border-radius: 12px;
}

.elementor-widget-call-to-action .elementor-widget-container,
.elementor-widget-call-to-action .elementor-cta {
	overflow: hidden;
}

.elementor-widget-call-to-action .elementor-cta__bg-wrapper,
.elementor-widget-call-to-action .elementor-cta__bg,
.elementor-widget-call-to-action .elementor-cta__bg-overlay,
.elementor-widget-call-to-action .elementor-cta__content {
	border-radius: 0;
}

/* ============================================
   Button Consistency
   ============================================ */
.elementor-button {
	border-radius: 6px;
	font-weight: 600;
	letter-spacing: 0.02em;
	transition: all 0.2s ease;
}

/* ============================================
   Icon List Refinements
   ============================================ */
.elementor-icon-list-items {
	columns: 2;
	column-gap: 32px;
}

.elementor-icon-list-item {
	break-inside: avoid;
	margin-bottom: 8px;
}

@media (max-width: 767px) {
	.elementor-icon-list-items {
		columns: 1;
	}
}

/* ============================================
   Mobile Layout Refinements
   ============================================ */
@media (max-width: 767px) {
	:root {
		--header-height: 68px;
		--content-padding: 16px;
	}

	.site-header {
		height: var(--header-height);
		min-height: 0;
	}

	.site-header__inner {
		height: var(--header-height);
		min-height: 0;
		flex-wrap: nowrap;
		align-content: stretch;
		gap: 10px;
		padding-top: 0;
		padding-bottom: 0;
	}

	.site-header__logo {
		flex: 0 0 auto;
	}

	.site-logo {
		gap: 8px;
		min-width: 0;
	}

	.site-logo__photo {
		width: 36px;
		height: 36px;
	}

	.site-logo__text {
		display: none;
	}

	.site-logo__text-short {
		display: inline-block;
	}

	.header-search {
		order: 0;
		flex: 1 1 auto;
		max-width: none;
		margin: 0;
	}

	.header-search__input {
		min-height: 40px;
		font-size: 16px;
	}

	.hamburger {
		width: 40px;
		height: 40px;
		flex: 0 0 auto;
		margin-left: 0;
	}

	.mega-menu__inner {
		padding-top: 20px;
		padding-bottom: 20px;
	}

	.hero {
		padding: 20px 0 28px;
	}

	.hero__title {
		font-size: 24px;
		margin-bottom: 20px;
	}

	.hero__buttons {
		flex-direction: column;
		padding: 0;
	}

	.btn {
		width: 100%;
		max-width: none;
	}

	.services {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.services__item {
		border: 1px solid var(--color-border);
		border-right: none;
		border-radius: 10px;
		padding: 16px 12px;
	}

	.page-body,
	.post-body {
		padding-top: 24px;
		padding-bottom: 36px;
		gap: 24px;
	}

	.page-body__sidebar,
	.post-body__sidebar {
		padding-top: 24px;
		gap: 24px;
	}

	.entry__title,
	.post-body__title {
		font-size: 30px;
		margin-bottom: 24px;
	}

	.entry__content,
	.entry--elementor .elementor-widget-text-editor {
		font-size: 16px;
		line-height: 1.75;
	}

	.entry__content h2,
	.entry--elementor .elementor-widget-text-editor h2 {
		font-size: 24px;
	}

	.entry__content h3,
	.entry--elementor .elementor-widget-text-editor h3 {
		font-size: 20px;
	}

	.entry__content h4,
	.entry--elementor .elementor-widget-text-editor h4 {
		font-size: 18px;
	}

	.entry--elementor .elementor-container.elementor-column-gap-default,
	.entry--elementor .e-con.e-flex {
		gap: 24px;
	}

	/* Restore outer page padding on phone widths so Elementor content lines up
	   with the header and sidebar cards instead of running edge-to-edge. */
	.entry--front-page.entry--elementor .elementor-top-section.elementor-section-boxed > .elementor-container,
	.entry--front-page.entry--elementor > .elementor > .e-con,
	.entry--front-page.entry--elementor > .elementor > .e-con-boxed {
		padding-left: var(--content-padding) !important;
		padding-right: var(--content-padding) !important;
	}

	.entry--elementor .elementor-button-wrapper {
		width: 100%;
	}

	.entry--elementor .elementor-button {
		width: 100%;
		text-align: center;
		justify-content: center;
	}

	.post-hero__overlay {
		left: 12px;
		right: 12px;
		bottom: 12px;
	}

	.post-hero__meta,
	.post-hero__share {
		border-radius: 12px;
		padding: 8px 10px;
		box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
	}

	.post-hero__meta::before,
	.post-hero__meta::after,
	.post-hero__share::before,
	.post-hero__share::after {
		display: none;
	}

	.post-hero__share-label {
		display: none;
	}

	.post-hero__share-btn {
		width: 30px;
		height: 30px;
	}

	.post-hero__taxonomy {
		margin: 0;
		padding: 16px 0 12px;
		min-height: 0;
	}

	.sidebar-popular__title,
	.blog-card__title {
		font-size: 16px;
	}

	.blog-card__thumb {
		height: 180px;
	}

	.cookie-banner__inner {
		align-items: stretch;
	}

	.cookie-banner__actions {
		width: 100%;
	}

	.cookie-banner__btn {
		flex: 1 1 0;
	}
}

@media (max-width: 420px) {
	.post-hero__overlay {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
	}

	.post-hero__share {
		align-self: flex-end;
	}
}

/* ============================================
   Dark Theme (OS preference)
   ============================================ */
@media (prefers-color-scheme: dark) {
	:root {
		color-scheme: dark;
		--color-primary: #8FBDE8;
		--color-primary-light: #A7CCEE;
		--color-primary-lighter: #C2DCF4;
		--color-heading-underline: #7CB3E6;
		--color-heading-underline-strong: #5F9CDA;
		--color-inline-underline: #FF6AB4;
		--color-secondary: #8EAF3F;
		--color-secondary-dark: #78952F;
		--color-bg: #0F1722;
		--color-bg-light: #182230;
		--color-bg-hero: #132033;
		--color-text: #E6EDF5;
		--color-text-light: #A6B4C5;
		--color-border: #2A3A4B;
	}

	html,
	body {
		background: var(--color-bg);
		color: var(--color-text);
	}

	.site-header,
	.mega-menu,
	.site-footer,
	.search-header,
	.blog-card,
	.recent-posts__card,
	.eex-card,
	.eex-card--book-review,
	.eex-twitter-card__inner,
	.post-nav__link,
	.elementor-accordion .elementor-accordion-item {
		background: #14202D;
	}

	.header-search__input,
	.entry--elementor .elementor-widget-testimonial,
	.entry--elementor .elementor-widget-blockquote blockquote,
	.entry--elementor .elementor-blockquote,
	.elementor-widget-text-editor blockquote,
	.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field:not(.elementor-select-wrapper),
	.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field,
	.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field-textual,
	.entry--elementor .elementor-widget-form .elementor-field-group input.elementor-field,
	.entry--elementor .elementor-widget-form .elementor-field-group textarea.elementor-field,
	.entry--elementor .elementor-widget-form .elementor-field-group select.elementor-field,
	.post-hero__tag,
	.post-body__tag {
		background: #182636;
		background-color: #182636 !important;
	}

	.entry--elementor .elementor-widget-form .elementor-field-group .elementor-select-wrapper,
	.entry--elementor .elementor-widget-form .elementor-field-group .elementor-select-wrapper select {
		background: #182636;
		background-color: #182636 !important;
	}

	.hero {
		background: linear-gradient(180deg, #132033 0%, #0F1722 100%);
	}

	.site-logo__text,
	.search-header__title,
	.blog-card__title,
	.recent-posts__title,
	.entry__title,
	.entry__title a,
	.entry__content h2,
	.entry__content h3,
	.entry--elementor .elementor-widget-heading .elementor-heading-title,
	.entry--elementor .elementor-widget-text-editor h1,
	.entry--elementor .elementor-widget-text-editor h2,
	.entry--elementor .elementor-widget-text-editor h3,
	.post-body__title,
	.eex-card__title,
	.eex-twitter-card__name,
	.search-empty__title,
	.error-404__code,
	.error-404__title {
		color: var(--color-primary);
	}

	.site-logo__text span,
	.search-header__meta,
	.blog-card__date,
	.recent-posts__date,
	.entry__content figcaption,
	.entry__content .wp-caption-text,
	.entry--elementor .elementor-widget-image .widget-image-caption,
	.entry--elementor .elementor-widget-image figcaption,
	.post-body__meta-inline,
	.sidebar-popular__empty,
	.eex-card__subtitle,
	.eex-card__desc,
	.eex-card__footer-text,
	.eex-twitter-card__handle,
	.eex-twitter-card__bio,
	.site-footer__text {
		color: var(--color-text-light);
	}

	.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field::placeholder,
	.entry--elementor .elementor-widget-form .elementor-field-group textarea.elementor-field::placeholder {
		color: var(--color-text-light);
	}

	.entry__content,
	.entry--elementor .elementor-widget-text-editor,
	.entry--elementor .elementor-widget-text-editor strong,
	.post-body__meta-inline .post-body__author,
	.sidebar-popular__heading,
	.sidebar-popular__title,
	.eex-card--book-review .eex-card__title,
	.eex-card--book-review .eex-card__meta,
	.eex-twitter-card__avatar-fallback,
	.search-header__query {
		color: var(--color-text);
	}

	.header-search__input:focus,
	.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field:not(.elementor-select-wrapper):focus,
	.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field:focus,
	.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field-textual:focus,
	.entry--elementor .elementor-widget-form .elementor-field-group input.elementor-field:focus,
	.entry--elementor .elementor-widget-form .elementor-field-group textarea.elementor-field:focus,
	.entry--elementor .elementor-widget-form .elementor-field-group select.elementor-field:focus,
	.cookie-banner__btn--accept,
	.dl-cta__btn,
	.elementor-section.wb2e-bg-primary .elementor-button {
		background: #1B2838;
		background-color: #1B2838 !important;
	}

	.header-search__input:focus,
	.entry--elementor .elementor-widget-form .elementor-field-group .elementor-field,
	.entry--elementor .elementor-widget-form .elementor-field-group textarea.elementor-field,
	.entry--elementor .elementor-widget-form .elementor-field-group select.elementor-field,
	.post-nav__link:hover,
	.elementor-accordion .elementor-accordion-item,
	.blog-card,
	.recent-posts__card,
	.eex-card,
	.eex-card--book-review,
	.eex-twitter-card__inner {
		border-color: var(--color-border);
	}

	.blog-card__thumb-placeholder {
		background: linear-gradient(135deg, #1D2A3A 0%, #243447 100%);
	}

	.mega-menu,
	.site-header,
	.site-footer,
	.search-header,
	.page-body__sidebar,
	.post-body__sidebar,
	.post-nav,
	.elementor-section + .elementor-section,
	.eex-card__header,
	.eex-card__footer,
	.eex-card--book-review .eex-card__header {
		border-color: var(--color-border);
	}

	.mega-menu__links li a,
	.post-nav__label {
		color: var(--color-text-light);
	}

	.mega-menu__links li a:hover,
	.sidebar-popular__heading a:hover {
		color: var(--color-primary-light);
	}

	.entry__content a:hover,
	.entry--elementor .elementor-widget-text-editor a:hover {
		color: var(--color-secondary);
	}

	.entry__content a,
	.entry--elementor .elementor-widget-text-editor a {
		text-decoration-color: #3A4B5E;
	}

	.post-hero__share {
		background: #14202D;
	}

	.post-hero__meta {
		background: #14202D;
	}

	.post-hero__meta::after {
		box-shadow: 0 6px 0 0 #14202D;
	}

	.post-hero__meta::before {
		box-shadow: -6px 0 0 0 #14202D;
	}

	.post-hero__meta img.avatar {
		background: #2A3A4B;
		box-shadow: 0 0 0 2px #14202D;
	}

	.post-hero__share::before {
		box-shadow: 0 6px 0 0 #14202D;
	}

	.post-hero__share::after {
		box-shadow: 6px 0 0 0 #14202D;
	}

	.post-hero__share-btn {
		background: #2A3A4B;
		color: var(--color-text);
	}

	.post-hero__share-btn:hover {
		background: var(--color-primary);
		color: #0F1722;
	}

	.site-footer__social-link {
		background: #2A3A4B;
		color: var(--color-text);
	}

	.site-footer__social-link:hover {
		background: var(--color-primary);
		color: #0F1722;
	}

	.entry__content img,
	.elementor-widget-image .elementor-widget-container,
	.elementor-image {
		background: transparent;
	}

	.eex-card__body,
	.blog-card__body,
	.recent-posts__body,
	.eex-twitter-card__body,
	.eex-twitter-card__footer {
		background: transparent;
	}

	.elementor-widget-eex-card .eex-card,
	.elementor-widget-eex-card .eex-card--book-review,
	.elementor-widget-eex-card .eex-card__body,
	.elementor-widget-eex-card .eex-card__footer,
	.elementor-widget-eex-card .eex-card--book-review .eex-card__footer {
		background: #14202D !important;
		background-color: #14202D !important;
	}

	.eex-card__footer,
	.elementor-section.wb2e-bg-white,
	.entry--elementor .elementor-section.hp-section--tinted,
	.recent-posts,
	.search-empty {
		background: var(--color-bg-light);
	}

	.entry--elementor .elementor-section.hp-section--dark {
		background: #122338;
	}

	.eex-card--book-review .eex-card__header {
		background: linear-gradient(180deg, #162334 0%, #1B2A3B 100%) !important;
	}

	.eex-card__btn--secondary {
		background: #182636;
		color: var(--color-primary);
		border-color: var(--color-border);
	}

	.eex-card__btn--secondary:hover {
		background: var(--color-primary);
		color: #0F1722;
		border-color: var(--color-primary);
	}

	.cookie-banner {
		background: #11253A;
	}

	.cookie-banner__btn--accept {
		color: var(--color-primary);
	}

	.cookie-banner__btn--accept:hover {
		background: #223244;
	}

	.cookie-banner__btn--decline {
		background: rgba(255, 255, 255, 0.12);
	}

	.cookie-banner__btn--decline:hover {
		background: rgba(255, 255, 255, 0.18);
	}

	.dl-cta__btn {
		color: var(--color-primary);
	}

	.eex-twitter-card__avatar {
		box-shadow: 0 0 0 4px #14202D, 0 2px 6px rgba(0, 0, 0, 0.2);
	}

	.eex-twitter-card__btn {
		background: #E6EDF5;
		color: #0F1722;
	}

	.eex-twitter-card__btn:hover {
		background: #FFFFFF;
		color: #0F1722;
	}

	.elementor-accordion .elementor-tab-title,
	.elementor-accordion .elementor-tab-content {
		background: transparent;
		color: var(--color-text);
	}
}
