/*
 * Bismika Allahuma — main.css
 *
 * Design tokens (css_tokens_and_variables.md):
 *   --bismika-color-accent: #4267b2
 *   --bismika-color-dark:   #15274c
 *   --bismika-color-light:  #f0f3f9
 *   --bismika-color-text:   #5d6983
 *   --bismika-color-white:  #ffffff
 *
 * Fonts (css_tokens_and_variables.md):
 *   Bell MT         → /wp-content/uploads/bell-mt.woff           (self-hosted)
 *   Bell MT Bold    → /wp-content/uploads/bell-mt-grassetto.woff (self-hosted)
 *   Adobe Arabic    → /wp-content/uploads/Adobe Arabic Regular.woff (self-hosted)
 *
 * Images (image_mapping.md):
 * (Historical: original logo was /wp-content/uploads/Bismika-Allahuma-New-Logo.jpg — now bundled)
 *   Header bg: assets/images/bg-site.avif (bundled in theme)
 *   Tombstone: /wp-content/bismika-tombstone.png
 */

/* ============================================================
   FONT FACES
   Declared via wp_add_inline_style() in inc/assets.php using
   get_stylesheet_directory_uri() so URLs resolve correctly on
   any install. Fonts are bundled in assets/fonts/.
   ============================================================ */

/* ============================================================
   CSS CUSTOM PROPERTIES
   Spec: css_tokens_and_variables.md — --bismika-* names
   --bm-* aliases kept for backward compatibility with existing rules
   ============================================================ */

:root {
    /* Spec token names */
    --bismika-color-accent:  #4267b2;
    --bismika-color-dark:    #15274c;
    --bismika-color-light:   #f0f3f9;
    --bismika-color-text:    #5d6983;
    --bismika-color-white:   #ffffff;

    --bismika-font-heading: "Bell MT", Georgia, serif;
    --bismika-font-body:    Georgia, "Times New Roman", serif;
    --bismika-font-arabic:  "Adobe Arabic Regular", serif;
    --bismika-font-bold:    "Bell MT Grassetto", "Bell MT", Georgia, serif;

    --bismika-container:    1200px;
    --bismika-gap:          1.5rem;
    --bismika-radius:       0;
    --bismika-border:       1px solid rgba(21, 39, 76, 0.12);

    /* --bm-* aliases (used throughout existing CSS rules) */
    --bm-primary:   var(--bismika-color-accent);
    --bm-dark:      var(--bismika-color-dark);
    --bm-light-bg:  var(--bismika-color-light);
    --bm-text:      var(--bismika-color-text);
    --bm-white:     var(--bismika-color-white);
    --bm-border:    #dce3f1;
    --bm-border-2:  #dbe3f1;
    --bm-border-3:  #e8e8e8;

    --bm-font-primary: var(--bismika-font-body);
    --bm-font-bold:    var(--bismika-font-bold);
    --bm-font-meta:    var(--bismika-font-arabic);

    --bm-max-width:     var(--bismika-container);
    --bm-content-width: 760px;

    /* Colors present in AI design file — not in original DB extract */
    --bm-red:       #be1622;  /* OP-ED label, category accent badges */
    --bm-mid-blue:  #b3c2e0;  /* secondary dividers, section separators */

    /* Override WP/TT25 global styles font preset variables so their
       font-family declarations resolve to our fonts instead of TT25 defaults */
    --wp--preset--font-family--body:    Georgia, "Times New Roman", serif;
    --wp--preset--font-family--heading: "Bell MT", Georgia, serif;
    --wp--preset--font-family--system:  Georgia, "Times New Roman", serif;
}

/* Force body font — TT25 global styles inject font-family with !important
   via --wp--preset--font-family vars. We must match specificity. */
body,
.wp-site-blocks,
.wp-block-post-content {
    font-family: Georgia, "Times New Roman", serif !important;
}

