/* ═══════════════════════════════════════════════
   lifehack.diy — Main Stylesheet
   Clean, fast, mobile-first, ad-friendly
   ═══════════════════════════════════════════════ */

/* ── Custom Properties ────────────────────────── */
:root {
  --color-primary: #10B981;
  --color-primary-dark: #059669;
  --color-primary-light: #D1FAE5;
  --color-accent: #F59E0B;
  --color-text: #1F2937;
  --color-text-light: #6B7280;
  --color-text-lighter: #9CA3AF;
  --color-bg: #FFFFFF;
  --color-bg-alt: #F9FAFB;
  --color-bg-card: #FFFFFF;
  --color-border: #E5E7EB;
  --color-border-light: #F3F4F6;
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'Fira Code', 'Consolas', monospace;
  --max-width: 1200px;
  --article-width: 720px;
  --radius: 8px;
  --radius-sm: 4px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.05);
  --shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1);
  --shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);
  --transition: 150ms ease;
}

/* ── Dark Mode ────────────────────────────────── */
@media (prefers-color-scheme: dark) {
  :root {
    --color-text: #F9FAFB;
    --color-text-light: #D1D5DB;
    --color-text-lighter: #9CA3AF;
    --color-bg: #111827;
    --color-bg-alt: #1F2937;
    --color-bg-card: #1F2937;
    --color-border: #374151;
    --color-border-light: #1F2937;
    --color-primary-light: #064E3B;
  }
}

/* ── Reset & Base ─────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-sans);
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.7;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--color-primary-dark); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--color-primary); }

.container { max-width: var(--max-width); margin: 0 auto; padding: 0 1rem; }

/* ── Reading Progress Bar ─────────────────────── */
.reading-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1000; background: transparent; }
.reading-progress-bar { height: 100%; width: 0; background: var(--color-primary); transition: width 50ms linear; }

