/* ==========================================================================
   Shared Blog styles — Blog listing (home.php) + Single Post (single.php).

   TABLE OF CONTENTS
     1. Blog listing — banner + intro + layout
     2. Blog listing — post grid + card
     3. Blog listing — pagination + empty state
     4. Sidebar (shared: listing + single)
     5. Single post — layout + header + featured image + footer meta
     6. Editor content typography (.entry-content) — h1–h6, p, lists,
        links, images, blockquote, table, code, hr, figures, WP alignments,
        Gutenberg block classes
     7. Responsive
   ========================================================================== */

/* ==========================================================================
   1. Blog listing — banner + intro + layout
   ========================================================================== */

.blog-banner {
	min-height: 380px;
}

.blog-listing-section,
.single-post-section {
	padding: var(--section-py) 0;
}

.blog-listing-intro {
	max-width: 860px;
	margin: 0 auto 40px;
	text-align: center;
}
.blog-listing-intro-heading {
	font-size: var(--heading-font-size-40px);
	font-weight: var(--fw-700);
	line-height: 1.2;
	color: var(--color-blue-deep);
	margin-bottom: 12px;
}
.blog-listing-intro-text {
	font-size: var(--font-size-20px);
	color: var(--color-text-muted);
}

/* Two-column layout — used by both listing and single post. */
.blog-layout,
.single-post-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 48px;
	align-items: start;
}

/* ==========================================================================
   2. Blog listing — post grid + card
   ========================================================================== */

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

.blog-card {
	position: relative;
	background: var(--color-white);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform .25s ease, box-shadow .25s ease;
}
.blog-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow);
}
.blog-card-media {
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: var(--color-blue-tint);
}
.blog-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}
.blog-card:hover .blog-card-media img {
	transform: scale(1.04);
}
.blog-card-media.is-default {
	background: linear-gradient(135deg, var(--color-blue-soft) 0%, var(--color-blue-tint) 100%);
}
.blog-card-media.is-default::before,
.blog-card-media.is-default::after {
	content: "";
	position: absolute;
	pointer-events: none;
}
.blog-card-media.is-default::before {
	inset: -20% -20% auto auto;
	width: 60%;
	aspect-ratio: 1;
	background: radial-gradient(circle at center, rgba(0, 65, 160, .12), transparent 70%);
	border-radius: 50%;
}
.blog-card-media.is-default::after {
	inset: auto auto -30% -20%;
	width: 70%;
	aspect-ratio: 1;
	background: radial-gradient(circle at center, rgba(110, 190, 60, .10), transparent 70%);
	border-radius: 50%;
}
.blog-card-media-default {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	z-index: 1;
}
.blog-card-media img.blog-card-media-logo {
	max-width: 60%;
	max-height: 60%;
	width: auto;
	height: auto;
	object-fit: contain;
	opacity: .95;
	filter: drop-shadow(0 6px 20px rgba(0, 65, 160, .15));
	transition: transform .4s ease;
}
.blog-card:hover .blog-card-media img.blog-card-media-logo {
	transform: scale(1.05);
}
.blog-card-media-mark {
	font-family: var(--font-heading);
	font-size: clamp(20px, 3vw, 26px);
	font-weight: var(--fw-800);
	letter-spacing: -.01em;
	color: var(--color-blue-deep);
	text-align: center;
	line-height: 1.2;
}

.blog-card-body {
	padding: 22px 24px 26px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	flex: 1;
}
.blog-card-cats {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
}
.blog-card-cats li {
	list-style: none;
}
.blog-card-cats a {
	display: inline-block;
	padding: 4px 12px;
	font-size: 12px;
	font-weight: var(--fw-600);
	color: var(--color-blue);
	background: var(--color-blue-soft);
	border-radius: var(--radius-pill);
	text-decoration: none;
	letter-spacing: .02em;
	text-transform: uppercase;
	transition: background .2s ease, color .2s ease;
}
.blog-card-cats a:hover {
	background: var(--color-blue);
	color: var(--color-white);
}
.blog-card-title {
	font-size: 22px;
	font-weight: var(--fw-700);
	line-height: 1.3;
	color: var(--color-blue-deep);
	margin: 0;
}
.blog-card-title a {
	color: inherit;
	text-decoration: none;
	transition: color .2s ease;
}
.blog-card-title a:hover {
	color: var(--color-blue);
}