/* ── Read more button — AI spec: white text, navy bg, uppercase pill ── */
.bismika-read-more {
    display: inline-block;
    align-self: flex-start;
    margin-top: 10px;
    padding: 6px 16px;
    background: var(--bm-dark);
    color: #fff !important;
    font-family: var(--bm-font-meta);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .8px;
    text-decoration: none;
    border-radius: 2px;
    transition: background .15s;
    width: fit-content;
}
.bismika-read-more:hover { background: var(--bm-primary); color: #fff !important; }

/* ============================================================
   RESET & BASE
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 16px;
    color: var(--bm-text);
    background: var(--bm-white);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

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

a { color: var(--bm-primary); text-decoration: none; }
a:hover { color: var(--bm-dark); }

ul, ol { padding-left: 1.5em; }

/* ── Neutralise TT25 block wrappers that may appear outside our PHP ── */
.wp-site-blocks {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.wp-site-blocks > .wp-block-group,
.wp-site-blocks > .wp-block-post-content,
.wp-site-blocks > .wp-block-template-part,
.wp-site-blocks > header,
.wp-site-blocks > footer {
    display: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
/* Prevent TT25 from adding its own max-width/padding to post content */
.wp-block-post-content {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ============================================================
   LAYOUT HELPERS
   ============================================================ */

.bismika-container {
    max-width: var(--bm-max-width);
    margin: 0 auto;
    padding: 0 20px;
}

.bismika-site { display: flex; flex-direction: column; min-height: 100vh; }
.bismika-content-area { flex: 1; }
.bismika-main { padding: 24px 0 40px; }

/* ============================================================
   HEADER — tdb_template_5078
   ============================================================ */

/* Row 1: Topbar — #4267b2 */
.bismika-topbar {
    background: var(--bm-primary);
    padding: 6px 0;
}
.bismika-topbar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.bismika-topbar-right {
    font-family: var(--bm-font-meta);
    font-size: 12px;
    color: rgba(255,255,255,.75);
    letter-spacing: .3px;
}


/* Support button — red pill, top-right of topbar (BMK_2025.ai) */
.bismika-support-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--bm-red);
    color: #fff !important;
    font-family: var(--bm-font-meta);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    padding: 5px 14px;
    border-radius: 3px;
    text-decoration: none;
    transition: background .15s;
    white-space: nowrap;
}
.bismika-support-btn:hover { background: #9a111b; color: #fff !important; }
.bismika-support-btn svg { flex-shrink: 0; }

/* Row 2: Branding — bg-site.avif pattern injected via inline style in header.php */
.bismika-branding-row {
    background-color: #dce8f5; /* fallback color while bg-site.avif loads */
    background-repeat: repeat;
    background-size: auto;
    padding: 18px 0;
    border-bottom: 3px solid var(--bm-primary);
}
.bismika-branding-inner {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 0 20px;
}

/* Header search — pushed to far right */
.bismika-header-search {
    margin-left: auto;
    flex-shrink: 0;
}
.bismika-header-search-wrap {
    display: flex;
    align-items: center;
    background: rgba(255,255,255,0.85);
    border: 1px solid var(--bm-border);
    border-radius: 3px;
    overflow: hidden;
}
.bismika-header-search-field {
    border: none;
    background: transparent;
    padding: 7px 12px;
    font-family: var(--bm-font-meta);
    font-size: 13px;
    color: var(--bm-dark);
    width: 220px;
    outline: none;
    line-height: 1;
}
.bismika-header-search-field::placeholder { color: var(--bm-text); opacity: .7; }
.bismika-header-search-field:focus { background: #fff; }
.bismika-header-search-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bm-primary);
    border: none;
    padding: 0 12px;
    height: 34px;
    color: #fff;
    cursor: pointer;
    transition: background .15s;
    flex-shrink: 0;
}
.bismika-header-search-btn:hover { background: var(--bm-dark); }
@media (max-width: 767px) {
    .bismika-header-search { display: none; }
}

/* Logo — height fixed, width auto so rectangular logo renders correctly */
.bismika-logo-img {
    display: block;
    height: 110px;
    width: auto;
    max-width: 280px;
    object-fit: contain;
    background: transparent !important;
    background-color: transparent !important;
}
.bismika-logo-link {
    display: block;
    text-decoration: none;
    line-height: 0;
    background: transparent !important;
    background-color: transparent !important;
}
/* Nuke every possible TT25/WP Core wrapper that could add a white background */
.bismika-logo,
.bismika-logo *,
.bismika-logo figure,
.bismika-logo figcaption,
.bismika-logo div,
.bismika-logo a,
.bismika-logo img,
.bismika-logo .wp-block-site-logo,
.bismika-logo .wp-block-site-logo img,
.bismika-logo .custom-logo-link,
.bismika-logo .custom-logo-link img,
.bismika-footer-logo,
.bismika-footer-logo *,
.bismika-footer-logo img {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
/* Restore essential spacing on the outer logo wrapper only */
.bismika-logo { margin: 0 !important; }
.bismika-logo a,
.bismika-logo a:hover { text-decoration: none; }

/* Branding text — high specificity overrides TT25 global colour rules */
.bismika-header .bismika-branding-text,
.bismika-branding-text {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.bismika-header .bismika-branding-link,
.bismika-branding-link {
    text-decoration: none;
    display: block;
    margin: 0;
    padding: 0;
}
.bismika-header .bismika-site-name,
.bismika-site-name {
    display: block;
    font-family: var(--bismika-font-heading);
    font-size: 4.8rem;
    font-weight: 700;
    color: #15274c !important;
    line-height: 1;
    letter-spacing: -.5px;
    text-decoration: none;
    -webkit-text-fill-color: #15274c;
}
.bismika-header .bismika-branding-link:hover .bismika-site-name,
.bismika-branding-link:hover .bismika-site-name {
    color: #4267b2 !important;
    -webkit-text-fill-color: #4267b2;
}
.bismika-header .bismika-site-tagline,
.bismika-site-tagline {
    display: block;
    font-family: var(--bm-font-meta);
    font-size: 1.05rem;
    font-weight: 600;
    color: #4267b2 !important;
    letter-spacing: .3px;
    -webkit-text-fill-color: #4267b2;
}

/* Row 3: Nav row — white background, uppercase spaced items */
.bismika-nav-row {
    background: var(--bm-white);
    border-bottom: 2px solid var(--bm-primary);
    position: relative;
}

.bismika-primary-nav {
    position: relative; display: flex; align-items: center; position: relative; }

.bismika-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}
.bismika-menu li { position: relative; }
.bismika-menu > li > a {
    display: block;
    font-family: var(--bm-font-meta);
    font-size: 13px;
    font-weight: 700;
    color: var(--bm-dark);
    padding: 10px 14px;
    text-transform: uppercase;
    letter-spacing: .6px;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    transition: border-color .15s, color .15s, background .15s;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 4px;
}
.bismika-menu > li > a:hover,
.bismika-menu > li.current-menu-item > a,
.bismika-menu > li.current-menu-ancestor > a {
    color: var(--bm-primary);
    border-bottom-color: var(--bm-primary);
}

/* Chevron on items with children */
.bismika-menu > li.menu-item-has-children > a::after {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    opacity: .6;
    margin-left: 2px;
    flex-shrink: 0;
    transition: transform .2s, opacity .15s;
}
.bismika-menu > li.menu-item-has-children:hover > a::after {
    transform: rotate(180deg);
    opacity: 1;
}

/* OP-ED nav item — red accent per AI spec (#be1622) */
.bismika-menu > li.menu-item-op-ed > a {
    color: var(--bm-red);
}
.bismika-menu > li.menu-item-op-ed > a:hover {
    color: var(--bm-red);
    border-bottom-color: var(--bm-red);
}
.bismika-menu > li.menu-item-op-ed.current-menu-item > a {
    border-bottom-color: var(--bm-red);
}

/* Dropdown sub-menu */
.bismika-menu .sub-menu {
    display: none;
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    z-index: 999;
    min-width: 200px;
    background: var(--bm-white);
    border: 1px solid var(--bm-border);
    border-top: 2px solid var(--bm-primary);
    list-style: none;
    padding: 4px 0;
    margin: 0;
    box-shadow: 0 6px 16px rgba(21,39,76,.1);
}
/* Nested sub-menu — fly out to the right of the parent item */
.bismika-menu .sub-menu .sub-menu {
    top: 0;
    left: 100%;
}
.bismika-menu .sub-menu li:hover > .sub-menu { display: block; }
.bismika-menu .sub-menu li { position: relative; }
.bismika-menu .sub-menu a {
    display: flex;
    align-items: center;
    padding: 9px 16px;
    font-family: var(--bm-font-meta);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: var(--bm-dark);
    border: none;
    transition: background .12s, color .12s, padding-left .12s;
}
.bismika-menu .sub-menu a:hover {
    background: var(--bm-light-bg);
    color: var(--bm-primary);
    padding-left: 22px;
}
/* Active indicator on sub-menu items */
.bismika-menu .sub-menu .current-menu-item > a {
    color: var(--bm-primary);
    font-weight: 700;
    border-left: 3px solid var(--bm-primary);
    padding-left: 13px;
}
/* Nested sub-menu chevron */
.bismika-menu .sub-menu li.menu-item-has-children > a::after {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 5px solid currentColor;
    opacity: .6;
    margin-left: auto;
}


/* Search toggle in nav bar (BMK_2025.ai — magnifying glass after last nav item) */
.bismika-nav-search-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: var(--bm-dark);
    cursor: pointer;
    padding: 8px;
    margin-left: auto;
    transition: color .15s;
}
.bismika-nav-search-toggle:hover { color: var(--bm-primary); }


/* Nav search dropdown */
.bismika-nav-search-dropdown {
    display: none;
    position: absolute;
    right: 0;
    top: 100%;
    background: var(--bm-white);
    border: 1px solid var(--bm-border);
    box-shadow: 0 4px 12px rgba(21,39,76,.1);
    padding: 8px;
    z-index: 100;
    min-width: 260px;
}
.bismika-nav-search-dropdown.is-open { display: block; }
.bismika-nav-search-field {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--bm-border);
    font-family: var(--bm-font-primary);
    font-size: 14px;
    outline: none;
}
.bismika-nav-search-field:focus { border-color: var(--bm-primary); }

/* Mobile toggle */
.bismika-menu-toggle {
    display: none;
    flex-direction: column;
    gap: 4px;
    padding: 8px;
    background: none;
    border: none;
    cursor: pointer;
    margin-left: auto;
}
.bismika-burger {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--bm-dark);
    transition: transform .2s, opacity .2s;
}

