/*
Theme Name: Blogsprdp Editorial
Theme URI: https://blogsprdp.com
Description: Editorial child theme for GeneratePress. Fraunces display + Archivo body + IBM Plex Mono labels on a warm-paper/teal palette, with a dark mode. SEO-safe: outputs no titles, meta, canonicals or schema (Yoast keeps full control), preserves permalinks and heading structure, and only adds heading anchors for the table of contents.
Author: Blogsprdp
Template: generatepress
Version: 1.6.0
Requires at least: 6.0
Tested up to: 6.6
License: GNU General Public License v2 or later
Text Domain: blogsprdp-editorial
*/

/* =========================================================================
   1. Design tokens
   ========================================================================= */
:root {
  --paper:#f7f6f2; --surface:#ffffff; --sunk:#efede6;
  --ink:#14191a; --ink-2:#3d4746; --ink-3:#6e7a78;
  --rule:#e0ded6; --rule-soft:#ebe9e2;
  --accent:#0e4f52; --accent-soft:#e2edea;
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --body:"Archivo","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --maxw:1180px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0f1413; --surface:#161c1b; --sunk:#1b2321;
    --ink:#edefec; --ink-2:#b6bfbc; --ink-3:#7e8c89;
    --rule:#26302e; --rule-soft:#1e2624;
    --accent:#5fc7bf; --accent-soft:#153331;
  }
}
:root[data-theme="dark"]{
  --paper:#0f1413; --surface:#161c1b; --sunk:#1b2321;
  --ink:#edefec; --ink-2:#b6bfbc; --ink-3:#7e8c89;
  --rule:#26302e; --rule-soft:#1e2624;
  --accent:#5fc7bf; --accent-soft:#153331;
}

/* =========================================================================
   2. Base
   ========================================================================= */
body.generate-page,
body {
  background-color:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a { color:var(--accent); }
a:hover { opacity:.8; }
h1,h2,h3,h4 { font-family:var(--display); color:var(--ink); text-wrap:balance; }
.grid-container { max-width:var(--maxw); }
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }

.bp-label {
  font-family:var(--mono); font-size:.6875rem; font-weight:500;
  letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3);
}
.bp-tabular { font-variant-numeric:tabular-nums; }

/* =========================================================================
   3. Trust strip + header + wordmark + nav
   ========================================================================= */
