/*
Theme Name: WBGovt
Theme URI: https://example.com/wbgovt
Author: Your Name
Description: Modern government scheme portal for West Bengal.
Version: 1.0.0
Requires at least: 5.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wbgovt
*/

/* ===== CSS VARIABLES ===== */
:root {
  --color-primary: #1565C0;
  --color-secondary: #0D47A1;
  --color-accent: #FF6F00;
  --color-bg: #F0F4F8;
  --color-surface: #FFFFFF;
  --color-surface-alt: #E8EEF5;
  --color-text: #1A237E;
  --color-text-body: #37474F;
  --color-text-muted: #78909C;
  --color-border: #CFD8DC;
  --cat-scholarship: #1565C0;
  --cat-exam: #6A1B9A;
  --cat-result: #2E7D32;
  --cat-yojana: #E65100;
  --cat-recruitment: #AD1457;
  --font-body: 'Hind Siliguri', sans-serif;
  --font-heading: 'Poppins', sans-serif;
  --font-mono: 'Roboto Mono', monospace;
  --container-width: 1200px;
  --gap: 10px;
  --radius: 5px;
  --shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  color: var(--color-text-body);
  background: var(--color-bg);
  font-size: 16px;
  line-height: 1.7;
}
a { color: var(--color-primary); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--color-accent); }
img { max-width: 100%; height: auto; display: block; }
ul { list-style: none; }
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-heading);
  color: var(--color-text);
  line-height: 1.3;
}

/* ===== UTILITY ===== */
.container { max-width: var(--container-width); margin: 0 auto; padding: 0 20px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.clearfix::after { content: ''; display: table; clear: both; }

/* ===== HEADER ===== */
#site-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background: var(--color-surface);
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.header-top {
  background: var(--color-surface);
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border);
}
.header-top .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.site-branding a {
  display: flex;
  flex-direction: column;
}
.site-name {
  font-family: var(--font-heading);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--color-secondary);
  line-height: 1;
}
.site-tagline {
  font-size: 0.72rem;
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  letter-spacing: 0.05em;
}

/* Primary Nav */
#primary-nav { display: flex; align-items: center; gap: 4px; }
#primary-nav a {
  font-family: var(--font-heading);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text);
  padding: 8px 14px;
  border-bottom: 3px solid transparent;
  transition: border-color 0.2s, color 0.2s;
  white-space: nowrap;
}
#primary-nav a:hover,
#primary-nav .current-menu-item > a,
#primary-nav .current_page_item > a {
  color: var(--color-accent);
  border-bottom-color: var(--color-accent);
}

/* Nav Sub-menu Dropdown */
#primary-nav li { position: relative; }

/* Arrow indicator for items with sub-menus */
#primary-nav .menu-item-has-children > a::after {
  content: " ▾";
  font-size: 0.7rem;
  opacity: 0.6;
  transition: opacity 0.2s, transform 0.2s;
  display: inline-block;
}
#primary-nav .menu-item-has-children:hover > a::after {
  opacity: 1;
  color: var(--color-accent);
}
#primary-nav .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 9999;
  min-width: 200px;
  background: var(--color-surface, #fff);
  border: 1px solid var(--color-border, #e2e8f0);
  border-top: 3px solid var(--color-accent, #e53e3e);
  border-radius: 0 0 var(--radius, 6px) var(--radius, 6px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.10);
  list-style: none;
  padding: 6px 0;
  margin: 0;
}
#primary-nav li:hover > .sub-menu,
#primary-nav li:focus-within > .sub-menu {
  display: block;
}
#primary-nav .sub-menu li { width: 100%; }
#primary-nav .sub-menu a {
  display: block;
  padding: 9px 18px;
  font-size: 0.84rem;
  font-weight: 500;
  color: var(--color-text);
  border-bottom: none;
  white-space: nowrap;
  transition: background 0.15s, color 0.15s;
}
#primary-nav .sub-menu a:hover {
  background: var(--color-surface-alt, #f7fafc);
  color: var(--color-accent, #e53e3e);
  border-bottom: none;
}

.header-actions { display: flex; align-items: center; gap: 10px; }
.search-toggle-btn {
  background: none;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 7px 10px;
  cursor: pointer;
  color: var(--color-text);
  font-size: 1rem;
  transition: background 0.2s;
}
.search-toggle-btn:hover { background: var(--color-surface-alt); }

.hamburger-btn {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  flex-direction: column;
  gap: 5px;
  padding: 6px;
}
.hamburger-btn span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--color-text);
  transition: all 0.3s;
}

