/* =====================================================================
   Blog (v1.9.0) – uses the theme's own tokens (--ink-black, --dark-blue,
   --light-silver) and fluid "em" scale, so it follows the rest of the site.
   Sections: Home blog section · blog index/archives · single post
   ===================================================================== */

/* ---------- Shared: section, grid, card ---------- */
.blog-section { display: flex; flex-flow: column; align-items: center; gap: 4em; width: 100%; padding: 7.5em 2em; }
.blog-section__head { display: flex; flex-flow: column; align-items: center; gap: 1.5em; width: 100%; max-width: 66em; text-align: center; }
.blog-section__text { max-width: 36em; margin: 0; font-size: 1.25em; line-height: 1.5; opacity: .75; }
.blog-section__empty { margin: 0; font-size: 1.25em; opacity: .7; text-align: center; }
.blog-section__cta { display: flex; justify-content: center; }

.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3.5em 2em; width: 100%; max-width: 80em; }

.blog-card { display: flex; flex-flow: column; gap: 1.25em; min-width: 0; margin: 0; }
.blog-card__media { position: relative; display: block; width: 100%; overflow: hidden; aspect-ratio: 3 / 2; border-radius: 1em; background-color: var(--dark-blue); }
.blog-card__img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.625, .05, 0, 1); }
.blog-card__ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--light-silver); background-color: var(--dark-blue); }
.blog-card__ph-mark { font-size: 4em; font-weight: 700; line-height: 1; letter-spacing: .02em; }
@media (hover: hover) and (pointer: fine) {
	.blog-card:hover .blog-card__img { transform: scale(1.04); }
}

.blog-card__body { display: flex; flex: 1; flex-flow: column; align-items: flex-start; gap: .75em; }
.blog-card__meta,
.blog-single__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75em; font-size: .875em; font-weight: 500; line-height: 1.2; }
.blog-card__cat { color: var(--dark-blue); font-weight: 600; }
.blog-card__date, .blog-card__time { opacity: .7; }
.blog-card__sep { flex: none; width: 1px; height: 1em; background-color: currentColor; opacity: .3; }
.blog-card__title { margin: 0; font-size: 1.75em; font-weight: 700; line-height: 1.2; text-wrap: balance; }
.blog-card__excerpt { margin: 0; line-height: 1.5; opacity: .75; }
.blog-card__more { display: inline-flex; align-items: center; gap: .6em; margin-top: auto; padding-top: .5em; font-weight: 600; color: var(--dark-blue); }
.blog-card__more svg { flex: none; width: 1em; height: .75em; transition: transform .5s cubic-bezier(.625, .05, 0, 1); }
@media (hover: hover) and (pointer: fine) {
	.blog-card__more:hover svg { transform: rotate(180deg) translateX(-.35em); }
}
.blog-card.is--noimg .blog-card__body { padding-top: 1.5em; border-top: 1px solid rgba(8, 9, 18, .2); }

/* Keep Elementor Site Settings (link / heading colors) away from the blog */
html body .blog-card a, html body .blog-card__title a { color: inherit; text-decoration: none; }
html body .blog-card__cat, html body .blog-card__more { color: var(--dark-blue); }
html body .blog-card__title a:hover, html body .blog-card__more:hover { color: inherit; }
html body .blog-card__more:hover { color: var(--dark-blue); }

/* Visible keyboard focus */
.blog-card a:focus-visible, .blog-filters__item:focus-visible, .blog-pagination a:focus-visible,
.blog-tags a:focus-visible, .blog-postnav__item:focus-visible, .blog-single__back:focus-visible {
	outline: 2px solid var(--dark-blue); outline-offset: 3px; border-radius: .25em;
}

/* ---------- Blog index / archives ---------- */
.blog-hero { display: flex; flex-flow: column; align-items: center; gap: 1.5em; width: 100%; padding: 11em 2em 3em; text-align: center; }
.blog-hero__title { max-width: 14em; overflow-wrap: anywhere; text-wrap: balance; }
.blog-hero__text { max-width: 36em; margin: 0; font-size: 1.25em; line-height: 1.5; opacity: .75; }

.blog-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: .6em; margin-top: 1em; }
html body .blog-filters__item {
	padding: .55em 1.1em; font-size: .9375em; font-weight: 600; line-height: 1; text-decoration: none;
	color: var(--dark-blue); border: 1px solid rgba(42, 64, 147, .4); border-radius: .4em;
	transition: background-color .3s, color .3s, border-color .3s;
}
html body .blog-filters__item:hover { background-color: rgba(42, 64, 147, .1); }
html body .blog-filters__item.is--active { color: var(--light-silver); background-color: var(--ink-black); border-color: var(--ink-black); }