.bp-trust-strip {
  background:var(--surface); border-bottom:1px solid var(--rule);
}
.bp-trust-strip .inside { max-width:var(--maxw); margin:0 auto; padding:8px 24px;
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.bp-trust-strip .bp-label b { color:var(--accent); font-weight:600; }

.site-header { background:var(--surface); border-bottom:1px solid var(--rule); }
.site-header .inside-header { align-items:center; }
.main-title, .site-title { font-family:var(--display)!important; font-weight:900!important;
  letter-spacing:-.028em; }
.main-title a, .site-title a { color:var(--ink)!important; }
.main-title a::after { content:"."; color:var(--accent); }

/* Text wordmark (replaces any uploaded logo image, forced in functions.php). */
.bp-wordmark a { font-family:var(--display); font-weight:900; font-size:1.72rem;
  letter-spacing:-.028em; color:var(--ink); text-decoration:none; }
.bp-wordmark span { color:var(--accent); }
/* Hide any leftover logo <img> so only the wordmark/title shows. */
.site-header .site-logo img,
.site-header .header-image,
img.header-image { display:none !important; }
.site-description { font-family:var(--mono); font-size:.5625rem!important;
  letter-spacing:.24em; text-transform:uppercase; color:var(--ink-3)!important; }

.main-navigation, .main-navigation .inside-navigation { background:transparent; }
.main-navigation .main-nav ul li a {
  font-family:var(--body); font-weight:600; font-size:.8125rem; color:var(--ink-2);
  text-transform:none; border-bottom:2px solid transparent;
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.current-menu-item > a {
  color:var(--ink); background:transparent; border-bottom-color:var(--accent);
}

/* Dark mode toggle button */
.bp-theme-toggle {
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; margin-left:8px; border:1px solid var(--rule);
  border-radius:6px; background:var(--paper); color:var(--ink-2); cursor:pointer;
}
.bp-theme-toggle:hover { border-color:var(--accent); color:var(--accent); }
.bp-theme-toggle svg { width:18px; height:18px; }
.bp-theme-toggle .bp-sun { display:none; }
:root[data-theme="dark"] .bp-theme-toggle .bp-sun,
:root:not([data-theme="light"]) .bp-theme-toggle .bp-sun { display:block; }
:root[data-theme="dark"] .bp-theme-toggle .bp-moon,
:root:not([data-theme="light"]) .bp-theme-toggle .bp-moon { display:none; }
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .bp-theme-toggle .bp-sun{display:block}
  :root:not([data-theme="light"]) .bp-theme-toggle .bp-moon{display:none}
}

/* Toggle placed at the top-right in the trust strip */
.bp-strip-right { display:inline-flex; align-items:center; gap:14px; }
.bp-trust-strip .bp-theme-toggle { width:30px; height:30px; margin:0; border-radius:5px; }
.bp-trust-strip .bp-theme-toggle svg { width:15px; height:15px; }

/* =========================================================================
   4. Archive — editorial cards
   ========================================================================= */
.generate-columns-container { margin:0 -16px; }
.generate-columns { padding:0 16px 40px; }
.blog .generate-columns .inside-article,
.archive .generate-columns .inside-article,
.search-results .generate-columns .inside-article {
  background:transparent; box-shadow:none; padding:0;
}
.generate-columns .post-image { margin:0 0 14px; }
.generate-columns .post-image img { border-radius:3px; width:100%; aspect-ratio:16/10; object-fit:cover; }
.generate-columns .entry-header { margin-bottom:6px; }
.generate-columns .entry-title { font-size:1.16rem; font-weight:700; line-height:1.24; letter-spacing:-.016em; }
.generate-columns .entry-title a { color:var(--ink); }
.generate-columns .entry-title a:hover { color:var(--accent); opacity:1; }
.generate-columns .entry-summary p { font-family:var(--body); font-size:.9rem; color:var(--ink-2); }
.generate-columns .entry-meta,
.generate-columns .entry-meta a { font-family:var(--mono); font-size:.625rem; text-transform:uppercase;
  letter-spacing:.06em; color:var(--ink-3); }

/* category tag on cards */
.bp-kicker { display:inline-block; margin-bottom:8px; padding:3px 8px; border-radius:3px;
  background:var(--accent-soft); color:var(--accent);
  font-family:var(--mono); font-size:.5625rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }

/* Section heading on archive/blog */
.page-header, .bp-section-head {
  border-bottom:2px solid var(--ink); padding-bottom:11px; margin-bottom:26px;
}

/* Homepage featured lead: the first post reads as a large hero, the rest as a
   grid — mirrors the headless home without a risky template override.
   (Requires GeneratePress Blog → Columns enabled.) */
.home .generate-columns-container > .generate-columns:first-child,
.blog .generate-columns-container > .generate-columns:first-child {
  width:100% !important; max-width:100% !important; flex:0 0 100% !important;
  padding-bottom:44px; margin-bottom:8px; border-bottom:1px solid var(--rule);
}
.home .generate-columns-container > .generate-columns:first-child .post-image img,
.blog .generate-columns-container > .generate-columns:first-child .post-image img {
  aspect-ratio:21/9;
}
.home .generate-columns-container > .generate-columns:first-child .entry-title,
.blog .generate-columns-container > .generate-columns:first-child .entry-title {
  font-size:clamp(1.9rem,3.8vw,2.9rem); line-height:1.05; letter-spacing:-.03em;
}
.home .generate-columns-container > .generate-columns:first-child .entry-summary p,
.blog .generate-columns-container > .generate-columns:first-child .entry-summary p {
  font-size:1.0625rem; max-width:60ch;
}

/* =========================================================================
   5. Single post — editorial prose
   ========================================================================= */
.single .entry-header .entry-title,
.page .entry-header .entry-title {
  font-size:clamp(2.05rem,4.1vw,3.05rem); font-weight:900; line-height:1.04; letter-spacing:-.032em;
}
.single .entry-header, .page .entry-header { max-width:none; }
.single-featured-image-header img { border-radius:3px; }

.entry-meta, .entry-meta a { font-family:var(--body); font-size:.8125rem; color:var(--ink-3); }
.entry-meta a { color:var(--accent); }

.single .entry-content, .page .entry-content {
  font-family:var(--body); font-size:1.125rem; line-height:1.78; color:var(--ink-2);
}
.single .entry-content > * + *, .page .entry-content > * + * { margin-top:1.375rem; }
.entry-content h2 { font-family:var(--display); font-weight:700; font-size:1.62rem; line-height:1.2;
  letter-spacing:-.02em; color:var(--ink); margin-top:2.625rem; }
.entry-content h3 { font-family:var(--body); font-weight:700; font-size:1.125rem; color:var(--ink); margin-top:1.875rem; }
.entry-content strong { color:var(--ink); font-weight:600; }
.entry-content a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.entry-content blockquote {
  border-left:3px solid var(--accent); padding:.25rem 0 .25rem 1.375rem; margin:2rem 0;
  font-family:var(--display); font-weight:600; font-size:1.35rem; line-height:1.4;
  letter-spacing:-.015em; color:var(--ink); font-style:normal;
}
.entry-content img { border-radius:3px; }
.entry-content figcaption { font-family:var(--mono); font-size:.6875rem; color:var(--ink-3); text-align:center; }
.entry-content table { width:100%; border-collapse:collapse; font-size:.9375rem; }
.entry-content th, .entry-content td { padding:.65rem 1rem; border-bottom:1px solid var(--rule-soft); text-align:left; }
.entry-content th { font-family:var(--mono); font-size:.625rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-3); background:var(--sunk); }
.entry-content pre { background:var(--ink); color:var(--paper); border-radius:6px; padding:1.2rem 1.4rem;
  font-family:var(--mono); font-size:.875rem; }
