/* PluseNews — Light Editorial Theme */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
img { display:block; max-width:100%; }

:root {
  --c-bg:        #f7f5f0;
  --c-white:     #ffffff;
  --c-surface:   #ffffff;
  --c-surface-2: #f2f0eb;
  --c-border:    #e4e0d8;
  --c-border-2:  #ccc9be;
  --c-accent:    #1a6ef5;
  --c-accent-d:  #1458cc;
  --c-text:      #1a1916;
  --c-text-2:    #5a5650;
  --c-muted:     #9b9790;
  --c-success:   #16a34a;
  --font-display:'Lora', Georgia, serif;
  --font-body:   'Plus Jakarta Sans', -apple-system, sans-serif;
  --r-sm:4px; --r-md:8px; --r-lg:14px; --r-xl:20px;
  --ease:cubic-bezier(.4,0,.2,1); --easeOut:cubic-bezier(0,0,.2,1);
  --shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);
  --shadow-lg: 0 12px 32px rgba(0,0,0,.10), 0 4px 8px rgba(0,0,0,.05);
}
body { background:var(--c-bg); color:var(--c-text); font-family:var(--font-body); font-size:1rem; line-height:1.6; min-height:100vh; -webkit-font-smoothing:antialiased; }
.container { width:100%; max-width:1280px; margin:0 auto; padding:0 1.5rem; }

