/*
Theme Name: DailyLoe
Theme URI: https://dailyloe.com
Author: DailyLoe Team
Author URI: https://dailyloe.com
Description: A modern, fast, and SEO-optimized news magazine WordPress theme with advanced advertisement management.
Version: 2.0.1
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dailyloe
Tags: news, magazine, blog, custom-menu, featured-images, threaded-comments, translation-ready, wide-blocks
*/

/* =====================================================
   CSS CUSTOM PROPERTIES
===================================================== */
:root {
  --color-primary: #1a2744;
  --color-accent: #c9a84c;
  --color-accent-hover: #b8973b;
  --color-red: #e63946;
  --color-white: #ffffff;
  --color-black: #0d0d0d;
  --color-gray-50: #f8f9fa;
  --color-gray-100: #f1f3f5;
  --color-gray-200: #e9ecef;
  --color-gray-300: #dee2e6;
  --color-gray-400: #ced4da;
  --color-gray-500: #adb5bd;
  --color-gray-600: #6c757d;
  --color-gray-700: #495057;
  --color-gray-800: #343a40;
  --color-gray-900: #212529;
  --color-text: #1a1a2e;
  --color-text-muted: #6c757d;
  --color-border: #e9ecef;
  --color-bg: #f4f5f7;
  --color-bg-card: #ffffff;

  --font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body: 'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
  --font-ui: 'Inter', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;

  --fs-xs: 0.75rem;
  --fs-sm: 0.875rem;
  --fs-md: 1rem;
  --fs-lg: 1.125rem;
  --fs-xl: 1.25rem;
  --fs-2xl: 1.5rem;
  --fs-3xl: 1.875rem;
  --fs-4xl: 2.25rem;
  --fs-5xl: 3rem;

  --fw-light: 300;
  --fw-normal: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;
  --fw-black: 900;

  --lh-tight: 1.2;
  --lh-snug: 1.35;
  --lh-normal: 1.6;
  --lh-relaxed: 1.75;

  --radius-sm: 3px;
  --radius: 6px;
  --radius-lg: 10px;
  --radius-xl: 16px;
  --radius-full: 9999px;

  --shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
  --shadow: 0 4px 12px rgba(0,0,0,.1);
  --shadow-lg: 0 10px 30px rgba(0,0,0,.15);
  --shadow-xl: 0 20px 60px rgba(0,0,0,.2);

  --transition: 0.2s ease;
  --transition-md: 0.3s ease;
  --transition-lg: 0.5s ease;

  --header-height: 60px;
  --breaking-height: 40px;
  --container-max: 1280px;
  --sidebar-width: 300px;
}

/* =====================================================
   1. GLOBAL / UTILITY
===================================================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; font-size: 16px; -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--font-body);
  font-size: var(--fs-md);
  line-height: var(--lh-normal);
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--color-accent); }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea, select { font-family: inherit; }

/* Container */
.container { max-width: var(--container-max); margin: 0 auto; padding: 0 20px; }
.container-fluid { width: 100%; padding: 0 20px; }

/* Grid */
.row { display: flex; flex-wrap: wrap; margin: 0 -10px; }
.col { flex: 1; padding: 0 10px; }
.col-1 { width: 8.333%; }
.col-2 { width: 16.667%; }
.col-3 { width: 25%; }
.col-4 { width: 33.333%; }
.col-5 { width: 41.667%; }
.col-6 { width: 50%; }
.col-7 { width: 58.333%; }
.col-8 { width: 66.667%; }
.col-9 { width: 75%; }
.col-10 { width: 83.333%; }
.col-11 { width: 91.667%; }
.col-12 { width: 100%; }

/* Grid layouts */
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.grid-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.grid-6 { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.list-vertical { display: flex; flex-direction: column; gap: 16px; }
.list-horizontal { display: flex; flex-wrap: wrap; gap: 16px; }

/* Spacing */
.m-0{margin:0}.m-1{margin:4px}.m-2{margin:8px}.m-3{margin:16px}.m-4{margin:24px}.m-5{margin:32px}
.mt-0{margin-top:0}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:16px}.mt-4{margin-top:24px}.mt-5{margin-top:32px}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:16px}.mb-4{margin-bottom:24px}.mb-5{margin-bottom:32px}
.ml-0{margin-left:0}.ml-1{margin-left:4px}.ml-2{margin-left:8px}.ml-3{margin-left:16px}.ml-4{margin-left:24px}.ml-5{margin-left:32px}
.mr-0{margin-right:0}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.mr-3{margin-right:16px}.mr-4{margin-right:24px}.mr-5{margin-right:32px}
.p-0{padding:0}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:16px}.p-4{padding:24px}.p-5{padding:32px}
.pt-0{padding-top:0}.pt-1{padding-top:4px}.pt-2{padding-top:8px}.pt-3{padding-top:16px}.pt-4{padding-top:24px}.pt-5{padding-top:32px}
.pb-0{padding-bottom:0}.pb-1{padding-bottom:4px}.pb-2{padding-bottom:8px}.pb-3{padding-bottom:16px}.pb-4{padding-bottom:24px}.pb-5{padding-bottom:32px}
.pl-0{padding-left:0}.pl-1{padding-left:4px}.pl-2{padding-left:8px}.pl-3{padding-left:16px}.pl-4{padding-left:24px}.pl-5{padding-left:32px}
.pr-0{padding-right:0}.pr-1{padding-right:4px}.pr-2{padding-right:8px}.pr-3{padding-right:16px}.pr-4{padding-right:24px}.pr-5{padding-right:32px}

/* Text */
.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}
.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}
.text-bold{font-weight:var(--fw-bold)}.text-light{font-weight:var(--fw-light)}.text-muted{color:var(--color-text-muted)}
.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-gray-600)}
.text-success{color:#198754}.text-danger{color:var(--color-red)}.text-warning{color:#ffc107}.text-info{color:#0dcaf0}
.text-xs{font-size:var(--fs-xs)}.text-sm{font-size:var(--fs-sm)}.text-md{font-size:var(--fs-md)}
.text-lg{font-size:var(--fs-lg)}.text-xl{font-size:var(--fs-xl)}.text-2xl{font-size:var(--fs-2xl)}.text-3xl{font-size:var(--fs-3xl)}

/* Display / Flex */
.d-none{display:none}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}
.d-flex{display:flex}.d-grid{display:grid}
.flex-row{flex-direction:row}.flex-column{flex-direction:column}
.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}
.align-start{align-items:flex-start}.align-center{align-items:center}.align-end{align-items:flex-end}
.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:16px}.gap-4{gap:24px}.gap-5{gap:32px}

/* Position */
.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}
.top-0{top:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}
.top-auto{top:auto}.bottom-auto{bottom:auto}.left-auto{left:auto}.right-auto{right:auto}