.entry-content code { background:var(--sunk); color:var(--accent); padding:.15rem .4rem; border-radius:4px;
  font-family:var(--mono); font-size:.875em; }
.entry-content pre code { background:transparent; color:inherit; padding:0; }
.entry-content hr { border:0; height:1px; background:var(--rule); margin:3rem 0; }

/* Table of contents (injected) */
.bp-toc { border:1px solid var(--rule); border-radius:4px; background:var(--surface); padding:16px 18px; margin:0 0 28px; }
.bp-toc > strong { display:block; font-family:var(--mono); font-size:.625rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); margin-bottom:10px; }
.bp-toc ol { list-style:none; margin:0; padding:0; counter-reset:bp; }
.bp-toc li { margin:0; }
.bp-toc a { display:block; padding:4px 0 4px 12px; border-left:2px solid var(--rule);
  font-size:.875rem; line-height:1.4; color:var(--ink-2); text-decoration:none; }
.bp-toc a:hover, .bp-toc a.is-active { border-left-color:var(--accent); color:var(--ink); opacity:1; }
.bp-toc .lvl-3 a { padding-left:24px; font-size:.8125rem; }

/* Author box */
.bp-author-box { display:grid; grid-template-columns:56px 1fr; gap:16px;
  border:1px solid var(--rule); border-radius:4px; background:var(--surface); padding:20px; margin:38px 0; }
.bp-author-box img { width:56px; height:56px; border-radius:50%; object-fit:cover; }
.bp-author-box h4 { font-family:var(--display); font-weight:700; font-size:1.05rem; margin:0; }
.bp-author-box p { font-size:.8125rem; color:var(--ink-2); margin:6px 0 0; }
.bp-author-box a { font-family:var(--mono); font-size:.6875rem; text-transform:uppercase; letter-spacing:.1em;
  text-decoration:underline; text-underline-offset:2px; }

/* Related posts */
.bp-related { margin-top:44px; padding-top:26px; border-top:2px solid var(--ink); }
.bp-related h3 { font-size:1.32rem; font-weight:700; letter-spacing:-.015em; margin:0 0 22px; }
.bp-related-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px; }
.bp-related-grid .bp-rel img { width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:3px; margin-bottom:10px; }
.bp-related-grid .bp-rel a.title { display:block; font-family:var(--display); font-weight:700; font-size:1.05rem;
  line-height:1.24; color:var(--ink); text-decoration:none; }
.bp-related-grid .bp-rel a.title:hover { color:var(--accent); }

/* =========================================================================
   6. Sidebar widgets
   ========================================================================= */