/* ============================================================
   STICKY HEADER — dark #151515, separate zone
   ============================================================ */

.bismika-sticky-header {
    position: fixed;
    top: -80px;
    left: 0;
    right: 0;
    z-index: 1000;
    background: #151515;
    padding: 8px 0;
    transition: top .3s ease;
}
.bismika-sticky-header.is-sticky { top: 0; }
.bismika-sticky-inner {
    display: flex;
    align-items: center;
    gap: 24px;
}
.bismika-sticky-logo {
    font-family: var(--bm-font-bold);
    font-size: 1.1rem;
    color: var(--bm-white);
    font-weight: 700;
    white-space: nowrap;
}
.bismika-sticky-nav .bismika-menu--sticky { display: flex; flex-wrap: nowrap; }
.bismika-sticky-nav .bismika-menu--sticky > li > a {
    color: var(--bm-white);
    font-size: 13px;
    padding: 6px 10px;
    border-bottom: 2px solid transparent;
}
.bismika-sticky-nav .bismika-menu--sticky > li > a:hover { border-bottom-color: var(--bm-white); }

/* ============================================================
   SECTION TITLES (td_block_template_9 :before/:after)
   ============================================================ */

.bismika-section-title {
    position: relative;
    font-family: var(--bismika-font-heading);
    font-size: 32px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--bm-text);
    padding-bottom: 10px;
    margin: 0 0 16px;
    letter-spacing: .3px;
}
.bismika-section-title::before {
    content: "";
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 2px;
    background: var(--bm-border-2);
}
.bismika-section-title::after {
    content: "";
    position: absolute;
    bottom: 0; left: 0;
    width: 150px;
    height: 4px;
    background: var(--bm-primary);
}
.bismika-section-title--sm { font-size: 18px; }

/* ============================================================
   POST CARDS
   ============================================================ */

.bismika-post-card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 20px;
}

.bismika-card-image { display: block; overflow: hidden; }
.bismika-card-image img { width: 100%; transition: transform .3s ease; }
.bismika-card-image:hover img { transform: scale(1.03); }

/* Card body wrapper — flex column so meta stacks at bottom */
.bismika-card-body {
    display: flex;
    flex-direction: column;
    padding: 10px 0 0;
    flex: 1;
    min-width: 0;
}
.bismika-card-body .bismika-post-meta {
    margin-top: auto;
    padding-top: 6px;
}

