/*
Theme Name: Booklinker
Theme URI: https://booklinker.com/blog/
Author: Booklinker
Description: The Booklinker blog, with the shared site header, responsive navigation and scroll compaction.
Version: 1.0.0
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: booklinker
*/

#booklinker-header { display: contents; }
.blog-main { width: min(100% - 2 * var(--lc-page-gutter), var(--lc-shell-width)); margin-inline: auto; padding-block: var(--lc-space-3xl) var(--lc-space-6xl); min-height: 65vh; }
.blog-skip-link { position: fixed; inset: var(--lc-space-md) auto auto var(--lc-space-md); z-index: 100; padding: var(--lc-space-md); background: var(--lc-color-surface); transform: translateY(-200%); }
.blog-skip-link:focus { transform: none; }
.blog-noscript-nav { display: flex; flex-wrap: wrap; gap: var(--lc-space-lg); padding: var(--lc-space-lg); }
.blog-heading-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); align-items: end; gap: var(--lc-space-2xl); margin-bottom: var(--lc-space-2xl); }
.blog-intro { max-width: 48rem; }
.blog-eyebrow { color: var(--lc-color-brand-wine-light); font-size: var(--lc-font-size-caption); font-weight: var(--lc-font-weight-semibold); letter-spacing: .08em; text-transform: uppercase; }
.blog-intro h1 { font-family: var(--lc-font-family-display); font-size: var(--lc-font-size-page-title); font-weight: var(--lc-font-weight-light); line-height: 1.2; margin-block: var(--lc-space-md) var(--lc-space-lg); }
.blog-intro > p:last-child { color: var(--lc-color-text-secondary); max-width: 36rem; margin-bottom: 0; }
.blog-search { min-width: 0; }
.blog-results { display: flex; flex-direction: column; gap: var(--lc-space-2xl); }
.blog-grid { display: flex; flex-wrap: wrap; gap: var(--lc-space-xl); align-items: stretch; }
.blog-card { min-width: 0; display: grid; flex: 1 1 calc((100% - 2 * var(--lc-space-xl)) / 3); }
.blog-card__layout { display: flex; flex-direction: column; gap: var(--lc-space-xl); height: 100%; }
.blog-card__media { position: relative; padding: var(--lc-space-lg); border: 1px solid var(--lc-glass-border-soft); border-radius: var(--lc-radius-lg); background: var(--lc-gradient-page-wash-compact), var(--lc-glass-surface-inner); }
.blog-category { color: var(--lc-color-brand-wine); font-size: var(--lc-font-size-metadata); font-weight: var(--lc-font-weight-semibold); text-decoration-color: transparent; text-underline-offset: .2em; }
.blog-category:hover, .blog-category:focus-visible { text-decoration-color: var(--lc-color-brand-accent); }
.blog-card__image { display: block; aspect-ratio: 8 / 5; overflow: hidden; border-radius: var(--lc-radius-lg); background: var(--lc-color-surface-subtle); }
.blog-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.blog-card__body { display: flex; flex-direction: column; align-items: start; gap: var(--lc-space-md); flex: 1; min-width: 0; }
.blog-card h2 { font-family: var(--lc-font-family-display); font-size: var(--lc-font-size-heading-3); font-weight: var(--lc-font-weight-light); line-height: 1.4; margin: 0; overflow-wrap: anywhere; }
.blog-card h2 a { color: var(--lc-color-brand-wine); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: .2em; transition: text-decoration-color var(--lc-duration-standard) var(--lc-easing-standard); }
.blog-card h2 a:hover, .blog-card h2 a:focus-visible { text-decoration-color: var(--lc-color-brand-accent); }
.blog-card__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; color: var(--lc-color-text-secondary); font-size: var(--lc-font-size-small); line-height: 1.7; }
.blog-card__excerpt p { margin: 0; }
.blog-meta { color: var(--lc-color-text-secondary); font-size: var(--lc-font-size-caption); margin: 0; }
.blog-latest { color: var(--lc-color-brand-wine-light); font-weight: var(--lc-font-weight-semibold); }
.blog-read-more { margin-top: auto; padding-top: var(--lc-space-md); }
.blog-card--featured { flex-basis: 100%; }
.blog-card--featured .blog-card__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: var(--lc-space-3xl); }
.blog-card--featured .blog-card__image img { object-fit: contain; }
.blog-card--featured .blog-card__body { padding-block: var(--lc-space-lg); }
.blog-card--featured h2 { font-size: var(--lc-font-size-heading-1); line-height: 1.25; }
.blog-card--featured .blog-card__excerpt { font-size: var(--lc-font-size-body); }
.blog-card--featured .blog-card__layout:not(:has(.blog-card__image)) { grid-template-columns: minmax(0, 1fr); }
.blog-article { max-width: 52rem; margin-inline: auto; }
.blog-article__header { max-width: 46rem; margin-inline: auto; padding-block: var(--lc-space-xl) var(--lc-space-2xl); }
.blog-article__header h1 { font-family: var(--lc-font-family-display); margin-block: var(--lc-space-lg); font-weight: var(--lc-font-weight-light); line-height: 1.25; }
.blog-article__image { margin-bottom: var(--lc-space-3xl); }
.blog-article__image img { width: 100%; height: auto; border-radius: var(--lc-radius-lg); }
.blog-prose { max-width: 46rem; margin-inline: auto; line-height: 1.75; overflow-wrap: anywhere; }
.blog-prose :where(p, ul, ol, dl, figure, blockquote, pre, table) { margin-block: 0 1.25em; }
.blog-prose :where(ul, ol) { padding-inline-start: 1.5em; }
.blog-prose li + li { margin-block-start: .5em; }
.blog-prose li > :last-child { margin-bottom: 0; }
.blog-prose :where(figure) { margin-inline: 0; }
.blog-prose figcaption { color: var(--lc-color-text-secondary); font-size: var(--lc-font-size-small); line-height: 1.5; margin-top: var(--lc-space-md); }
.blog-prose :is(img, video, iframe) { max-width: 100%; }
.blog-prose img { height: auto; }
.blog-prose :is(h1, h2, h3, h4, h5, h6, .elementor-heading-title) { font-family: var(--lc-font-family-display); line-height: 1.35; margin-block: 1.5em .6em; scroll-margin-top: 7rem; text-wrap: pretty; text-shadow: none; }
.blog-prose :is(h1, h2, h3, h4, h5, h6) strong { font-weight: inherit; }
.blog-prose > :first-child, .blog-prose .elementor .elementor-top-section:first-child h1 { margin-top: 0; }
.blog-prose .elementor .elementor-heading-title { font-family: var(--lc-font-family-display); line-height: 1.35; color: var(--lc-color-brand-wine); text-shadow: none; }
.blog-prose .elementor .elementor-widget-text-editor { font-family: var(--lc-font-family-body); font-size: var(--lc-font-size-body); line-height: 1.75; }
.blog-prose .elementor .elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding: 0; }
.blog-prose :is(pre, .wp-block-table) { overflow-x: auto; }
.blog-prose a { color: var(--lc-color-brand-wine); text-decoration-color: var(--lc-color-brand-accent); text-underline-offset: .2em; }
.blog-prose blockquote, .blog-prose .elementor .elementor-widget-blockquote blockquote.elementor-blockquote { background: var(--lc-color-brand-wine-soft); border: 0; border-inline-start: 4px solid var(--lc-color-brand-accent); border-radius: 0 var(--lc-radius-xl) var(--lc-radius-xl) 0; margin: var(--lc-space-3xl) 0; padding: var(--lc-space-2xl); color: var(--lc-color-brand-wine); font-family: var(--lc-font-family-display); font-size: var(--lc-font-size-heading-3); line-height: 1.5; }
.blog-prose blockquote p, .blog-prose .elementor .elementor-widget-blockquote blockquote.elementor-blockquote p.elementor-blockquote__content { font: inherit; line-height: inherit; color: inherit; }
.blog-prose blockquote p:last-child { margin-bottom: 0; }
.blog-prose blockquote :is(cite, .elementor-blockquote__author) { display: block; margin-top: var(--lc-space-xl); font-family: var(--lc-font-family-body); font-size: var(--lc-font-size-small); font-style: normal; font-weight: var(--lc-font-weight-semibold); }
.blog-tip, .blog-promo { margin-block: var(--lc-space-3xl); }
.blog-tip__heading { display: flex; align-items: center; gap: var(--lc-space-md); margin-bottom: var(--lc-space-lg); font-family: var(--lc-font-family-body); font-size: var(--lc-font-size-small); font-weight: var(--lc-font-weight-semibold); letter-spacing: .04em; text-transform: uppercase; }
.blog-tip__content > :last-child { margin-bottom: 0; }
.blog-tip__content ul:has(> li:only-child) { list-style: none; padding: 0; }
.blog-promo__layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: center; gap: var(--lc-space-2xl); }
.blog-promo__media img { width: 100%; height: auto; border-radius: var(--lc-radius-lg); }
.blog-promo__body { display: flex; flex-direction: column; align-items: start; gap: var(--lc-space-xl); }
.blog-prose .blog-promo__eyebrow { color: var(--lc-color-brand-accent); font-family: var(--lc-font-family-body); font-size: var(--lc-font-size-caption); font-weight: var(--lc-font-weight-semibold); letter-spacing: .06em; text-transform: uppercase; margin: 0; }
.blog-prose .blog-promo h3 { margin: 0; color: inherit; font-weight: var(--lc-font-weight-light); }
.blog-promo__copy { font-size: var(--lc-font-size-small); line-height: 1.7; }
.blog-promo__copy > :last-child { margin-bottom: 0; }
.blog-prose table { width: 100%; border-collapse: collapse; font-size: var(--lc-font-size-small); }
.blog-prose :is(th, td) { padding: var(--lc-space-md); border-bottom: 1px solid var(--lc-color-border-soft); text-align: start; }
.blog-prose th { background: var(--lc-color-surface-muted); font-weight: var(--lc-font-weight-semibold); }
.blog-comments :is(input:not([type='checkbox'], [type='hidden'], [type='submit']), textarea) { width: 100%; max-width: 100%; background: var(--lc-control-surface); border: 1px solid var(--lc-control-border); box-shadow: var(--lc-control-shadow-inset); border-radius: var(--lc-radius-lg); padding: var(--lc-space-lg); color: var(--lc-color-text); font: inherit; }
.blog-comments :is(input, textarea):focus-visible { outline: 1.5px solid var(--lc-color-focus-ring); outline-offset: 2px; }
.blog-article__footer, .blog-comments { border-top: 1px solid var(--lc-color-border-soft); padding-top: var(--lc-space-2xl); margin-top: var(--lc-space-3xl); }
.blog-comments textarea { width: 100%; }
.blog-comments label { display: block; }
.blog-comments .comment-form-cookies-consent label { display: inline; }
.blog-comments :is(h2, h3) { font-family: var(--lc-font-family-display); line-height: 1.35; margin-bottom: var(--lc-space-xl); }
.blog-comments > ol, .blog-comments .children { list-style: none; padding: 0; }
.blog-comments .children { margin-inline-start: var(--lc-space-xl); padding-inline-start: var(--lc-space-xl); border-inline-start: 1px solid var(--lc-color-border-soft); }
.blog-comments .comment-body { padding-block: var(--lc-space-2xl); border-bottom: 1px solid var(--lc-color-border-soft); }
.blog-comments .comment-author { display: flex; align-items: center; gap: var(--lc-space-md); }
.blog-comments .avatar { border-radius: var(--lc-radius-circle); }
.blog-comments .says { display: none; }
.blog-comments .comment-metadata { color: var(--lc-color-text-secondary); font-size: var(--lc-font-size-caption); margin-block: var(--lc-space-sm) var(--lc-space-xl); }
.blog-comments .comment-content { line-height: 1.75; }
.blog-comments .comment-content p + p { margin-top: 1em; }
.blog-comments .reply { margin-top: var(--lc-space-lg); }
.blog-comments a { color: var(--lc-color-brand-wine); text-decoration: underline; text-decoration-color: var(--lc-color-border-interactive); text-underline-offset: .2em; }
.blog-comments a:is(:hover, :focus-visible) { text-decoration-color: var(--lc-color-brand-accent); }
.blog-comments .comment-respond { margin: 0; }
.blog-comments > ol { margin-bottom: var(--lc-space-3xl); }
.blog-comments .comment-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lc-space-xl); }
.blog-comments .comment-form > p { grid-column: 1 / -1; }
.blog-comments .comment-form > :is(.comment-form-author, .comment-form-email) { grid-column: auto; }
.blog-comments :is(.comment-notes, .logged-in-as, .comment-form-cookies-consent) { font-size: var(--lc-font-size-small); color: var(--lc-color-text-secondary); line-height: 1.6; }
.blog-comments label { margin-bottom: var(--lc-space-sm); font-size: var(--lc-font-size-small); font-weight: var(--lc-font-weight-semibold); }
.blog-comments .comment-form-cookies-consent { display: flex; align-items: start; gap: var(--lc-space-md); }
.blog-comments input[type='checkbox'] { margin-top: .25em; flex: 0 0 auto; accent-color: var(--lc-color-brand-wine); }
.blog-article__footer > a { color: var(--lc-color-brand-wine); text-decoration: underline; text-underline-offset: .2em; }
.post-navigation .nav-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.post-navigation .nav-next { grid-column: 2; }
.post-navigation a { display: block; height: 100%; padding: var(--lc-space-2xl); border: 1px solid var(--lc-glass-border-soft); border-radius: var(--lc-radius-lg); background: var(--lc-glass-surface-inner); color: var(--lc-color-brand-wine); line-height: 1.6; transition: background-color var(--lc-duration-fast), border-color var(--lc-duration-fast), box-shadow var(--lc-duration-fast); }
.post-navigation a:is(:hover, :focus-visible) { background: var(--lc-glass-surface-full); border-color: var(--lc-color-brand-wine-light); box-shadow: var(--lc-shadow-glass-soft); text-decoration: underline; text-decoration-color: var(--lc-color-brand-accent); }
.navigation { margin-block: var(--lc-space-3xl); }
.nav-links { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--lc-space-lg); }
.blog-footer { background: var(--lc-color-surface-footer); border-top: 1px solid var(--lc-color-border-soft); padding: var(--lc-space-5xl) var(--lc-page-gutter); }
.blog-footer__inner { max-width: var(--lc-shell-width); margin-inline: auto; display: grid; grid-template-columns: 3fr 2fr; gap: var(--lc-space-4xl); }
.blog-footer h2 { font-size: 1.125rem; border-bottom: 1px solid var(--lc-color-border-soft); padding-bottom: var(--lc-space-sm); }
.blog-footer ul { padding: 0; list-style: none; columns: 2; font-size: var(--lc-font-size-small); line-height: 1.9; }
.blog-footer a { text-decoration: none; }
.blog-footer a:hover { text-decoration: underline; }
.blog-footer__brand { text-align: end; font-size: var(--lc-font-size-caption); color: var(--lc-color-text-secondary); }
.blog-footer__brand img { display: inline-block; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 991px) { .blog-card { flex-basis: calc((100% - var(--lc-space-xl)) / 2); } .blog-card--featured { flex-basis: 100%; } }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 767px) {
  .blog-main { width: calc(100% - 2 * var(--lc-space-xl)); padding-top: var(--lc-space-3xl); }
  .blog-heading-row { grid-template-columns: minmax(0, 1fr); gap: var(--lc-space-xl); }
  .blog-grid { gap: var(--lc-space-2xl); }
  .blog-card { flex-basis: 100%; }
  .blog-card--featured .blog-card__layout { grid-template-columns: minmax(0, 1fr); gap: var(--lc-space-xl); }
  .blog-card--featured .blog-card__body { padding-block: 0; }
  .blog-card--featured h2 { font-size: var(--lc-font-size-heading-2); }
  .blog-footer { padding-inline: var(--lc-space-xl); }
  .blog-footer__inner { grid-template-columns: minmax(0, 1fr); gap: var(--lc-space-xl); }
  .blog-footer__brand { text-align: start; }
  .blog-promo__layout { grid-template-columns: minmax(0, 1fr); }
  .blog-promo__media { max-width: 18rem; margin-inline: auto; }
  .blog-comments .comment-form { grid-template-columns: minmax(0, 1fr); }
  .post-navigation .nav-links { grid-template-columns: minmax(0, 1fr); }
  .post-navigation .nav-next { grid-column: auto; }
}
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }

@media (prefers-reduced-motion: reduce) { .blog-card h2 a { transition: none; } }