/* Skip & focus */
.skip-link { position:absolute; top:-100%; left:1rem; padding:.4rem 1rem; background:var(--c-accent); color:#fff; border-radius:0 0 var(--r-sm) var(--r-sm); z-index:9999; font-size:.875rem; font-weight:600; transition:top .2s; }
.skip-link:focus { top:0; }
:focus-visible { outline:2px solid var(--c-accent); outline-offset:3px; border-radius:2px; }
:focus:not(:focus-visible) { outline:none; }

/* Progress bar */
#progress-bar { position:fixed; top:0; left:0; height:3px; width:0%; background:var(--c-accent); z-index:9998; opacity:0; pointer-events:none; border-radius:0 2px 2px 0; }

/* ── Header ── */
.header { position:sticky; top:0; z-index:100; background:rgba(247,245,240,.96); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--c-border); }
.header-inner { display:flex; align-items:center; gap:1rem; height:64px; }
.logo { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.logo-mark { color:var(--c-accent); font-size:1.4rem; line-height:1; }
.logo-text { font-family:var(--font-display); font-size:1.45rem; letter-spacing:-.01em; color:var(--c-text); }
.logo-text strong { color:var(--c-accent); font-weight:700; }
.main-nav { display:flex; gap:.125rem; margin-left:auto; }
.nav-link { padding:.4rem .9rem; border-radius:var(--r-sm); font-size:.875rem; font-weight:600; color:var(--c-text-2); transition:color .15s, background .15s; }
.nav-link:hover { color:var(--c-text); background:var(--c-surface-2); }
.nav-link.active { color:var(--c-accent); background:rgba(26,110,245,.08); }
.header-actions { display:flex; align-items:center; gap:.5rem; }
.icon-btn { display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:var(--r-md); color:var(--c-text-2); transition:color .15s, background .15s; }
.icon-btn:hover { color:var(--c-text); background:var(--c-surface-2); }
.search-box { position:absolute; top:65px; left:0; right:0; background:rgba(247,245,240,.98); backdrop-filter:blur(12px); border-bottom:1px solid var(--c-border); padding:.875rem 1.5rem; display:flex; align-items:center; gap:.5rem; box-shadow:var(--shadow-sm); animation:slide-down .15s var(--easeOut) both; }
.search-box[hidden] { display:none; }
@keyframes slide-down { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:none} }
#search-input { flex:1; background:var(--c-white); border:1px solid var(--c-border); border-radius:var(--r-md); padding:.55rem .875rem; color:var(--c-text); font-family:var(--font-body); font-size:.9375rem; }
#search-input::placeholder { color:var(--c-muted); }
#search-input:focus { outline:none; border-color:var(--c-accent); box-shadow:0 0 0 3px rgba(26,110,245,.1); }
.search-clear { font-size:1.2rem; color:var(--c-muted); padding:0 4px; line-height:1; }
.search-clear:hover { color:var(--c-text); }
.refresh-badge { font-size:.72rem; color:var(--c-muted); white-space:nowrap; font-weight:500; }
.hamburger { display:none; flex-direction:column; gap:5px; width:36px; height:36px; align-items:center; justify-content:center; border-radius:var(--r-md); }
.hamburger span { display:block; width:18px; height:1.5px; background:var(--c-text-2); transition:transform .2s, opacity .2s; border-radius:1px; }
.hamburger:hover span { background:var(--c-text); }
.hamburger[aria-expanded="true"] span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.hamburger[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.hamburger[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* ── Tabs ── */
.tabs-wrap { overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; display:flex; padding:0 1.5rem; border-top:1px solid var(--c-border); background:var(--c-white); }
.tabs-wrap::-webkit-scrollbar { display:none; }
.tab-btn { display:flex; align-items:center; gap:7px; padding:.7rem 1rem; font-size:.84rem; font-weight:600; color:var(--c-text-2); white-space:nowrap; border-bottom:2.5px solid transparent; transition:color .15s, border-color .15s; flex-shrink:0; }
.tab-btn:hover { color:var(--c-text); }
.tab-btn.active { color:var(--c-accent); border-bottom-color:var(--cc,var(--c-accent)); }
.tab-pip { width:6px; height:6px; border-radius:50%; background:var(--cc,var(--c-accent)); flex-shrink:0; opacity:.5; transition:opacity .15s; }
.tab-btn.active .tab-pip { opacity:1; }

/* ── Source filter ── */
.source-filter { display:flex; align-items:center; gap:.75rem; padding:1rem 0 .5rem; flex-wrap:wrap; min-height:52px; }
.sf-label { font-size:.7rem; color:var(--c-muted); font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.source-chips { display:flex; gap:.4rem; flex-wrap:wrap; }
.src-chip { font-size:.72rem; font-weight:600; padding:4px 10px; border-radius:100px; border:1px solid var(--c-border); color:var(--c-text-2); background:var(--c-white); cursor:pointer; transition:all .15s; box-shadow:var(--shadow-sm); }
.src-chip:hover { border-color:var(--c-accent); color:var(--c-accent); }
.src-chip.active { background:var(--c-accent); border-color:var(--c-accent); color:#fff; box-shadow:0 2px 8px rgba(26,110,245,.25); }

/* ── Skeleton ── */
@keyframes shimmer { 0%{background-position:-600px 0} 100%{background-position:600px 0} }
.sk { background:linear-gradient(90deg,#ede9e2 25%,#f5f2ec 50%,#ede9e2 75%); background-size:1200px 100%; animation:shimmer 1.8s infinite; border-radius:var(--r-md); }
.feed-skeleton { display:block; }
.feed-skeleton.hidden { display:none; }
.sk-hero { height:280px; border-radius:var(--r-xl); margin:1.25rem 0 1.5rem; }
.sk-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.sk-card { height:220px; border-radius:var(--r-lg); }

/* ── Hero card ── */
.hero-card { display:grid; grid-template-columns:1fr 300px; background:var(--c-white); border:1px solid var(--c-border); border-radius:var(--r-xl); overflow:hidden; cursor:pointer; margin:1.25rem 0 1.75rem; box-shadow:var(--shadow-sm); transition:box-shadow .25s var(--ease), transform .25s var(--ease), border-color .25s; position:relative; }
.hero-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); border-color:var(--c-border-2,#ccc9be); }
.hero-stripe { position:absolute; top:0; left:0; width:4px; height:100%; }
.hero-body { padding:2rem 2.25rem 2rem 2.5rem; display:flex; flex-direction:column; gap:1rem; }
.hero-tags { display:flex; align-items:center; gap:.625rem; }
.cat-pill { display:inline-flex; align-items:center; gap:5px; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; padding:3px 9px 3px 7px; border-radius:100px; border:1px solid; }
.cat-pip { width:5px; height:5px; border-radius:50%; flex-shrink:0; }
.live-badge { font-size:.65rem; font-weight:700; padding:2px 7px; border-radius:var(--r-sm); background:#ef4444; color:#fff; letter-spacing:.06em; animation:pulse-r 2s ease infinite; }
@keyframes pulse-r { 0%,100%{opacity:1} 50%{opacity:.7} }
.hero-title { font-family:var(--font-display); font-size:clamp(1.5rem,2.4vw,2.2rem); font-weight:700; line-height:1.2; letter-spacing:-.02em; color:var(--c-text); }
.hero-desc { font-size:.9375rem; color:var(--c-text-2); line-height:1.65; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.hero-foot { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin-top:auto; }
.hero-vis { background:var(--c-bg); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.vis-char { font-family:var(--font-display); font-size:7rem; font-weight:700; opacity:.1; line-height:1; user-select:none; position:relative; z-index:1; }
.vis-ring { position:absolute; border-radius:50%; border:1px solid; pointer-events:none; }
.ring1{width:100px;height:100px;animation:ring-p 3s ease infinite 0s}
.ring2{width:180px;height:180px;animation:ring-p 3s ease infinite .6s}
.ring3{width:270px;height:270px;animation:ring-p 3s ease infinite 1.2s}
@keyframes ring-p { 0%{transform:scale(.7);opacity:0} 40%{opacity:1} 100%{transform:scale(1.05);opacity:0} }

/* ── Articles grid ── */
.articles-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.article-card { background:var(--c-white); border:1px solid var(--c-border); border-top:3px solid var(--cc,var(--c-accent)); border-radius:var(--r-lg); padding:1.25rem 1.25rem 1rem; cursor:pointer; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:.625rem; transition:box-shadow .2s var(--ease), transform .2s var(--ease), border-color .2s; animation:card-in .3s var(--easeOut) both; }
.article-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
@keyframes card-in { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
.articles-grid .article-card:nth-child(1){animation-delay:20ms}
.articles-grid .article-card:nth-child(2){animation-delay:50ms}
.articles-grid .article-card:nth-child(3){animation-delay:80ms}
.articles-grid .article-card:nth-child(4){animation-delay:110ms}
.articles-grid .article-card:nth-child(5){animation-delay:140ms}
.articles-grid .article-card:nth-child(6){animation-delay:170ms}
.card-top-row { display:flex; align-items:center; gap:5px; }
.src-dot { width:5px; height:5px; border-radius:50%; flex-shrink:0; }
.src-lbl { font-size:.7rem; font-weight:700; color:var(--c-text-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.card-title { font-family:var(--font-display); font-size:1.05rem; font-weight:700; line-height:1.3; color:var(--c-text); letter-spacing:-.01em; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.card-desc { font-size:.8125rem; color:var(--c-text-2); line-height:1.55; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; flex:1; }
.card-foot { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:.375rem; border-top:1px solid var(--c-border); }
.src-badge { font-size:.7rem; font-weight:700; padding:3px 8px; border-radius:100px; background:var(--c-surface-2); border:1px solid var(--c-border); color:var(--c-text-2); white-space:nowrap; }
.flag-tag { font-size:.65rem; padding:2px 7px; border-radius:100px; border:1px solid var(--c-border); color:var(--c-muted); font-weight:600; }
.time-tag { font-size:.68rem; color:var(--c-muted); font-weight:500; white-space:nowrap; }
.bm-btn { width:28px; height:28px; display:flex; align-items:center; justify-content:center; border-radius:var(--r-sm); color:var(--c-muted); flex-shrink:0; transition:color .15s, background .15s; }
.bm-btn:hover { color:var(--c-accent); background:rgba(26,110,245,.06); }
.bm-btn.saved { color:var(--c-accent); }

/* ── Feed footer ── */
.feed-footer { margin-top:2.5rem; display:flex; flex-direction:column; align-items:center; gap:1rem; }
.load-more { padding:.65rem 2.5rem; border:1.5px solid var(--c-border); border-radius:var(--r-md); font-size:.875rem; font-weight:700; color:var(--c-text-2); background:var(--c-white); box-shadow:var(--shadow-sm); transition:all .2s; }
.load-more:hover { border-color:var(--c-accent); color:var(--c-accent); box-shadow:0 2px 8px rgba(26,110,245,.12); }
.feed-partial { font-size:.8125rem; color:#92400e; background:#fffbeb; border:1px solid #fcd34d; border-radius:var(--r-md); padding:.6rem 1rem; text-align:center; width:100%; }
.feed-partial .inline-retry { color:var(--c-accent); font-weight:700; text-decoration:underline; cursor:pointer; font-size:inherit; }
.feed-empty, .feed-error { text-align:center; color:var(--c-text-2); font-size:.9375rem; padding:4rem 1rem; line-height:1.8; }
.feed-error { color:#dc2626; }
.retry-btn { margin-top:1rem; padding:.5rem 1.5rem; border:1.5px solid var(--c-border); border-radius:var(--r-md); font-size:.875rem; font-weight:700; color:var(--c-text-2); background:var(--c-white); cursor:pointer; transition:all .2s; }
.retry-btn:hover { border-color:var(--c-accent); color:var(--c-accent); }

/* ── Modal ── */
.modal-overlay { position:fixed; inset:0; background:rgba(26,25,22,.55); backdrop-filter:blur(4px); z-index:200; display:flex; align-items:center; justify-content:center; padding:1.5rem; animation:ov-in .18s var(--easeOut) both; }
.modal-overlay[hidden] { display:none; }
@keyframes ov-in { from{opacity:0} to{opacity:1} }
.modal { background:var(--c-white); border:1px solid var(--c-border); border-radius:var(--r-xl); width:100%; max-width:640px; max-height:85vh; overflow-y:auto; box-shadow:var(--shadow-lg); animation:mod-in .2s var(--easeOut) both; scrollbar-width:thin; scrollbar-color:var(--c-border) transparent; }
@keyframes mod-in { from{opacity:0;transform:scale(.97) translateY(8px)} to{opacity:1;transform:none} }
.modal-header { display:flex; align-items:center; justify-content:space-between; padding:1rem 1.5rem; border-bottom:1px solid var(--c-border); position:sticky; top:0; background:var(--c-white); z-index:1; }
.modal-meta { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.modal-src-badge { font-size:.7rem; font-weight:700; padding:3px 10px; border-radius:100px; background:var(--c-surface-2); border:1px solid var(--c-border); color:var(--c-text-2); }
.modal-cat { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.modal-time { font-size:.7rem; color:var(--c-muted); font-weight:500; }
.modal-close { width:32px; height:32px; border-radius:var(--r-md); font-size:1.2rem; color:var(--c-text-2); display:flex; align-items:center; justify-content:center; transition:color .15s, background .15s; flex-shrink:0; }
.modal-close:hover { color:var(--c-text); background:var(--c-surface-2); }
.modal-body { padding:1.75rem 2rem 2rem; }
.modal-title { font-family:var(--font-display); font-size:clamp(1.4rem,3vw,1.875rem); font-weight:700; line-height:1.2; letter-spacing:-.02em; color:var(--c-text); margin-bottom:1.125rem; }
.modal-desc { font-size:.9375rem; color:var(--c-text-2); line-height:1.72; margin-bottom:1.75rem; }
.modal-cta { display:inline-flex; align-items:center; gap:.5rem; padding:.65rem 1.5rem; background:var(--c-accent); color:#fff; border-radius:var(--r-md); font-size:.875rem; font-weight:700; box-shadow:0 2px 8px rgba(26,110,245,.28); transition:background .15s, transform .15s; }
.modal-cta:hover { background:var(--c-accent-d); transform:translateY(-1px); }

/* ── Footer ── */
.site-footer { background:var(--c-white); border-top:1px solid var(--c-border); padding:3rem 0 2rem; margin-top:3rem; }
.footer-inner { display:grid; grid-template-columns:1fr auto 1fr; gap:2rem; align-items:start; }
.footer-brand { display:flex; flex-direction:column; gap:.4rem; }
.footer-logo { font-family:var(--font-display); font-size:1.25rem; font-weight:700; color:var(--c-text); }
.footer-brand p { font-size:.8125rem; color:var(--c-muted); line-height:1.6; }
.footer-nav { display:flex; flex-direction:column; gap:.6rem; align-items:center; }
.footer-nav a { font-size:.875rem; font-weight:600; color:var(--c-text-2); transition:color .15s; }
.footer-nav a:hover { color:var(--c-accent); }
.footer-copy { font-size:.75rem; color:var(--c-muted); text-align:right; line-height:1.7; }
.footer-copy a { color:var(--c-accent); font-weight:600; }

/* Ko-fi support button */
.kofi-btn { display:inline-flex; align-items:center; gap:.5rem; padding:.5rem 1.1rem; background:#ff5e5b; color:#fff; border-radius:100px; font-size:.8125rem; font-weight:700; transition:opacity .15s, transform .15s; margin-top:.5rem; width:fit-content; }
.kofi-btn:hover { opacity:.88; transform:translateY(-1px); }
.kofi-btn svg { flex-shrink:0; }

/* Newsletter signup */
.newsletter-bar { background:linear-gradient(135deg, #1a6ef5 0%, #2563eb 100%); padding:2.5rem 0; }
.newsletter-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.newsletter-copy h2 { font-family:var(--font-display); font-size:1.5rem; font-weight:700; color:#fff; margin-bottom:.375rem; }
.newsletter-copy p { font-size:.9375rem; color:rgba(255,255,255,.8); }
.newsletter-form { display:flex; gap:.5rem; flex-shrink:0; }
.newsletter-input { padding:.6rem 1rem; border-radius:var(--r-md); border:none; font-family:var(--font-body); font-size:.9375rem; width:260px; }
.newsletter-input:focus { outline:2px solid rgba(255,255,255,.5); }
.newsletter-submit { padding:.6rem 1.25rem; background:#fff; color:var(--c-accent); border-radius:var(--r-md); font-weight:700; font-size:.875rem; white-space:nowrap; transition:opacity .15s; }
.newsletter-submit:hover { opacity:.9; }

/* ── Page hero (About / Topics / Monetise) ── */
.page-hero { padding:4rem 0 3rem; border-bottom:1px solid var(--c-border); margin-bottom:3rem; }
.page-eyebrow { font-size:.75rem; color:var(--c-accent); font-weight:700; letter-spacing:.09em; text-transform:uppercase; margin-bottom:.625rem; }
.page-title { font-family:var(--font-display); font-size:clamp(2rem,5vw,3.25rem); font-weight:700; line-height:1.1; letter-spacing:-.02em; margin-bottom:1rem; }
.page-subtitle { font-size:1.0625rem; color:var(--c-text-2); max-width:580px; line-height:1.65; }

/* About page */
.section-heading { font-family:var(--font-display); font-size:1.625rem; font-weight:700; letter-spacing:-.01em; margin-bottom:1.5rem; }
.sources-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:.875rem; margin-bottom:3.5rem; }
.source-card { background:var(--c-white); border:1px solid var(--c-border); border-radius:var(--r-lg); padding:1.25rem 1.5rem; box-shadow:var(--shadow-sm); }
.source-card-name { font-weight:700; font-size:.9375rem; margin-bottom:4px; }
.source-card-domain { font-size:.8125rem; color:var(--c-muted); }
.source-card-row { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.625rem; }
.source-pill { font-size:.68rem; font-weight:600; padding:3px 9px; border-radius:100px; border:1px solid var(--c-border); color:var(--c-text-2); background:var(--c-surface-2); }
.how-it-works { display:flex; flex-direction:column; gap:1.5rem; max-width:620px; margin-bottom:4rem; }
.hiw-step { display:grid; grid-template-columns:44px 1fr; gap:1rem; align-items:start; }
.hiw-num { width:44px; height:44px; border-radius:50%; background:rgba(26,110,245,.08); border:1.5px solid rgba(26,110,245,.2); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:1.1rem; font-weight:700; color:var(--c-accent); flex-shrink:0; }
.hiw-title { font-weight:700; margin-bottom:4px; }
.hiw-body { font-size:.9375rem; color:var(--c-text-2); line-height:1.65; }

/* Topics page */
.topics-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.875rem; margin-bottom:3rem; }
.topic-card { background:var(--c-white); border:1px solid var(--c-border); border-top:3px solid var(--cc,var(--c-accent)); border-radius:var(--r-lg); padding:1.5rem; cursor:pointer; box-shadow:var(--shadow-sm); transition:box-shadow .2s, transform .2s var(--ease), border-color .2s; display:block; color:var(--c-text); text-decoration:none; }
.topic-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.topic-icon { font-size:1.4rem; margin-bottom:.625rem; line-height:1; }
.topic-name { font-family:var(--font-display); font-size:1.15rem; font-weight:700; margin-bottom:2px; }
.topic-count { font-size:.78rem; color:var(--c-muted); font-weight:600; }
.topic-desc { font-size:.8125rem; color:var(--c-text-2); line-height:1.55; margin-top:.5rem; }
.quick-topics { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:4rem; }
.qt-chip { font-size:.8125rem; font-weight:600; padding:6px 14px; border-radius:100px; border:1.5px solid var(--c-border); color:var(--c-text-2); background:var(--c-white); box-shadow:var(--shadow-sm); transition:all .15s; cursor:pointer; }
.qt-chip:hover { border-color:var(--c-accent); color:var(--c-accent); }

/* Monetise page */
.strategy-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1rem; margin-bottom:3rem; }
.strategy-card { background:var(--c-white); border:1px solid var(--c-border); border-radius:var(--r-xl); padding:1.75rem; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:.75rem; }
.strategy-card.featured { border-color:var(--c-accent); box-shadow:0 0 0 3px rgba(26,110,245,.1), var(--shadow-md); }
.strategy-icon { font-size:1.75rem; line-height:1; }
.strategy-name { font-family:var(--font-display); font-size:1.2rem; font-weight:700; }
.strategy-est { font-size:.75rem; font-weight:700; padding:3px 10px; border-radius:100px; background:rgba(22,163,74,.1); color:var(--c-success); border:1px solid rgba(22,163,74,.2); width:fit-content; }
.strategy-desc { font-size:.9rem; color:var(--c-text-2); line-height:1.6; }
.strategy-steps { list-style:none; display:flex; flex-direction:column; gap:.5rem; margin-top:.25rem; }
.strategy-steps li { display:flex; gap:.625rem; font-size:.8375rem; color:var(--c-text-2); align-items:flex-start; }
.strategy-steps li::before { content:'→'; color:var(--c-accent); flex-shrink:0; font-weight:700; line-height:1.5; }
.strategy-cta { display:inline-flex; align-items:center; gap:.5rem; padding:.55rem 1.2rem; background:var(--c-accent); color:#fff; border-radius:var(--r-md); font-size:.8125rem; font-weight:700; margin-top:auto; transition:background .15s; width:fit-content; }
.strategy-cta:hover { background:var(--c-accent-d); }
.strategy-cta.secondary { background:transparent; color:var(--c-accent); border:1.5px solid var(--c-accent); }
.strategy-cta.secondary:hover { background:rgba(26,110,245,.06); }

.traffic-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1rem; margin-bottom:3rem; }
.traffic-card { background:var(--c-white); border:1px solid var(--c-border); border-radius:var(--r-lg); padding:1.25rem 1.5rem; box-shadow:var(--shadow-sm); }
.traffic-platform { font-weight:700; font-size:.9375rem; margin-bottom:.25rem; }
.traffic-effort { font-size:.72rem; font-weight:600; padding:2px 8px; border-radius:100px; border:1px solid; width:fit-content; margin-bottom:.5rem; }
.traffic-card p { font-size:.8375rem; color:var(--c-text-2); line-height:1.6; }

.timeline { display:flex; flex-direction:column; gap:0; max-width:580px; margin-bottom:3rem; }
.tl-row { display:grid; grid-template-columns:100px 1fr; gap:1.5rem; align-items:start; position:relative; padding-bottom:2rem; }
.tl-row:not(:last-child)::before { content:''; position:absolute; left:46px; top:36px; width:2px; height:calc(100% - 8px); background:var(--c-border); }
.tl-week { font-size:.72rem; font-weight:700; color:var(--c-muted); text-transform:uppercase; letter-spacing:.07em; padding-top:.625rem; }
.tl-marker { width:12px; height:12px; border-radius:50%; background:var(--c-accent); border:2px solid var(--c-white); box-shadow:0 0 0 2px var(--c-accent); position:absolute; left:41px; top:6px; }
.tl-content h4 { font-weight:700; margin-bottom:.25rem; }
.tl-content p { font-size:.875rem; color:var(--c-text-2); line-height:1.55; }

/* Feed section */
.feed-section { padding-bottom:4rem; }

/* ── Responsive ── */
@media (max-width:1024px) {
  .articles-grid { grid-template-columns:repeat(2,1fr); }
  .sk-grid { grid-template-columns:repeat(2,1fr); }
  .hero-card { grid-template-columns:1fr 240px; }
  .footer-inner { grid-template-columns:1fr 1fr; }
  .footer-copy { grid-column:1/-1; text-align:left; }
  .newsletter-inner { flex-direction:column; gap:1.25rem; }
  .newsletter-form { width:100%; }
  .newsletter-input { flex:1; width:auto; }
}
@media (max-width:768px) {
  .main-nav { display:none; position:fixed; inset:64px 0 0 0; background:rgba(247,245,240,.98); backdrop-filter:blur(12px); flex-direction:column; padding:1.5rem; gap:.25rem; z-index:99; border-top:1px solid var(--c-border); box-shadow:var(--shadow-md); }
  .main-nav.open { display:flex; }
  .nav-link { padding:.75rem 1rem; font-size:1rem; }
  .hamburger { display:flex; }
  .refresh-badge { display:none; }
  .hero-card { grid-template-columns:1fr; }
  .hero-vis { display:none; }
  .hero-body { padding:1.5rem; }
  .articles-grid { grid-template-columns:1fr; }
  .sk-grid { grid-template-columns:1fr; }
  .footer-inner { grid-template-columns:1fr; }
  .footer-nav { align-items:flex-start; flex-direction:row; flex-wrap:wrap; }
  .footer-copy { text-align:left; }
  .modal-body { padding:1.5rem; }
  .strategy-grid { grid-template-columns:1fr; }
}
@media (max-width:480px) {
  .container { padding:0 1rem; }
  .tabs-wrap { padding:0 1rem; }
  .hero-title { font-size:1.4rem; }
  .card-title { font-size:1rem; }
  .modal-title { font-size:1.3rem; }
  .hero-body { padding:1.25rem; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* ── PLUS·E brand identity ── */
.logo-mark    { font-weight:800; font-size:2rem; letter-spacing:-.05em; line-height:1; }
.logo-text    { font-family:var(--font-display); font-size:1.65rem; letter-spacing:-.01em; color:var(--c-text); }
.logo-esup    { font-family:var(--font-body); font-size:.5em; font-weight:700; color:var(--c-accent); vertical-align:super; letter-spacing:.04em; margin:0 2px 0 0; }
.logo-dot     { color:var(--c-border-2); font-weight:400; margin:0 2px; }

/* ── PLUS·E ticker strip ── */
.brand-strip {
  background: var(--c-white);
  border-bottom: 1px solid var(--c-border);
  height: 30px;
  display: flex;
  align-items: center;
  overflow: hidden;
  gap: 0;
}
.brand-strip-label {
  display: flex; align-items: center; gap: 7px;
  flex-shrink: 0;
  padding: 0 14px 0 16px;
  height: 100%;
  border-right: 1px solid var(--c-border);
  background: rgba(26,110,245,.06);
  font-size: .62rem; font-weight: 800;
  color: var(--c-accent); letter-spacing: .12em;
  text-transform: uppercase; white-space: nowrap;
}
.brand-strip-label::before {
  content: '';
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--c-accent);
  animation: strip-blink 1.8s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes strip-blink { 0%,100%{opacity:1} 50%{opacity:.2} }
.brand-strip-track { flex: 1; overflow: hidden; min-width: 0; }
.brand-strip-inner { display: inline-block; white-space: nowrap; }
.brand-strip-inner:hover { animation-play-state: paused; }

.brand-strip-item {
  font-size: .62rem; font-weight: 600;
  color: var(--c-text-2); letter-spacing: .07em;
  text-transform: uppercase; white-space: nowrap;
}
.brand-strip-item b { color: var(--c-accent); font-weight: 700; margin-right: 5px; }
.brand-strip-sep { color: var(--c-border-2); margin: 0 4px; }

/* ── Modal back-to-feed link ── */
.modal-back   { display:inline-flex; align-items:center; gap:.375rem; font-size:.8125rem; font-weight:600; color:var(--c-text-2); padding:.55rem 1rem; border-radius:var(--r-md); border:1.5px solid var(--c-border); transition:color .15s, border-color .15s, background .15s; }
.modal-back:hover { color:var(--c-text); border-color:var(--c-border-2); background:var(--c-surface-2); }
.modal-actions { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }

/* ── Footer brand tagline ── */
.footer-pluse { font-size:.7rem; font-weight:700; color:var(--c-accent); letter-spacing:.1em; text-transform:uppercase; margin-top:.25rem; opacity:.75; }