/* Border */
.border{border:1px solid var(--color-border)}.border-top{border-top:1px solid var(--color-border)}
.border-bottom{border-bottom:1px solid var(--color-border)}.border-left{border-left:1px solid var(--color-border)}.border-right{border-right:1px solid var(--color-border)}
.rounded{border-radius:var(--radius)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}

/* Background */
.bg-white{background:var(--color-white)}.bg-dark{background:var(--color-primary)}
.bg-gray-100{background:var(--color-gray-100)}.bg-gray-200{background:var(--color-gray-200)}
.bg-gray-300{background:var(--color-gray-300)}.bg-gray-400{background:var(--color-gray-400)}.bg-gray-500{background:var(--color-gray-500)}
.bg-primary{background:var(--color-primary)}.bg-secondary{background:var(--color-gray-600)}

/* Hover */
.hover-opacity:hover{opacity:.85}
.hover-scale:hover{transform:scale(1.02)}
.hover-shadow:hover{box-shadow:var(--shadow-lg)}
.hover-bg-light:hover{background:var(--color-gray-100)}

/* Responsive helpers */
@media(max-width:767px){.hide-mobile{display:none!important}.show-mobile{display:block!important}}
@media(min-width:768px){.show-mobile{display:none!important}}
@media(max-width:1023px){.hide-tablet{display:none!important}}
@media(min-width:1024px){.hide-desktop{display:none!important}}

/* =====================================================
   2. HEADER & NAVIGATION
===================================================== */
.breaking-news {
  background: var(--color-red);
  color: var(--color-white);
  height: var(--breaking-height);
  display: flex;
  align-items: center;
  overflow: hidden;
  position: relative;
  z-index: 98;
}
.breaking-news-label {
  background: var(--color-white);
  color: var(--color-red);
  font-family: var(--font-ui);
  font-size: var(--fs-xs);
  font-weight: var(--fw-black);
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  flex-shrink: 0;
  margin-right: 16px;
}
.breaking-news-ticker {
  display: flex;
  overflow: hidden;
  flex: 1;
  position: relative;
}
.breaking-news-ticker::before {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  width: 60px;
  background: linear-gradient(to right, transparent, var(--color-red));
  z-index: 1;
  pointer-events: none;
}
.breaking-news-track {
  display: flex;
  animation: ticker 40s linear infinite;
  white-space: nowrap;
}
.breaking-news-item {
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  padding: 0 32px 0 0;
}
.breaking-news-item::before { content: '◆ '; opacity: .7; }
.breaking-news-link { color: inherit; }
.breaking-news-link:hover { color: inherit; text-decoration: underline; opacity: .9; }

@keyframes ticker {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.header {
  background: var(--color-white);
  position: relative;
  z-index: 100;
  border-bottom: 1px solid var(--color-gray-200);
}
.header-top {
  padding: 16px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.header-sticky {
  position: sticky;
  top: 0;
  z-index: 110;
  background: var(--color-primary);
  box-shadow: var(--shadow);
}
.logo { display: flex; align-items: flex-end; gap: 2px; line-height: 1; }
.logo-text {
  font-family: var(--font-heading);
  font-size: 2.2rem;
  font-weight: var(--fw-black);
  color: var(--color-primary);
  line-height: 1;
}
.logo-text span { color: var(--color-accent); }
.logo-tld {
  font-family: var(--font-ui);
  font-size: var(--fs-xs);
  color: var(--color-gray-500);
  margin-bottom: 4px;
}
.header-date {
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Nav */
.nav { display: flex; align-items: center; height: var(--header-height); min-width: 0; }
.nav-menu {
  display: flex;
  align-items: center;
  gap: 2px;
  height: 100%;
}
.nav-item { position: relative; height: 100%; display: flex; align-items: center; }
.nav-link {
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: rgba(255,255,255,.88);
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 0 14px;
  height: 100%;
  display: flex;
  align-items: center;
  transition: color var(--transition), background var(--transition);
  position: relative;
}
.nav-link:hover, .nav-item.current-menu-item > .nav-link {
  color: var(--color-accent);
}
.nav-item.current-menu-item > .nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--color-accent);
}

/* Dropdown */
.nav-dropdown:hover .nav-dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: var(--color-white);
  border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: var(--shadow-lg);
  padding: 8px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: all var(--transition-md);
  z-index: 200;
  border-top: 2px solid var(--color-accent);
}
.nav-dropdown-item { }
.nav-dropdown-link {
  display: block;
  padding: 9px 20px;
  font-size: var(--fs-sm);
  color: var(--color-text);
  font-family: var(--font-ui);
  font-weight: var(--fw-medium);
  transition: background var(--transition), color var(--transition);
}
.nav-dropdown-link:hover { background: var(--color-gray-50); color: var(--color-accent); padding-left: 26px; }

/* Search */
.search-form { display: flex; align-items: center; }
.search-input {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  color: var(--color-white);
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
  padding: 8px 14px;
  font-size: var(--fs-sm);
  font-family: var(--font-body);
  width: 200px;
  outline: none;
  transition: background var(--transition), border-color var(--transition);
}
.search-input::placeholder { color: rgba(255,255,255,.5); }
.search-input:focus { background: rgba(255,255,255,.18); border-color: var(--color-accent); }
.search-button {
  background: var(--color-accent);
  border: none;
  color: var(--color-white);
  padding: 8px 14px;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  transition: background var(--transition);
}
.search-button:hover { background: var(--color-accent-hover); }
.search-button svg { width: 18px; height: 18px; }

/* Mobile toggle */
.mobile-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 8px;
  cursor: pointer;
}
.mobile-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--color-white);
  border-radius: 2px;
  transition: all var(--transition-md);
}
.mobile-menu {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 85%;
  max-width: 360px;
  height: 100vh;
  background: var(--color-primary);
  z-index: 1000;
  overflow-y: auto;
  transform: translateX(-100%);
  visibility: hidden;
  transition: transform var(--transition-md), visibility var(--transition-md);
}
.mobile-menu.is-open { transform: translateX(0); visibility: visible; }
.mobile-menu-overlay {
  display: block;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-md), visibility var(--transition-md);
}
.mobile-menu-overlay.is-open { opacity: 1; visibility: visible; }
.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.mobile-menu-close {
  color: var(--color-white);
  font-size: 24px;
  cursor: pointer;
  background: none;
  border: none;
  opacity: .7;
}
.mobile-menu-close:hover { opacity: 1; }
.mobile-menu-body { padding: 12px 0; }
.mobile-nav-item { border-bottom: 1px solid rgba(255,255,255,.06); }
.mobile-nav-link {
  display: block;
  color: rgba(255,255,255,.85);
  font-family: var(--font-ui);
  font-weight: var(--fw-medium);
  font-size: var(--fs-md);
  padding: 14px 20px;
  transition: color var(--transition), padding var(--transition);
}
.mobile-nav-link:hover { color: var(--color-accent); padding-left: 28px; }