/* ── Header ───────────────────────────────────── */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.header-inner {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 56px;
  gap: 1rem;
}
.logo { display: flex; align-items: center; flex-shrink: 0; gap: .4rem; }
.logo-mark { width: 28px; height: 28px; color: var(--color-primary); display: flex; }
.logo-mark svg { width: 100%; height: 100%; }
.logo-text { font-size: 1.3rem; font-weight: 900; color: #111827; letter-spacing: -.02em; }
@media (prefers-color-scheme: dark) { .logo-text { color: #F9FAFB; } }
.logo-accent { color: #fff; background: var(--color-primary); padding: .1em .35em; border-radius: .25em; margin-left: .05em; font-size: .8em; font-weight: 800; }

/* Nav */
.main-nav { display: none; flex: 1; justify-content: center; }
@media (min-width: 768px) { .main-nav { display: flex; } }
.nav-list { display: flex; list-style: none; gap: 2px; }
.nav-item { position: relative; }
.nav-link {
  display: flex; align-items: center; gap: 4px;
  padding: .4rem .6rem; font-size: .8125rem; font-weight: 600;
  color: #374151; background: none; border: none; cursor: pointer;
  border-radius: var(--radius-sm); transition: all var(--transition);
  text-transform: uppercase; letter-spacing: .03em;
}
.nav-link:hover, .nav-link.is-active { color: #fff; background: var(--color-primary); }
.nav-chevron { transition: transform var(--transition); }
.nav-dropdown-toggle[aria-expanded="true"] .nav-chevron { transform: rotate(180deg); }
.nav-dropdown {
  display: none; position: absolute; top: 100%; left: 0; min-width: 180px;
  background: var(--color-bg); border: 1px solid var(--color-border);
  border-radius: var(--radius); box-shadow: var(--shadow-lg);
  list-style: none; padding: .375rem 0; z-index: 200;
}
.nav-item:hover .nav-dropdown,
.nav-dropdown-toggle[aria-expanded="true"] + .nav-dropdown { display: block; }
.dropdown-link { display: block; padding: .5rem 1rem; font-size: .875rem; color: var(--color-text); }
.dropdown-link:hover { background: var(--color-bg-alt); color: var(--color-primary-dark); }

.header-actions { display: flex; align-items: center; gap: .5rem; }
.search-toggle, .mobile-menu-toggle {
  background: none; border: none; cursor: pointer; padding: .5rem;
  color: var(--color-text-light); border-radius: var(--radius-sm);
}
.search-toggle:hover, .mobile-menu-toggle:hover { color: var(--color-text); background: var(--color-bg-alt); }

/* Hamburger — hidden on mobile (bottom nav replaces it) */
.mobile-menu-toggle { display: none; }

/* Desktop search icon — hidden on mobile (bottom nav has search) */
@media (max-width: 767px) { .search-toggle { display: none; } }

/* Search overlay — right-aligned dropdown on desktop */
.search-overlay { position: absolute; top: 56px; right: 1rem; left: auto; width: 380px; background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: .75rem; z-index: 200; }
.search-overlay[hidden] { display: none; }
.search-overlay-inner { display: flex; gap: .375rem; align-items: center; }
.search-form-header { display: flex; gap: .375rem; flex: 1; }
.search-input-header { flex: 1; padding: .625rem .875rem; font-size: .9375rem; border: 2px solid var(--color-border); border-radius: var(--radius); outline: none; background: var(--color-bg); color: var(--color-text); }
.search-input-header:focus { border-color: var(--color-primary); }
.search-submit-header { background: var(--color-primary); border: none; cursor: pointer; padding: .625rem .75rem; color: #fff; border-radius: var(--radius); }
.search-close { background: none; border: none; cursor: pointer; padding: .5rem; color: var(--color-text-light); }

/* ══ Mobile Bottom Navigation (app-style) ════════ */
.mobile-bottom-nav { display: none; }

@media (max-width: 767px) {
  .mobile-bottom-nav {
    display: flex; position: fixed; bottom: 0; left: 0; right: 0;
    background: var(--color-bg); border-top: 1px solid var(--color-border);
    box-shadow: 0 -2px 8px rgba(0,0,0,.08);
    z-index: 500; padding: .25rem 0;
    padding-bottom: env(safe-area-inset-bottom, 0);
  }
  .bottom-nav-item {
    flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px;
    padding: .4rem 0; font-size: .625rem; font-weight: 600;
    color: var(--color-text-lighter); background: none; border: none;
    text-decoration: none; cursor: pointer; transition: color var(--transition);
  }
  .bottom-nav-item svg { width: 22px; height: 22px; }
  .bottom-nav-item.is-active { color: var(--color-primary); }
  .bottom-nav-item:hover, .bottom-nav-item:active { color: var(--color-primary); }

  /* Add bottom padding to body so content isn't hidden behind bottom nav */
  body { padding-bottom: 60px; }

  /* Hide desktop top nav items on mobile */
  .main-nav { display: none !important; }

  /* Slim down header on mobile */
  .header-inner { height: 48px; }
}

/* ── Mobile Category Drawer ──────────────────── */
.mobile-cat-drawer {
  display: none; position: fixed; bottom: 56px; left: 0; right: 0;
  background: var(--color-bg); border-top: 1px solid var(--color-border);
  border-radius: 16px 16px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.15);
  z-index: 600; padding: 1rem; max-height: 70vh; overflow-y: auto;
  padding-bottom: env(safe-area-inset-bottom, 1rem);
}
.mobile-cat-drawer:not([hidden]) { display: block; }
.mobile-cat-drawer-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: .75rem; }
.mobile-cat-drawer-header h3 { font-size: 1rem; font-weight: 700; margin: 0; }
.mobile-cat-close { background: none; border: none; cursor: pointer; padding: .375rem; color: var(--color-text-light); }
.mobile-cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; }
.mobile-cat-item {
  display: flex; flex-direction: column; align-items: center; gap: .25rem;
  padding: .75rem .25rem; font-size: .6875rem; font-weight: 600;
  color: var(--color-text); text-decoration: none; text-align: center;
  border-radius: var(--radius); transition: background var(--transition);
}
.mobile-cat-item:hover, .mobile-cat-item:active { background: var(--color-primary-light); }
.mobile-cat-item svg { width: 28px; height: 28px; color: var(--color-primary); }
.mobile-cat-backdrop {
  display: none; position: fixed; inset: 0; background: rgba(0,0,0,.3);
  z-index: 550;
}
.mobile-cat-backdrop:not([hidden]) { display: block; }

/* ── Galaxy Fold 3 & narrow screens (<300px) ─── */
@media (max-width: 320px) {
  .header-inner { height: 44px; padding: 0 .5rem; }
  .logo-text { font-size: 1.1rem; }
  .logo-accent { font-size: .7em; padding: .05em .25em; }
  .hero-compact { padding: 1rem .75rem; }
  .hero-compact-title { font-size: 1.1rem; }
  .hero-compact-input { font-size: .8rem; padding: .5rem .75rem; }
  .featured-card { flex-direction: column-reverse; gap: .75rem; padding: .75rem; }
  .featured-title { font-size: 1.1rem; }
  .featured-excerpt { font-size: .8125rem; }
  .card-grid-4 { grid-template-columns: 1fr !important; gap: .75rem; }
  .card-body { padding: .75rem; }
  .card-title { font-size: .875rem; }
  .card-excerpt { font-size: .8125rem; }
  .section-header { flex-direction: column; align-items: flex-start; gap: .25rem; }
  .mobile-cat-grid { grid-template-columns: repeat(3, 1fr); }
  .bottom-nav-item { font-size: .5625rem; }
  .bottom-nav-item svg { width: 20px; height: 20px; }
  .article-title { font-size: 1.25rem; }
  .article-body { font-size: .9375rem; }
}

/* ── Small phones (321-480px) ────────────────── */
@media (max-width: 480px) {
  .featured-card { flex-direction: column-reverse; gap: .75rem; padding: 1rem; }
  .featured-image, .featured-image-placeholder { width: 100%; height: 180px; }
  .featured-title { font-size: 1.25rem; }
  .card-grid-4 { grid-template-columns: repeat(2, 1fr); gap: .75rem; }
  .hero-compact-title { font-size: 1.15rem; }
}

/* ── Compact Hero (content-first) ─────────────── */
.hero-compact {
  background: linear-gradient(135deg, var(--color-primary) 0%, #065F46 100%);
  color: white; text-align: center; padding: 1.5rem 1rem;
}
.hero-compact-title { font-size: 1.35rem; font-weight: 800; margin-bottom: .75rem; }
.hero-compact .hero-accent { color: #A7F3D0; }
.hero-compact-search { display: flex; max-width: 420px; margin: 0 auto; }
.hero-compact-input {
  flex: 1; padding: .6rem 1rem; font-size: .9rem;
  border: none; border-radius: var(--radius) 0 0 var(--radius);
  outline: none; background: rgba(255,255,255,.95); color: #1F2937;
}
.hero-compact-btn {
  padding: 0 1rem; background: var(--color-accent); border: none;
  border-radius: 0 var(--radius) var(--radius) 0;
  cursor: pointer; color: white;
}

/* ── Featured / Trending Card ─────────────────── */
.featured-section { max-width: var(--max-width); margin: 0 auto; padding: 1.5rem 1rem 0; }
.featured-card {
  display: flex; gap: 1.5rem; padding: 1.5rem;
  background: var(--color-bg-card); border: 1px solid var(--color-border);
  border-radius: var(--radius); overflow: hidden; transition: all var(--transition);
  color: var(--color-text);
}
.featured-card:hover { box-shadow: var(--shadow-md); border-color: var(--color-primary); }
.featured-card-body { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.featured-badge {
  display: inline-block; width: fit-content;
  padding: .2rem .6rem; font-size: .7rem; font-weight: 700; text-transform: uppercase;
  background: var(--color-primary); color: white; border-radius: 9999px; margin-bottom: .75rem;
}
.featured-title { font-size: 1.5rem; font-weight: 800; line-height: 1.25; margin-bottom: .5rem; color: var(--color-text); }
.featured-excerpt { font-size: .9375rem; color: var(--color-text-light); line-height: 1.6; margin-bottom: .5rem; }
.featured-meta { font-size: .8125rem; color: var(--color-text-lighter); }
.featured-image { width: 280px; height: 200px; object-fit: cover; border-radius: var(--radius); flex-shrink: 0; }
.featured-image-placeholder {
  width: 280px; height: 200px; flex-shrink: 0;
  background: linear-gradient(135deg, var(--color-primary-light) 0%, #D1FAE5 100%);
  border-radius: var(--radius);
  display: flex; align-items: center; justify-content: center; color: var(--color-primary);
  overflow: hidden;
}
.featured-image-placeholder svg { width: 48px; height: 48px; opacity: .4; }
@media (max-width: 640px) {
  .featured-card { flex-direction: column-reverse; }
  .featured-image, .featured-image-placeholder { width: 100%; height: 180px; }
}

/* ── Home Section (per-category rows) ────────── */
.home-section { max-width: var(--max-width); margin: 0 auto; padding: 1.5rem 1rem 0; }
.section-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1rem; padding-bottom: .5rem; border-bottom: 2px solid var(--color-primary);
}
.section-header-left { display: flex; align-items: center; gap: .5rem; }
.section-icon { width: 28px; height: 28px; color: var(--color-primary); display: flex; }
.section-icon svg { width: 100%; height: 100%; }
.section-label { font-size: .8125rem; font-weight: 800; letter-spacing: .08em; color: var(--color-primary-dark); margin: 0; }
.section-viewall { font-size: .8125rem; font-weight: 600; color: var(--color-primary-dark); white-space: nowrap; }
.section-viewall:hover { color: var(--color-primary); }

/* 4-column card grid for homepage sections */
.card-grid-4 { grid-template-columns: 1fr; }
@media (min-width: 480px) { .card-grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .card-grid-4 { grid-template-columns: repeat(4, 1fr); } }

/* ── Old hero/category (kept for fallback) ────── */
.hero {
  background: linear-gradient(135deg, var(--color-primary) 0%, #065F46 100%);
  color: white; text-align: center; padding: 4rem 1rem;
}
.hero-content { max-width: 640px; margin: 0 auto; }
.hero-title { font-size: clamp(2rem, 5vw, 3rem); font-weight: 800; line-height: 1.15; margin-bottom: 1rem; }
.hero-accent { color: #A7F3D0; }
.section-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 1.5rem; text-align: center; }
.categories-section { padding: 3rem 1rem; max-width: var(--max-width); margin: 0 auto; }
.category-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 1rem; }
.category-card {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 1.5rem 1rem; background: var(--color-bg-card); border: 1px solid var(--color-border);
  border-radius: var(--radius); transition: all var(--transition); text-align: center;
}
.category-card:hover { border-color: var(--color-primary); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.category-card-icon { width: 48px; height: 48px; border-radius: 50%; margin-bottom: .75rem; background: var(--color-primary-light); }
.category-card-name { font-size: .875rem; font-weight: 600; color: var(--color-text); }

/* ── Card Grid ────────────────────────────────── */
.latest-section, .related-articles { padding: 3rem 1rem; max-width: var(--max-width); margin: 0 auto; }
.card-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px) { .card-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .card-grid { grid-template-columns: repeat(3, 1fr); } }

/* ── Article Card ─────────────────────────────── */
.card {
  background: var(--color-bg-card); border: 1px solid var(--color-border);
  border-radius: var(--radius); overflow: hidden; transition: all var(--transition);
}
.card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.card-image-link { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; }
.card-image { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.card:hover .card-image { transform: scale(1.03); }
.card-image-placeholder { display: flex; align-items: center; justify-content: center; background: var(--color-bg-alt); color: var(--color-text-lighter); }
.card-badge {
  position: absolute; top: .75rem; left: .75rem;
  padding: .2rem .6rem; font-size: .7rem; font-weight: 600; text-transform: uppercase;
  background: var(--color-primary); color: white; border-radius: 9999px;
}
.card-body { padding: 1rem; }
.card-title { font-size: 1rem; font-weight: 600; line-height: 1.4; margin-bottom: .5rem; }
.card-title a { color: var(--color-text); }
.card-title a:hover { color: var(--color-primary-dark); }
.card-excerpt { font-size: .875rem; color: var(--color-text-light); line-height: 1.6; margin-bottom: .75rem; }
.card-meta { font-size: .75rem; color: var(--color-text-lighter); display: flex; align-items: center; gap: .375rem; }
.card-author-avatar { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; }
.card-author-name { font-weight: 600; color: var(--color-text-light); }

/* ── Category Page ────────────────────────────── */
.category-page { max-width: var(--max-width); margin: 0 auto; padding: 2rem 1rem; }
.category-header { margin-bottom: 2rem; }
.category-title { font-size: 2rem; font-weight: 800; margin-bottom: .5rem; }
.category-description { color: var(--color-text-light); font-size: 1.05rem; max-width: 640px; }
.subcategory-nav { margin-bottom: 2rem; overflow-x: auto; }
.subcategory-list { display: flex; gap: .5rem; padding-bottom: .5rem; }
.subcategory-link {
  display: flex; align-items: center; gap: .375rem; white-space: nowrap;
  padding: .5rem 1rem; font-size: .875rem; font-weight: 500;
  background: var(--color-bg-alt); border: 1px solid var(--color-border);
  border-radius: 9999px; color: var(--color-text); transition: all var(--transition);
}
.subcategory-link:hover { border-color: var(--color-primary); color: var(--color-primary-dark); background: var(--color-primary-light); }
.subcategory-active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.subcategory-active:hover { background: var(--color-primary-dark); color: #fff; border-color: var(--color-primary-dark); }
.subcategory-active .subcategory-count { color: rgba(255,255,255,.75); }
.subcategory-count { font-size: .75rem; color: var(--color-text-lighter); }

/* ── Breadcrumbs ──────────────────────────────── */
.breadcrumbs { margin-bottom: 1.5rem; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; list-style: none; font-size: .8125rem; color: var(--color-text-lighter); gap: .25rem; }
.breadcrumbs li:not(:last-child)::after { content: '/'; margin-left: .25rem; }
.breadcrumbs a { color: var(--color-text-light); }
.breadcrumbs a:hover { color: var(--color-primary-dark); }

/* ── Article Page ─────────────────────────────── */
.article { max-width: var(--max-width); margin: 0 auto; padding: 2rem 1rem; }
.article-header { margin-bottom: 2rem; text-align: center; max-width: var(--article-width); margin-left: auto; margin-right: auto; }
.article-category-badge {
  display: inline-block; padding: .25rem .75rem; font-size: .75rem; font-weight: 600;
  text-transform: uppercase; background: var(--color-primary-light); color: var(--color-primary-dark);
  border-radius: 9999px; margin-bottom: .75rem;
}
.article-title { font-size: clamp(1.5rem, 4vw, 2.25rem); font-weight: 800; line-height: 1.2; margin-bottom: 1rem; }
.article-meta { font-size: .875rem; color: var(--color-text-light); display: flex; flex-wrap: wrap; justify-content: center; gap: .375rem; }
.meta-sep { color: var(--color-text-lighter); }
.article-featured-image { max-width: var(--article-width); margin: 0 auto 2rem; border-radius: var(--radius); overflow: hidden; }

/* Article body typography */
.article-layout { max-width: var(--article-width); margin: 0 auto; }
.article-body { line-height: 1.8; font-size: 1.0625rem; }
.article-body h2 { font-size: 1.5rem; font-weight: 700; margin: 2.5rem 0 1rem; padding-top: 1rem; border-top: 1px solid var(--color-border-light); }
.article-body h3 { font-size: 1.2rem; font-weight: 600; margin: 2rem 0 .75rem; }
.article-body p { margin-bottom: 1.25rem; }
.article-body ul, .article-body ol { margin-bottom: 1.25rem; padding-left: 1.5rem; }
.article-body li { margin-bottom: .5rem; }
.article-body blockquote { border-left: 4px solid var(--color-primary); margin: 1.5rem 0; padding: 1rem 1.25rem; background: var(--color-bg-alt); border-radius: 0 var(--radius) var(--radius) 0; font-style: italic; }
.article-body img { border-radius: var(--radius); margin: 1.5rem 0; }
.article-body table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: .9375rem; }
.article-body th, .article-body td { padding: .75rem; border: 1px solid var(--color-border); text-align: left; }
.article-body th { background: var(--color-bg-alt); font-weight: 600; }
.article-body code { font-family: var(--font-mono); font-size: .875em; background: var(--color-bg-alt); padding: .15em .4em; border-radius: var(--radius-sm); }
.article-body pre { background: var(--color-bg-alt); padding: 1.25rem; border-radius: var(--radius); overflow-x: auto; margin: 1.5rem 0; }
.article-body a { color: var(--color-primary-dark); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }

/* ── Quick Answer Box ─────────────────────────── */
.quick-answer {
  display: flex; gap: 1rem; max-width: var(--article-width); margin: 0 auto 2rem;
  padding: 1.25rem; background: var(--color-primary-light); border-radius: var(--radius);
  border-left: 4px solid var(--color-primary);
}
.quick-answer-icon { flex-shrink: 0; color: var(--color-primary-dark); margin-top: 2px; }
.quick-answer p { margin: .25rem 0 0; font-size: .9375rem; }

/* ── Table of Contents ────────────────────────── */
.toc {
  max-width: var(--article-width); margin: 0 auto 2rem;
  border: 1px solid var(--color-border); border-radius: var(--radius); overflow: hidden;
}
.toc-heading { padding: .875rem 1rem; font-weight: 600; font-size: .9375rem; cursor: pointer; background: var(--color-bg-alt); }
.toc nav { padding: .5rem 1rem 1rem; }
.toc nav ul { list-style: none; padding-left: 0; }
.toc nav ul ul { padding-left: 1.25rem; }
.toc nav li { margin: .25rem 0; }
.toc nav a { font-size: .875rem; color: var(--color-text-light); display: block; padding: .2rem 0; }
.toc nav a:hover { color: var(--color-primary-dark); }
.toc nav a.is-active { color: var(--color-primary-dark); font-weight: 600; }

/* ── FAQ Section ──────────────────────────────── */
.faq-section { max-width: var(--article-width); margin: 2rem auto; padding-top: 2rem; border-top: 1px solid var(--color-border); }
.faq-section h2 { font-size: 1.5rem; margin-bottom: 1rem; }
.faq-item { border: 1px solid var(--color-border); border-radius: var(--radius); margin-bottom: .5rem; overflow: hidden; }
.faq-question { padding: 1rem; font-weight: 600; font-size: .9375rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.faq-question::after { content: '+'; font-size: 1.25rem; color: var(--color-text-lighter); transition: transform var(--transition); }
.faq-item[open] .faq-question::after { content: '\2212'; }
.faq-answer { padding: 0 1rem 1rem; font-size: .9375rem; color: var(--color-text-light); }

/* ── Share Buttons ────────────────────────────── */
.share-buttons { max-width: var(--article-width); margin: 2rem auto; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.share-label { font-size: .875rem; font-weight: 600; color: var(--color-text-light); }
.share-btn {
  display: inline-flex; align-items: center; gap: .375rem;
  padding: .5rem .875rem; font-size: .8125rem; font-weight: 500;
  border: 1px solid var(--color-border); border-radius: 9999px;
  background: var(--color-bg); color: var(--color-text); cursor: pointer;
  transition: all var(--transition);
}
.share-btn:hover { border-color: var(--color-text-lighter); }
.share-pinterest:hover { color: #E60023; border-color: #E60023; }
.share-facebook:hover { color: #1877F2; border-color: #1877F2; }
.share-twitter:hover { color: #000; border-color: #000; }

/* ── Article Tags ─────────────────────────────── */
.article-tags { max-width: var(--article-width); margin: 2rem auto; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.tags-label { font-size: .875rem; font-weight: 600; color: var(--color-text-light); }
.tag { padding: .25rem .75rem; font-size: .75rem; background: var(--color-bg-alt); border: 1px solid var(--color-border); border-radius: 9999px; color: var(--color-text-light); }
.tag:hover { border-color: var(--color-primary); color: var(--color-primary-dark); }

/* ── Email Capture ────────────────────────────── */
.email-capture {
  max-width: var(--article-width); margin: 2.5rem auto;
  padding: 2rem; text-align: center;
  background: var(--color-bg-alt); border: 1px solid var(--color-border);
  border-radius: var(--radius);
}
.email-capture-home { max-width: 600px; margin: 3rem auto; padding: 3rem 2rem; background: linear-gradient(135deg, #065F46 0%, var(--color-primary) 100%); color: white; border: none; }
.email-capture-home .btn-primary { background: var(--color-accent); }
.email-capture-icon { margin-bottom: 1rem; color: var(--color-primary); }
.email-capture h2, .email-capture h3 { margin-bottom: .5rem; }
.email-capture p { color: var(--color-text-light); margin-bottom: 1rem; font-size: .9375rem; }
.email-capture-home p { color: rgba(255,255,255,.85); }
.email-capture-form { display: flex; gap: .5rem; max-width: 400px; margin: 0 auto; }
.email-capture-form input { flex: 1; padding: .75rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius); font-size: .9375rem; background: var(--color-bg); color: var(--color-text); }
.email-capture-form input:focus { outline: none; border-color: var(--color-primary); }

/* ── Buttons ──────────────────────────────────── */
.btn { display: inline-flex; align-items: center; justify-content: center; padding: .625rem 1.25rem; font-size: .875rem; font-weight: 600; border: none; border-radius: var(--radius); cursor: pointer; transition: all var(--transition); }
.btn-primary { background: var(--color-primary); color: white; }
.btn-primary:hover { background: var(--color-primary-dark); }
.btn-lg { padding: .875rem 1.5rem; font-size: 1rem; }

/* ── Ad Slots ─────────────────────────────────── */
.ad-slot { margin: 2rem 0; min-height: 90px; text-align: center; }
.ad-slot:empty { display: none; }

/* ── Product Box (Shortcode) ──────────────────── */
.product-box {
  display: flex; gap: 1rem; padding: 1.25rem; margin: 1.5rem 0;
  background: var(--color-bg-alt); border: 2px solid var(--color-accent);
  border-radius: var(--radius); align-items: center;
}
.product-box-image { width: 100px; height: 100px; object-fit: contain; flex-shrink: 0; }
.product-box-info { flex: 1; }
.product-box-title { font-weight: 700; font-size: 1rem; margin-bottom: .25rem; }
.product-box-price { color: var(--color-primary-dark); font-weight: 600; font-size: 1.125rem; margin-bottom: .5rem; }
.product-box-stars { color: var(--color-accent); font-size: .875rem; margin-bottom: .5rem; }
.product-box-btn {
  display: inline-block; padding: .5rem 1rem; font-size: .8125rem; font-weight: 600;
  background: var(--color-accent); color: white; border-radius: var(--radius);
}
.product-box-btn:hover { background: #D97706; color: white; }

/* ── Quick Tip (Shortcode) ────────────────────── */
.quick-tip {
  display: flex; gap: .75rem; padding: 1rem 1.25rem; margin: 1.5rem 0;
  background: var(--color-primary-light); border-radius: var(--radius);
  font-size: .9375rem;
}
.quick-tip-icon { flex-shrink: 0; font-size: 1.25rem; }

/* ── Pagination ───────────────────────────────── */
.pagination { display: flex; justify-content: center; gap: .375rem; margin: 2rem 0; list-style: none; }
.page-item .page-link {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 .5rem; font-size: .875rem;
  border: 1px solid var(--color-border); border-radius: var(--radius-sm);
  color: var(--color-text); background: var(--color-bg);
}
.page-item .page-link:hover { background: var(--color-bg-alt); }
.page-item.active .page-link { background: var(--color-primary); color: white; border-color: var(--color-primary); }
.page-item.disabled .page-link { opacity: .4; pointer-events: none; }

/* ── Search Page ──────────────────────────────── */
.search-page { max-width: var(--article-width); margin: 0 auto; padding: 2rem 1rem; }
.search-page h1 { margin-bottom: 1.5rem; }
.search-form { display: flex; gap: .5rem; margin-bottom: 2rem; }
.search-input { flex: 1; padding: .875rem 1rem; font-size: 1rem; border: 2px solid var(--color-border); border-radius: var(--radius); background: var(--color-bg); color: var(--color-text); }
.search-input:focus { outline: none; border-color: var(--color-primary); }
.search-results-info { font-size: .875rem; color: var(--color-text-light); margin-bottom: 1rem; }
.search-result { padding: 1rem 0; border-bottom: 1px solid var(--color-border-light); }
.search-result-title { font-size: 1.1rem; font-weight: 600; margin-bottom: .25rem; }
.search-result-title a { color: var(--color-primary-dark); }
.search-result-desc { font-size: .9375rem; color: var(--color-text-light); margin-bottom: .25rem; }
.search-result-meta { font-size: .75rem; color: var(--color-text-lighter); }
.search-loading { text-align: center; padding: 2rem; color: var(--color-text-light); }
.search-empty { text-align: center; padding: 3rem; color: var(--color-text-lighter); }

/* ── Footer ───────────────────────────────────── */
.site-footer { background: var(--color-bg-alt); border-top: 1px solid var(--color-border); margin-top: 3rem; }
.footer-main { padding: 3rem 0; }
.footer-grid { max-width: var(--max-width); margin: 0 auto; padding: 0 1rem; display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 640px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .footer-grid { grid-template-columns: 1.5fr 1fr 1fr 1.5fr; } }
.footer-logo { display: inline-block; margin-bottom: .75rem; }
.footer-about { font-size: .875rem; color: var(--color-text-light); line-height: 1.6; margin-bottom: 1rem; }
.footer-social { display: flex; gap: .5rem; }
.social-link { color: var(--color-text-light); padding: .375rem; border-radius: var(--radius-sm); transition: color var(--transition); }
.social-link:hover { color: var(--color-primary); }
.footer-heading { font-size: .875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 1rem; color: var(--color-text); }
.footer-links { list-style: none; }
.footer-links li { margin-bottom: .375rem; }
.footer-links a { font-size: .875rem; color: var(--color-text-light); }
.footer-links a:hover { color: var(--color-primary); }
.footer-newsletter-text { font-size: .875rem; color: var(--color-text-light); margin-bottom: 1rem; }
.footer-newsletter-form { display: flex; gap: .375rem; }
.footer-newsletter-input { flex: 1; padding: .5rem .75rem; font-size: .875rem; border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-bg); color: var(--color-text); }
.footer-newsletter-btn { padding: .5rem 1rem; font-size: .875rem; font-weight: 600; background: var(--color-primary); color: white; border: none; border-radius: var(--radius); cursor: pointer; }
.footer-newsletter-btn:hover { background: var(--color-primary-dark); }
.footer-newsletter-note { font-size: .75rem; color: var(--color-text-lighter); margin-top: .5rem; }
.footer-bottom { border-top: 1px solid var(--color-border); padding: 1.5rem 0; }
.footer-bottom .container { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; }
.copyright { font-size: .8125rem; color: var(--color-text-light); }
.footer-disclosure { font-size: .75rem; color: var(--color-text-lighter); }

/* ── Print Styles ─────────────────────────────── */
@media print {
  .site-header, .site-footer, .reading-progress, .share-buttons,
  .email-capture, .ad-slot, .toc, .related-articles { display: none !important; }
  body { font-size: 12pt; color: #000; background: #fff; }
  .article { max-width: 100%; padding: 0; }
  a { color: #000; text-decoration: underline; }
  a[href]::after { content: " (" attr(href) ")"; font-size: .8em; }
}

/* ══ Author Avatar in Article Header ═════════════ */
.article-meta-author {
  display: flex; align-items: center; gap: .75rem;
  justify-content: center; margin-top: .5rem;
}
.author-avatar-sm { display: block; width: 40px; height: 40px; min-width: 40px; max-width: 40px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 2px solid var(--color-primary-light); aspect-ratio: 1; }
.article-meta-author .article-author { font-weight: 600; font-size: .9375rem; color: var(--color-text); display: block; }
.article-meta-date { font-size: .8125rem; color: var(--color-text-light); display: flex; gap: .375rem; }

/* ══ Emoji Reactions ═════════════════════════════ */
.reactions {
  max-width: var(--article-width); margin: 2rem auto;
  text-align: center; padding: 1.5rem;
  background: var(--color-bg-alt); border-radius: var(--radius);
  border: 1px solid var(--color-border);
}
.reactions-label { font-size: .9375rem; font-weight: 600; margin-bottom: 1rem; color: var(--color-text-light); }
.reactions-buttons { display: flex; justify-content: center; gap: .75rem; flex-wrap: wrap; }
.reaction-btn {
  display: flex; flex-direction: column; align-items: center; gap: .25rem;
  padding: .75rem 1.25rem; background: var(--color-bg); border: 2px solid var(--color-border);
  border-radius: var(--radius); cursor: pointer; transition: all var(--transition);
  min-width: 80px;
}
.reaction-btn:hover { border-color: var(--color-primary); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.reaction-btn.reacted { border-color: var(--color-primary); background: var(--color-primary-light); }
.reaction-emoji { font-size: 1.75rem; line-height: 1; }
.reaction-name { font-size: .6875rem; font-weight: 600; color: var(--color-text-light); text-transform: uppercase; letter-spacing: .03em; }
.reaction-count { font-size: .75rem; font-weight: 700; color: var(--color-primary-dark); }

@media (max-width: 480px) {
  .reactions-buttons { gap: .5rem; }
  .reaction-btn { padding: .5rem .75rem; min-width: 70px; }
  .reaction-emoji { font-size: 1.5rem; }
}

/* ══ Author Bio Box ══════════════════════════════ */
.author-box {
  max-width: var(--article-width); margin: 2rem auto;
  display: flex; gap: 1rem; padding: 1.25rem;
  background: var(--color-bg-alt); border: 1px solid var(--color-border);
  border-radius: var(--radius); align-items: center;
}
.author-box-photo { display: block; width: 64px; height: 64px; min-width: 64px; max-width: 64px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 3px solid var(--color-primary-light); aspect-ratio: 1; overflow: hidden; }
.author-box-info { flex: 1; }
.author-box-name { font-size: 1rem; font-weight: 700; margin-bottom: .25rem; }
.author-box-bio { font-size: .8125rem; color: var(--color-text-light); line-height: 1.5; }

@media (max-width: 480px) {
  .author-box { flex-direction: column; text-align: center; }
}

/* ══ Footer DMCA Badge ═══════════════════════════ */
.footer-bottom-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; }
.footer-dmca { flex-shrink: 0; }
.dmca-badge img { display: block; }