.bismika-cat-label a {
    display: inline-block;
    font-family: var(--bm-font-meta);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--bm-white);
    background: var(--bm-primary);
    padding: 2px 7px;
    margin-bottom: 6px;
    border-radius: 1px;
    text-decoration: none;
    transition: background .15s;
}
.bismika-cat-label a:hover { background: var(--bm-dark); }

.bismika-card-title {
    font-family: var(--bismika-font-heading);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
    color: #000;
}
.bismika-card-title a { color: inherit; }
.bismika-card-title a:hover { color: var(--bm-dark); }

.bismika-card-title--large { font-size: 24px; font-weight: 700; line-height: 1.3; }

.bismika-card-excerpt {
    font-family: var(--bm-font-primary);
    font-size: 15px;
    color: var(--bm-text);
    line-height: 1.5;
    margin: 0;
}

.bismika-post-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    font-family: var(--bm-font-meta);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .3px;
}
.bismika-date { color: var(--bm-primary); }
.bismika-author { color: var(--bm-text); font-weight: 500; }
.bismika-author::before { content: "·"; margin-right: 6px; }

/* Featured card: float-left image */
.bismika-featured-editorial,
.bismika-post-card--archive-featured {
    flex-direction: row;
    gap: 16px;
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--bm-border-3);
}
.bismika-featured-editorial .bismika-card-image--left,
.bismika-post-card--archive-featured .bismika-card-image--left {
    flex: 0 0 55%;
    max-width: 55%;
}
.bismika-featured-body { flex: 1; }

/* Mini card (sidebar list in Polemics) */
.bismika-post-card--mini {
    flex-direction: row;
    gap: 10px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--bm-border-2);
}
.bismika-card-image--thumb { flex: 0 0 30%; max-width: 30%; }
.bismika-mini-body { flex: 1; }
.bismika-mini-body .bismika-card-title { font-size: 15px; font-weight: 400; }

/* ============================================================
   GRIDS
   ============================================================ */

.bismika-grid { display: grid; gap: 20px; }
.bismika-grid--3col { grid-template-columns: repeat(3, 1fr); }

/* Polemics: 2/3 + 1/3 */
.bismika-split { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; margin-bottom: 16px; }

/* 4-col topic grid */
.bismika-topic-grid { display: grid; gap: 16px; margin-bottom: 12px; }
.bismika-topic-grid--4col { grid-template-columns: repeat(4, 1fr); }

.bismika-topic-col { border-right: 1px solid var(--bm-border-2); padding-right: 12px; }
.bismika-topic-col:last-child { border-right: none; padding-right: 0; }

.bismika-topic-item {
    padding-bottom: 8px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--bm-border-2);
}
.bismika-topic-item h5 {
    font-family: var(--bismika-font-heading);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.3;
    margin: 0 0 4px;
    color: #000;
}
.bismika-topic-item h5 a { color: inherit; }
.bismika-topic-item h5 a:hover { color: var(--bm-primary); }
.bismika-topic-item .bismika-date { font-size: 12px; }

/* Section divider */
.bismika-section-divider {
    border: none;
    border-top: 2px solid var(--bm-border-2);
    margin: 24px 0;
}

/* ============================================================
   ARCHIVE LAYOUT (2/3 + 1/3)
   ============================================================ */

.bismika-archive-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 32px; }
.bismika-archive-title-row { margin-bottom: 20px; }
.bismika-archive-title {
    font-family: var(--bismika-font-heading);
    font-size: 26px;
    font-weight: 700;
    color: #000;
    margin: 0 0 8px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--bm-border-3);
}

.bismika-cat-description {
    font-size: 14px;
    color: var(--bm-text);
    margin: 8px 0 0;
}

.bismika-no-posts { color: var(--bm-text); font-size: 16px; }

/* Pagination */
.page-numbers { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; padding: 20px 0 0; margin: 0; }
.page-numbers a,
.page-numbers span {
    display: flex; align-items: center; justify-content: center;
    width: 36px; height: 36px;
    font-family: var(--bm-font-meta);
    font-size: 13px;
    font-weight: 700;
    color: var(--bm-dark);
    border: 1px solid var(--bm-border);
    border-radius: 2px;
    transition: background .15s, color .15s;
}
.page-numbers a:hover { background: var(--bm-primary); color: var(--bm-white); border-color: var(--bm-primary); }
.page-numbers .current { background: var(--bm-primary); color: var(--bm-white); border-color: var(--bm-primary); }

/* ============================================================
   SIDEBAR
   ============================================================ */

.bismika-sidebar { padding-top: 4px; }

.bismika-sidebar-widget { margin-bottom: 28px; }

.bismika-sidebar-title {
    font-family: var(--bismika-font-heading);
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--bm-dark);
    position: relative;
    padding-bottom: 8px;
    margin: 0 0 12px;
}
.bismika-sidebar-title::before {
    content: "";
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 2px; background: var(--bm-border-2);
}
.bismika-sidebar-title::after {
    content: "";
    position: absolute;
    bottom: 0; left: 0;
    width: 80px; height: 3px;
    background: var(--bm-primary);
}

