/*
Theme Name: IncomeBrief
Description: Editorial news theme for retirement and investing coverage. Built-in support for clearly labeled sponsored features: disclosure flags, a fund-at-a-glance rail, sources, disclosures, article narration, and block patterns for callouts, illustrative math, allocations and comparison tables.
Version: 1.1.1
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: incomebrief
Tags: news, blog, two-columns, three-columns, right-sidebar, custom-menu, custom-logo, featured-images, block-patterns, editor-style, sticky-post
*/

/* Tokens live in assets/css/content.css so the block editor shares them. */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ib-paper);color:var(--ib-text);font-family:var(--ib-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:inherit}
button{font:inherit}
:focus-visible{outline:2px solid var(--ib-accent);outline-offset:3px}
.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!important;width:1px;word-wrap:normal!important}
.skip-link:focus{clip:auto;clip-path:none;height:auto;width:auto;left:12px;top:12px;z-index:1000;background:#fff;color:var(--ib-ink);padding:10px 16px;font-weight:700}

/* ---------- Utility strip ---------- */
.ib-utility{background:var(--ib-black);color:#ebe7e0;font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.ib-utility-inner{max-width:var(--ib-wrap);margin:0 auto;padding:7px 20px;display:flex;justify-content:space-between;gap:16px}
.ib-utility-sep{color:#857f76;margin:0 7px}

/* ---------- Masthead ---------- */
.ib-masthead{padding:24px 20px 16px;text-align:center}
.ib-brand-wrap{margin:0;font-size:inherit;font-weight:inherit}
.ib-brand{display:inline-flex;align-items:flex-start;text-decoration:none;color:var(--ib-ink);font-family:var(--ib-serif);font-weight:700;font-size:40px;line-height:1;letter-spacing:-.025em;text-transform:uppercase}
.ib-brand-prefix{font-family:var(--ib-sans);font-size:9px;font-weight:700;letter-spacing:.12em;margin:3px 5px 0 0}
.ib-brand-dot{color:var(--ib-accent)}
.ib-tagline{margin:9px 0 0;font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--ib-muted);font-weight:600}
.custom-logo{max-height:64px;width:auto;display:block;margin:0 auto}

/* ---------- Primary navigation ---------- */
.ib-nav{border-top:1px solid var(--ib-rule);border-bottom:1px solid var(--ib-rule);background:var(--ib-paper);position:sticky;top:0;z-index:50}
.admin-bar .ib-nav{top:32px}
.ib-nav-inner{max-width:var(--ib-wrap);margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:46px}
.ib-menu{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 30px}
.ib-menu li{position:relative}
.ib-menu a{display:block;padding:14px 0 12px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--ib-ink);border-bottom:2px solid transparent}
.ib-menu a:hover,.ib-menu .current-menu-item>a,.ib-menu .current-menu-ancestor>a,.ib-menu .current-cat>a{border-bottom-color:var(--ib-accent)}
.ib-menu .sub-menu{display:none;position:absolute;left:-16px;top:100%;min-width:220px;list-style:none;margin:0;padding:8px 16px;background:var(--ib-paper);border:1px solid var(--ib-rule);z-index:60}
.ib-menu li:hover>.sub-menu,.ib-menu li:focus-within>.sub-menu{display:block}
.ib-menu .sub-menu a{padding:9px 0;border:0;letter-spacing:.06em}
.ib-nav-cta{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ib-accent);text-decoration:none;white-space:nowrap}
.ib-nav-cta:hover{text-decoration:underline;text-underline-offset:3px}
.ib-nav-toggle{display:none;background:none;border:0;padding:12px 0;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ib-ink);cursor:pointer;align-items:center;gap:8px}
.ib-nav-toggle svg{width:16px;height:16px}

/* ---------- Layout ---------- */
.ib-layout{max-width:calc(var(--ib-article) + var(--ib-rail) + 104px);margin:36px auto 88px;padding:0 20px;display:grid;grid-template-columns:minmax(0,var(--ib-article)) var(--ib-rail);gap:64px;align-items:start}
.ib-layout.has-left-rail{max-width:calc(210px + var(--ib-article) + var(--ib-rail) + 136px);grid-template-columns:210px minmax(0,var(--ib-article)) var(--ib-rail);gap:48px}
.ib-layout--wide{max-width:var(--ib-wrap);grid-template-columns:minmax(0,1fr) var(--ib-rail)}
.ib-layout--full{display:block;max-width:var(--ib-wrap)}
.ib-main{min-width:0}
.ib-rail{min-width:0}
@media (min-height:720px){.ib-rail-sticky{position:sticky;top:72px}}