/* Search dropdown */
.search-dropdown {
  display: none;
  background: var(--color-surface-alt);
  border-top: 1px solid var(--color-border);
  border-bottom: 2px solid var(--color-primary);
  padding: 14px 0;
}
.search-dropdown.active { display: block; }
.search-dropdown form { display: flex; gap: 10px; }
.search-dropdown input[type="search"] {
  flex: 1;
  padding: 10px 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-family: var(--font-body);
  font-size: 0.95rem;
  background: var(--color-surface);
}
.search-dropdown button[type="submit"] {
  padding: 10px 20px;
  background: var(--color-primary);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-family: var(--font-heading);
  font-weight: 600;
  cursor: pointer;
}

/* Breaking ticker */
.breaking-ticker {
  background: var(--color-secondary);
  padding: 7px 0;
  overflow: hidden;
  display: flex;
  align-items: center;
}
.breaking-label {
  background: var(--color-accent);
  color: #fff;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  padding: 3px 12px;
  white-space: nowrap;
  flex-shrink: 0;
  margin-right: 14px;
}
.ticker-track {
  overflow: hidden;
  flex: 1;
}
.ticker-inner {
  display: flex;
  gap: 60px;
  animation: marquee-scroll 30s linear infinite;
  white-space: nowrap;
}
.ticker-inner a {
  color: #fff;
  font-size: 0.85rem;
  font-family: var(--font-body);
  white-space: nowrap;
}
.ticker-inner a:hover { color: #FFD54F; }
@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Date bar */
.date-bar {
  background: var(--color-surface-alt);
  padding: 4px 0;
  border-bottom: 1px solid var(--color-border);
}
.date-bar .container {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 20px;
}
.date-bar span {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--color-text-muted);
}

/* Mobile nav drawer */
.mobile-nav-drawer {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 280px;
  height: 100vh;
  background: var(--color-surface);
  box-shadow: 4px 0 20px rgba(0,0,0,0.15);
  z-index: 9999;
  padding: 20px;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  overflow-y: auto;
}
.mobile-nav-drawer.open { transform: translateX(0); }
.mobile-nav-drawer .close-drawer {
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
  color: var(--color-text);
  margin-bottom: 20px;
  display: block;
}
.mobile-nav-drawer ul { flex-direction: column; display: flex; gap: 4px; }
.mobile-nav-drawer ul a {
  display: block;
  padding: 10px 14px;
  font-family: var(--font-heading);
  font-weight: 600;
  color: var(--color-text);
  border-radius: var(--radius);
  border-bottom: none;
}
.mobile-nav-drawer ul a:hover { background: var(--color-surface-alt); color: var(--color-accent); }
.mobile-nav-drawer .sub-menu {
  display: block;
  padding-left: 14px;
  border-left: 3px solid var(--color-accent, #e53e3e);
  margin: 4px 0 4px 10px;
}
.mobile-nav-drawer .sub-menu a {
  font-size: 0.85rem;
  font-weight: 500;
  padding: 7px 10px;
}
.drawer-overlay {
  display: none;
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 9998;
}
.drawer-overlay.active { display: block; }

/* ===== MAIN LAYOUT ===== */
.site-main { padding: 28px 0; }
.content-sidebar-wrap {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 28px;
  align-items: start;
}

/* ===== CATEGORY DOT ===== */
.cat-dot {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.cat-dot::before {
  content: '';
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: currentColor;
}
.cat-dot.scholarship { color: var(--cat-scholarship); }
.cat-dot.exam        { color: var(--cat-exam); }
.cat-dot.result      { color: var(--cat-result); }
.cat-dot.yojana      { color: var(--cat-yojana); }
.cat-dot.recruitment { color: var(--cat-recruitment); }

/* ===== CARD BASE ===== */
.post-card {
  background: var(--color-surface);
  border-radius: var(--radius);
  overflow: hidden;
  border-left: 3px solid var(--color-primary);
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  transition: transform 0.2s, box-shadow 0.2s;
}
.post-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.12); }
.post-card.scholarship { border-left-color: var(--cat-scholarship); }
.post-card.exam        { border-left-color: var(--cat-exam); }
.post-card.result      { border-left-color: var(--cat-result); }
.post-card.yojana      { border-left-color: var(--cat-yojana); }
.post-card.recruitment { border-left-color: var(--cat-recruitment); }