.widget-area .widget { background:transparent; padding:0 0 28px; }
.widget-area .widget .widget-title {
  font-family:var(--mono); font-size:.625rem; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-3); border-bottom:1px solid var(--rule);
  padding-bottom:9px; margin-bottom:12px;
}
.widget-area a { color:var(--ink-2); }
.widget-area a:hover { color:var(--accent); opacity:1; }
.widget-area ul { list-style:none; margin:0; padding:0; }
.widget-area li { padding:6px 0; border-bottom:1px solid var(--rule-soft); font-size:.9rem; }
.bp-sidebar-sticky { position:sticky; top:24px; }

/* =========================================================================
   7. Footer
   ========================================================================= */
.site-footer, .site-info { background:var(--surface); border-top:1px solid var(--rule); color:var(--ink-2); }
.bp-footer { max-width:var(--maxw); margin:0 auto; padding:44px 24px 10px;
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:34px; }
.bp-footer h4 { font-family:var(--mono); font-size:.625rem; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-3); margin:0 0 12px; }
.bp-footer .bp-brand { font-family:var(--display); font-weight:900; font-size:1.4rem; color:var(--ink); }
.bp-footer .bp-brand::after { content:"."; color:var(--accent); }
.bp-footer p { font-size:.8125rem; color:var(--ink-2); line-height:1.6; max-width:40ch; }
.bp-footer ul { list-style:none; margin:0; padding:0; }
.bp-footer li { padding:4px 0; }
.bp-footer a { color:var(--ink-2); font-size:.8125rem; }
.bp-footer a:hover { color:var(--accent); opacity:1; }
.site-info .inside-site-info { max-width:var(--maxw); border-top:1px solid var(--rule);
  font-family:var(--mono); font-size:.6875rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); }

/* =========================================================================
   8. Dark-mode element fixes
   ========================================================================= */
:root[data-theme="dark"] .generate-columns .post-image img,
:root:not([data-theme="light"]) .generate-columns .post-image img { filter:none; }

/* =========================================================================
   8b. Layout hardening — makes the theme render correctly even before the
       GeneratePress Customizer options are set (logo size, nav position, etc.)
   ========================================================================= */
/* Header: logo/title on the left, nav on the right, on one row. */
.site-header .inside-header {
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap; padding-top:16px; padding-bottom:16px;
}
.site-branding, .site-logo { margin:0; }
/* Cap an oversized uploaded logo so it sits in the header bar. */
.site-header .site-logo img,
.site-header .header-image,
img.header-image,
.site-header img[class*="logo"] {
  max-height:46px !important; width:auto !important;
}
.main-title, .site-title { font-size:1.6rem !important; line-height:1; margin:0; }

/* Navigation: always a horizontal row, aligned right. */
.main-navigation .inside-navigation { display:flex; justify-content:flex-end; flex-wrap:wrap; }
.main-navigation .main-nav > ul { display:flex !important; flex-wrap:wrap; align-items:center; }
.main-navigation .main-nav > ul > li { float:none !important; }
.main-navigation .main-nav ul li a { padding-top:10px; padding-bottom:10px; }

/* Content: keep the main column full width of the container, never a thin strip. */
.site-content .content-area { width:100%; float:none; }
.separate-containers .site-main { margin:20px 0; }
.one-container .site-content,
.site-content { display:block; }
.inside-article { padding:0; }

/* Keep everything inside the 1180 measure and centered. */
.grid-container { max-width:var(--maxw); margin-left:auto; margin-right:auto; }

/* =========================================================================
   8c. Engagement components (shortcodes + reading aids)
   ========================================================================= */
.bp-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:9999;transition:width .1s}

/* fixed left share rail on single posts (desktop) */
.bp-sharebar{position:fixed;left:max(16px,calc((100vw - var(--maxw))/2 - 56px));top:140px;z-index:50;
  display:flex;flex-direction:column;gap:10px}
.bp-sharebar a,.bp-sharebar button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;
  border:1px solid var(--rule);border-radius:8px;background:var(--surface);color:var(--ink-2);cursor:pointer}
.bp-sharebar a:hover,.bp-sharebar button:hover{border-color:var(--accent);color:var(--accent)}
.bp-sharebar svg{width:18px;height:18px}
@media (max-width:1200px){.bp-sharebar{display:none}}