.blog-card-date {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	font-size: 12px;
	font-weight: var(--fw-700);
	color: var(--color-blue-deep);
	background: rgba(255, 255, 255, .95);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	border-radius: var(--radius-pill);
	letter-spacing: .02em;
	text-transform: uppercase;
	box-shadow: 0 4px 14px rgba(0, 65, 160, .12);
	margin: 0;
	pointer-events: none;
}
.blog-card-date::before {
	content: "";
	display: inline-block;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--color-green);
	flex-shrink: 0;
}

.blog-card-excerpt {
	font-size: 16px;
	line-height: 1.55;
	color: var(--color-text-muted);
	margin: 0 0 6px 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.blog-card-cta {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	align-self: flex-start;
	padding: 10px 20px;
	font-size: 14px;
	font-weight: var(--fw-700);
	color: var(--color-blue);
	background: transparent;
	border: 2px solid var(--color-blue);
	border-radius: var(--radius-pill);
	text-decoration: none;
	letter-spacing: .02em;
	transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.blog-card-cta:hover,
.blog-card-cta:focus-visible {
	background: var(--color-blue);
	color: var(--color-white);
	border-color: var(--color-blue);
}
.blog-card-cta-arrow {
	display: inline-block;
	transition: transform .2s ease;
}
.blog-card-cta:hover .blog-card-cta-arrow,
.blog-card-cta:focus-visible .blog-card-cta-arrow {
	transform: translateX(4px);
}

/* ==========================================================================
   3. Blog listing — pagination + empty state
   ========================================================================== */

.blog-pagination {
	margin-top: 48px;
}
.blog-pagination ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 10px;
	justify-content: center;
	padding: 0;
	margin: 0;
}
.blog-pagination ul li {
	list-style: none; margin: 0; padding: 0;
}
.blog-pagination ul li::before,
.blog-pagination ul li::after{
	display: none;
}
.blog-pagination a,
.blog-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	font-size: 15px;
	font-weight: var(--fw-600);
	color: var(--color-blue-deep);
	background: var(--color-white);
	border: 1px solid var(--color-blue-soft);
	border-radius: var(--radius-sm);
	text-decoration: none;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.blog-pagination a:hover {
	background: var(--color-blue-soft);
	border-color: var(--color-blue);
}
.blog-pagination .current {
	background: var(--color-blue);
	border-color: var(--color-blue);
	color: var(--color-white);
}
.blog-pagination .dots {
	background: transparent;
	border-color: transparent;
}

.blog-empty {
	padding: 60px 24px;
	text-align: center;
	background: var(--color-blue-tint);
	border-radius: var(--radius);
	color: var(--color-text-muted);
	font-size: var(--font-size-18px);
}

/* ==========================================================================
   4. Sidebar (shared: listing + single)
   ========================================================================== */

.blog-sidebar {
	display: flex;
	flex-direction: column;
	gap: 28px;
	position: sticky;
	top: 24px;
}
.blog-sidebar .widget {
	background: var(--color-white);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
	padding: 24px 26px;
}
.blog-sidebar .widget-title {
	font-size: 22px;
	font-weight: var(--fw-700);
	color: var(--color-blue-deep);
	margin: 0 0 18px;
	padding-bottom: 16px;
	border-bottom: 2px solid var(--color-blue-soft);
	line-height: 1.3;
}
.blog-sidebar .widget ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.blog-sidebar .widget ul li {
	list-style: none;
	padding: 8px 0;
	border-bottom: 1px solid var(--color-blue-tint);
	font-size: 16px;
	color: var(--color-text-muted);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	line-height: 1.4;
}
.blog-sidebar .widget ul li:last-child {
	border-bottom: 0;
}
.blog-sidebar .widget ul li::before,
.blog-sidebar .widget ul li::after{
	display: none;
}
.blog-sidebar .widget ul a {
	color: var(--color-blue-deep);
	text-decoration: none;
	font-weight: var(--fw-500);
	transition: color .2s ease;
	flex: 1;
}
.blog-sidebar .widget ul a:hover {
	color: var(--color-secondary);
}
.blog-sidebar .widget_recent_entries ul li {
	display: block;
}
.blog-sidebar .widget .post-date {
	display: block;
	font-size: 13px;
	color: var(--color-text-muted);
	margin-top: 4px;
	font-weight: var(--fw-400);
}
.blog-sidebar .widget select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--color-blue-soft);
	border-radius: var(--radius-sm);
	background: var(--color-white);
	font: inherit;
	color: var(--color-text);
}
.blog-sidebar .widget form.search-form {
	display: flex;
	gap: 8px;
}
.blog-sidebar .widget .search-field {
	flex: 1;
	padding: 10px 12px;
	border: 1px solid var(--color-blue-soft);
	border-radius: var(--radius-sm);
	font: inherit;
}
.blog-sidebar .widget .search-submit {
	padding: 10px 16px;
	background: var(--color-blue);
	color: var(--color-white);
	border: 0;
	border-radius: var(--radius-sm);
	font-weight: var(--fw-600);
	cursor: pointer;
	transition: background .2s ease;
}
.blog-sidebar .widget .search-submit:hover {
	background: var(--color-blue-deep);
}