.card-image-wrap {
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--color-surface-alt);
}
.card-image-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}
.post-card:hover .card-image-wrap img { transform: scale(1.04); }
.card-image-placeholder {
  width: 100%; height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  background: linear-gradient(135deg, var(--color-surface-alt), var(--color-border));
}

.card-body { padding: 14px 16px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.card-date {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--color-text-muted);
}
.card-title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.35;
}
.card-title a { color: inherit; }
.card-title a:hover { color: var(--color-accent); }
.card-divider {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: 4px 0;
}
.card-footer-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.78rem;
  color: var(--color-text-muted);
}

/* ===== HERO SECTION ===== */
.hero-section { padding: 20px 0; }
.hero-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: var(--gap);
  height: 520px;
}

/* POST 1 — tall left */
.hero-card-1 {
  grid-column: 1;
  grid-row: 1 / span 2;
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  border-left: 3px solid var(--color-primary);
}
.hero-card-1.scholarship { border-left-color: var(--cat-scholarship); }
.hero-card-1.exam        { border-left-color: var(--cat-exam); }
.hero-card-1.result      { border-left-color: var(--cat-result); }
.hero-card-1.yojana      { border-left-color: var(--cat-yojana); }
.hero-card-1.recruitment { border-left-color: var(--cat-recruitment); }
.hero-card-1 img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.hero-card-1 .hero-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent 0%, rgba(13,71,161,0.9) 100%);
  padding: 20px 20px 24px;
  height: 35%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 6px;
}
.hero-card-1 .hero-overlay .card-title { color: #fff; font-size: 1.2rem; }
.hero-card-1 .hero-overlay .cat-dot { color: #FFD54F; }
.hero-card-1 .hero-overlay .cat-dot::before { background: #FFD54F; }
.hero-card-1 .hero-overlay .card-date { color: rgba(255,255,255,0.7); }

/* POST 2 & 3 — top right */
.hero-card-2, .hero-card-3 {
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--color-surface);
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
}
.hero-card-2 { grid-column: 2; grid-row: 1; }
.hero-card-3 { grid-column: 3; grid-row: 1; }
.hero-card-2 .card-image-wrap,
.hero-card-3 .card-image-wrap { aspect-ratio: unset; height: 55%; }
.hero-card-2 .card-body,
.hero-card-3 .card-body { padding: 10px 12px; gap: 5px; }
.hero-card-2 .card-title,
.hero-card-3 .card-title { font-size: 0.875rem; }

/* POST 4 — wide bottom */
.hero-card-4 {
  grid-column: 2 / span 2;
  grid-row: 2;
  background: var(--color-surface);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: row;
}
.hero-card-4 .card-image-wrap {
  width: 40%;
  aspect-ratio: unset;
  flex-shrink: 0;
  height: 100%;
}
.hero-card-4 .card-body {
  width: 60%;
  padding: 18px 20px;
  justify-content: center;
}
.hero-card-4 .card-title { font-size: 1.05rem; }

/* ===== TRENDING SECTION ===== */
.trending-section { padding: 24px 0; }
.trending-box {
  background: var(--color-surface);
  border-left: 4px solid var(--color-secondary);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: 16px 20px;
  box-shadow: var(--shadow);
}
.trending-title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--color-border);
}
.trending-list { display: flex; flex-direction: column; }
.trending-item {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 10px 0;
  border-bottom: 1px solid var(--color-border);
}
.trending-item:last-child { border-bottom: none; }
.trending-num {
  font-family: var(--font-mono);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--color-accent);
  line-height: 1;
  flex-shrink: 0;
  min-width: 28px;
}
.trending-content { flex: 1; }
.trending-content .item-title {
  font-family: var(--font-heading);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.35;
  display: block;
  margin-bottom: 4px;
}
.trending-content .item-title:hover { color: var(--color-accent); }
.trending-content .item-date {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--color-text-muted);
}