/* scoped tokens for component accents */
.bp-takeaways,.bp-cmp-wrap,.bp-verdict,.bp-pc,.bp-faq,.bp-inline-news,.bp-trend{--score:#9a4c09;--score-soft:#f6ece0;--good:#1f7a4d;--bad:#b23b3b}
:root[data-theme="dark"] .bp-takeaways,
:root[data-theme="dark"] .bp-cmp-wrap,
:root[data-theme="dark"] .bp-verdict,
:root[data-theme="dark"] .bp-pc,
:root[data-theme="dark"] .bp-trend{--score:#e9a94b;--score-soft:#2a2013;--good:#5fc78b;--bad:#e08a8a}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .bp-takeaways,
  :root:not([data-theme="light"]) .bp-cmp-wrap,
  :root:not([data-theme="light"]) .bp-verdict,
  :root:not([data-theme="light"]) .bp-pc,
  :root:not([data-theme="light"]) .bp-trend{--score:#e9a94b;--score-soft:#2a2013;--good:#5fc78b;--bad:#e08a8a}
}

/* key takeaways */
.bp-takeaways{border:1px solid var(--rule);border-radius:6px;background:var(--surface);padding:20px 22px;margin:28px 0}
.bp-takeaways > strong{display:block;font-family:var(--mono);font-size:.6875rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
.bp-takeaways ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.bp-takeaways li{position:relative;padding-left:26px;font-size:.95rem;color:var(--ink-2)}
.bp-takeaways li::before{content:"\2713";position:absolute;left:0;top:-1px;color:var(--accent);font-weight:700}

/* comparison table */
.bp-cmp-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:6px;margin:28px 0}
table.bp-cmp{width:100%;border-collapse:collapse;font-size:.9rem;min-width:620px;margin:0}
table.bp-cmp th{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
  background:var(--sunk);text-align:left;padding:11px 14px}
table.bp-cmp td{padding:13px 14px;border-top:1px solid var(--rule-soft);vertical-align:middle}
table.bp-cmp .bp-prod{font-family:var(--display);font-weight:700;color:var(--ink)}
table.bp-cmp .bp-rank{font-family:var(--mono);color:var(--ink-3);font-size:.75rem}
.bp-badge{display:inline-block;font-family:var(--mono);font-size:.6rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:2px 7px;border-radius:3px;background:var(--accent-soft);color:var(--accent)}
.bp-scorepill{font-family:var(--mono);font-weight:600;color:var(--score);background:var(--score-soft,#f6ece0);padding:3px 9px;
  border-radius:4px;font-variant-numeric:tabular-nums}
.bp-btn{display:inline-block;background:var(--accent);color:var(--paper)!important;font-weight:600;font-size:.8rem;
  padding:8px 14px;border-radius:5px;white-space:nowrap;text-decoration:none!important}
.bp-btn:hover{opacity:.9}

/* verdict + pros/cons */
.bp-verdict{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;border:1px solid var(--rule);
  border-radius:6px;background:var(--sunk);padding:18px 20px;margin:24px 0}
.bp-bigscore{font-family:var(--mono);font-size:2.3rem;font-weight:600;line-height:1;color:var(--score);font-variant-numeric:tabular-nums}
.bp-bigscore span{font-size:.85rem;color:var(--ink-3)}
.bp-verdict p{margin:0;font-size:.95rem;color:var(--ink-2)}
.bp-verdict strong{display:block;font-family:var(--display);color:var(--ink);font-size:1.05rem;margin-bottom:3px}
.bp-pc{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--rule);border-radius:6px;overflow:hidden;margin:24px 0}
.bp-pc > div{padding:16px 18px}
.bp-pc > div:first-child{border-right:1px solid var(--rule)}
.bp-pc h4{font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px;color:var(--ink-3)}
.bp-pc ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px;font-size:.9rem;color:var(--ink-2)}
.bp-pc li{position:relative;padding-left:18px}
.bp-pc .bp-good li::before{content:"+";position:absolute;left:0;color:var(--good);font-family:var(--mono);font-weight:700}
.bp-pc .bp-bad li::before{content:"\2013";position:absolute;left:0;color:var(--bad);font-family:var(--mono);font-weight:700}

/* inline newsletter */
.bp-inline-news{border:1px dashed var(--accent);border-radius:6px;background:var(--accent-soft);padding:20px 22px;margin:28px 0;text-align:center}
.bp-inline-news h3{font-size:1.25rem;font-weight:700;margin:0}
.bp-inline-news p{margin:6px 0 14px;font-size:.9rem;color:var(--ink-2)}
.bp-inline-news form{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.bp-inline-news input{font-family:var(--body);border:1px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:5px;padding:10px 13px;min-width:230px}
.bp-inline-news button{background:var(--ink);color:var(--paper);border:0;border-radius:5px;padding:10px 18px;font-weight:600;cursor:pointer}

/* FAQ */
.bp-faq{margin:30px 0}
.bp-faq > h2{margin:0 0 6px}
.bp-qa{border-bottom:1px solid var(--rule-soft)}
.bp-qa summary{cursor:pointer;list-style:none;padding:15px 0;font-family:var(--display);font-weight:700;font-size:1.05rem;
  color:var(--ink);display:flex;justify-content:space-between;gap:12px}
.bp-qa summary::-webkit-details-marker{display:none}
.bp-qa summary::after{content:"+";color:var(--accent);font-family:var(--mono)}
.bp-qa[open] summary::after{content:"\2013"}
.bp-qa .bp-a{margin:0 0 15px;font-size:.95rem;color:var(--ink-2)}

/* trending list (sidebar shortcode / widget) */
.bp-trend a{display:grid;grid-template-columns:24px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--rule-soft)}
.bp-trend .bp-n{font-family:var(--mono);font-size:.75rem;font-weight:600;color:var(--ink-3)}
.bp-trend h5{margin:0;font-size:.9rem;font-weight:600;color:var(--ink);font-family:var(--body)}
.bp-trend a:hover h5{color:var(--accent)}

/* =========================================================================
   8d. Archive / homepage card grid for GeneratePress FREE
       (free has no column module, so we grid the post list ourselves)
   ========================================================================= */
.blog .site-main,
.archive .site-main,
.search-results .site-main {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 30px; align-items:start;
}
/* page header, pagination, "no results" etc. span the full width */
.blog .site-main > *:not(article),
.archive .site-main > *:not(article),
.search-results .site-main > *:not(article) { grid-column:1 / -1; }

/* each post becomes a flat editorial card */
.blog .site-main > article,
.archive .site-main > article,
.search-results .site-main > article { min-width:0; }
.blog .site-main .inside-article,
.archive .site-main .inside-article,
.search-results .site-main .inside-article {
  display:flex; flex-direction:column; gap:11px; background:transparent; box-shadow:none; border:0; padding:0;
}
.site-main .post-image { margin:0; order:-1; }
.site-main .post-image img { width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:3px; }
.site-main .entry-header { margin:0; }
.site-main .entry-title { font-family:var(--display); font-size:1.16rem; font-weight:700; line-height:1.24;
  letter-spacing:-.016em; margin:0; }
.site-main .entry-title a { color:var(--ink); }
.site-main .entry-title a:hover { color:var(--accent); opacity:1; }
.site-main .entry-summary p,
.site-main .entry-content p { font-size:.92rem; color:var(--ink-2); margin:0; }
.site-main .entry-meta,
.site-main .entry-meta a { font-family:var(--mono); font-size:.625rem; text-transform:uppercase;
  letter-spacing:.06em; color:var(--ink-3); }
.site-main .read-more,
.site-main .more-link { font-family:var(--mono); font-size:.68rem; text-transform:uppercase;
  letter-spacing:.08em; color:var(--accent); text-decoration:none; }

/* first post = featured lead, full width + larger */
.blog .site-main > article:first-of-type,
.archive .site-main > article:first-of-type,
.search-results .site-main > article:first-of-type {
  grid-column:1 / -1; padding-bottom:40px; border-bottom:1px solid var(--rule);
}
.blog .site-main > article:first-of-type .post-image img,
.archive .site-main > article:first-of-type .post-image img { aspect-ratio:21/9; }
.blog .site-main > article:first-of-type .entry-title,
.archive .site-main > article:first-of-type .entry-title {
  font-size:clamp(1.9rem,3.8vw,2.9rem); line-height:1.05; letter-spacing:-.03em;
}
.blog .site-main > article:first-of-type .entry-summary p { font-size:1.0625rem; max-width:62ch; }

@media (max-width:700px){
  .blog .site-main,.archive .site-main,.search-results .site-main { grid-template-columns:1fr; }
}

/* =========================================================================
   8e. Editorial templates (home.php / single.php) — the exact layout
   ========================================================================= */
#primary.content-area { width:100%; max-width:100%; padding:0; float:none; }
.bp-home-area, .bp-single-area { width:100%; }

/* home uses home.php, so neutralise the archive CSS grid on .blog */
.blog .site-main { display:block; }
.blog .site-main > * { grid-column:auto; }

/* ---- homepage ---- */
.bp-home { max-width:var(--maxw); margin:0 auto; padding:10px 24px 48px; }
.bp-home-head { padding:14px 0 2px; }
.bp-home-eyebrow { font-family:var(--mono); font-size:.6875rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin:0; }
.bp-home-h1 { font-family:var(--display); font-weight:900; font-size:clamp(1.9rem,3.6vw,2.6rem); letter-spacing:-.03em; margin:8px 0 0; color:var(--ink); }
.bp-home-deck { margin:10px 0 0; max-width:60ch; color:var(--ink-2); font-size:.95rem; }

.bp-lead { display:grid; grid-template-columns:1.06fr .94fr; gap:44px; align-items:start; border-bottom:1px solid var(--rule); padding:26px 0 32px; margin-top:18px; }
.bp-eyebrow { display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:.6875rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); text-decoration:none; }
.bp-eyebrow::before { content:""; width:22px; height:1px; background:var(--accent); }
.bp-lead-title { font-family:var(--display); font-weight:900; font-size:clamp(2rem,4vw,3rem); line-height:1.04; letter-spacing:-.032em; margin:14px 0 0; }
.bp-lead-title a { color:var(--ink); text-decoration:none; }
.bp-lead-title a:hover { color:var(--accent); opacity:1; }
.bp-lead-deck { margin:14px 0 0; font-size:1.0625rem; color:var(--ink-2); max-width:52ch; }
.bp-lead-meta { display:block; margin-top:16px; font-size:.8125rem; color:var(--ink-3); }
.bp-lead-meta strong { color:var(--ink); }
.bp-lead-img { display:block; border-radius:4px; overflow:hidden; }
.bp-lead-img img { width:100%; aspect-ratio:5/4; object-fit:cover; display:block; }