.blog-archive { display: flex; flex-flow: column; align-items: center; gap: 4em; width: 100%; padding: 3em 2em 8em; }

.blog-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: .5em; width: 100%; }
html body .blog-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 3em; height: 3em; padding: 0 1em;
	font-weight: 600; line-height: 1; text-decoration: none; color: var(--dark-blue);
	border: 1px solid rgba(42, 64, 147, .4); border-radius: .4em; transition: background-color .3s, color .3s;
}
html body .blog-pagination a.page-numbers:hover { background-color: rgba(42, 64, 147, .1); }
html body .blog-pagination .page-numbers.current { color: var(--light-silver); background-color: var(--ink-black); border-color: var(--ink-black); }
html body .blog-pagination .page-numbers.dots { border-color: transparent; }

.blog-empty { display: flex; flex-flow: column; align-items: center; gap: 2em; padding: 3em 0; text-align: center; }
.blog-empty__text { margin: 0; font-size: 1.5em; font-weight: 600; max-width: 24em; }

/* ---------- Single post ---------- */
.blog-single__head { display: flex; flex-flow: column; align-items: center; gap: 1.5em; width: 100%; max-width: 62em; margin: 0 auto; padding: 11em 2em 3em; text-align: center; }
html body .blog-single__back { font-size: .9375em; font-weight: 600; text-decoration: none; color: var(--dark-blue); }
.blog-single__meta { justify-content: center; }
.blog-single__title { margin: 0; font-size: 3.5em; font-weight: 700; line-height: 1.1; text-wrap: balance; overflow-wrap: anywhere; }
.blog-single__author { margin: 0; font-weight: 500; opacity: .7; }

.blog-single__cover { width: 100%; max-width: 80em; margin: 0 auto; padding: 0 2em; }
.blog-single__cover-img { display: block; width: 100%; max-height: 42em; object-fit: cover; border-radius: 1em; }

.blog-single__body { display: flex; flex-flow: column; align-items: center; gap: 3.5em; width: 100%; padding: 4em 2em 6em; }
.blog-prose { width: 100%; max-width: 44em; font-size: 1.125em; line-height: 1.7; overflow-wrap: break-word; }
.blog-prose > *:first-child { margin-top: 0; }
.blog-prose > *:last-child { margin-bottom: 0; }
.blog-prose p { margin: 0 0 1.4em; }
.blog-prose h2, .blog-prose h3, .blog-prose h4, .blog-prose h5 { margin: 2em 0 .6em; font-weight: 700; line-height: 1.2; color: inherit; }
.blog-prose h2 { font-size: 2em; }
.blog-prose h3 { font-size: 1.5em; }
.blog-prose h4 { font-size: 1.25em; }
.blog-prose h5 { font-size: 1.0625em; }
html body .blog-prose a { color: var(--dark-blue); text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: .06em; }
html body .blog-prose a:hover { color: var(--ink-black); }
.blog-prose ul, .blog-prose ol { margin: 0 0 1.4em; padding-left: 1.4em; }
.blog-prose li { margin: .4em 0; }
.blog-prose blockquote { margin: 2em 0; padding: .25em 0 .25em 1.25em; border-left: 3px solid var(--dark-blue); font-size: 1.2em; font-weight: 500; line-height: 1.5; }
.blog-prose blockquote p:last-child { margin-bottom: 0; }
.blog-prose img, .blog-prose video, .blog-prose iframe { max-width: 100%; height: auto; border-radius: 1em; }
.blog-prose figure { margin: 2em 0; }
.blog-prose figcaption, .blog-prose .wp-caption-text { margin-top: .75em; font-size: .875em; opacity: .7; }
.blog-prose pre { margin: 2em 0; padding: 1.25em 1.5em; overflow-x: auto; font-size: .875em; line-height: 1.6; color: var(--light-silver); background-color: var(--ink-black); border-radius: .75em; }
.blog-prose code { padding: .1em .35em; font-size: .9em; background-color: rgba(42, 64, 147, .1); border-radius: .25em; }
.blog-prose pre code { padding: 0; background: none; font-size: 1em; }
.blog-prose hr { margin: 3em 0; border: 0; border-top: 1px solid rgba(8, 9, 18, .2); }
.blog-prose table { width: 100%; margin: 2em 0; border-collapse: collapse; font-size: .9375em; }
.blog-prose th, .blog-prose td { padding: .7em .9em; text-align: left; border-bottom: 1px solid rgba(8, 9, 18, .2); }
.blog-prose th { font-weight: 700; }
.blog-prose .alignwide, .blog-prose .alignfull { max-width: 100%; }