/* =====================================================
   3. HOMEPAGE HERO
===================================================== */
.hero {
  background: var(--color-white);
  padding: 24px 0 0;
}
.hero-main {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  height: 500px;
  cursor: pointer;
}
.hero-main-image {
  position: absolute;
  inset: 0;
}
.hero-main-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-lg);
}
.hero-main:hover .hero-main-image img { transform: scale(1.04); }
.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.3) 50%, transparent 100%);
}
.hero-main-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 28px;
  z-index: 2;
}
.hero-badge {
  display: inline-block;
  background: var(--color-accent);
  color: var(--color-white);
  font-family: var(--font-ui);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: .1em;
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  margin-bottom: 10px;
}
.hero-main-title {
  font-family: var(--font-heading);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-bold);
  color: var(--color-white);
  line-height: var(--lh-tight);
  margin-bottom: 10px;
}
.hero-main-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-ui);
  font-size: var(--fs-xs);
  color: rgba(255,255,255,.75);
}
.hero-main-meta span { display: flex; align-items: center; gap: 4px; }

/* Hero carousel controls */
.hero-prev, .hero-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: rgba(255,255,255,.2);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.3);
  color: var(--color-white);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  cursor: pointer;
  transition: background var(--transition);
}
.hero-prev { left: 16px; }
.hero-next { right: 16px; }
.hero-prev:hover, .hero-next:hover { background: rgba(255,255,255,.35); }
.hero-dots { position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; z-index: 10; }
.hero-dot { width: 8px; height: 8px; border-radius: var(--radius-full); background: rgba(255,255,255,.4); cursor: pointer; transition: all var(--transition); }
.hero-dot.active { background: var(--color-accent); width: 22px; }

/* Hero secondary sidebar */
.hero-secondary { display: flex; flex-direction: column; gap: 4px; height: 500px; }
.hero-secondary-item {
  flex: 1;
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  cursor: pointer;
}
.hero-secondary-image { position: absolute; inset: 0; }
.hero-secondary-image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-lg); }
.hero-secondary-item:hover .hero-secondary-image img { transform: scale(1.05); }
.hero-secondary-item .hero-overlay { background: linear-gradient(to top, rgba(0,0,0,.8) 0%, transparent 60%); }
.hero-secondary-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 16px;
  z-index: 2;
}
.hero-secondary-title {
  font-family: var(--font-heading);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--color-white);
  line-height: var(--lh-tight);
  margin-top: 6px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.hero-secondary-meta {
  font-family: var(--font-ui);
  font-size: var(--fs-xs);
  color: rgba(255,255,255,.7);
  margin-top: 4px;
}

/* =====================================================
   SECTION COMMON
===================================================== */
.section { padding: 36px 0; }
.section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 22px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--color-gray-200);
  position: relative;
}
.section-header::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 60px;
  height: 2px;
  background: var(--color-accent);
}
.section-title {
  font-family: var(--font-heading);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  color: var(--color-primary);
  display: flex;
  align-items: center;
  gap: 10px;
}
.section-title svg { color: var(--color-accent); }
.section-subtitle { font-size: var(--fs-sm); color: var(--color-text-muted); margin-top: 2px; }
.section-link {
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--color-accent);
  display: flex;
  align-items: center;
  gap: 4px;
  transition: gap var(--transition);
}
.section-link:hover { gap: 8px; color: var(--color-accent); }

/* =====================================================
   CARDS
===================================================== */
.card {
  background: var(--color-bg-card);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition-md), transform var(--transition-md);
}
.card:hover { box-shadow: var(--shadow); transform: translateY(-2px); }