/* Author Box widget — single post sidebar. */
.blog-sidebar .widget-author .author-box {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 16px;
}
.blog-sidebar .widget-author .author-box-avatar {
	display: inline-block;
	border-radius: 50%;
	overflow: hidden;
	line-height: 0;
	box-shadow: 0 4px 14px rgba(0, 65, 160, .12);
}
.blog-sidebar .widget-author .author-box-photo {
	display: block;
	width: 96px;
	height: 96px;
	object-fit: cover;
	border-radius: 50%;
}
.blog-sidebar .widget-author .author-box-name {
	font-size: 18px;
	font-weight: var(--fw-700);
	line-height: 1.3;
	margin: 5px 0 0 0;
	color: var(--color-blue-deep);
}
.blog-sidebar .widget-author .author-box-name a {
	color: inherit;
	text-decoration: none;
	transition: color .2s ease;
}
.blog-sidebar .widget-author .author-box-name a:hover {
	color: var(--color-blue);
}
.blog-sidebar .widget-author .author-box-bio {
	font-size: 14px;
	line-height: 1.55;
	color: var(--color-text-muted);
	margin: 0;
}

/* Archive widget — show first 12 months, toggle rest via .is-expanded on <ul>. */
.widget-archive-list.has-more > li:nth-child(n+13) { display: none; }
.widget-archive-list.has-more.is-expanded > li { display: flex; }

/* Keep the `hidden` HTML attribute authoritative — the JS removes it only
   when the list has more than 12 months. Without this, the button below
   sets `display: inline-flex` and shows the toggle even when hidden. */
.widget-archive-toggle[hidden] {
	display: none;
}
.widget-archive-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
	padding: 8px 16px;
	background: transparent;
	color: var(--color-blue);
	border: 1.5px solid var(--color-blue-soft);
	border-radius: var(--radius-pill);
	font-size: 13px;
	font-weight: var(--fw-700);
	letter-spacing: .02em;
	cursor: pointer;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.widget-archive-toggle:hover,
.widget-archive-toggle:focus-visible {
	background: var(--color-blue-soft);
	border-color: var(--color-blue);
	color: var(--color-blue-deep);
	outline: none;
}
.widget-archive-toggle .txt-less { display: none; }
.widget-archive-toggle[aria-expanded="true"] .txt-more { display: none; }
.widget-archive-toggle[aria-expanded="true"] .txt-less { display: inline; }
.widget-archive-toggle-arrow {
	display: inline-block;
	font-size: 11px;
	line-height: 1;
	transition: transform .2s ease;
}
.widget-archive-toggle[aria-expanded="true"] .widget-archive-toggle-arrow {
	transform: rotate(180deg);
}

/* ==========================================================================
   5. Single post — banner extras + layout + featured image + footer meta
   ========================================================================== */