/* ---------- Article header ---------- */
.ib-disclosure-flag{display:flex;align-items:center;gap:12px;margin:0 0 22px;font-size:9.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ib-muted)}
.ib-disclosure-flag::before{content:"";width:24px;height:2px;background:var(--ib-accent);flex:none}
.ib-kicker{margin:0 0 12px;font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ib-accent)}
.ib-kicker a{text-decoration:none}
.ib-kicker a:hover{text-decoration:underline}
.ib-kicker-sep{margin:0 10px;color:var(--ib-faint)}
.ib-headline{font-family:var(--ib-serif);font-size:clamp(28px,3.6vw,38px);line-height:1.2;letter-spacing:-.02em;font-weight:700;color:var(--ib-ink);margin:0 0 16px}
.ib-dek{font-size:16.5px;line-height:1.6;color:var(--ib-muted);margin:0 0 24px;max-width:600px}
.ib-byline-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--ib-rule);border-bottom:1px solid var(--ib-rule);margin-bottom:24px}
.ib-avatar{width:34px;height:34px;border-radius:50%;background:var(--ib-ink);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;letter-spacing:.04em;flex:none}
.ib-avatar img{border-radius:50%;width:34px;height:34px}
.ib-byline{font-size:12.5px;color:var(--ib-text)}
.ib-byline strong{font-weight:700;color:var(--ib-ink)}
.ib-meta{font-size:10px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--ib-faint);margin-top:2px}
.ib-meta .dot{margin:0 7px}
.ib-share{margin-left:auto;width:34px;height:34px;border-radius:50%;border:1px solid var(--ib-rule);background:var(--ib-paper);color:var(--ib-ink);display:grid;place-items:center;cursor:pointer;flex:none}
.ib-share:hover{border-color:var(--ib-ink)}
.ib-share svg{width:15px;height:15px}
.ib-share-status{font-size:11px;color:var(--ib-muted)}
.ib-hero{margin:0 0 18px}
.ib-hero img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.ib-hero figcaption{display:flex;justify-content:space-between;gap:16px;font-size:11px;line-height:1.5;color:var(--ib-muted);padding-top:8px}
.ib-hero-credit{color:var(--ib-faint);white-space:nowrap}

/* ---------- Narration bar ---------- */
.ib-audio{display:flex;align-items:center;gap:12px;padding:8px 0 14px;border-bottom:1px solid var(--ib-rule);margin:0 0 22px}
.ib-audio[hidden]{display:none}
.ib-audio-btn{width:30px;height:30px;border-radius:50%;border:0;background:var(--ib-ink);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}
.ib-audio-btn:hover{background:var(--ib-accent)}
.ib-audio-btn svg{width:12px;height:12px}
.ib-audio-label{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ib-ink);white-space:nowrap}
.ib-audio-track{flex:1;height:2px;background:var(--ib-rule);overflow:hidden}
.ib-audio-progress{height:100%;width:0;background:var(--ib-accent);transition:width .3s}
.ib-audio-time{font-size:10.5px;color:var(--ib-faint);white-space:nowrap}

.ib-editors-note{background:var(--ib-soft);border-left:3px solid var(--ib-ink);padding:14px 18px;font-size:12.5px;line-height:1.65;color:var(--ib-muted);margin:0 0 36px}
.ib-editors-note strong{color:var(--ib-ink)}
.ib-editors-note p{margin:0}