.card-image { position: relative; overflow: hidden; }
.card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-lg); }
.card:hover .card-image img { transform: scale(1.05); }
.card-content { padding: 16px; }
.card-category {
  display: inline-block;
  background: var(--color-accent);
  color: var(--color-white);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  margin-bottom: 8px;
}
.card-category:hover { background: var(--color-accent-hover); color: var(--color-white); }
.card-title {
  font-family: var(--font-heading);
  font-weight: var(--fw-bold);
  color: var(--color-text);
  line-height: var(--lh-snug);
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.card-title:hover { color: var(--color-accent); }
.card-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-ui);
  font-size: var(--fs-xs);
  color: var(--color-text-muted);
  margin-top: 10px;
}
.card-meta span { display: flex; align-items: center; gap: 4px; }
.card-excerpt {
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  line-height: var(--lh-relaxed);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Card sizes */
.card-large .card-image { height: 280px; }
.card-large .card-title { font-size: var(--fs-xl); -webkit-line-clamp: 2; }
.card-medium .card-image { height: 200px; }
.card-medium .card-title { font-size: var(--fs-lg); }
.card-small .card-image { height: 140px; }
.card-small .card-title { font-size: var(--fs-md); -webkit-line-clamp: 2; }
.card-small .card-content { padding: 12px; }

/* Horizontal card */
.card-horizontal { display: flex; }
.card-horizontal .card-image { width: 120px; flex-shrink: 0; height: 90px; }
.card-horizontal .card-image img { height: 90px; }
.card-horizontal .card-content { padding: 10px 14px; flex: 1; min-width: 0; }
.card-horizontal .card-title { font-size: var(--fs-sm); -webkit-line-clamp: 2; margin-bottom: 6px; }

/* =====================================================
   LATEST NEWS SECTION (Grid 3 col)
===================================================== */
.latest-news { }
.latest-news-header { margin-bottom: 22px; }
.latest-news-list { }
.latest-news-item { }
.latest-news-title { font-family: var(--font-heading); font-size: var(--fs-lg); font-weight: var(--fw-bold); line-height: var(--lh-snug); }
.latest-news-time { font-size: var(--fs-xs); color: var(--color-text-muted); }

/* =====================================================
   TRENDING / POPULAR (numbered list style)
===================================================== */
.trending { }
.trending-header { }
.trending-list { display: flex; flex-direction: column; }
.trending-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--color-gray-100);
}
.trending-item:last-child { border-bottom: none; }
.trending-number {
  font-family: var(--font-heading);
  font-size: 1.8rem;
  font-weight: var(--fw-black);
  color: var(--color-gray-200);
  width: 36px;
  flex-shrink: 0;
  line-height: 1;
}
.trending-item:nth-child(1) .trending-number { color: var(--color-accent); }
.trending-item:nth-child(2) .trending-number { color: #b0b0c4; }
.trending-item:nth-child(3) .trending-number { color: #c08060; }
.trending-thumb { width: 70px; height: 52px; border-radius: var(--radius); overflow: hidden; flex-shrink: 0; }
.trending-thumb img { width: 100%; height: 100%; object-fit: cover; }
.trending-title {
  font-family: var(--font-heading);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  color: var(--color-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.trending-title:hover { color: var(--color-accent); }
.trending-meta { font-family: var(--font-ui); font-size: var(--fs-xs); color: var(--color-text-muted); margin-top: 4px; }

/* =====================================================
   CATEGORY SECTIONS - varied layouts
===================================================== */

/* Tech - 2 col large cards */
.cat-section-tech { padding: 36px 0; }
.cat-section-tech .cat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.cat-section-tech .card-large .card-image { height: 260px; }

/* Sports - horizontal list */
.cat-section-sports { padding: 20px; background: var(--color-white); }
.cat-section-sports .cat-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; }
.cat-section-sports .cat-list { display: flex; flex-direction: column; gap: 12px; }
.cat-section-sports .card-horizontal .card-image { width: 100px; height: 78px; }
.cat-section-sports .card-horizontal .card-image img { height: 78px; }

/* Business - 3 col equal */
.cat-section-business { padding: 36px 0; background: linear-gradient(135deg, var(--color-primary) 0%, #243460 100%); }
.cat-section-business .section-title { color: var(--color-white); }
.cat-section-business .section-link { color: var(--color-accent); }
.cat-section-business .section-header { border-color: rgba(255,255,255,.15); }
.cat-section-business .section-header::after { background: var(--color-accent); }
.cat-section-business .cat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cat-section-business .card { background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.18); }
.cat-section-business .card:hover { background: rgba(255,255,255,.1); }
.cat-section-business .card-title { color: rgba(255,255,255,.92); }
.cat-section-business .card-meta { color: rgba(255,255,255,.5); }
.cat-section-business .card-excerpt { color: rgba(255,255,255,.6); }

/* Politics - magazine layout */
.cat-section-politics { padding: 36px 0; }
.cat-section-politics .cat-grid { display: grid; grid-template-columns: 1fr 320px; gap: 28px; }
.cat-section-politics .cat-list { display: flex; flex-direction: column; gap: 0; }
.cat-section-politics .cat-list-item {
  display: flex;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--color-gray-100);
  align-items: center;
}
.cat-section-politics .cat-list-item:last-child { border-bottom: none; }
.cat-section-politics .cat-list-thumb { width: 80px; height: 60px; border-radius: var(--radius); overflow: hidden; flex-shrink: 0; }
.cat-section-politics .cat-list-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cat-section-politics .cat-list-title { font-family: var(--font-heading); font-size: var(--fs-sm); font-weight: var(--fw-bold); line-height: var(--lh-snug); }
.cat-section-politics .cat-list-title:hover { color: var(--color-accent); }
.cat-section-politics .cat-list-meta { font-family: var(--font-ui); font-size: var(--fs-xs); color: var(--color-text-muted); margin-top: 4px; }

/* Environment - banner strip */
.cat-section-environment { padding: 20px; background: var(--color-white); }
.cat-section-environment .cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.cat-section-environment .card-image { height: 160px; }
.cat-section-environment .card-title { font-size: var(--fs-sm); -webkit-line-clamp: 2; }

/* =====================================================
   VIDEO SECTION
===================================================== */
.video-card { position: relative; border-radius: var(--radius-lg); overflow: hidden; }
.video-card-image { }
.video-card-image img { width: 100%; height: 100%; object-fit: cover; }
.video-card-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 54px;
  height: 54px;
  background: rgba(255,255,255,.9);
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition), transform var(--transition);
}
.video-card:hover .video-card-play { background: var(--color-accent); transform: translate(-50%, -50%) scale(1.1); }
.video-card-play svg { color: var(--color-primary); margin-left: 3px; }
.video-card:hover .video-card-play svg { color: var(--color-white); }
.video-card-duration {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: rgba(0,0,0,.7);
  color: var(--color-white);
  font-size: var(--fs-xs);
  padding: 2px 6px;
  border-radius: var(--radius-sm);
}
.video-card-title { font-family: var(--font-heading); font-size: var(--fs-md); font-weight: var(--fw-bold); margin-top: 10px; line-height: var(--lh-snug); }

/* =====================================================
   4. CATEGORY / ARCHIVE PAGE
===================================================== */
.category-page { }
.category-header {
  background: linear-gradient(135deg, var(--color-primary), #2a3a6e);
  color: var(--color-white);
  padding: 40px 0;
  margin-bottom: 0;
}
.category-title { font-family: var(--font-heading); font-size: var(--fs-4xl); font-weight: var(--fw-black); }
.category-description { margin-top: 8px; opacity: .75; font-size: var(--fs-lg); }
.category-count { margin-top: 6px; font-size: var(--fs-sm); opacity: .6; }
.category-image { }
.category-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.category-filter-item { }
.category-filter-link {
  display: inline-block;
  padding: 6px 16px;
  border-radius: var(--radius-full);
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  background: var(--color-white);
  border: 1px solid var(--color-gray-200);
  color: var(--color-text);
  transition: all var(--transition);
}
.category-filter-link:hover, .category-filter-active .category-filter-link {
  background: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
}

/* Tag cloud */
.tag-cloud { display: flex; flex-wrap: wrap; gap: 8px; }
.tag-cloud-item { }
.tag-cloud-link {
  display: inline-block;
  padding: 5px 12px;
  border-radius: var(--radius-full);
  font-size: var(--fs-xs);
  font-family: var(--font-ui);
  font-weight: var(--fw-medium);
  background: var(--color-gray-100);
  color: var(--color-text);
  transition: all var(--transition);
}
.tag-cloud-link:hover { background: var(--color-accent); color: var(--color-white); }

/* =====================================================
   5. SINGLE POST / ARTICLE
===================================================== */
.single-post {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: 0;
}
.post-header { margin-bottom: 28px; }
.post-category { margin-bottom: 12px; }
.post-title {
  font-family: var(--font-heading);
  font-size: var(--fs-4xl);
  font-weight: var(--fw-black);
  color: var(--color-primary);
  line-height: var(--lh-tight);
  margin-bottom: 16px;
}
.post-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid var(--color-gray-100);
  border-bottom: 1px solid var(--color-gray-100);
}
.post-meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
}
.post-meta-item svg { width: 16px; height: 16px; }
.post-author-avatar img { width: 32px; height: 32px; border-radius: var(--radius-full); object-fit: cover; }
.post-featured-image { margin: 24px 0; border-radius: var(--radius-lg); overflow: hidden; }
.post-featured-image img { width: 100%; height: 440px; object-fit: cover; }
.post-featured-caption { text-align: center; font-size: var(--fs-sm); color: var(--color-text-muted); margin-top: 8px; font-style: italic; }