/* Banner extras — category chips + meta row inside .page-banner */
.single-banner {
	min-height: 320px;
}
.page-banner-cats {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
	margin: 0 0 14px;
	padding: 0;
}
.page-banner-cats li {
	list-style: none;
}
.page-banner-cats a {
	display: inline-block;
	padding: 5px 14px;
	font-size: 12px;
	font-weight: var(--fw-700);
	color: var(--color-white);
	background: var(--color-blue);
	border-radius: var(--radius-pill);
	text-decoration: none;
	letter-spacing: .04em;
	text-transform: uppercase;
	transition: background .2s ease;
}
.page-banner-cats a:hover,
.page-banner-cats a:focus-visible {
	background: var(--color-blue-deep);
}
.page-banner-meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 10px 18px;
	margin-top: 18px;
	font-size: 16px;
	font-weight: var(--fw-600);
	color: var(--color-text-muted);
	line-height: 1.2;
}
.page-banner-meta .meta-item {
	display: inline-flex;
	align-items: center;
}
.page-banner-meta .meta-item + .meta-item::before {
	content: "";
	display: inline-block;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--color-green);
	margin-left: 0;
	margin-right: 16px;
}

/* Main article card */
.single-post-main {
	min-width: 0;
}
.single-post-article {
	background: var(--color-white);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
}

.single-post-featured {
	position: relative;
	aspect-ratio: 16 / 8;
	background: var(--color-blue-tint);
	overflow: hidden;
	margin: 0;
}
.single-post-featured img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.single-post-footer {
	padding: 24px 40px 32px;
	border-top: 1px solid var(--color-blue-tint);
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	justify-content: space-between;
}
.single-post-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	font-size: 13px;
	color: var(--color-text-muted);
}
.single-post-tags .tags-label {
	font-weight: var(--fw-700);
	color: var(--color-blue-deep);
	text-transform: uppercase;
	letter-spacing: .04em;
	font-size: 14px;
	margin-right: 4px;
}
.single-post-tags a {
	color: var(--color-blue);
	text-decoration: none;
	padding: 3px 10px;
	background: var(--color-blue-soft);
	border-radius: var(--radius-pill);
	font-weight: var(--fw-600);
	font-size: 14px;
	transition: background .2s ease, color .2s ease;
}
.single-post-tags a:hover {
	background: var(--color-blue);
	color: var(--color-white);
}

.single-post-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-top: 32px;
}
.single-post-nav a {
	display: block;
	padding: 18px 22px;
	background: var(--color-white);
	border: 1px solid var(--color-blue-soft);
	border-radius: var(--radius);
	color: var(--color-blue-deep);
	text-decoration: none;
	font-weight: var(--fw-700);
	line-height: 1.35;
	transition: background .2s ease, border-color .2s ease, transform .2s ease;
	box-shadow: var(--shadow-sm);
}
.single-post-nav a:hover {
	background: var(--color-blue-soft);
	border-color: var(--color-blue);
	transform: translateY(-2px);
}
.single-post-nav .nav-next {
	text-align: right;
}
.single-post-nav small {
	display: block;
	font-size: 11px;
	font-weight: var(--fw-600);
	color: var(--color-text-muted);
	text-transform: uppercase;
	letter-spacing: .06em;
	margin-bottom: 6px;
}

/* ==========================================================================
   6. Editor content typography (.entry-content)

   Scoped to .entry-content so post/page body content is styled consistently
   without leaking into card/sidebar/nav components. Applies to all standard
   Classic-editor HTML and to Gutenberg blocks that emit these elements.
   ========================================================================== */