/* ---------- Sources & disclosures ---------- */
.ib-sources{border-top:1px solid var(--ib-rule);margin-top:56px;padding-top:18px;font-size:12px;line-height:1.6;color:var(--ib-muted)}
.ib-sources h2,.ib-disclosures h2{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ib-ink);margin:0 0 10px}
.ib-sources ol{padding-left:18px;margin:0}
.ib-sources li{margin-bottom:6px;overflow-wrap:anywhere}
.ib-sources a{color:var(--ib-accent)}
.ib-disclosures{border-top:3px solid var(--ib-ink);background:var(--ib-soft);margin-top:36px;padding:24px 24px 12px;font-size:11.5px;line-height:1.75;color:var(--ib-muted)}
.ib-disclosures p{margin:0 0 12px}
.ib-disclosures strong{color:var(--ib-ink)}
.ib-disclosures a{color:var(--ib-accent)}
.ib-article-footer{margin-top:32px;font-size:12px}
.ib-tags a{display:inline-block;margin:0 6px 6px 0;padding:4px 10px;border:1px solid var(--ib-rule);text-decoration:none;font-weight:600;color:var(--ib-muted)}
.ib-tags a:hover{border-color:var(--ib-ink);color:var(--ib-ink)}

/* ---------- Right rail ---------- */
.ib-fund{border:1px solid var(--ib-rule);padding:18px 18px 16px;background:var(--ib-paper)}
.ib-panel-eyebrow{display:flex;justify-content:space-between;gap:8px;font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ib-muted);margin:0 0 14px}
.ib-panel-eyebrow span{color:var(--ib-faint);font-weight:600}
.ib-fund-name{font-family:var(--ib-serif);font-size:16.5px;line-height:1.4;margin:0 0 10px;color:var(--ib-ink);font-weight:700}
.ib-fund-ticker{display:flex;gap:6px;margin:0 0 18px}
.ib-badge{font-size:9.5px;font-weight:700;letter-spacing:.08em;border:1px solid var(--ib-ink);color:var(--ib-ink);padding:2px 7px}
.ib-badge--muted{border-color:var(--ib-rule);color:var(--ib-faint)}
.ib-fund-metric{border-top:1px solid var(--ib-rule);padding-top:16px;margin-bottom:12px}
.ib-fund-metric strong{display:block;font-family:var(--ib-serif);font-size:46px;line-height:1;color:var(--ib-accent);font-weight:700;letter-spacing:-.02em}
.ib-fund-metric strong span{font-size:.55em;vertical-align:.45em;margin-left:1px}
.ib-fund-metric div{font-size:11.5px;color:var(--ib-muted);margin-top:6px;line-height:1.45}
.ib-fact-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--ib-rule);font-size:11px;line-height:1.4}
.ib-fact-row span{color:var(--ib-muted)}
.ib-fact-row strong{color:var(--ib-ink);text-align:right}
.ib-fund-note{font-size:10.5px;color:var(--ib-faint);line-height:1.55;margin:12px 0 14px}
.ib-btn-block{display:block!important;text-align:center;width:100%}
.ib-doc-link{display:flex;justify-content:space-between;gap:8px;font-size:11px;font-weight:700;color:var(--ib-ink);text-decoration:none;padding-top:12px;margin-top:14px;border-top:1px solid var(--ib-rule)}
.ib-doc-link:hover{color:var(--ib-accent)}
.ib-panel,.ib-widget{margin-top:24px;border:1px solid var(--ib-rule);padding:18px;font-size:13px}
.ib-rail>.ib-widget:first-child,.ib-rail-sticky>:first-child{margin-top:0}
.ib-reading a{display:block;padding:11px 0;border-top:1px solid var(--ib-rule);text-decoration:none;font-size:12.5px;font-weight:700;line-height:1.45;color:var(--ib-ink)}
.ib-reading a:first-of-type{border-top:0;padding-top:0}
.ib-reading a:hover{color:var(--ib-accent)}
.ib-link-cat{display:block;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--ib-accent);margin-bottom:4px}
.ib-widget h2,.ib-widget .wp-block-heading,.ib-widget-title{font-family:var(--ib-sans);font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ib-muted);margin:0 0 12px}
.ib-widget ul{list-style:none;margin:0;padding:0}
.ib-widget li{padding:9px 0;border-top:1px solid var(--ib-rule);line-height:1.45}
.ib-widget li:first-child{border-top:0;padding-top:0}
.ib-widget a{text-decoration:none;font-weight:700;color:var(--ib-ink)}
.ib-widget a:hover{color:var(--ib-accent)}
.ib-widget .wp-block-search__label{display:block;font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ib-muted);margin-bottom:10px}
.ib-widget .wp-block-search__inside-wrapper{display:flex;gap:6px}
.ib-widget .wp-block-search__input{flex:1;min-width:0;padding:9px 10px;border:1px solid var(--ib-rule);font:inherit}
.ib-widget .wp-block-search__button{margin:0;background:var(--ib-ink);color:#fff;border:0;padding:9px 14px;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.ib-rail-left .ib-panel:first-child{margin-top:0}
.ib-related-title{font-family:var(--ib-sans);font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ib-muted);margin:0 0 6px}
.ib-related-list{list-style:none;margin:0;padding:0}
.ib-related-list li{margin:0;padding:11px 0;border-top:1px solid var(--ib-rule)}
.ib-related-list li:first-child{border-top:0}
.ib-related-list a{display:block;text-decoration:none;font-family:var(--ib-serif);font-size:13.5px;font-weight:700;line-height:1.45;color:var(--ib-ink)}
.ib-related-list a:hover{color:var(--ib-accent)}
.ib-related-source{display:block;margin-top:5px;font-family:var(--ib-sans);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ib-faint)}
.ib-rail-left .ib-rail-tip{margin-top:20px}
.ib-rail-tip{margin:0;background:var(--ib-soft);border-left:3px solid var(--ib-accent);font-size:12px;color:var(--ib-muted);padding:14px;line-height:1.55}