/* Post content typography */
.post-content { line-height: var(--lh-relaxed); font-size: var(--fs-md); }
.post-content p { margin-bottom: 20px; }
.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6 {
  font-family: var(--font-heading);
  font-weight: var(--fw-bold);
  color: var(--color-primary);
  line-height: var(--lh-tight);
  margin: 32px 0 14px;
}
.post-content h2 { font-size: var(--fs-2xl); }
.post-content h3 { font-size: var(--fs-xl); }
.post-content h4 { font-size: var(--fs-lg); }
.post-content img { border-radius: var(--radius); margin: 24px 0; width: 100%; height: auto; }
.post-content blockquote {
  border-left: 4px solid var(--color-accent);
  background: var(--color-gray-50);
  padding: 20px 24px;
  margin: 28px 0;
  border-radius: 0 var(--radius) var(--radius) 0;
  font-family: var(--font-heading);
  font-style: italic;
  font-size: var(--fs-lg);
  color: var(--color-primary);
}
.post-content ul, .post-content ol { margin: 16px 0 20px 24px; }
.post-content ul { list-style: disc; }
.post-content ol { list-style: decimal; }
.post-content li { margin-bottom: 8px; }
.post-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-size: var(--fs-sm);
}
.post-content table th, .post-content table td {
  border: 1px solid var(--color-gray-200);
  padding: 10px 14px;
  text-align: left;
}
.post-content table th { background: var(--color-gray-100); font-weight: var(--fw-semibold); }
.post-content iframe { width: 100%; border-radius: var(--radius); margin: 20px 0; }
.post-content a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 3px; }

/* In-content related post */
.in-content-related {
  background: linear-gradient(135deg, var(--color-gray-50), var(--color-white));
  border: 1px solid var(--color-gray-200);
  border-left: 3px solid var(--color-accent);
  border-radius: var(--radius);
  padding: 16px;
  margin: 28px 0;
  display: flex;
  gap: 14px;
  align-items: center;
}
.in-content-related-label {
  font-family: var(--font-ui);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--color-accent);
  white-space: nowrap;
}
.in-content-related-title {
  font-family: var(--font-heading);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--color-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.in-content-related-title:hover { color: var(--color-accent); }
.in-content-related-thumb { width: 80px; height: 60px; border-radius: var(--radius-sm); overflow: hidden; flex-shrink: 0; }
.in-content-related-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* Post footer */
.post-footer { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--color-gray-200); }
.post-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.post-tags a {
  display: inline-block;
  padding: 4px 12px;
  border-radius: var(--radius-full);
  background: var(--color-gray-100);
  font-size: var(--fs-xs);
  font-family: var(--font-ui);
  color: var(--color-text);
  transition: all var(--transition);
}
.post-tags a:hover { background: var(--color-accent); color: var(--color-white); }

/* Share buttons */
.share-buttons {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 0;
}
.share-label {
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--color-text-muted);
}
.share-button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 16px;
  border-radius: var(--radius-full);
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--color-white);
  transition: opacity var(--transition), transform var(--transition);
}
.share-button:hover { opacity: .9; transform: translateY(-1px); color: var(--color-white); }
.share-facebook { background: #1877f2; }
.share-twitter { background: #000000; }
.share-whatsapp { background: #25d366; }
.share-telegram { background: #0088cc; }
.share-linkedin { background: #0a66c2; }
.share-email { background: var(--color-gray-600); }
.share-link { background: var(--color-gray-500); }
.share-button svg { width: 16px; height: 16px; }

/* Author box */
.author-box {
  display: flex;
  gap: 20px;
  background: var(--color-gray-50);
  border-radius: var(--radius-lg);
  padding: 24px;
  margin: 28px 0;
  border: 1px solid var(--color-gray-200);
}
.author-box-avatar img { width: 80px; height: 80px; border-radius: var(--radius-full); object-fit: cover; flex-shrink: 0; border: 3px solid var(--color-accent); }
.author-box-name { font-family: var(--font-heading); font-size: var(--fs-xl); font-weight: var(--fw-bold); }
.author-box-position { font-size: var(--fs-sm); color: var(--color-accent); font-weight: var(--fw-semibold); margin: 2px 0 8px; }
.author-box-bio { font-size: var(--fs-sm); color: var(--color-text-muted); line-height: var(--lh-relaxed); }
.author-box-social { display: flex; gap: 10px; margin-top: 10px; }
.author-box-link { color: var(--color-gray-500); transition: color var(--transition); }
.author-box-link:hover { color: var(--color-accent); }

/* Related posts */
.related-posts { margin-top: 40px; }
.related-posts-header { margin-bottom: 20px; }
.related-posts-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.related-post-item { }
.related-post-image { border-radius: var(--radius); overflow: hidden; height: 140px; }
.related-post-image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-lg); }
.related-post-item:hover .related-post-image img { transform: scale(1.05); }
.related-post-title { font-family: var(--font-heading); font-size: var(--fs-sm); font-weight: var(--fw-bold); margin-top: 10px; line-height: var(--lh-snug); }
.related-post-title:hover { color: var(--color-accent); }

/* Post navigation */
.post-navigation {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 28px 0;
}
.post-navigation-prev, .post-navigation-next {
  background: var(--color-gray-50);
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius);
  padding: 16px 20px;
  transition: all var(--transition);
}
.post-navigation-prev:hover, .post-navigation-next:hover { border-color: var(--color-accent); background: var(--color-white); }
.post-navigation-next { text-align: right; }
.post-navigation-label { font-family: var(--font-ui); font-size: var(--fs-xs); font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: .06em; color: var(--color-accent); margin-bottom: 4px; }
.post-navigation-title { font-family: var(--font-heading); font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--color-text); line-height: var(--lh-snug); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Comments */
.comments { margin-top: 40px; }
.comments-header { margin-bottom: 24px; }
.comments-list { display: flex; flex-direction: column; gap: 0; }
.comment {
  padding: 20px 0;
  border-bottom: 1px solid var(--color-gray-100);
  display: flex;
  gap: 16px;
}
.comment-avatar img { width: 48px; height: 48px; border-radius: var(--radius-full); object-fit: cover; flex-shrink: 0; }
.comment-body { flex: 1; }
.comment-author { font-weight: var(--fw-bold); font-size: var(--fs-sm); }
.comment-date { font-size: var(--fs-xs); color: var(--color-text-muted); margin-top: 2px; }
.comment-content { margin-top: 8px; font-size: var(--fs-sm); line-height: var(--lh-relaxed); }
.comment-reply {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: var(--color-accent);
  font-family: var(--font-ui);
}
.comment-form { margin-top: 32px; }
.comment-form h3 { margin-bottom: 16px; }
.comment-form-input, .comment-form-textarea {
  width: 100%;
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius);
  padding: 10px 14px;
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  outline: none;
  transition: border-color var(--transition);
  background: var(--color-white);
}
.comment-form-input:focus, .comment-form-textarea:focus { border-color: var(--color-accent); }
.comment-form-textarea { min-height: 120px; resize: vertical; }
.comment-form-submit {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--color-accent);
  color: var(--color-white);
  border: none;
  border-radius: var(--radius);
  padding: 10px 24px;
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  cursor: pointer;
  transition: background var(--transition);
  margin-top: 12px;
}
.comment-form-submit:hover { background: var(--color-accent-hover); }