.bp-home-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:48px; padding-top:30px; }
.bp-sechead { border-bottom:2px solid var(--ink); padding-bottom:11px; margin-bottom:24px; }
.bp-sechead h2 { font-family:var(--display); font-size:1.32rem; font-weight:700; letter-spacing:-.015em; margin:0; }
.bp-cards { display:grid; grid-template-columns:1fr 1fr; gap:34px 30px; }
.bp-card { display:flex; flex-direction:column; gap:11px; min-width:0; }
.bp-card-img { display:block; border-radius:3px; overflow:hidden; }
.bp-card-img img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.bp-kicker { align-self:flex-start; }
.bp-card-title { font-family:var(--display); font-size:1.16rem; font-weight:700; line-height:1.24; letter-spacing:-.016em; margin:0; }
.bp-card-title a { color:var(--ink); text-decoration:none; }
.bp-card-title a:hover { color:var(--accent); }
/* no stray link underline on any card/title link */
.bp-lead-title a, .bp-card-title a, .site-main .entry-title a { text-decoration:none; }
.bp-card-excerpt { margin:0; font-size:.9rem; color:var(--ink-2); }
.bp-card-meta { font-family:var(--mono); font-size:.625rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-3); }
.bp-pagination { margin-top:36px; }

/* shared rail */
.bp-rail, .bp-side-rail { display:flex; flex-direction:column; gap:26px; align-self:start; position:sticky; top:90px; }
.bp-rail-h { font-family:var(--mono); font-size:.625rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); border-bottom:1px solid var(--rule); padding-bottom:9px; margin:0 0 10px; }
.bp-rail-p { font-size:.8125rem; line-height:1.6; color:var(--ink-2); margin:0; }
.bp-rail-link { display:inline-block; margin-top:10px; font-family:var(--mono); font-size:.6875rem; text-transform:uppercase; letter-spacing:.1em; color:var(--accent); text-decoration:underline; text-underline-offset:2px; }
.bp-cats ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:7px; }
.bp-cats li { margin:0; }
.bp-cats a { border:1px solid var(--rule); border-radius:999px; padding:5px 11px; font-size:.75rem; color:var(--ink-2); text-decoration:none; }
.bp-cats a:hover { border-color:var(--accent); color:var(--accent); }