.entry-content {
	padding: 32px 40px 36px;
	font-size: var(--font-size-18px);
	line-height: 1.7;
	color: var(--color-text);
}
.page-template-default .entry-content{
	padding: 0 !important;
}
.page-template-default .entry-header {
	margin: 0 0 25px 0;
}
/* --- Headings --- */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
	font-family: var(--font-heading);
	color: var(--color-blue-deep);
	font-weight: var(--fw-700);
	line-height: 1.25;
	letter-spacing: -.01em;
	margin: 25px 0 10px;
}
.entry-content h1:first-child,
.entry-content h2:first-child,
.entry-content h3:first-child,
.entry-content h4:first-child,
.entry-content h5:first-child,
.entry-content h6:first-child {
	margin-top: 0;
}
.entry-content h1 { 
	font-size: var(--heading-font-size-44px); font-weight: var(--fw-800); 
}
.entry-content h2 { 
	font-size: var(--heading-font-size-40px); 
}
.entry-content h3 { 
	font-size: var(--heading-font-size-36px); 
}
.entry-content h4 { 
	font-size: var(--heading-font-size-32px); 
}
.entry-content h5 { 
	font-size: clamp(1.375rem, 1.1635rem + 0.3846vw, 1.625rem);
}
.entry-content h6 { 
	font-size: clamp(1.25rem, 0.9327rem + 0.5769vw, 1.625rem); color: var(--color-text-muted); 
}

/* --- Paragraphs --- */
.entry-content p {
	margin: 0 0 20px;
}
.entry-content > *:last-child {
	margin-bottom: 0;
}
.entry-content .lead,
.entry-content .has-drop-cap:first-of-type {
	font-size: var(--font-size-20px);
	line-height: 1.6;
	color: var(--color-text);
}

/* --- Links --- */
.entry-content a {
	color: var(--color-blue);
	text-decoration: underline;
	text-decoration-color: rgba(0, 65, 160, .35);
	text-underline-offset: 3px;
	text-decoration-thickness: 1.5px;
	transition: color .2s ease, text-decoration-color .2s ease;
}
.entry-content a:hover,
.entry-content a:focus-visible {
	color: var(--color-blue-deep);
	text-decoration-color: currentColor;
}

/* --- Strong, em, small, mark, sub, sup, abbr, kbd --- */
.entry-content strong,
.entry-content b { font-weight: var(--fw-700); color: var(--color-blue-deep); }
.entry-content em,
.entry-content i { font-style: italic; }
.entry-content small { font-size: 85%; color: var(--color-text-muted); }
.entry-content mark { background: rgba(110, 190, 60, .22); color: inherit; padding: 0 .2em; border-radius: 3px; }
.entry-content sub,
.entry-content sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
.entry-content sup { top: -.5em; }
.entry-content sub { bottom: -.25em; }
.entry-content abbr[title] { border-bottom: 1px dotted var(--color-gray-d); cursor: help; }
.entry-content kbd {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .9em;
	background: var(--color-blue-tint);
	border: 1px solid var(--color-blue-soft);
	border-radius: 4px;
	padding: 2px 6px;
	box-shadow: 0 1px 0 rgba(0, 0, 0, .06);
}

/* --- Lists ---
   <ul> uses the theme's global green-checkmark bullet (added in style.css
   via `ul:not([class]) > li::before`). Adding list-style here would render
   a second marker on top of the checkmark, so only <ol> gets an explicit
   list-style. Gutenberg lists (<ul class="wp-block-list">) don't match the
   `:not([class])` global rule, so give them the same checkmark below. */
.entry-content ul,
.entry-content ol {
	margin: 0 0 1.2em;
}
.entry-content ol {
	list-style: decimal;
	padding-left: 1.6em;
}
.entry-content ol li {
	margin-bottom: .5em;
	padding-left: .25em;
}
.entry-content ol li::marker {
	color: var(--color-blue);
	font-weight: var(--fw-600);
}
.entry-content ol ol {
	margin: .5em 0;
}

/* Green-checkmark bullets for classed <ul> (Gutenberg wp-block-list, etc.). */
.entry-content ul.wp-block-list > li,
.entry-content ul[class] > li {
	position: relative;
	padding-left: 28px;
	margin-bottom: 8px;
	line-height: 1.5;
}
.entry-content ul.wp-block-list > li::before,
.entry-content ul[class] > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.28em;
	width: 18px;
	height: 18px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12l4 4 10-10' stroke='%235aa52f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}
.entry-content li > ul,
.entry-content li > ol {
	margin: .5em 0;
}