/* ---------- Buttons (theme output) ---------- */
a.ib-btn{display:inline-block;background:var(--ib-ink);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:12px 20px;transition:background .2s}
a.ib-btn:hover{background:var(--ib-accent);color:#fff}

/* ---------- Front page & archives ---------- */
.ib-top-story{max-width:var(--ib-wrap);margin:36px auto 0;padding:0 20px}
.ib-top-story>.ib-card{padding-bottom:36px;border-bottom:1px solid var(--ib-rule)}
.ib-top-story .ib-card{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:40px;align-items:center}
.ib-top-story .ib-card-title{font-size:clamp(26px,3.2vw,36px);line-height:1.2;letter-spacing:-.02em}
.ib-top-story .ib-card-excerpt{font-size:15.5px}
.ib-top-story .ib-card.no-media{grid-template-columns:minmax(0,760px)}
.ib-section-title{font-size:10.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ib-ink);border-top:3px solid var(--ib-ink);padding-top:10px;margin:0 0 4px}
.ib-archive-header{margin-bottom:24px}
.ib-archive-header h1{font-family:var(--ib-serif);font-size:30px;line-height:1.2;margin:0 0 8px;color:var(--ib-ink)}
.ib-archive-header .ib-archive-desc{color:var(--ib-muted);font-size:14px}
.ib-card-media{display:block;overflow:hidden;background:var(--ib-soft)}
.ib-card-media img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;transition:transform .4s}
.ib-card:hover .ib-card-media img{transform:scale(1.02)}
.ib-card-title{font-family:var(--ib-serif);font-size:19px;line-height:1.35;font-weight:700;color:var(--ib-ink);margin:0 0 8px}
.ib-card-title a{text-decoration:none}
.ib-card-title a:hover{color:var(--ib-accent)}
.ib-card .ib-kicker{margin-bottom:8px}
.ib-card-excerpt{font-size:14px;line-height:1.6;color:var(--ib-muted);margin:0 0 10px}
.ib-card--row{display:grid;grid-template-columns:200px minmax(0,1fr);gap:22px;padding:22px 0;border-top:1px solid var(--ib-rule)}
.ib-card--row:first-child{border-top:0}
.ib-card--row.no-media{grid-template-columns:1fr}
.ib-card--row .ib-card-media{align-self:start}
.ib-empty{padding:32px 0;color:var(--ib-muted)}

/* Pagination & post navigation */
.pagination,.post-navigation{margin-top:36px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:6px}
.pagination .page-numbers{display:inline-block;min-width:36px;padding:9px 12px;text-align:center;border:1px solid var(--ib-rule);text-decoration:none;color:var(--ib-ink)}
.pagination .page-numbers.current,.pagination a.page-numbers:hover{background:var(--ib-ink);border-color:var(--ib-ink);color:#fff}
.post-navigation .nav-links{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--ib-rule);padding-top:20px}
.post-navigation a{text-decoration:none;color:var(--ib-ink)}
.post-navigation .nav-next{text-align:right}
.post-navigation .ib-nav-sub{display:block;font-family:var(--ib-serif);font-weight:700;font-size:15px;text-transform:none;letter-spacing:0;margin-top:6px;line-height:1.4}