.blog-tags { display: flex; flex-wrap: wrap; gap: .5em; width: 100%; max-width: 44em; margin: 0; padding: 0; list-style: none; }
html body .blog-tags a { display: inline-block; padding: .45em .9em; font-size: .875em; font-weight: 600; line-height: 1; text-decoration: none; color: var(--dark-blue); border: 1px solid rgba(42, 64, 147, .4); border-radius: .4em; }
html body .blog-tags a:hover { background-color: rgba(42, 64, 147, .1); }

.blog-postnav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2em; width: 100%; max-width: 44em; }
html body .blog-postnav__item { display: flex; flex-flow: column; gap: .4em; padding-top: 1.25em; text-decoration: none; color: inherit; border-top: 1px solid rgba(8, 9, 18, .25); transition: border-color .3s; }
html body .blog-postnav__item:hover { border-top-color: var(--dark-blue); }
.blog-postnav__item.is--next { grid-column: 2; text-align: right; }
.blog-postnav__label { font-size: .875em; font-weight: 500; opacity: .65; }
.blog-postnav__title { font-size: 1.25em; font-weight: 700; line-height: 1.25; }

.blog-related { padding-top: 3em; }
.blog-single__cta { display: flex; flex-flow: column; align-items: center; gap: 1.5em; width: 100%; padding: 4em 2em 9em; text-align: center; }
.blog-single__cta-text { margin: 0; font-size: 2.5em; font-weight: 700; line-height: 1.15; }

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
	.blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.blog-single__title { font-size: 2.75em; }
}
@media (max-width: 767px) {
	.blog-section { gap: 2.5em; padding: 5em 1em; }
	.blog-grid { grid-template-columns: minmax(0, 1fr); gap: 3em; }
	.blog-hero { padding: 8em 1em 2em; }
	.blog-archive { gap: 3em; padding: 2em 1em 5em; }
	.blog-single__head { padding: 8em 1em 2em; }
	.blog-single__title { font-size: 2.25em; }
	.blog-single__cover { padding: 0 1em; }
	.blog-single__body { gap: 2.5em; padding: 2.5em 1em 4em; }
	.blog-prose { font-size: 1.0625em; }
	.blog-postnav { grid-template-columns: minmax(0, 1fr); gap: 1.5em; }
	.blog-postnav__item.is--next { grid-column: 1; text-align: left; }
	.blog-related { padding-top: 2em; }
	.blog-single__cta { padding: 3em 1em 6em; }
	.blog-single__cta-text { font-size: 2em; }
}
@media (prefers-reduced-motion: reduce) {
	.blog-card__img, .blog-card__more svg { transition: none; }
	.blog-card:hover .blog-card__img { transform: none; }
}

/* =====================================================================
   v1.10.0 – Legal pages (Privacy / Terms), Blog Archive page, footer legal links
   ===================================================================== */

/* ---------- Legal pages ---------- */
.legal-updated { margin: 0; font-size: .9375em; font-weight: 500; opacity: .6; }
.legal { display: flex; flex-flow: column; align-items: center; gap: 4em; width: 100%; padding: 3em 2em 9em; }
.legal__layout { display: grid; grid-template-columns: 17em minmax(0, 44em); gap: 5em; justify-content: center; align-items: start; width: 100%; max-width: 70em; }
.legal__layout.is--single { grid-template-columns: minmax(0, 44em); }

.legal-toc { position: sticky; top: 7.5em; display: flex; flex-flow: column; gap: 1em; padding-top: 1.25em; border-top: 1px solid rgba(8, 9, 18, .25); }
.legal-toc__label { margin: 0; font-size: .9375em; font-weight: 600; color: var(--dark-blue); }
.legal-toc__list { display: flex; flex-flow: column; gap: .15em; margin: 0; padding: 0; list-style: none; counter-reset: legal-toc; }
.legal-toc__list li { counter-increment: legal-toc; }
html body .legal-toc__list a {
	display: flex; gap: .75em; padding: .4em 0; font-size: .9375em; font-weight: 500; line-height: 1.35;
	text-decoration: none; color: inherit; opacity: .7; transition: opacity .3s, color .3s;
}
html body .legal-toc__list a::before { content: "[" counter(legal-toc, decimal-leading-zero) "]"; flex: none; min-width: 2.4em; font-weight: 600; color: var(--dark-blue); }
html body .legal-toc__list a:hover { opacity: 1; color: var(--dark-blue); }
.legal-toc__list a:focus-visible { outline: 2px solid var(--dark-blue); outline-offset: 3px; border-radius: .25em; }

