body.blog, body.single-post, body.category, body.search { height: auto; min-height: 100vh; overflow-x: clip; }
.blog-refresh {
    --blog-ink: #425563;
    --blog-accent: #4ab7ae;
    --blog-surface: #f2f5f5;
    --blog-sticky-offset: 24px;
    color: var(--blog-ink);
}
.blog-refresh a { color: inherit; }
.blog-refresh a:focus-visible, .blog-refresh button:focus-visible, .blog-refresh input:focus-visible, .blog-refresh textarea:focus-visible {
    outline: 3px solid var(--blog-accent);
    outline-offset: 4px;
}
.blog-intro { margin-bottom: 2rem; padding-bottom: 1.75rem; border-bottom: 1px solid #dce3e5; }
.blog-eyebrow { color: var(--blog-accent); font-size: .85rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.blog-refresh h1 { font-size: clamp(2rem, 4vw, 3.75rem); line-height: 1.1; text-wrap: balance; }
.blog-layout { gap: 2.5rem; align-items: stretch; }
.blog-filters, .blog-results, .blog-article, .blog-sidebar { min-width: 0; }
.blog-results { flex: 1; }
.blog-search { margin-bottom: 2rem; }
.blog-search input { min-width: 0; width: 100%; height: 3rem; padding: .75rem .85rem; line-height: 1.5; border: 1px solid #cbd5d9; border-radius: .5rem 0 0 .5rem; background: white; color: var(--blog-ink); }
.blog-search button { display: flex; align-items: center; justify-content: center; flex: 0 0 3rem; padding: 0; border: 0; border-radius: 0 .5rem .5rem 0; background: var(--blog-accent); color: white; }
.blog-search button svg { display: block; }
.blog-categories h2 { font-size: 1.1rem; margin-bottom: 1rem; }
.blog-categories ul { gap: .5rem; }
.blog-categories a { display: flex; align-items: center; min-height: 2.75rem; padding: .6rem 1rem; border-radius: .5rem; text-decoration: none; background: var(--blog-surface); }
.blog-categories a:hover, .blog-categories a[aria-current] { background: var(--blog-ink); color: white; }
.blog-cards { gap: 1.5rem; }
.blog-card-column { width: 100%; }
.blog-card { overflow: hidden; border-radius: 1rem 0 1rem 0; background: var(--blog-surface); }
.blog-card-link { text-decoration: none; overflow: hidden; }
.blog-card-media { position: relative; width: 100%; aspect-ratio: 16 / 10; flex-shrink: 0; overflow: hidden; }
.blog-card-image, .blog-card-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.blog-card-placeholder { background: linear-gradient(135deg, var(--blog-ink), var(--blog-accent)); }
.blog-card-image { transition: transform .25s ease; }
.blog-card-link:hover .blog-card-image { transform: scale(1.025); }
.blog-card-body { padding: 1.5rem; gap: .8rem; }
.blog-date { font-size: .85rem; color: var(--blog-ink); opacity: .75; }
.blog-card-title { font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.25; margin: 0; text-wrap: balance; }
.blog-card-excerpt { font-size: 1rem; line-height: 1.65; margin-bottom: .6rem; }
.blog-card-more { text-align: right; color: var(--blog-accent); font-weight: 600; font-size: .95rem; padding-top: .5rem; }
.blog-card-more > span { display: inline-block; }
.blog-card-link:focus-visible .blog-card-more > span { animation: blog-arrow-jiggle .55s ease-in-out; }
@media (hover: hover) {
    .blog-card-link:hover .blog-card-more > span { animation: blog-arrow-jiggle .55s ease-in-out; }
}
@keyframes blog-arrow-jiggle {
    0%, 100% { transform: translateX(0); }
    35% { transform: translateX(5px); }
    65% { transform: translateX(1px); }
    80% { transform: translateX(3px); }
}
.blog-section-heading { gap: 1rem; margin-bottom: 1.8rem; }
.blog-section-heading h2 { margin: 0; font-size: 2rem; }
.blog-section-heading > a { margin-left: auto; text-align: right; }
.blog-all-link, .blog-back { font-weight: 600; text-decoration: underline; text-underline-offset: .3em; }
.blog-back { display: inline-block; margin-bottom: 2rem; }
.blog-empty { background: var(--blog-surface); border-radius: 1rem; padding: 2.5rem; }
.blog-empty h2 { font-size: 1.5rem; }
.blog-pagination { margin-top: 2.5rem; }
.blog-pagination .nav-links { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.blog-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.75rem; min-height: 2.75rem; margin: 0; padding: .6rem 1rem; border: 0; border-radius: .4rem; background: var(--blog-surface); text-decoration: none; }
.blog-pagination .current { background: var(--blog-ink); color: white; }
.blog-hero { border-radius: 1rem; overflow: hidden; }
.blog-hero img { display: block; width: 100%; height: auto; }
.blog-article-header { margin: 2rem 0; }
.blog-article-header h1 { margin: 1rem 0 1.25rem; font-size: clamp(1.8rem, 3vw, 2.75rem); line-height: 1.2; }
.blog-standfirst { max-width: 65ch; font-size: 1.1rem; line-height: 1.65; }
.blog-article-categories { font-size: .9rem; color: var(--blog-accent); }
.blog-content { font-size: 1.1rem; line-height: 1.85; overflow-wrap: anywhere; }
.blog-content p, .blog-content ul, .blog-content ol, .blog-content blockquote { max-width: 70ch; }
.blog-content > :first-child { margin-top: 0; }
.blog-content h2, .blog-content h3, .blog-content h4 { margin: 2rem 0 1rem; line-height: 1.3; }
.blog-content h2 { font-size: 1.8rem; }
.blog-content h3 { font-size: 1.5rem; }
.blog-content h4 { font-size: 1.2rem; }
.blog-content ul, .blog-content ol { margin: 1rem 0 1.5rem; padding-left: 1.5rem; }
.blog-content li + li { margin-top: .5rem; }
.blog-content img, .blog-content video, .blog-content iframe { max-width: 100%; }
.blog-content img { height: auto; }
.blog-content figure { max-width: 100%; }
.blog-content a { text-decoration: underline; text-underline-offset: .2em; }
.blog-content table { display: block; max-width: 100%; overflow-x: auto; }
.blog-content .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; }
.blog-content .wp-block-embed__wrapper iframe { position: absolute; width: 100%; height: 100%; }
.blog-content blockquote { border-left: 3px solid var(--blog-accent); padding-left: 1.5rem; }
.blog-enquiry { padding: 1.75rem; background: var(--blog-surface); border-radius: 1rem 0 1rem 0; }
.blog-enquiry h2 { font-size: 1.8rem; margin-bottom: .8rem; }
.blog-enquiry p { font-size: .95rem; line-height: 1.55; margin-bottom: 1rem; }
.blog-enquiry form { margin: 0; width: 100%; }
.blog-enquiry label { display: block; width: 100%; font-size: .9rem; font-weight: 600; }
.blog-enquiry .wpcf7-form-control-wrap { display: block; margin-top: .4rem; }
.blog-enquiry input:not([type=submit]):not([type=checkbox]), .blog-enquiry textarea {
    width: 100%; max-width: 100%; border: 1px solid #cbd5d9; border-radius: .3rem;
    padding: .65rem .8rem; margin: 0; background: white; color: var(--blog-ink); font-size: 1rem;
}
.blog-enquiry textarea { height: 90px; resize: vertical; }
.blog-enquiry input[type=submit] { width: 100%; }
.blog-enquiry input[type=submit]:disabled { opacity: .6; cursor: default; }
.blog-enquiry .wpcf7-spinner { display: none; }
.blog-enquiry form.submitting .wpcf7-spinner { display: block; margin: .75rem auto; }
.blog-enquiry .wpcf7-not-valid-tip { font-size: .85rem; }
.blog-enquiry .wpcf7 form .wpcf7-response-output { margin: 1rem 0 0; padding: .75rem; font-size: .9rem; }
.blog-enquiry .blog-form-note { font-size: .8rem; font-weight: 400; }
.blog-share { padding: 1.5rem .5rem; text-align: right; }
.blog-share h2 { font-size: 1rem; margin-bottom: .75rem; }
.blog-share > div { gap: 1rem; justify-content: flex-end; }
.blog-share a { font-size: .9rem; text-decoration: underline; text-underline-offset: .25em; }
@media (min-width: 768px) {
    .blog-card-column { width: calc((100% - 1.5rem) / 2); }
}
@media (min-width: 992px) {
    .blog-filters { flex: 0 0 22%; position: sticky; top: var(--blog-sticky-offset); align-self: flex-start; max-height: calc(100dvh - var(--blog-sticky-offset) - 1.5rem); overflow-y: auto; }
    .blog-article { flex: 1; }
    .blog-sidebar { flex: 0 0 32%; }
    .blog-latest .blog-card-column { width: calc((100% - 3rem) / 3); }
}
@media (min-width: 992px) {
    .blog-sticky { position: sticky; top: var(--blog-sticky-offset); }
    .blog-enquiry { max-height: max(250px, calc(100dvh - var(--blog-sticky-offset) - 110px)); overflow-y: auto; }
}
@media (min-width: 1200px) {
    .blog-results .blog-card-column { width: calc((100% - 1.5rem) / 2); }
    .blog-results .blog-card-body { min-width: 0; padding: 1.25rem; }
    .blog-results .blog-card-title { font-size: 1.35rem; }
    .blog-results .blog-card-column:nth-child(3n) { width: 100%; }
    .blog-results .blog-card-column:nth-child(3n) .blog-card-link { flex-direction: row !important; }
    .blog-results .blog-card-column:nth-child(3n) .blog-card-media { flex: 0 0 50%; width: 50%; aspect-ratio: auto; min-height: 280px; }
    .blog-results .blog-card-column:nth-child(3n) .blog-card-body { flex: 0 0 50%; width: 50%; }
    .blog-results .blog-card-column:nth-child(3n) .blog-card-title { font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
    .blog-card-image { transition: none; }
    .blog-card-more > span { animation: none !important; }
}

.blog-related { background: #f5f5f5; }
.blog-related .blog-card { background: #fff; }