/* ===== CATEGORY TABS SECTION ===== */
.category-tabs-section { padding: 24px 0; }
.section-heading-lined {
  text-align: center;
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}
.section-heading-lined::before,
.section-heading-lined::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--color-border);
}
.section-heading-lined span {
  font-family: var(--font-heading);
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-text);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.tabs-nav {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--color-secondary);
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.tab-btn {
  background: var(--color-surface);
  border: 1px solid var(--color-secondary);
  border-bottom: none;
  border-radius: 5px 5px 0 0;
  padding: 9px 18px;
  font-family: var(--font-heading);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-secondary);
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  margin-right: 3px;
  margin-bottom: -2px;
}
.tab-btn:hover { background: var(--color-surface-alt); }
.tab-btn.active {
  background: var(--color-secondary);
  color: #fff;
  border-color: var(--color-secondary);
}
.tab-count {
  font-size: 0.72rem;
  opacity: 0.75;
  margin-left: 4px;
}

.tab-content { display: none; }
.tab-content.active { display: block; }
.tab-posts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

/* ===== LATEST POSTS SECTION ===== */
.latest-posts-section { padding: 24px 0; }
.latest-posts-wrap {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 28px;
  align-items: start;
}
.latest-grid {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

/* ===== SIDEBAR ===== */
.widget-area {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.widget {
  background: var(--color-surface);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: var(--shadow);
}
.widget-title {
  font-family: var(--font-heading);
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text);
  padding-bottom: 10px;
  border-bottom: 2px solid var(--color-border);
  margin-bottom: 14px;
}

/* Most Read widget */
.most-read-list { display: flex; flex-direction: column; }
.most-read-item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 8px 0;
  border-bottom: 1px solid var(--color-border);
}
.most-read-item:last-child { border-bottom: none; }
.most-read-num {
  font-family: var(--font-mono);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-accent);
  min-width: 24px;
}
.most-read-content { flex: 1; }
.most-read-title {
  font-family: var(--font-heading);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-text);
  display: block;
  margin-bottom: 4px;
  line-height: 1.3;
}
.most-read-title:hover { color: var(--color-accent); }
.most-read-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.cat-badge-small {
  font-size: 0.66rem;
  font-family: var(--font-heading);
  font-weight: 700;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 3px;
  background: var(--color-surface-alt);
  color: var(--color-text-muted);
}

/* Categories widget */
.cat-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 0;
  border-bottom: 1px solid var(--color-border);
}
.cat-list-item:last-child { border-bottom: none; }
.cat-list-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cat-color-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.cat-list-name {
  font-size: 0.875rem;
  font-family: var(--font-heading);
  font-weight: 600;
  color: var(--color-text);
}
.cat-list-name:hover { color: var(--color-accent); }
.cat-count-pill {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--color-text-muted);
  background: var(--color-surface-alt);
  padding: 2px 8px;
  border-radius: 20px;
}

/* Tags widget */
.tag-cloud { display: flex; flex-wrap: wrap; gap: 7px; }
.tag-pill {
  font-size: 0.78rem;
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: 20px;
  padding: 4px 12px;
  transition: background 0.2s, color 0.2s;
}
.tag-pill:hover {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}

/* ===== SECTION HEADING ===== */
.section-heading {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--color-border);
  position: relative;
}
.section-heading::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0;
  width: 50px; height: 2px;
  background: var(--color-accent);
}

/* ===== LOAD MORE ===== */
.load-more-wrap { text-align: center; padding: 24px 0; }
.load-more-btn {
  padding: 12px 32px;
  background: var(--color-secondary);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  transition: background 0.2s;
}
.load-more-btn:hover { background: var(--color-accent); }
.load-more-btn:disabled { opacity: 0.6; cursor: not-allowed; }

/* ===== BREADCRUMB ===== */
.breadcrumb-wrap {
  padding: 12px 0;
  margin-bottom: 16px;
}
.breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  font-size: 0.82rem;
  font-family: var(--font-body);
  color: var(--color-text-muted);
}
.breadcrumb a { color: var(--color-primary); }
.breadcrumb a:hover { color: var(--color-accent); }
.breadcrumb .separator {
  color: var(--color-accent);
  font-weight: 700;
  margin: 0 2px;
}
.breadcrumb .current { color: var(--color-text-muted); }