/* Definition list */
.entry-content dl { margin: 0 0 1.2em; }
.entry-content dt { font-weight: var(--fw-700); color: var(--color-blue-deep); margin-top: .8em; }
.entry-content dd { margin: 0 0 .6em 1.4em; color: var(--color-text-muted); }

/* --- Blockquote --- */
.entry-content blockquote {
	position: relative;
	margin: 1.6em 0;
	padding: 20px 24px 20px 28px;
	background: var(--color-blue-tint);
	border-left: 4px solid var(--color-blue);
	border-radius: var(--radius-sm);
	font-size: var(--font-size-20px);
	line-height: 1.55;
	color: var(--color-blue-deep);
	font-style: italic;
}
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content blockquote cite,
.entry-content blockquote footer {
	display: block;
	margin-top: 10px;
	font-style: normal;
	font-size: 16px;
	font-weight: var(--fw-600);
	color: var(--color-text-muted);
	letter-spacing: .02em;
}
.entry-content blockquote cite::before,
.entry-content blockquote footer::before { content: "— "; }

.entry-content .wp-block-pullquote {
	border-left: 0;
	border-top: 2px solid var(--color-blue);
	border-bottom: 2px solid var(--color-blue);
	padding: 24px 20px;
	text-align: left;
	background: transparent;
	font-size: var(--heading-font-size-32px);
}

/* --- Images + figures --- */
.entry-content img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: var(--radius-sm);
	margin: 1em 0;
}
.entry-content figure {
	margin: 1.4em 0;
}
.entry-content figure img {
	margin: 0;
}
.entry-content figcaption,
.entry-content .wp-caption-text {
	margin-top: 8px;
	font-size: 13px;
	color: var(--color-text-muted);
	text-align: center;
	font-style: italic;
}

/* --- Tables --- */
.entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.4em 0;
	font-size: 15px;
	overflow-x: auto;
	display: block;
}
@media (min-width: 720px) {
	.entry-content table { display: table; }
}
.entry-content thead {
	background: var(--color-blue);
	color: var(--color-white);
}
.entry-content th,
.entry-content td {
	padding: 12px 16px;
	text-align: left;
	border-bottom: 1px solid var(--color-blue-soft);
	vertical-align: top;
}
.entry-content th {
	font-weight: var(--fw-700);
	letter-spacing: .02em;
}
.entry-content tbody tr:nth-child(odd) {
	background: var(--color-blue-tint);
}
.entry-content tbody tr:hover {
	background: var(--color-blue-soft);
}

/* --- Code + preformatted --- */
.entry-content code {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .9em;
	background: var(--color-blue-tint);
	color: var(--color-blue-deep);
	padding: 2px 6px;
	border-radius: 4px;
}
.entry-content pre {
	margin: 1.4em 0;
	padding: 18px 20px;
	background: var(--color-ink);
	color: #e6edf3;
	border-radius: var(--radius-sm);
	overflow-x: auto;
	line-height: 1.5;
	font-size: 14px;
}
.entry-content pre code {
	background: transparent;
	color: inherit;
	padding: 0;
	font-size: inherit;
}

/* --- Horizontal rule + address --- */
.entry-content hr {
	border: 0;
	height: 1px;
	background: var(--color-blue-soft);
	margin: 2em 0;
}
.entry-content .wp-block-separator {
	border: 0;
	background: var(--color-blue-soft);
	height: 1px;
	margin: 2em auto;
	max-width: 100%;
}
.entry-content .wp-block-separator.is-style-wide { max-width: 100%; }
.entry-content .wp-block-separator.is-style-dots {
	background: transparent;
	text-align: center;
	line-height: 1;
	height: auto;
}
.entry-content .wp-block-separator.is-style-dots::before {
	content: "···";
	color: var(--color-gray-d);
	font-size: 20px;
	letter-spacing: .5em;
}
.entry-content address {
	font-style: normal;
	line-height: 1.6;
	margin: 0 0 1.2em;
	color: var(--color-text-muted);
}