/* Search form */
.search-form .search-field{width:100%;padding:10px 12px;border:1px solid var(--ib-rule);font:inherit;background:var(--ib-paper)}
.search-form .search-submit{background:var(--ib-ink);color:#fff;border:0;padding:12px 20px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.search-form{display:flex;gap:8px}

/* ---------- Footer ---------- */
.ib-footer{background:var(--ib-black);color:#bdb7ae;padding:44px 20px 38px;text-align:center}
.ib-footer-brand .ib-brand{color:#fff;font-size:26px}
.ib-footer-tagline{font-size:12px;color:#9a948b;margin:10px 0 20px}
.ib-footer-menu{list-style:none;margin:0;padding:0;display:flex;justify-content:center;flex-wrap:wrap;gap:8px 24px}
.ib-footer-menu a{font-size:12px;color:#d6d0c7;text-decoration:none}
.ib-footer-menu a:hover{color:#fff;text-decoration:underline}
.ib-footer-note{max-width:720px;margin:24px auto 0;font-size:10.5px;line-height:1.6;color:#8d877e}
.ib-footer-copy{font-size:10.5px;color:#8d877e;margin:14px 0 0}
.ib-mobile-cta{display:none}

/* ---------- Responsive ---------- */
@media (max-width:1120px){
  .ib-layout.has-left-rail{grid-template-columns:minmax(0,var(--ib-article)) var(--ib-rail);max-width:calc(var(--ib-article) + var(--ib-rail) + 104px);gap:56px}
  .ib-rail-left{display:none}
}
@media (max-width:920px){
  .ib-layout,.ib-layout.has-left-rail,.ib-layout--wide{grid-template-columns:minmax(0,1fr);gap:48px;max-width:720px}
  .ib-rail-sticky{position:static}
  .ib-top-story .ib-card{grid-template-columns:1fr;gap:20px}
}
@media (max-width:782px){
  .admin-bar .ib-nav{top:0}
  .ib-nav-toggle{display:inline-flex}
  .ib-menu-wrap{display:none;position:absolute;left:0;right:0;top:100%;background:var(--ib-paper);border-bottom:1px solid var(--ib-rule);padding:4px 20px 12px}
  .ib-menu-wrap.is-open{display:block}
  .ib-menu{flex-direction:column}
  .ib-menu a{padding:12px 0;border-bottom:1px solid var(--ib-rule)}
  .ib-menu .sub-menu{display:block;position:static;border:0;padding:0 0 0 14px;min-width:0}
  .ib-utility-left{display:none}
  .ib-utility-inner{justify-content:center}
}
@media (max-width:600px){
  .ib-brand{font-size:28px}
  .ib-tagline{font-size:8px;letter-spacing:.2em}
  .ib-masthead{padding:18px 16px 12px}
  .ib-layout{padding:0 18px;margin-top:24px}
  .ib-card--row{grid-template-columns:104px minmax(0,1fr);gap:14px}
  .ib-card--row .ib-card-media img{aspect-ratio:1}
  .ib-card--row .ib-card-excerpt{display:none}
  .ib-card-title{font-size:16.5px}
  .ib-audio-label{display:none}
  .ib-disclosures{margin-left:-18px;margin-right:-18px;padding:22px 18px 10px}
  .post-navigation .nav-links{grid-template-columns:1fr}
  .post-navigation .nav-next{text-align:left}
  body.ib-has-mobile-cta .ib-footer{padding-bottom:110px}
  .ib-mobile-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;position:fixed;bottom:0;left:0;right:0;z-index:40;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--ib-rule);backdrop-filter:blur(12px)}
  .ib-mobile-cta span{font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ib-muted)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ---------- Print (handy for compliance review) ---------- */
@media print{
  .ib-utility,.ib-nav,.ib-audio,.ib-share,.ib-rail,.ib-mobile-cta,.post-navigation,.ib-footer-menu{display:none!important}
  .ib-layout{display:block;margin:0;max-width:none}
  .ib-cta,.ib-scenario,.ib-checklist,.ib-disclosures{break-inside:avoid}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9px;color:#666}
}