/* ===== SINGLE POST ===== */
.single-post-wrap { background: var(--color-surface); border-radius: var(--radius); padding: 28px; box-shadow: var(--shadow); }
.post-cat-line { margin-bottom: 10px; }
.post-title-main {
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.25;
  margin-bottom: 14px;
}
.post-cat-rule {
  height: 3px;
  width: 50px;
  background: var(--color-primary);
  border: none;
  border-radius: 2px;
  margin-bottom: 16px;
}

.post-info-bar {
  background: var(--color-surface-alt);
  border-radius: var(--radius);
  padding: 12px 20px;
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.post-info-bar .info-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--color-text-muted);
}

.share-buttons {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.share-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: var(--radius);
  font-size: 0.8rem;
  font-family: var(--font-heading);
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: opacity 0.2s;
  color: #fff;
  text-decoration: none;
}
.share-btn:hover { opacity: 0.85; color: #fff; }
.share-btn.facebook { background: #1877F2; }
.share-btn.twitter  { background: #000; }
.share-btn.whatsapp { background: #25D366; }
.share-btn.linkedin { background: #0A66C2; }
.share-btn.copy-link {
  background: var(--color-surface-alt);
  color: var(--color-text);
  border: 1px solid var(--color-border);
}
.share-btn.copy-link:hover { color: var(--color-text); }

.post-featured-image {
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: var(--radius);
  margin-bottom: 24px;
}
.post-featured-image img { width: 100%; height: 100%; object-fit: cover; }

.post-content {
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--color-text-body);
}
.post-content p { margin-bottom: 1.4em; }
.post-content h2 { font-size: 1.4rem; margin: 1.8em 0 0.6em; }
.post-content h3 { font-size: 1.2rem; margin: 1.5em 0 0.5em; }
.post-content ul, .post-content ol { padding-left: 1.5em; margin-bottom: 1.4em; }
.post-content li { margin-bottom: 0.4em; }
.post-content blockquote {
  border-left: 4px solid var(--color-accent);
  padding: 12px 20px;
  background: var(--color-surface-alt);
  margin: 1.5em 0;
  border-radius: 0 var(--radius) var(--radius) 0;
  font-style: italic;
}
.post-content a { color: var(--color-primary); text-decoration: underline; }
.post-content img { border-radius: var(--radius); margin: 1em 0; }

/* Also Read box */
.also-read-box {
  background: var(--color-surface-alt);
  border-left: 3px solid var(--color-primary);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: 14px 18px;
  margin: 1.8em 0;
}
.also-read-title {
  font-family: var(--font-heading);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text);
  margin-bottom: 10px;
}
.also-read-list { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.also-read-list li::before {
  content: '● ';
  color: var(--color-accent);
  font-size: 0.7rem;
}
.also-read-list a {
  font-size: 0.9rem;
  font-family: var(--font-heading);
  font-weight: 600;
  color: var(--color-primary);
}
.also-read-list a:hover { color: var(--color-accent); }

/* Post tags */
.post-tags { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 24px 0; }
.post-tags-label {
  font-family: var(--font-heading);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-text-muted);
  letter-spacing: 0.06em;
}

/* Author box */
.author-box {
  display: flex;
  gap: 18px;
  background: var(--color-surface-alt);
  border-left: 3px solid var(--color-accent);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: 20px;
  margin: 24px 0;
  align-items: flex-start;
}
.author-avatar {
  width: 64px; height: 64px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  color: #fff;
  font-family: var(--font-heading);
  font-weight: 700;
}
.author-avatar img { width: 100%; height: 100%; object-fit: cover; }
.author-info .author-name {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 6px;
}
.author-info .author-bio {
  font-size: 0.875rem;
  color: var(--color-text-muted);
  line-height: 1.6;
}

/* Helpful widget */
.helpful-widget {
  text-align: center;
  padding: 20px;
  background: var(--color-surface-alt);
  border-radius: var(--radius);
  margin: 24px 0;
}
.helpful-widget p {
  font-family: var(--font-heading);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 12px;
}
.helpful-buttons { display: flex; justify-content: center; gap: 12px; }
.helpful-btn {
  padding: 9px 22px;
  border-radius: var(--radius);
  border: 2px solid var(--color-border);
  background: var(--color-surface);
  font-size: 1.1rem;
  cursor: pointer;
  transition: all 0.2s;
}
.helpful-btn:hover, .helpful-btn.active { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.helpful-result { margin-top: 10px; font-size: 0.85rem; color: var(--color-text-muted); }

/* Related posts */
.related-posts { margin: 28px 0; }
.related-posts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 16px;
}

/* ===== COMMENTS SECTION ===== */
.comments-section {
  background: var(--color-surface);
  border-radius: 7px;
  padding: 24px;
  margin-top: 28px;
  box-shadow: var(--shadow);
}
.comments-section .comments-title {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-text);
  border-left: 3px solid var(--color-accent);
  padding-left: 12px;
  margin-bottom: 20px;
}
.comment-list { list-style: none; }
.comment {
  padding: 14px 0;
  border-bottom: 1px solid var(--color-border);
}
.comment:last-of-type { border-bottom: none; }
.comment-body-inner {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.comment-avatar {
  width: 42px; height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 1rem;
  color: #fff;
  flex-shrink: 0;
  background: var(--color-primary);
}
.comment-author-name {
  font-family: var(--font-heading);
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--color-text);
}
.comment-date {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--color-text-muted);
  float: right;
}
.comment-text {
  font-size: 0.9rem;
  color: var(--color-text-body);
  margin-top: 5px;
  line-height: 1.6;
}
.comment-reply-link {
  font-size: 0.78rem;
  color: var(--color-accent);
  font-weight: 600;
  margin-top: 6px;
  display: inline-block;
}
.comment-reply-link:hover { color: var(--color-primary); }
.children {
  padding-left: 56px;
  border-left: 2px solid var(--color-surface-alt);
  margin-top: 10px;
  list-style: none;
}

/* Comment form */
.comment-respond {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 2px solid var(--color-border);
}
.comment-reply-title {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 18px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.comment-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width: 100%;
  padding: 10px 14px;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--color-text-body);
  transition: border-color 0.2s;
}
.comment-form input:focus,
.comment-form textarea:focus {
  outline: none;
  border-color: var(--color-primary);
}
.comment-form textarea { resize: vertical; min-height: 120px; margin-bottom: 14px; }
.comment-form .submit {
  width: 100%;
  padding: 12px;
  background: var(--color-secondary);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.95rem;
  cursor: pointer;
  transition: background 0.2s;
}
.comment-form .submit:hover { background: #1565C0; }
.comment-form label {
  display: none;
}
.comment-form p { margin-bottom: 0; }
.comment-form p.comment-form-author,
.comment-form p.comment-form-email { display: contents; }
.comment-form p.comment-form-comment { margin-bottom: 0; }

/* ===== ARCHIVE/SEARCH PAGE ===== */
.archive-header {
  background: var(--color-surface);
  padding: 20px 24px;
  border-radius: var(--radius);
  border-left: 4px solid var(--color-accent);
  margin-bottom: 24px;
  box-shadow: var(--shadow);
}
.archive-header h1 {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-text);
}
.archive-header .archive-desc {
  font-size: 0.875rem;
  color: var(--color-text-muted);
  margin-top: 4px;
}
.archive-posts-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