/* =====================================================
   6. SEARCH PAGE
===================================================== */
.search-page { padding: 32px 0; }
.search-header { margin-bottom: 28px; }
.search-title { font-family: var(--font-heading); font-size: var(--fs-3xl); font-weight: var(--fw-bold); }
.search-query { color: var(--color-accent); }
.search-result-count { font-size: var(--fs-sm); color: var(--color-text-muted); margin-top: 4px; }
.search-results { display: flex; flex-direction: column; gap: 20px; }
.search-result-item {
  display: flex;
  gap: 20px;
  background: var(--color-white);
  border-radius: var(--radius);
  padding: 16px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition);
}
.search-result-item:hover { box-shadow: var(--shadow); }
.search-result-thumb { width: 140px; height: 100px; border-radius: var(--radius); overflow: hidden; flex-shrink: 0; }
.search-result-thumb img { width: 100%; height: 100%; object-fit: cover; }
.search-result-content { flex: 1; }
.search-result-title { font-family: var(--font-heading); font-size: var(--fs-lg); font-weight: var(--fw-bold); margin-bottom: 8px; }
.search-result-title:hover { color: var(--color-accent); }
.search-result-excerpt { font-size: var(--fs-sm); color: var(--color-text-muted); line-height: var(--lh-relaxed); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.search-result-meta { margin-top: 10px; }
.search-no-result { text-align: center; padding: 60px 0; color: var(--color-text-muted); }

/* =====================================================
   7. AUTHOR PAGE
===================================================== */
.author-page { }
.author-profile {
  background: linear-gradient(135deg, var(--color-primary), #2a3a6e);
  padding: 48px 0;
  margin-bottom: 36px;
}
.author-profile-avatar img { width: 100px; height: 100px; border-radius: var(--radius-full); object-fit: cover; border: 4px solid var(--color-accent); }
.author-profile-name { font-family: var(--font-heading); font-size: var(--fs-3xl); font-weight: var(--fw-black); color: var(--color-white); margin-top: 12px; }
.author-profile-bio { color: rgba(255,255,255,.75); font-size: var(--fs-md); margin-top: 8px; max-width: 600px; }
.author-stats { display: flex; gap: 32px; margin-top: 20px; }
.author-stats-item { }
.author-stats-number { font-family: var(--font-heading); font-size: var(--fs-3xl); font-weight: var(--fw-black); color: var(--color-accent); }
.author-stats-label { font-size: var(--fs-sm); color: rgba(255,255,255,.6); }

/* =====================================================
   8. SIDEBAR & WIDGETS
===================================================== */
.sidebar { }
.sidebar-sticky { position: sticky; top: 80px; }

.widget {
  background: var(--color-bg-card);
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
}
.widget-header {
  background: var(--color-primary);
  padding: 12px 18px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.widget-title {
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--color-white);
}
.widget-title svg { color: var(--color-accent); }
.widget-body { padding: 16px 18px; }

/* Popular posts widget */
.widget-popular-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 10px 0;
  border-bottom: 1px solid var(--color-gray-100);
}
.widget-popular-item:last-child { border-bottom: none; }
.widget-popular-number {
  font-family: var(--font-heading);
  font-size: var(--fs-xl);
  font-weight: var(--fw-black);
  color: var(--color-gray-200);
  width: 28px;
  flex-shrink: 0;
  line-height: 1;
  margin-top: 2px;
}
.widget-popular-item:nth-child(1) .widget-popular-number { color: var(--color-accent); }
.widget-popular-item:nth-child(2) .widget-popular-number { color: #a0a0b8; }
.widget-popular-item:nth-child(3) .widget-popular-number { color: #b08060; }
.widget-popular-thumb { width: 60px; height: 46px; border-radius: var(--radius-sm); overflow: hidden; flex-shrink: 0; }
.widget-popular-thumb img { width: 100%; height: 100%; object-fit: cover; }
.widget-popular-title { font-family: var(--font-heading); font-size: var(--fs-xs); font-weight: var(--fw-bold); line-height: var(--lh-snug); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.widget-popular-title:hover { color: var(--color-accent); }
.widget-popular-meta { font-size: 11px; color: var(--color-text-muted); margin-top: 3px; }

/* Recent posts */
.widget-recent-item {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--color-gray-100);
}
.widget-recent-item:last-child { border-bottom: none; }
.widget-recent-thumb { width: 64px; height: 48px; border-radius: var(--radius-sm); overflow: hidden; flex-shrink: 0; }
.widget-recent-thumb img { width: 100%; height: 100%; object-fit: cover; }
.widget-recent-title { font-size: var(--fs-xs); font-weight: var(--fw-semibold); line-height: var(--lh-snug); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.widget-recent-title:hover { color: var(--color-accent); }
.widget-recent-date { font-size: 11px; color: var(--color-text-muted); margin-top: 2px; }

/* Categories widget */
.widget-categories-list { }
.widget-categories-item { }
.widget-categories-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 9px 0;
  border-bottom: 1px solid var(--color-gray-100);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text);
  transition: color var(--transition);
}
.widget-categories-link:hover { color: var(--color-accent); }
.widget-categories-link:hover { padding-left: 4px; }
.widget-categories-count {
  background: var(--color-gray-100);
  color: var(--color-text-muted);
  font-size: 11px;
  padding: 2px 7px;
  border-radius: var(--radius-full);
}

/* Tags widget */
.widget-tag-cloud { display: flex; flex-wrap: wrap; gap: 6px; }
.widget-tag {
  display: inline-block;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  background: var(--color-gray-100);
  color: var(--color-text);
  font-size: var(--fs-xs);
  font-family: var(--font-ui);
  transition: all var(--transition);
}
.widget-tag:hover { background: var(--color-accent); color: var(--color-white); }

/* Newsletter */
.widget-newsletter .newsletter-form { display: flex; flex-direction: column; gap: 10px; }
.newsletter-email {
  width: 100%;
  padding: 9px 14px;
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius);
  font-size: var(--fs-sm);
  outline: none;
  transition: border-color var(--transition);
}
.newsletter-email:focus { border-color: var(--color-accent); }
.newsletter-button {
  width: 100%;
  background: var(--color-accent);
  color: var(--color-white);
  border: none;
  border-radius: var(--radius);
  padding: 10px;
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  cursor: pointer;
  transition: background var(--transition);
}
.newsletter-button:hover { background: var(--color-accent-hover); }

/* Social widget */
.social-links { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.social-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 12px 6px;
  border-radius: var(--radius);
  color: var(--color-white);
  font-size: 10px;
  font-family: var(--font-ui);
  font-weight: var(--fw-semibold);
  transition: opacity var(--transition), transform var(--transition);
}
.social-link:hover { opacity: .9; transform: translateY(-2px); color: var(--color-white); }
.social-link svg { width: 22px; height: 22px; }
.social-link-facebook { background: #1877f2; }
.social-link-twitter { background: #000; }
.social-link-instagram { background: linear-gradient(45deg, #f58529, #dd2a7b, #8134af, #515bd4); }
.social-link-youtube { background: #ff0000; }

/* =====================================================
   9. PAGINATION
===================================================== */
.pagination { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 36px 0; }
.pagination-list { display: flex; gap: 6px; }
.pagination-item { }
.pagination-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: var(--radius);
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text);
  background: var(--color-white);
  border: 1px solid var(--color-gray-200);
  transition: all var(--transition);
}
.pagination-link:hover { border-color: var(--color-accent); color: var(--color-accent); }
.pagination-active .pagination-link { background: var(--color-accent); color: var(--color-white); border-color: var(--color-accent); }
.pagination-disabled .pagination-link { opacity: .4; pointer-events: none; }
.pagination-prev, .pagination-next { }
.load-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  max-width: 280px;
  padding: 12px 24px;
  border: 2px solid var(--color-primary);
  border-radius: var(--radius-full);
  font-family: var(--font-ui);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-sm);
  color: var(--color-primary);
  background: transparent;
  cursor: pointer;
  transition: all var(--transition);
  margin: 28px auto;
}
.load-more:hover { background: var(--color-primary); color: var(--color-white); }

/* =====================================================
   10. FOOTER
===================================================== */
.footer { background: var(--color-primary); color: rgba(255,255,255,.8); margin-top: 48px; }
.footer-top { padding: 48px 0 36px; }
.footer-middle { padding: 28px 0; border-top: 1px solid rgba(255,255,255,.08); }
.footer-bottom {
  padding: 18px 0;
  border-top: 1px solid rgba(255,255,255,.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: var(--fs-sm);
}
.footer-widgets { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 36px; }
.footer-widget-title {
  font-family: var(--font-heading);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  color: var(--color-white);
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid rgba(255,255,255,.1);
  position: relative;
}
.footer-widget-title::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 30px;
  height: 2px;
  background: var(--color-accent);
}
.footer-about { font-size: var(--fs-sm); line-height: var(--lh-relaxed); opacity: .75; }
.footer-logo { margin-bottom: 14px; }
.footer-logo .logo-text { color: var(--color-white); }
.footer-menu { display: flex; flex-direction: column; gap: 8px; }
.footer-menu-link { font-size: var(--fs-sm); color: rgba(255,255,255,.7); transition: color var(--transition), padding var(--transition); }
.footer-menu-link:hover { color: var(--color-accent); padding-left: 6px; }
.footer-contact { font-size: var(--fs-sm); line-height: 2; opacity: .75; }
.footer-social { display: flex; gap: 10px; margin-top: 14px; }
.footer-social a {
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,.1);
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.8);
  transition: background var(--transition), color var(--transition);
}
.footer-social a:hover { background: var(--color-accent); color: var(--color-white); }
.copyright { font-size: var(--fs-sm); opacity: .6; }
.footer-menu-bottom { display: flex; gap: 16px; }
.footer-menu-bottom a { font-size: var(--fs-sm); opacity: .6; transition: opacity var(--transition); }
.footer-menu-bottom a:hover { opacity: 1; color: var(--color-accent); }