.bismika-sidebar-list { list-style: none; padding: 0; margin: 0; }
.bismika-sidebar-list li {
    padding: 8px 0;
    border-bottom: 1px solid var(--bm-border-2);
    font-size: 14px;
}
.bismika-sidebar-list li a { color: #000; font-weight: 400; line-height: 1.4; }
.bismika-sidebar-list li a:hover { color: var(--bm-primary); }
.bismika-sidebar-date {
    display: block;
    font-family: var(--bm-font-meta);
    font-size: 12px;
    color: var(--bm-primary);
    text-transform: uppercase;
    margin-top: 3px;
}

/* Widget defaults */
.widget { margin-bottom: 28px; }
.widget-title {
    font-family: var(--bismika-font-heading);
    font-size: 16px;
    font-weight: 700;
    color: var(--bm-dark);
    text-transform: uppercase;
    position: relative;
    padding-bottom: 8px;
    margin: 0 0 12px;
}
.widget-title::before {
    content: "";
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 2px; background: var(--bm-border-2);
}
.widget-title::after {
    content: "";
    position: absolute;
    bottom: 0; left: 0;
    width: 80px; height: 3px;
    background: var(--bm-primary);
}

/* ============================================================
   SINGLE POST — tdb_template_5089
   ============================================================ */

/* ============================================================
   SINGLE POST — tdb_template_5089
   AI spec: 52pt title, 18pt meta, full-width image, 17px body
   ============================================================ */

.bismika-single-article {
    max-width: 100%;
    min-width: 0;
}

/* Single post — full container width */
.bismika-single-wrap {
    margin: 0;
    padding: 24px 0 40px;
}

/* Title — AI: 52pt black */
.bismika-single-title {
    font-family: var(--bismika-font-heading);
    font-size: 38px;
    font-weight: 700;
    line-height: 1.1;
    color: #000;
    margin: 0 0 12px;
}

/* Header block */
.bismika-single-header {
    padding: 0;
    margin-bottom: 16px;
}

/* Meta row — AI: 18pt #15274c uppercase, date | category */
.bismika-single-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0 10px;
    align-items: center;
    font-family: var(--bm-font-meta);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--bm-dark);
    margin-bottom: 10px;
}
.bismika-meta-sep { color: var(--bm-border); }
.bismika-meta-cat a { color: var(--bm-primary); text-decoration: none; }
.bismika-meta-cat a:hover { color: var(--bm-dark); }
.bismika-meta-date { color: var(--bm-dark); }

/* Guest author line */
.bismika-guest-author {
    font-family: var(--bm-font-meta);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--bm-text);
    margin: 0 0 8px;
}

/* Accent bar — AI: 5pt blue line, ~25% width, left-aligned */
.bismika-accent-bar {
    height: 4px;
    width: 22%;
    background: var(--bm-primary);
    margin: 0 0 16px;
}

/* Category pill — overlaid top-right of image, AI: colored badge */
.bismika-single-cat-pill-wrap {
    display: flex;
    justify-content: flex-start;
    margin-bottom: 8px;
}
.bismika-single-cat-pill {
    font-family: var(--bm-font-meta);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #fff;
    background: var(--bm-primary);
    padding: 3px 10px;
    text-decoration: none;
    display: inline-block;
    transition: background .15s;
}
.bismika-single-cat-pill:hover { background: var(--bm-dark); }


/* Category pill overlay on featured image (BMK_2025.ai) */
.bismika-single-image {
    position: relative;
}
.bismika-single-image .bismika-single-cat-pill {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
}

/* Featured image — full width, no decorative border */
.bismika-single-image {
    width: 100%;
    margin: 0 0 20px;
}
.bismika-single-image img { width: 100%; display: block; }
.bismika-image-caption {
    font-family: var(--bm-font-primary);
    font-size: 12px;
    color: var(--bm-text);
    padding: 5px 2px 0;
    font-style: italic;
}

/* Post content — AI: body text, justified */
.bismika-single-content {
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 17px;
    line-height: 1.8;
    color: #000;
    margin: 0 0 24px;
}

/* In-content headings — blue underline from original CSS */
.bismika-single-content h2,
.bismika-single-content h3,
.bismika-single-content h4 {
    font-family: var(--bismika-font-heading);
    color: var(--bm-dark);
    border-bottom: 3px solid var(--bm-primary);
    display: inline-block;
    max-width: 100%;
    padding-bottom: 4px;
    margin-bottom: 12px;
}
.bismika-single-content h1 { font-size: 34px; }
.bismika-single-content h2 { font-size: 28px; }
.bismika-single-content h3 { font-size: 22px; }
.bismika-single-content p  { text-align: justify; margin-bottom: 1em; }
.bismika-single-content a  { color: var(--bm-primary); }
.bismika-single-content a:hover { color: var(--bm-dark); }

/* Blockquote */
.bismika-single-content blockquote {
    border: none;
    margin: 1.5em 0;
    padding: 0;
}
.bismika-single-content blockquote p {
    border-left: 4px solid var(--bm-primary);
    padding-left: 16px;
    font-style: italic;
    color: var(--bm-text);
    margin: 0;
}

/* Divider — AI: 5pt blue accent line at end of content */
.bismika-content-divider {
    border: none;
    border-top: 4px solid var(--bm-primary);
    width: 22%;
    margin: 24px 0 20px;
}

/* Tags footer */
.bismika-single-footer { margin-bottom: 32px; }
.bismika-tags-label {
    display: inline;
    font-family: var(--bm-font-meta);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--bm-text);
    margin-right: 8px;
}
.bismika-tags-list {
    display: inline;
    list-style: none;
    padding: 0;
    margin: 0;
}
.bismika-tags-list li {
    display: inline;
    font-family: var(--bm-font-meta);
    font-size: 12px;
}
.bismika-tags-list li a {
    color: var(--bm-primary);
    text-transform: lowercase;
    text-decoration: none;
}
.bismika-tags-list li a:hover { color: var(--bm-dark); }
.bismika-tags-list li:not(:first-child)::before {
    content: " | ";
    color: var(--bm-border);
}



/* ============================================================
   POST NAVIGATION (prev/next)
   ============================================================ */