/* ---- single post ---- */
.bp-single { max-width:var(--maxw); margin:0 auto; padding:6px 24px 48px; }
.bp-crumbs { font-family:var(--mono); font-size:.6875rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-3); display:flex; gap:8px; flex-wrap:wrap; padding-top:14px; }
.bp-crumbs a { color:var(--accent); text-decoration:none; }
.bp-single-head { max-width:760px; }
.bp-single .bp-eyebrow { margin-top:16px; }
.bp-single-title { font-family:var(--display); font-weight:900; font-size:clamp(2.05rem,4.1vw,3.05rem); line-height:1.04; letter-spacing:-.032em; margin:14px 0 0; }
.bp-single-byline { display:flex; align-items:center; gap:10px; margin-top:16px; font-size:.8125rem; color:var(--ink-3); }
.bp-single-byline img { width:40px; height:40px; border-radius:50%; object-fit:cover; }
.bp-single-byline a { color:inherit; text-decoration:none; }
.bp-single-byline strong { color:var(--ink); }
.bp-single-hero { margin:22px 0 6px; }
.bp-single-hero img { width:100%; aspect-ratio:2/1; object-fit:cover; border-radius:4px; display:block; }

.bp-single-grid { display:grid; grid-template-columns:200px minmax(0,1fr) 300px; gap:40px; padding-top:26px; align-items:start; }
.bp-toc-rail { position:sticky; top:90px; align-self:start; }
.bp-toc-rail:empty { display:none; }
.bp-article { min-width:0; }