/* =====================================================
   11. MODAL / POPUP
===================================================== */
.modal { display: none; position: fixed; inset: 0; z-index: 2000; }
.modal.is-open { display: flex; align-items: center; justify-content: center; }
.modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.6); backdrop-filter: blur(4px); }
.modal-container {
  position: relative;
  z-index: 1;
  background: var(--color-white);
  border-radius: var(--radius-xl);
  max-width: 560px;
  width: 90%;
  box-shadow: var(--shadow-xl);
  animation: modalIn .3s ease;
}
@keyframes modalIn { from { opacity: 0; transform: scale(.96) translateY(10px); } to { opacity: 1; transform: none; } }
.modal-header { padding: 24px 28px 16px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--color-gray-100); }
.modal-title { font-family: var(--font-heading); font-size: var(--fs-xl); font-weight: var(--fw-bold); }
.modal-close { color: var(--color-text-muted); font-size: 22px; cursor: pointer; transition: color var(--transition); }
.modal-close:hover { color: var(--color-red); }
.modal-body { padding: 24px 28px; }
.modal-footer { padding: 16px 28px 24px; border-top: 1px solid var(--color-gray-100); display: flex; justify-content: flex-end; gap: 10px; }

/* =====================================================
   12. ADS / ADVERTISEMENT PLACEHOLDERS
===================================================== */
.ad { overflow: hidden; }
.ad-label {
  font-family: var(--font-ui);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--color-text-muted);
  text-align: center;
  display: block;
  margin-bottom: 4px;
}
.ad-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  overflow: hidden;
}
.ad-banner img, .ad-sidebar img, .ad-inline img { max-width: 100%; height: auto; display: block; }
.ad-sidebar {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.ad-inline {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 24px 0;
  overflow: hidden;
}
.ad-placeholder {
  background: var(--color-gray-100);
  border: 2px dashed var(--color-gray-300);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--color-text-muted);
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  border-radius: var(--radius);
  text-align: center;
  gap: 6px;
  max-width: 100%;
  box-sizing: border-box;
}
.ad-placeholder strong { font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .06em; }
.ad-banner-970 { height: 90px; }
.ad-banner-728 { max-width: 728px; height: 90px; margin: 0 auto; }
.ad-rectangle { width: 300px; height: 250px; }
.ad-skyscraper { width: 160px; height: 600px; }
.ad-sticky { position: sticky; top: 80px; }

