/* Zambian Hub — styled to match the reference mockup
   Palette from the ZH logo: green, orange, red, black on white */
:root{
  --green:#1B8B3B;
  --green-dark:#0E5A25;
  --orange:#F7941D;
  --red:#CE1126;
  --ink:#111417;
  --ink-soft:#3d4349;
  --paper:#f5f6f7;
  --card:#ffffff;
  --line:#e4e6e8;
  --header:#0d0f11;
  --radius:10px;
  --font-display:'Archivo',sans-serif;
  --font-body:'Inter',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font-body);background:var(--paper);color:var(--ink);line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1240px;margin:0 auto;padding:0 20px}

/* Header */
.site-header{background:var(--header);color:#fff}
.topbar{border-bottom:1px solid rgba(255,255,255,.08);font-size:.78rem;color:#aab}
.topbar-inner{display:flex;justify-content:space-between;padding:6px 20px}
.header-main{display:flex;align-items:center;justify-content:space-between;padding:14px 20px}
.logo{display:flex;align-items:center;gap:12px}
.logo-img{width:56px;height:56px;border-radius:50%;object-fit:cover;background:#fff;flex-shrink:0}
.logo-word{font-family:var(--font-display);font-weight:900;font-size:1.7rem;letter-spacing:-.5px;color:#fff}
.logo-accent{color:var(--orange)}
.logo-tag{display:block;font-size:.68rem;color:#9aa2ab;margin-top:-3px}
.btn{display:inline-block;padding:10px 20px;border-radius:8px;font-weight:700;font-size:.85rem;border:none;cursor:pointer}
.btn-orange{background:var(--orange);color:#131313}
.btn-orange:hover{background:#ffa53a}
.btn-green{background:var(--green);color:#fff}
.btn-green:hover{background:var(--green-dark)}
.mainnav{border-top:1px solid rgba(255,255,255,.08)}
.nav-inner{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:0 20px}
.nav-inner a{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px;padding:13px 11px;color:#d6dade;border-bottom:3px solid transparent}
.nav-inner a:hover{color:#fff}
.nav-inner a.active{color:var(--orange);border-bottom-color:var(--orange)}
.nav-search{margin-left:auto;display:flex}
.nav-search input{background:#1c2024;border:1px solid #2b3138;color:#fff;padding:7px 12px;border-radius:6px 0 0 6px;font-size:.82rem;width:170px}
.nav-search button{background:var(--orange);border:none;border-radius:0 6px 6px 0;padding:0 12px;cursor:pointer}

/* Layout */
.page-grid{display:grid;grid-template-columns:1fr 330px;gap:24px;padding:24px 0}
@media(max-width:980px){.page-grid{grid-template-columns:minmax(0,1fr)}}

/* Hero */
.hero{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--header);color:#fff;min-height:420px;display:flex;align-items:flex-end}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.hero-content{position:relative;padding:34px;max-width:640px}
.badge{display:inline-block;background:var(--orange);color:#131313;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.8px;padding:5px 12px;border-radius:20px;margin-bottom:14px}
.hero h1{font-family:var(--font-display);font-weight:900;font-size:2.4rem;line-height:1.12;margin-bottom:12px}
.hero p{color:#d7dade;margin-bottom:16px}
.hero-meta{font-size:.78rem;color:#aab;margin-bottom:18px}
.btn-outline{border:2px solid #fff;color:#fff;background:transparent;padding:9px 20px;border-radius:8px;font-weight:700;font-size:.85rem}
.btn-outline:hover{background:#fff;color:var(--ink)}

/* Side headlines next to hero */
.hero-row{display:grid;grid-template-columns:2fr 1fr;gap:16px}
@media(max-width:800px){.hero-row{grid-template-columns:minmax(0,1fr)}}
.headline-stack{display:flex;flex-direction:column;gap:10px}
.headline-item{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px;flex:1}
.headline-item img{width:92px;height:70px;object-fit:cover;border-radius:6px;flex-shrink:0}
.headline-item .cat{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.6px}
.headline-item h4{font-size:.85rem;line-height:1.3;font-weight:700}
.headline-item .when{font-size:.68rem;color:#8a9199}
.cat-news{color:var(--green)} .cat-sports{color:var(--red)} .cat-business{color:#2563eb}
.cat-lifestyle{color:#b0399f} .cat-entertainment{color:var(--orange)} .cat-default{color:var(--green)}

/* Trending bar */
.trending{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:11px 16px;margin:20px 0;overflow-x:auto}
.trending .label{font-weight:800;font-size:.78rem;white-space:nowrap}
.trending a{font-size:.8rem;color:var(--green-dark);font-weight:600;white-space:nowrap}
.trending a:hover{color:var(--orange)}

/* Story grid */
.section-head{display:flex;align-items:center;justify-content:space-between;margin:8px 0 14px}
.section-head h2{font-family:var(--font-display);font-size:1.15rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;border-left:4px solid var(--orange);padding-left:10px}
.story-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.story-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .15s, box-shadow .15s}
.story-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,.08)}
.story-card img{height:150px;width:100%;object-fit:cover}
.story-card .no-img{height:150px;background:linear-gradient(135deg,var(--green),var(--orange));display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-display);font-weight:900;font-size:1.6rem}
.story-body{padding:12px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.story-body h3{font-size:.95rem;line-height:1.32;font-weight:700}
.story-body h3 a:hover{color:var(--green-dark)}
.story-foot{margin-top:auto;font-size:.7rem;color:#8a9199;display:flex;gap:10px}

/* Sidebar */
.widget{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:20px;overflow:hidden}
.widget-head{display:flex;justify-content:space-between;align-items:center;background:var(--green-dark);color:#fff;padding:11px 15px;font-family:var(--font-display);font-weight:800;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}
.widget-head a{font-size:.7rem;color:#c9e8d2;text-transform:none;font-family:var(--font-body)}
.widget-body{padding:14px 15px}
.opp-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.opp-item:last-child{border-bottom:none}
.opp-icon{font-size:1.3rem}
.opp-item h4{font-size:.85rem;font-weight:700;line-height:1.3}
.opp-item .type{font-size:.68rem;color:#8a9199}
.widget .btn{width:100%;text-align:center;margin-top:10px}

/* Newsletter */
.newsletter{background:var(--header);color:#fff;border-radius:var(--radius);padding:22px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:26px 0}
.newsletter h3{font-family:var(--font-display);font-size:1.05rem}
.newsletter p{font-size:.8rem;color:#aab}
.newsletter form{display:flex;gap:8px;flex:1;min-width:260px;max-width:460px}
.newsletter input{flex:1;padding:11px 14px;border-radius:8px;border:none;font-size:.85rem}
.msg{padding:10px 14px;border-radius:8px;font-size:.85rem;margin:10px 0}
.msg-ok{background:#e5f5ea;color:var(--green-dark);border:1px solid #bfe3cb}
.msg-err{background:#fdecec;color:var(--red);border:1px solid #f5c8cd}

/* Article page */
.article-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px;max-width:860px;margin:24px auto}
.article-wrap h1{font-family:var(--font-display);font-weight:900;font-size:2rem;line-height:1.15;margin:10px 0}
.article-meta{font-size:.8rem;color:#8a9199;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.article-cover{border-radius:var(--radius);margin-bottom:20px;width:100%;max-height:460px;object-fit:cover}
.article-body{font-size:1.02rem;color:var(--ink-soft)}
.article-body p{margin-bottom:16px}
.article-body h2,.article-body h3{font-family:var(--font-display);color:var(--ink);margin:22px 0 10px}
.article-tags{margin-top:22px;display:flex;gap:8px;flex-wrap:wrap}
.article-tags a{background:var(--paper);border:1px solid var(--line);padding:5px 12px;border-radius:20px;font-size:.75rem;font-weight:600;color:var(--green-dark)}

/* Footer */
.site-footer{background:var(--header);color:#fff;margin-top:36px;padding:26px 0}
.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.footer-tag{font-size:.75rem;color:#9aa2ab}
.footer-copy{font-size:.78rem;color:#9aa2ab}

/* Pagination */
.pagination{display:flex;gap:8px;margin:24px 0;justify-content:center}
.pagination a,.pagination span{padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--card);font-size:.85rem;font-weight:600}
.pagination .current{background:var(--green);color:#fff;border-color:var(--green)}
@media(max-width:640px){
  .hero h1{font-size:1.6rem}
  .hero-content{padding:22px}
  .header-main{flex-direction:column;gap:10px;text-align:center}
}

/* --- Mockup-match updates --- */
.topbar-inner{align-items:center}
.topbar-left,.topbar-right{display:flex;gap:16px;align-items:center}
.topbar-right a{font-size:.9rem;opacity:.85}
.topbar-right a:hover{opacity:1}

/* Dark headline stack (matches mockup) */
.headline-item{background:#15181c;border-color:#23272c;color:#fff}
.headline-item h4{color:#fff}
.headline-item:hover{background:#1c2025}
.headline-item .when{color:#8a9199}

/* Latest Stories tabs */
.story-tabs{display:flex;gap:4px}
.story-tabs .tab{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:6px 10px;border-radius:6px;color:#7c848c}
.story-tabs .tab:hover{color:var(--ink)}
.story-tabs .tab.active{color:var(--orange);border-bottom:2px solid var(--orange);border-radius:0}

/* Z-Hub TV widget */
.tv-thumb{position:relative;display:block;border-radius:8px;overflow:hidden}
.tv-thumb img{width:100%;height:170px;object-fit:cover}
.tv-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.2rem;border:2px solid #fff}
.tv-thumb:hover .tv-play{background:var(--orange);color:#131313}
.tv-title{font-size:.92rem;font-weight:700;line-height:1.3;margin:10px 0 6px}
.tv-title a:hover{color:var(--green-dark)}
.tv-watch{font-size:.75rem;color:var(--green);font-weight:700}

/* Stay Connected grid */
.social-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.social-cell{display:flex;gap:7px;align-items:center;padding:8px 6px;border:1px solid var(--line);border-radius:8px;font-size:.68rem;line-height:1.25}
.social-cell:hover{border-color:var(--orange);background:#fffaf3}
.social-ico{font-size:1.05rem}
.social-cell strong{display:block;font-size:.7rem}
.social-cell small{color:#8a9199}
@media(max-width:1080px){.social-grid{grid-template-columns:1fr 1fr}}
.footer-credit{font-size:.72rem;color:#7c848c}
.footer-credit a{color:var(--orange);font-weight:600}
.footer-credit a:hover{text-decoration:underline}
.video-embed{position:relative;width:100%;padding-top:56.25%;border-radius:var(--radius);overflow:hidden;margin-bottom:20px;background:#000}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ============================================
   MOBILE OPTIMIZATION PASS
   ============================================ */

/* Hamburger button — hidden on desktop */
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:38px;height:38px;background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:8px;cursor:pointer;padding:0;flex-shrink:0}
.hamburger span{display:block;width:18px;height:2px;background:#fff;margin:0 auto;transition:transform .2s,opacity .2s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:860px){
  /* Header */
  .hamburger{display:flex}
  .subscribe-btn{display:none}
  .header-main{flex-direction:row;justify-content:space-between;text-align:left;padding:12px 16px}
  .logo-img{width:42px;height:42px}
  .logo-word{font-size:1.3rem}
  .logo-tag{font-size:.6rem}

  /* Topbar: keep it short on phones */
  .topbar-inner{flex-wrap:wrap;gap:6px;padding:6px 16px;font-size:.7rem}
  .topbar-left{gap:8px;flex-wrap:wrap}
  .topbar-right{gap:10px}
  .topbar-right a{font-size:.8rem}

  /* Collapsible category nav */
  .mainnav{max-height:0;overflow:hidden;transition:max-height .25s ease}
  .mainnav.open{max-height:600px;overflow-y:auto}
  .nav-inner{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;padding:6px 16px 14px}
  .nav-inner a{padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.08);width:100%}
  .nav-inner a.active{border-bottom:1px solid var(--orange)}
  .nav-search{margin-left:0;margin-top:10px;width:100%}
  .nav-search input{width:100%;flex:1}

  /* Layout spacing */
  .container{padding:0 14px}
  .page-grid{gap:18px;padding:16px 0}

  /* Hero */
  .hero{min-height:320px}
  .hero h1{font-size:1.5rem;line-height:1.18}
  .hero-content{padding:18px}
  .badge{font-size:.62rem;padding:4px 10px}

  /* Headline stack */
  .headline-item img{width:70px;height:54px}
  .headline-item h4{font-size:.78rem}

  /* Trending */
  .trending{padding:10px 12px}
  .trending .label{font-size:.72rem}
  .trending a{font-size:.75rem}

  /* Story grid: single column feels better than tiny 2-up cards on phones */
  .story-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
  .section-head{flex-direction:column;align-items:flex-start;gap:10px}
  .story-tabs{flex-wrap:wrap}

  /* Sidebar widgets stack full width already via page-grid; tighten padding */
  .widget-body{padding:12px}
  .social-grid{grid-template-columns:1fr 1fr}

  /* Newsletter */
  .newsletter{flex-direction:column !important;align-items:stretch;text-align:center;padding:18px;gap:12px}
  .newsletter > div{width:100%}
  .newsletter form{width:100%;max-width:none;flex:0 0 100%}
  .newsletter input{width:100%}

  /* Article page */
  .article-wrap{padding:18px;margin:14px auto;border-radius:8px}
  .article-wrap h1{font-size:1.4rem}
  .article-meta{font-size:.72rem}

  /* Footer */
  .footer-inner{flex-direction:column;text-align:center;gap:8px}
}

@media(max-width:420px){
  .story-grid{grid-template-columns:1fr 1fr}
  .social-grid{grid-template-columns:1fr}
  .hero h1{font-size:1.3rem}
  .logo-tag{display:none}
}

/* ============================================
   MOBILE FIX: flex items forcing horizontal overflow
   Flexbox children don't shrink below their content's
   natural width by default — this is what was dragging
   the whole page wider than the phone screen.
   ============================================ */
html, body { overflow-x: hidden; max-width: 100%; }

.opp-item, .headline-item, .social-cell, .newsletter, .header-main, .logo,
.footer-inner, .widget-head, .tv-title, .nav-search, .story-foot, .article-meta {
  min-width: 0;
}
.opp-item > div, .headline-item > div, .social-cell > span:last-child,
.newsletter > div {
  min-width: 0;
  overflow-wrap: break-word;
  word-break: break-word;
}
h1, h2, h3, h4, p { overflow-wrap: break-word; word-break: break-word; }

@media(max-width:400px){
  .container{padding:0 12px}
  .story-grid{grid-template-columns:1fr 1fr;gap:10px}
}

/* ============================================
   MOBILE FIX ROUND 2: CSS Grid columns also
   refuse to shrink below their content's natural
   width by default (same issue as flexbox, but
   for grid tracks) — this was forcing the sidebar
   and hero row wider than the phone screen even
   with grid-template-columns:1fr set.
   ============================================ */
.page-grid > *, .hero-row > * { min-width: 0; }
.widget, aside, .story-card, .headline-stack, .tv-thumb, .tv-thumb img {
  min-width: 0;
  max-width: 100%;
}
.story-grid { min-width: 0; }
.story-grid > * { min-width: 0; }