@media (max-width:1080px){
  .bp-single-grid { grid-template-columns:minmax(0,1fr) 300px; }
  .bp-toc-rail { display:none; }
}
@media (max-width:900px){
  .bp-lead { grid-template-columns:1fr; gap:24px; }
  .bp-home-grid { grid-template-columns:1fr; }
  .bp-single-grid { grid-template-columns:1fr; }
  .bp-rail, .bp-side-rail { position:static; }
}
@media (max-width:600px){
  .bp-cards { grid-template-columns:1fr; }
}

/* =========================================================================
   8f. Google Auto Ads — keep injected ads from breaking the homepage grid
   ========================================================================= */
/* Google injects <ins class="adsbygoogle"> (often wrapped in .google-auto-placed).
   Inside a CSS grid they become grid items and misalign; force them full-row. */
ins.adsbygoogle { display:block; max-width:100%; }
.google-auto-placed { margin:18px 0 !important; text-align:center; clear:both; }
.google-auto-placed ins.adsbygoogle { margin-left:auto !important; margin-right:auto !important; }

.bp-cards > .google-auto-placed,
.bp-cards > ins.adsbygoogle,
.bp-feed > .google-auto-placed,
.bp-feed > ins.adsbygoogle,
.bp-home-grid > .google-auto-placed,
.bp-home-grid > ins.adsbygoogle {
  grid-column:1 / -1 !important; width:100% !important;
  margin-left:0 !important; margin-right:0 !important;
}

/* keep sidebar / rail ads inside their narrow column */
.bp-rail ins.adsbygoogle, .bp-rail .google-auto-placed,
.bp-side-rail ins.adsbygoogle, .bp-side-rail .google-auto-placed,
.bp-toc-rail ins.adsbygoogle { max-width:100% !important; }

/* manual ad units (homepage) */
.bp-ad { margin:24px 0; text-align:center; }
.bp-ad-label { display:block; font-family:var(--mono); font-size:.5625rem; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); margin-bottom:6px; }
.bp-ad ins.adsbygoogle { display:block; }
.bp-cards > .bp-ad { grid-column:1 / -1; }   /* in-feed ad spans the full row */
.bp-ad-rail ins.adsbygoogle { min-height:250px; }

/* =========================================================================
   9. Responsive
   ========================================================================= */
@media (max-width:881px){
  .bp-footer { grid-template-columns:1fr 1fr; }
  .bp-related-grid { grid-template-columns:1fr; }
}
@media (max-width:600px){
  .bp-footer { grid-template-columns:1fr; }
  body { font-size:16px; }
}