.legal-body { max-width: none; counter-reset: legal-sec; }
.legal-section { counter-increment: legal-sec; scroll-margin-top: 7em; padding-top: 2em; border-top: 1px solid rgba(8, 9, 18, .2); }
.legal-section + .legal-section { margin-top: 2.5em; }
.legal-section:first-child { padding-top: 0; border-top: 0; }
.legal-section h2 { display: flex; flex-flow: column; gap: .35em; margin: 0 0 .75em; font-size: 1.75em; line-height: 1.2; }
.legal-section h2::before { content: "[" counter(legal-sec, decimal-leading-zero) "]"; font-size: .5em; font-weight: 600; letter-spacing: .02em; color: var(--dark-blue); }
.legal-section > *:last-child { margin-bottom: 0; }
.legal-section strong { font-weight: 600; }

.legal-more { max-width: 70em; }
.legal-more .blog-postnav__item.is--next { grid-column: 2; }

/* ---------- Blog Archive page ---------- */
.archive-index { gap: 5em; }
.archive-year { display: flex; flex-flow: column; gap: 2em; width: 100%; max-width: 62em; }
.archive-year__head { display: flex; justify-content: flex-start; }
.archive-year__title { font-size: 3em; margin: 0; }
.archive-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(8, 9, 18, .25); }
.archive-list__item { border-bottom: 1px solid rgba(8, 9, 18, .2); }
html body .archive-row {
	display: grid; grid-template-columns: 6em minmax(0, 1fr) auto 1em; align-items: center; gap: 1.5em;
	padding: 1.5em 0; text-decoration: none; color: inherit; transition: padding-left .5s cubic-bezier(.625, .05, 0, 1), color .3s;
}
.archive-row__date { font-size: .9375em; font-weight: 500; opacity: .65; white-space: nowrap; }
.archive-row__title { font-size: 1.5em; font-weight: 700; line-height: 1.25; text-wrap: balance; overflow-wrap: anywhere; }
.archive-row__cat { font-size: .875em; font-weight: 600; color: var(--dark-blue); text-align: right; }
.archive-row svg { width: 1em; height: .75em; color: var(--dark-blue); transition: transform .5s cubic-bezier(.625, .05, 0, 1); }
.archive-row svg path { fill: currentColor; }
@media (hover: hover) and (pointer: fine) {
	html body .archive-row:hover { padding-left: .75em; color: var(--dark-blue); }
	.archive-row:hover svg { transform: rotate(180deg) translateX(-.35em); }
}
.archive-row:focus-visible { outline: 2px solid var(--dark-blue); outline-offset: 3px; border-radius: .25em; }

/* "Browse the full archive" link under the blog index */
html body .blog-archive__all { margin-top: -1em; }

/* ---------- Footer: Privacy / Terms links in the bottom bar ---------- */
.footer-copy__legal { display: flex; flex-wrap: wrap; align-items: center; gap: .25em 2em; }
html body .footer-copy__legal a { color: inherit; text-decoration: none; }
.footer-copy__legal a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
	.legal__layout { grid-template-columns: minmax(0, 44em); gap: 3em; }
	.legal-toc { position: static; }
	.legal-more .blog-postnav__item.is--next { grid-column: 2; }
}
@media (max-width: 767px) {
	.legal { gap: 3em; padding: 2em 1em 4em; }
	.legal-section h2 { font-size: 1.5em; }
	.legal-more .blog-postnav__item.is--next { grid-column: 1; }
	.archive-index { gap: 3.5em; }
	.archive-year__title { font-size: 2.25em; }
	html body .archive-row { grid-template-columns: minmax(0, 1fr) 1em; gap: .35em 1em; padding: 1.25em 0; }
	.archive-row__date { grid-column: 1; grid-row: 1; }
	.archive-row__title { grid-column: 1; grid-row: 2; font-size: 1.25em; }
	.archive-row__cat { grid-column: 1; grid-row: 3; text-align: left; }
	.archive-row svg { grid-column: 2; grid-row: 1 / span 3; align-self: center; }
	.footer-copy { flex-wrap: wrap; row-gap: .4em; }
	.footer-copy__legal { gap: .25em 1.25em; }
}
@media (prefers-reduced-motion: reduce) {
	html body .archive-row, .archive-row svg { transition: none; }
	html body .archive-row:hover { padding-left: 0; }
	.archive-row:hover svg { transform: none; }
}