.post-navigation {
    margin: 32px 0 24px;
    border-top: 1px solid var(--bm-border);
    border-bottom: 1px solid var(--bm-border);
    padding: 16px 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.nav-previous,
.nav-next {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.nav-next { align-items: flex-end; text-align: right; }
.post-navigation .nav-subtitle {
    display: block;
    font-family: var(--bm-font-meta);
    font-size: 13px;
    font-weight: 700;
    color: var(--bm-dark);
    text-transform: none;
    line-height: 1.3;
}
.post-navigation a {
    font-family: var(--bm-font-meta);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--bm-primary);
    text-decoration: none;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.post-navigation a:hover { color: var(--bm-dark); }
.post-navigation a::before {
    content: attr(rel);
    font-size: 10px;
    color: var(--bm-text);
    letter-spacing: .3px;
}
@media (max-width: 600px) {
    .post-navigation { grid-template-columns: 1fr; }
    .nav-next { align-items: flex-start; text-align: left; }
}

/* ============================================================
   RELATED ARTICLES — adapted from UP6 related-news pattern
   ============================================================ */

.bismika-related {
    margin-top: 40px;
    padding-top: 24px;
    border-top: 3px solid var(--bm-primary);
}

/* Section header — dot + title, matches UP6 section-header pattern */
.bismika-related .bismika-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 24px;
    padding-bottom: 0;
    border-bottom: none;
}
.bismika-related .bismika-section-title::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--bm-primary);
    flex-shrink: 0;
}

/* Grid */
.bismika-related .bismika-grid--3col {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

/* Related post cards — UP6 card style with rounded corners + subtle shadow */
.bismika-related .bismika-post-card {
    background: var(--bm-white);
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--bm-border);
    flex-direction: column;
    gap: 0;
    margin-bottom: 0;
    transition: box-shadow .15s, border-color .15s;
}
.bismika-related .bismika-post-card:hover {
    box-shadow: 0 4px 16px rgba(21,39,76,.1);
    border-color: var(--bm-mid-blue);
}

/* Thumbnail — 16:9 with cover fit */
.bismika-related .bismika-card-image {
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--bm-light-bg);
    display: block;
}
.bismika-related .bismika-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease;
}
.bismika-related .bismika-post-card:hover .bismika-card-image img {
    transform: scale(1.03);
}

/* Card body */
.bismika-related .bismika-card-body,
.bismika-related .bismika-post-card > *:not(.bismika-card-image) {
    padding: 14px 16px;
}
.bismika-related .bismika-cat-label {
    margin-bottom: 6px;
    display: block;
}
.bismika-related .bismika-card-title {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 8px;
}
.bismika-related .bismika-post-meta {
    font-size: 11px;
    color: var(--bm-text);
    gap: 4px;
}

@media (max-width: 767px) {
    .bismika-related .bismika-grid--3col { grid-template-columns: 1fr; }
}

/* ============================================================
   AUTHOR ARCHIVE
   ============================================================ */

.bismika-author-box {
    display: flex;
    gap: 20px;
    padding: 60px 0 32px;
    align-items: flex-start;
}
.bismika-author-avatar {
    border-radius: 50%;
    width: 80px;
    height: 80px;
    flex-shrink: 0;
}
.bismika-author-name {
    font-family: var(--bismika-font-heading);
    font-size: 24px;
    font-weight: 700;
    color: var(--bm-dark);
    margin: 0 0 8px;
}
.bismika-author-bio {
    font-size: 14px;
    color: var(--bm-text);
    line-height: 1.6;
    margin: 0;
}

/* ============================================================
   SEARCH FORM
   ============================================================ */

.search-form { display: flex; margin-bottom: 20px; }
.search-field {
    flex: 1;
    padding: 10px 16px;
    font-family: var(--bm-font-primary);
    font-size: 15px;
    color: var(--bm-text);
    border: 2px solid var(--bm-border);
    border-right: none;
    background: var(--bm-white);
    outline: none;
}
.search-field:focus { border-color: var(--bm-primary); }
.search-submit {
    padding: 10px 20px;
    font-family: var(--bm-font-primary);
    font-size: 14px;
    font-weight: 700;
    color: var(--bm-white);
    background: var(--bm-primary);
    border: 2px solid var(--bm-primary);
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: .3px;
    transition: background .15s;
}
.search-submit:hover { background: var(--bm-dark); border-color: var(--bm-dark); }

.bismika-date-helper {
    font-family: var(--bm-font-primary);
    font-size: 18px;
    font-weight: 700;
    color: var(--bm-dark);
    margin-bottom: 12px;
}

/* ============================================================
   404 PAGE
   ============================================================ */

.bismika-404 { padding: 80px 0 40px; }
.bismika-404-inner { max-width: 700px; margin: 0 auto; text-align: center; }
.bismika-404-title {
    font-family: var(--bismika-font-heading);
    font-size: 48px;
    font-weight: 700;
    color: var(--bm-dark);
    margin-bottom: 16px;
}
.bismika-404-text {
    font-size: 18px;
    color: var(--bm-text);
    margin-bottom: 24px;
}
.bismika-404 .search-form { max-width: 500px; margin: 0 auto 24px; }
.bismika-404-btn { display: inline-block; margin-bottom: 32px; }

/* ============================================================
   BUTTONS
   ============================================================ */

.bismika-btn {
    display: inline-block;
    font-family: var(--bm-font-primary);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .3px;
    padding: 10px 28px;
    border-radius: 50px;
    cursor: pointer;
    transition: background .15s, color .15s;
    text-decoration: none;
}
.bismika-btn--primary {
    background: var(--bm-primary);
    color: var(--bm-white);
    border: 2px solid var(--bm-primary);
}
.bismika-btn--primary:hover { background: var(--bm-dark); border-color: var(--bm-dark); color: var(--bm-white); }