/* ===== 404 PAGE ===== */
.error-404-wrap {
  text-align: center;
  padding: 80px 20px;
}
.error-404-code {
  font-family: var(--font-heading);
  font-size: 8rem;
  font-weight: 900;
  color: var(--color-surface-alt);
  line-height: 1;
  margin-bottom: 8px;
}
.error-404-title {
  font-family: var(--font-heading);
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 14px;
}
.error-404-desc { color: var(--color-text-muted); margin-bottom: 28px; }
.error-404-search { max-width: 400px; margin: 0 auto; }

/* ===== FOOTER ===== */
#site-footer {
  background: #0A1628;
  color: #B0BEC5;
  padding-top: 48px;
}
.footer-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  padding-bottom: 40px;
}
.footer-col-title {
  font-family: var(--font-heading);
  font-size: 0.9rem;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer-about p { font-size: 0.875rem; line-height: 1.7; color: #90A4AE; }
.footer-links ul { display: flex; flex-direction: column; gap: 8px; }
.footer-links a {
  font-size: 0.875rem;
  color: #90A4AE;
  transition: color 0.2s;
}
.footer-links a:hover { color: var(--color-accent); }
.footer-cats ul { display: flex; flex-direction: column; gap: 8px; }
.footer-cats li { display: flex; align-items: center; gap: 7px; }
.footer-cats .f-cat-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
}
.footer-cats a {
  font-size: 0.875rem;
  color: #90A4AE;
}
.footer-cats a:hover { color: var(--color-accent); }
.footer-contact { font-size: 0.875rem; color: #90A4AE; line-height: 1.8; }
.footer-contact a { color: #90A4AE; }
.footer-contact a:hover { color: var(--color-accent); }

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 16px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.8rem;
  color: #607D8B;
}
.footer-bottom a { color: #90A4AE; }
.footer-bottom a:hover { color: #fff; }

/* ===== PAGE ===== */
.page-content { background: var(--color-surface); padding: 32px; border-radius: var(--radius); box-shadow: var(--shadow); }
.page-content h1 {
  font-size: 1.8rem;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--color-border);
}

/* ===== SCROLL TO TOP ===== */
.scroll-top-btn {
  position: fixed;
  bottom: 28px; right: 28px;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--color-secondary);
  color: #fff;
  border: none;
  font-size: 1.2rem;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s, background 0.2s;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
}
.scroll-top-btn.visible { opacity: 1; pointer-events: auto; }
.scroll-top-btn:hover { background: var(--color-accent); }

/* ===== PAGINATION ===== */
.pagination {
  display: flex;
  justify-content: center;
  gap: 6px;
  padding: 24px 0;
  flex-wrap: wrap;
}
.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: var(--radius);
  font-family: var(--font-heading);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  transition: all 0.2s;
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}
.pagination .dots { background: none; border: none; }

/* ===== NOTICES ===== */
.no-results-notice {
  text-align: center;
  padding: 60px 20px;
  background: var(--color-surface);
  border-radius: var(--radius);
  color: var(--color-text-muted);
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
  .hero-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    height: auto;
  }
  .hero-card-1 { grid-column: 1 / span 2; grid-row: 1; height: 300px; }
  .hero-card-2 { grid-column: 1; grid-row: 2; }
  .hero-card-3 { grid-column: 2; grid-row: 2; }
  .hero-card-4 { grid-column: 1 / span 2; grid-row: 3; }
  .content-sidebar-wrap { grid-template-columns: 1fr; }
  .latest-posts-wrap { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .tab-posts-grid { grid-template-columns: repeat(2, 1fr); }
  .related-posts-grid { grid-template-columns: repeat(2, 1fr); }
  .archive-posts-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  #primary-nav { display: none; }
  .hamburger-btn { display: flex; }
  .mobile-nav-drawer { display: block; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-card-1 { grid-column: 1; grid-row: 1; height: 260px; }
  .hero-card-2 { grid-column: 1; grid-row: 2; }
  .hero-card-3 { grid-column: 1; grid-row: 3; }
  .hero-card-4 { grid-column: 1; grid-row: 4; flex-direction: column; }
  .hero-card-4 .card-image-wrap { width: 100%; height: 180px; }
  .hero-card-4 .card-body { width: 100%; }
  .container { padding: 0 12px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .tab-posts-grid { grid-template-columns: 1fr; }
  .related-posts-grid { grid-template-columns: 1fr; }
  .post-title-main { font-size: 1.45rem; }
  .comment-form-row { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .container { padding: 0 8px; }
  .footer-grid { grid-template-columns: 1fr; }
  .hero-card-4 { flex-direction: column; }
  .post-info-bar { gap: 12px; }
  .share-buttons { gap: 6px; }
  .share-btn { padding: 7px 10px; font-size: 0.75rem; }
  .error-404-code { font-size: 5rem; }
}

/* ===== FOOTER SOCIAL ICONS ===== */
.footer-social {
  display: flex;
  gap: 10px;
  margin-top: 16px;
  flex-wrap: wrap;
}
.social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  color: #90A4AE;
  transition: background 0.2s, color 0.2s;
  text-decoration: none;
}
.social-icon:hover {
  background: var(--color-accent);
  color: #fff;
}
.social-icon svg { display: block; }

/* ===== FOOTER CONTACT INFO ===== */
.footer-contact-info {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.contact-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.875rem;
  color: #90A4AE;
  line-height: 1.5;
}
.contact-icon { flex-shrink: 0; }
.contact-item a { color: #90A4AE; }
.contact-item a:hover { color: var(--color-accent); }