/* --- WordPress alignment classes --- */
.entry-content .alignleft {
	float: left;
	margin: .5em 1.5em .5em 0;
	max-width: 50%;
}
.entry-content .alignright {
	float: right;
	margin: .5em 0 .5em 1.5em;
	max-width: 50%;
}
.entry-content .aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}
.entry-content .alignwide {
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
}
.entry-content .alignfull {
	max-width: none;
	margin-left: calc(-1 * var(--container-pad-x));
	margin-right: calc(-1 * var(--container-pad-x));
	width: auto;
}
.entry-content .clear::after {
	content: "";
	display: block;
	clear: both;
}

/* --- Gutenberg block classes commonly seen in post content --- */
.entry-content .wp-block-image { margin: 1.4em 0; }
.entry-content .wp-block-image img { border-radius: var(--radius-sm); }
.entry-content .wp-block-quote { padding-left: 20px; border-left: 4px solid var(--color-blue); font-style: italic; }
.entry-content .wp-block-embed { margin: 1.4em 0; }
.entry-content .wp-block-embed__wrapper { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; }
.entry-content .wp-block-embed__wrapper iframe {
	position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: var(--radius-sm);
}
.entry-content .wp-block-button__link {
	display: inline-block;
	padding: 12px 24px;
	background: var(--color-blue);
	color: var(--color-white) !important;
	border-radius: var(--radius-pill);
	text-decoration: none !important;
	font-weight: var(--fw-700);
	transition: background .2s ease;
}
.entry-content .wp-block-button__link:hover {
	background: var(--color-blue-deep);
}
.entry-content .is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--color-blue) !important;
	border: 2px solid var(--color-blue);
}
.entry-content .is-style-outline .wp-block-button__link:hover {
	background: var(--color-blue);
	color: var(--color-white) !important;
}
.entry-content .wp-block-columns { display: flex; flex-wrap: wrap; gap: 24px; margin: 1.4em 0; }
.entry-content .wp-block-column { flex: 1 1 220px; min-width: 0; }
.entry-content .wp-block-gallery { margin: 1.4em 0; }
.entry-content .wp-block-code { background: var(--color-ink); color: #e6edf3; padding: 18px 20px; border-radius: var(--radius-sm); }

/* ==========================================================================
   7. Responsive
   ========================================================================== */

/* Tablet: sidebar collapses below, grid stays 2-up if room allows. */
@media (max-width: 1024px) {
	.blog-layout,
	.single-post-layout {
		grid-template-columns: 1fr;
		gap: 48px;
	}
	.blog-sidebar {
		position: static;
	}
	.entry-content,
	.single-post-header,
	.single-post-footer {
		padding-left: 32px;
		padding-right: 32px;
	}
}

/* Small tablet: fall back to 1-per-row when card would get too narrow. */
@media (max-width: 720px) {
	.blog-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.blog-card-title {
		font-size: 20px;
	}
	.blog-card-body {
		padding: 20px 20px 24px;
	}
	.blog-listing-intro {
		margin-bottom: 28px;
	}
	.single-post-header,
	.single-post-footer,
	.entry-content {
		padding-left: 24px;
		padding-right: 24px;
	}
	.entry-content { font-size: 16px; }
	.entry-content .alignleft,
	.entry-content .alignright {
		float: none;
		margin: 1em auto;
		max-width: 100%;
	}
	.single-post-nav {
		flex-direction: column;
		grid-template-columns: inherit;
	}
	.single-post-nav .nav-next {
		text-align: left;
	}
	.blog-sidebar .widget-title{
		font-size: 20px;
	}

}

/* Mobile: single column, sidebar below listing. */
@media (max-width: 480px) {
	.blog-layout,
	.single-post-layout {
		gap: 32px;
	}
	.blog-sidebar .widget {
		padding: 20px;
	}
	.blog-pagination a,
	.blog-pagination span {
		min-width: 38px;
		height: 38px;
		font-size: 14px;
		padding: 0 10px;
	}
	.entry-content blockquote {
		padding: 16px 18px 16px 20px;
		font-size: var(--font-size-18px);
	}
	.entry-content table { font-size: 14px; }
	.entry-content th,
	.entry-content td { padding: 10px 12px; }

	.blog-banner .page-banner-heading{
		font-size: 30px;
	}
}