.read-more {
    font-family: var(--bm-font-primary);
    font-size: 13px;
    font-weight: 700;
    color: var(--bm-primary);
    text-transform: uppercase;
}

/* ============================================================
   FOOTER — 4-column grid layout (BMK_2025.ai spec)
   ============================================================ */

.bismika-footer-main {
    background: var(--bm-primary);
    padding: 40px 0 32px;
}

/* 4-column grid */
.bismika-footer-grid {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr 1fr;
    gap: 32px;
    align-items: start;
}

/* Column base */
.bismika-footer-col { color: rgba(255,255,255,.85); }

/* Col 1: Brand + social */
.bismika-footer-col--brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    text-align: center;
}
.bismika-footer-logo-link { display: block; flex-shrink: 0; }
.bismika-footer-logo-img {
    height: 120px;
    width: auto;
    display: block;
    filter: brightness(1.05);
    margin: 0 auto;
}
.bismika-footer-follow-label {
    font-family: var(--bm-font-meta);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .8px;
    color: rgba(255,255,255,.7);
    margin: 8px 0 0;
}
.bismika-footer-social {
    list-style: none;
    padding: 0; margin: 0;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
}
.bismika-footer-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: #fff;
    transition: transform .15s, opacity .15s;
    text-decoration: none;
}
.bismika-footer-social a:hover {
    color: #fff;
    transform: translateY(-2px);
    opacity: .8;
}
.bismika-footer-social svg { width: 20px; height: 20px; }

/* Col 2: About */
.bismika-footer-col--about {}
.bismika-footer-col-title {
    font-family: var(--bm-font-meta);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #fff;
    margin: 0 0 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.bismika-footer-col-title svg { opacity: .8; flex-shrink: 0; }
.bismika-footer-col--about p {
    font-family: var(--bm-font-primary);
    font-size: 13px;
    line-height: 1.7;
    color: rgba(255,255,255,.75);
    margin: 0;
    text-align: justify;
}

/* Col 3 & 4: Link lists */
.bismika-footer-link-list {
    list-style: none;
    padding: 0; margin: 0;
}
.bismika-footer-link-list li { margin-bottom: 6px; }
.bismika-footer-link-list li a {
    font-family: var(--bm-font-meta);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: rgba(255,255,255,.8);
    text-decoration: none;
    transition: color .15s;
    display: block;
    padding: 2px 0;
}
.bismika-footer-link-list li a:hover { color: #fff; }

/* ── Copyright bar ── */
.bismika-footer-copyright {
    background: #0e1d3a;
    padding: 10px 0;
    text-align: center;
}
.bismika-footer-copyright .bismika-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}
.bismika-footer-copyright p {
    font-family: var(--bm-font-primary);
    font-size: 12px;
    color: rgba(255,255,255,.55);
    margin: 0;
    line-height: 1.5;
}
.bismika-footer-copyright a { color: rgba(255,255,255,.7); }
.bismika-footer-copyright a:hover { color: #fff; }


/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 1018px) {
    .bismika-topic-grid--4col { grid-template-columns: repeat(2, 1fr); }
    .bismika-footer-grid { grid-template-columns: 1fr 1fr; }
    .bismika-grid--3col { grid-template-columns: repeat(2, 1fr); }
    .bismika-branding-row { padding: 12px 0; }
    .bismika-site-name { font-size: 2.6rem; }
    .bismika-logo-img { height: 72px; width: auto; }
}

@media (max-width: 767px) {
    .bismika-topbar { display: none; }
    .bismika-site-name { font-size: 2rem; }
    .bismika-site-tagline { font-size: .85rem; letter-spacing: .2px; }
    .bismika-logo-img { height: 56px; width: auto; }

    .bismika-menu { display: none; flex-direction: column; width: 100%; }
    .bismika-menu.is-open { display: flex; }
    .bismika-menu > li > a { padding: 12px 16px; border-bottom: 1px solid var(--bm-border); }
    .bismika-menu .sub-menu { position: static; box-shadow: none; border: none; display: block; padding-left: 16px; }
    .bismika-menu-toggle { display: flex; }

    .bismika-primary-nav {
    position: relative; flex-wrap: wrap; }

    .bismika-grid--3col { grid-template-columns: 1fr; }
    .bismika-topic-grid--4col { grid-template-columns: 1fr; }
    .bismika-topic-col { border-right: none; border-bottom: 1px solid var(--bm-border-2); padding-right: 0; padding-bottom: 12px; }
    .bismika-topic-col:last-child { border-bottom: none; }

    .bismika-archive-layout { grid-template-columns: 1fr; }
    .bismika-split { grid-template-columns: 1fr; }

    .bismika-featured-editorial,
    .bismika-post-card--archive-featured {
        flex-direction: column;
    }
    .bismika-featured-editorial .bismika-card-image--left,
    .bismika-post-card--archive-featured .bismika-card-image--left {
        flex: none;
        max-width: 100%;
    }

    .bismika-single-title { font-size: 25px; }
    .bismika-single-image { max-width: 100%; }

    .bismika-footer-grid { grid-template-columns: 1fr; }
    .bismika-footer-col--brand { align-items: flex-start; text-align: left; }
    .bismika-footer-copyright .bismika-container { flex-direction: column; align-items: flex-start; gap: 4px; }

    .bismika-author-box { flex-direction: column; padding-top: 24px; }
    .bismika-404-title { font-size: 32px; }
}

/* ============================================================
   COMMENTS
   ============================================================ */

.bismika-comments-area {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 2px solid var(--bm-border);
}

.bismika-comments-title {
    font-family: var(--bismika-font-heading);
    font-size: 22px;
    font-weight: 700;
    color: var(--bm-dark);
    position: relative;
    padding-bottom: 10px;
    margin: 0 0 24px;
}
.bismika-comments-title::after {
    content: "";
    position: absolute;
    bottom: 0; left: 0;
    width: 100px; height: 3px;
    background: var(--bm-primary);
}

.bismika-comment-list {
    list-style: none;
    padding: 0; margin: 0;
}
.bismika-comment {
    padding: 20px 0;
    border-bottom: 1px solid var(--bm-border);
}
.bismika-comment-body { display: flex; flex-direction: column; gap: 10px; }
.bismika-comment-meta { display: flex; align-items: flex-start; gap: 12px; }
.bismika-comment-avatar img { border-radius: 50%; flex-shrink: 0; }
.bismika-comment-info { display: flex; flex-direction: column; gap: 2px; }
.bismika-comment-author {
    font-family: var(--bm-font-primary);
    font-size: 15px;
    font-weight: 700;
    color: var(--bm-dark);
}
.bismika-comment-author a { color: var(--bm-dark); }
.bismika-comment-date {
    font-family: var(--bm-font-meta);
    font-size: 12px;
    color: var(--bm-primary);
    text-transform: uppercase;
}
.bismika-comment-awaiting {
    font-size: 12px;
    color: var(--bm-text);
}
.bismika-comment-content {
    font-family: var(--bm-font-primary);
    font-size: 15px;
    line-height: 1.7;
    color: #000;
    padding-left: 60px;
}
.bismika-comment-content p { margin: 0 0 8px; }
.bismika-comment-footer { padding-left: 60px; }
.bismika-reply-link a,
.bismika-edit-link a {
    font-family: var(--bm-font-meta);
    font-size: 12px;
    text-transform: uppercase;
    color: var(--bm-primary);
    margin-right: 12px;
}

/* Nested comments */
.children {
    list-style: none;
    padding-left: 40px;
    margin: 0;
    border-left: 2px solid var(--bm-border);
}

/* Comment reply title */
.bismika-comment-reply-title {
    font-family: var(--bm-font-primary);
    font-size: 20px;
    font-weight: 700;
    color: var(--bm-dark);
    margin: 32px 0 16px;
}

/* Comment form */
.comment-form label {
    display: block;
    font-family: var(--bm-font-meta);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: var(--bm-text);
    margin-bottom: 4px;
    font-weight: 700;
}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
    width: 100%;
    padding: 10px 14px;
    font-family: var(--bm-font-primary);
    font-size: 15px;
    color: var(--bm-text);
    border: 1px solid var(--bm-border);
    background: var(--bm-white);
    outline: none;
    transition: border-color .15s;
    margin-bottom: 16px;
}
.comment-form input:focus,
.comment-form textarea:focus { border-color: var(--bm-primary); }
.comment-form textarea { min-height: 140px; resize: vertical; }
.comment-form .form-submit { margin-top: 4px; }