/* =====================================================
   13. ALERTS & NOTIFICATIONS
===================================================== */
.alert {
  padding: 14px 18px;
  border-radius: var(--radius);
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: var(--fs-sm);
  margin-bottom: 16px;
}
.alert-success { background: #d1fae5; color: #065f46; border-left: 4px solid #059669; }
.alert-error { background: #fee2e2; color: #991b1b; border-left: 4px solid #dc2626; }
.alert-warning { background: #fef3c7; color: #92400e; border-left: 4px solid #d97706; }
.alert-info { background: #dbeafe; color: #1e40af; border-left: 4px solid #3b82f6; }
.toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 3000;
  background: var(--color-primary);
  color: var(--color-white);
  padding: 12px 20px;
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  font-size: var(--fs-sm);
  max-width: 320px;
  animation: slideInRight .3s ease;
}
@keyframes slideInRight { from { transform: translateX(20px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
.cookie-consent {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1500;
  background: var(--color-primary);
  color: rgba(255,255,255,.88);
  padding: 16px 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,.15);
}

/* =====================================================
   14. BREADCRUMB
===================================================== */
.breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  padding: 12px 0;
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
}
.breadcrumb-item { display: flex; align-items: center; gap: 6px; color: var(--color-text-muted); }
.breadcrumb-link { color: var(--color-text-muted); transition: color var(--transition); }
.breadcrumb-link:hover { color: var(--color-accent); }
.breadcrumb-separator { color: var(--color-gray-400); font-size: 12px; }
.breadcrumb-active { color: var(--color-text); font-weight: var(--fw-medium); }

/* =====================================================
   15. LOADING & SKELETON
===================================================== */
.loading { display: flex; align-items: center; justify-content: center; padding: 40px; }
.spinner {
  width: 36px;
  height: 36px;
  border: 3px solid var(--color-gray-200);
  border-top-color: var(--color-accent);
  border-radius: var(--radius-full);
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.skeleton { background: linear-gradient(90deg, var(--color-gray-100) 25%, var(--color-gray-200) 50%, var(--color-gray-100) 75%); background-size: 200% 100%; animation: skeleton 1.5s infinite; border-radius: var(--radius); }
@keyframes skeleton { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.skeleton-image { width: 100%; height: 200px; }
.skeleton-title { height: 24px; margin-bottom: 8px; }
.skeleton-text { height: 14px; margin-bottom: 6px; }
.skeleton-text:last-child { width: 70%; }

/* =====================================================
   PAGE LAYOUT - Main content + Sidebar
===================================================== */
.page-wrapper { padding: 32px 0; }
.content-area { min-width: 0; }
.layout-with-sidebar { display: grid; grid-template-columns: 1fr var(--sidebar-width); gap: 28px; align-items: start; }

/* =====================================================
   RESPONSIVE
===================================================== */
@media (max-width: 1280px) {
  .footer-widgets { grid-template-columns: 1fr 1fr; gap: 28px; }
  .cat-section-environment .cat-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1023px) {
  :root { --sidebar-width: 280px; }
  .layout-with-sidebar { grid-template-columns: 1fr; }
  .sidebar { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
  .sidebar-sticky { position: static; }
  .hero-main { height: 380px; }
  .hero-secondary { height: 380px; }
  .cat-section-business .cat-grid { grid-template-columns: repeat(2, 1fr); }
  .cat-section-tech .cat-grid { grid-template-columns: 1fr; }
  .related-posts-grid { grid-template-columns: repeat(2, 1fr); }
  .post-title { font-size: var(--fs-3xl); }
  .single-post { padding: 0; }
  .cat-section-environment .cat-grid { grid-template-columns: repeat(2, 1fr); }
  .cat-section-politics .cat-grid { grid-template-columns: 1fr; }
  .footer-widgets { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767px) {
  :root { --header-height: 52px; }
  .mobile-toggle { display: flex; }
  .nav-menu, .search-form { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu-overlay { display: block; }
  .hero { display: block; }
  .hero-main { height: 300px; }
  .hero-main-title { font-size: var(--fs-xl); }
  .hero-secondary { flex-direction: row; height: 160px; margin-top: 4px; }
  .hero-secondary-item { }
  .hero-secondary-title { font-size: var(--fs-xs); }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .cat-section-tech .cat-grid, .cat-section-business .cat-grid { grid-template-columns: 1fr; }
  .cat-section-sports .cat-grid { grid-template-columns: 1fr; }
  .cat-section-environment .cat-grid { grid-template-columns: repeat(2, 1fr); }
  .post-navigation { grid-template-columns: 1fr; }
  .related-posts-grid { grid-template-columns: 1fr; }
  .post-title { font-size: var(--fs-2xl); }
  .single-post { padding: 0; }
  .post-featured-image img { height: 220px; }
  .author-box { flex-direction: column; text-align: center; }
  .footer-widgets { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; text-align: center; gap: 8px; }
  .sidebar { grid-template-columns: 1fr; }
  .share-buttons { gap: 6px; }
  .share-button { padding: 7px 12px; font-size: var(--fs-xs); }
  .category-title { font-size: var(--fs-3xl); }
  .search-result-item { flex-direction: column; }
  .search-result-thumb { width: 100%; height: 180px; }
  .layout-with-sidebar { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .cat-section-environment .cat-grid { grid-template-columns: 1fr; }
  .hero-secondary { display: none; }
  .ad-banner-970, .ad-banner-728 { height: auto; }
  .container { padding: 0 14px; }
}


/* ── v1.1.8 essential fixes only ── */

/* Mobile menu: visibility-based toggle (fix toggle tidak bisa diklik) */
.mobile-menu {
  display: block;
  visibility: hidden;
  transform: translateX(-100%);
  transition: transform var(--transition-md), visibility var(--transition-md);
}
.mobile-menu.is-open { transform: translateX(0); visibility: visible; }
.mobile-menu-overlay {
  display: block;
  visibility: hidden;
  opacity: 0;
  transition: opacity var(--transition-md), visibility var(--transition-md);
}
.mobile-menu-overlay.is-open { opacity: 1; visibility: visible; }

/* Z-index: sticky header di atas breaking news */
.breaking-news   { z-index: 98  !important; }
.header-sticky   { z-index: 110 !important; }

/* Sticky logo mobile */
.sticky-logo-mobile {
  display: none;
  align-items: center;
  line-height: 1;
  margin-right: 8px;
  flex-shrink: 0;
  max-width: 140px;
}
.sticky-logo-mobile img,
.sticky-logo-mobile .custom-logo {
  max-height: 38px !important;
  width: auto !important;
  height: auto !important;
  display: block;
}

/* Below-header ad (single post) */
.below-header-ad {
  background: var(--color-white);
  padding: 8px 0;
  border-bottom: 1px solid var(--color-gray-100);
  overflow: hidden;
}
.below-header-ad .container { display: flex; justify-content: center; }

/* Single post padding 0 */
.single-post { padding: 0 !important; }

/* Category header: hapus margin bawah */
.category-header { margin-bottom: 0 !important; }

/* Ad placeholder mobile */
@media (max-width: 767px) {
  .below-header-ad { display: none; }
  .ad-placeholder { width: 100% !important; height: auto !important; min-height: 60px !important; }
  .ad-banner-728, .ad-banner-970 { max-width: 100%; height: auto; min-height: 50px; }
  /* Sembunyikan header-top, tampilkan logo di sticky nav */
  .header { display: none; }
  .sticky-logo-mobile { display: flex !important; }
  .mobile-toggle { display: flex; }
  .nav-menu, .search-form { display: none; }
}

/* ── Mobile fixes v2.0.1 ── */

/* 1. Hero container: inline style grid → block di mobile */
@media (max-width: 767px) {
  .hero .container > div[style*="grid-template-columns"] {
    display: block !important;
  }
  .hero-secondary { display: none; }
}

/* 2. Ad wrapper: inline flex → block di mobile */
@media (max-width: 767px) {
  div[style*="display:flex"][style*="justify-content:center"] {
    display: block !important;
  }
  .ad-placeholder {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 50px !important;
  }
}

/* 3. Section padding: kurangi di mobile */
@media (max-width: 767px) {
  .section { padding: 20px 0 !important; }
  .section-header { margin-bottom: 12px; }
}