/* ============================================================
   PAGE ARTICLE
   ============================================================ */

.bismika-page-header {
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--bm-border);
}
.bismika-page-links {
    font-family: var(--bm-font-meta);
    font-size: 13px;
    text-transform: uppercase;
    color: var(--bm-text);
    margin: 20px 0;
}
.bismika-page-links a {
    display: inline-block;
    padding: 4px 10px;
    border: 1px solid var(--bm-border);
    color: var(--bm-primary);
    margin: 0 2px;
}
.bismika-page-links a:hover { background: var(--bm-primary); color: var(--bm-white); }

/* ============================================================
   SCREEN READER TEXT (accessibility)
   ============================================================ */

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}
.screen-reader-text:focus {
    clip: auto !important;
    clip-path: none;
    display: block;
    background: var(--bm-white);
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0,0,0,.1);
    color: var(--bm-dark);
    font-size: 14px;
    font-weight: 700;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

/* Skip link */
.skip-link { position: absolute; }

/* ============================================================
   TOMBSTONE PLACEHOLDER
   bismika-tombstone.png — 233 occurrences in asset_inventory.
   Default image shown for every post without a featured image,
   stored at /wp-content/bismika-tombstone.png (not in uploads).
   ============================================================ */

.bismika-tombstone {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    /* Subtle visual cue that this is a placeholder, not real art */
    opacity: .85;
    filter: grayscale(10%);
}

/* Tombstone in card grid — same aspect ratio as real thumbnails */
.bismika-post-card .bismika-card-image .bismika-tombstone {
    aspect-ratio: 3 / 2;
    object-fit: cover;
}

/* Tombstone in mini sidebar cards */
.bismika-post-card--mini .bismika-card-image--thumb .bismika-tombstone {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}



/* ============================================================
   INFINITE SCROLL — loading indicator + end of results
   ============================================================ */

/* Three-dot pulse loader */
.bismika-scroll-loader {
    display: none;
    justify-content: center;
    align-items: center;
    gap: 6px;
    padding: 24px 0;
    width: 100%;
    grid-column: 1 / -1;
}
.bismika-scroll-loader span {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--bm-primary);
    animation: bismika-pulse 1.2s ease-in-out infinite;
    opacity: .4;
}
.bismika-scroll-loader span:nth-child(1) { animation-delay: 0s; }
.bismika-scroll-loader span:nth-child(2) { animation-delay: .2s; }
.bismika-scroll-loader span:nth-child(3) { animation-delay: .4s; }

@keyframes bismika-pulse {
    0%, 80%, 100% { transform: scale(.8); opacity: .4; }
    40%            { transform: scale(1.2); opacity: 1;  }
}

/* End of results message */
.bismika-scroll-end {
    text-align: center;
    font-family: var(--bm-font-meta);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--bm-text);
    padding: 20px 0 32px;
    opacity: .6;
}
