/*
Theme Name: Buzz Ur Brand Magazine
Theme URI: https://buzzurbrand.net
Author: Buzz Ur Brand
Author URI: https://buzzurbrand.com
Description: Custom magazine-style multi-author theme for buzzurbrand.net — the Buzz Ur Brand content authority hub. Big featured images, simple navigation, red/blue/white brand palette. Built as a "raw," easy-to-manage classic PHP theme (no page builder dependency).
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: buzzurbrand-net
*/

/* ==========================================================================
   1. Brand variables
   ========================================================================== */
:root {
  --bub-red: #C8102E;
  --bub-red-dark: #9c0c23;
  --bub-blue: #0B3D91;
  --bub-blue-dark: #082b66;
  --bub-white: #ffffff;
  --bub-ink: #1a1a1a;
  --bub-gray: #6b6b6b;
  --bub-gray-light: #f2f2f2;
  --bub-border: #e4e4e4;
  --bub-font-heading: Georgia, 'Times New Roman', serif;
  --bub-font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  --bub-max-width: 1180px;
}

/* ==========================================================================
   2. Reset / base
   ========================================================================== */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--bub-font-body);
  color: var(--bub-ink);
  background: var(--bub-white);
  line-height: 1.6;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--bub-blue); text-decoration: none; }
a:hover { color: var(--bub-red); }
h1, h2, h3, h4 { font-family: var(--bub-font-heading); line-height: 1.2; margin: 0 0 0.5em; }
p { margin: 0 0 1.2em; }
.container { max-width: var(--bub-max-width); margin: 0 auto; padding: 0 20px; }
.screen-reader-text {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px,1px,1px,1px); white-space: nowrap;
}

/* ==========================================================================
   3. Site header / nav
   ========================================================================== */
.site-header {
  border-bottom: 4px solid var(--bub-red);
  background: var(--bub-white);
  padding: 18px 0;
}
.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.site-branding a {
  font-family: var(--bub-font-heading);
  font-size: 28px;
  font-weight: bold;
  color: var(--bub-ink);
  letter-spacing: -0.5px;
}
.site-branding a span { color: var(--bub-red); }
.site-branding .site-tagline {
  display: block;
  font-family: var(--bub-font-body);
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--bub-gray);
  margin-top: 2px;
}
.primary-nav ul {
  list-style: none;
  display: flex;
  gap: 28px;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
}
.primary-nav a {
  color: var(--bub-ink);
  font-weight: 600;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding-bottom: 4px;
  border-bottom: 2px solid transparent;
}
.primary-nav a:hover,
.primary-nav .current-menu-item a {
  color: var(--bub-red);
  border-bottom-color: var(--bub-red);
}
.menu-toggle {
  display: none;
  background: var(--bub-blue);
  color: var(--bub-white);
  border: none;
  padding: 8px 14px;
  font-size: 15px;
  cursor: pointer;
}

/* ==========================================================================
   4. Hero (front page featured post)
   ========================================================================== */
.hero-post {
  position: relative;
  color: var(--bub-white);
  background: var(--bub-blue);
  margin-bottom: 40px;
  min-height: 420px;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
}
.hero-post::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(0,0,0,0.78) 0%, rgba(0,0,0,0.15) 65%, rgba(0,0,0,0.05) 100%);
}
.hero-post .hero-content {
  position: relative;
  z-index: 1;
  padding: 40px;
  max-width: 780px;
}
.hero-post .hero-eyebrow {
  display: inline-block;
  background: var(--bub-red);
  color: var(--bub-white);
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 1.5px;
  font-weight: 700;
  padding: 5px 12px;
  margin-bottom: 14px;
}
.hero-post h1 {
  font-size: clamp(28px, 4vw, 44px);
  margin-bottom: 12px;
}
.hero-post h1 a { color: var(--bub-white); }
.hero-post .hero-excerpt { font-size: 17px; color: #f0f0f0; margin-bottom: 10px; }
.hero-post .hero-byline { font-size: 13px; color: #d8d8d8; text-transform: uppercase; letter-spacing: 1px; }
.hero-post .hero-byline a { color: var(--bub-white); font-weight: 700; }

/* ==========================================================================
   5. Magazine grid
   ========================================================================== */
.magazine-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin: 0 0 50px;
}
.post-card { border-bottom: 1px solid var(--bub-border); padding-bottom: 24px; }
.post-card .card-thumb {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--bub-gray-light);
  margin-bottom: 14px;
}
.post-card .card-thumb img { width: 100%; height: 100%; object-fit: cover; }
.post-card .card-category {
  color: var(--bub-red);
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 6px;
  display: block;
}
.post-card h2 { font-size: 21px; margin-bottom: 8px; }
.post-card h2 a { color: var(--bub-ink); }
.post-card .card-excerpt { color: var(--bub-gray); font-size: 15px; margin-bottom: 8px; }
.post-card .card-byline { font-size: 13px; color: var(--bub-gray); }
.post-card .card-byline a { color: var(--bub-blue); font-weight: 600; }

.section-heading {
  font-size: 22px;
  text-transform: uppercase;
  letter-spacing: 1px;
  border-bottom: 3px solid var(--bub-ink);
  padding-bottom: 10px;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.section-heading span.accent { color: var(--bub-red); }

/* ==========================================================================
   6. Single post
   ========================================================================== */
.single-post-header { max-width: 820px; margin: 0 auto 24px; text-align: center; }
.single-post-header .post-category {
  color: var(--bub-red); text-transform: uppercase; font-weight: 700;
  font-size: 13px; letter-spacing: 1.5px; margin-bottom: 10px; display: block;
}
.single-post-header h1 { font-size: clamp(28px, 4vw, 42px); margin-bottom: 16px; }
.single-post-meta {
  font-size: 14px; color: var(--bub-gray);
  display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap;
}
.single-post-meta a { font-weight: 700; color: var(--bub-blue); }
.single-featured-image { margin-bottom: 32px; }
.single-featured-image img { width: 100%; max-height: 520px; object-fit: cover; }
.single-content {
  max-width: 720px;
  margin: 0 auto;
  font-size: 18px;
}
.single-content h2 { font-size: 26px; margin-top: 1.6em; }
.single-content h3 { font-size: 21px; margin-top: 1.4em; }
.single-content blockquote {
  border-left: 4px solid var(--bub-red);
  margin: 1.6em 0;
  padding: 4px 0 4px 20px;
  font-style: italic;
  color: var(--bub-blue-dark);
}

/* Author box under a single post */
.author-box {
  max-width: 720px;
  margin: 50px auto 0;
  padding: 24px;
  background: var(--bub-gray-light);
  display: flex;
  gap: 18px;
  align-items: flex-start;
}
.author-box img { width: 76px; height: 76px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.author-box h3 { margin-bottom: 6px; font-size: 18px; }
.author-box h3 a { color: var(--bub-ink); }
.author-box p { margin-bottom: 8px; font-size: 15px; color: var(--bub-gray); }
.author-box .author-site-link { font-weight: 700; color: var(--bub-blue); font-size: 14px; }

/* ==========================================================================
   7. Author archive page
   ========================================================================== */
.author-header {
  background: var(--bub-blue);
  color: var(--bub-white);
  padding: 50px 0;
  margin-bottom: 40px;
  text-align: center;
}
.author-header img { width: 110px; height: 110px; border-radius: 50%; object-fit: cover; margin: 0 auto 18px; border: 4px solid var(--bub-white); }
.author-header h1 { color: var(--bub-white); font-size: 30px; margin-bottom: 10px; }
.author-header p { max-width: 620px; margin: 0 auto 14px; color: #e6e6e6; }
.author-header .author-site-link {
  display: inline-block; background: var(--bub-red); color: var(--bub-white);
  padding: 8px 18px; font-weight: 700; text-transform: uppercase; font-size: 13px; letter-spacing: 1px;
}
.author-header .author-site-link:hover { background: var(--bub-white); color: var(--bub-red); }

/* ==========================================================================
   8. Category archive
   ========================================================================== */
.archive-header { text-align: center; margin: 40px 0; }
.archive-header h1 { font-size: 32px; }
.archive-header h1 span { color: var(--bub-red); }
.archive-header .archive-description { color: var(--bub-gray); max-width: 640px; margin: 10px auto 0; }

/* ==========================================================================
   9. Sidebar / widgets (kept minimal per "simple, uncluttered nav")
   ========================================================================== */
.content-layout { display: grid; grid-template-columns: 1fr; }

/* ==========================================================================
   10. Pagination
   ========================================================================== */
.bub-pagination { display: flex; justify-content: center; gap: 10px; margin: 20px 0 60px; }
.bub-pagination a, .bub-pagination span {
  padding: 8px 14px; border: 1px solid var(--bub-border); font-weight: 600; color: var(--bub-ink);
}
.bub-pagination a:hover { border-color: var(--bub-red); color: var(--bub-red); }
.bub-pagination .current { background: var(--bub-red); color: var(--bub-white); border-color: var(--bub-red); }

/* ==========================================================================
   11. Footer
   ========================================================================== */
.site-footer {
  background: var(--bub-ink);
  color: #cfcfcf;
  margin-top: 60px;
  padding: 40px 0 24px;
  font-size: 14px;
}
.site-footer a { color: var(--bub-white); }
.site-footer a:hover { color: var(--bub-red); }
.footer-grid { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 20px; margin-bottom: 24px; }
.footer-brand { font-family: var(--bub-font-heading); font-size: 20px; color: var(--bub-white); }
.footer-nav ul { list-style: none; display: flex; gap: 18px; padding: 0; margin: 0; flex-wrap: wrap; }
.site-footer .footer-bottom { border-top: 1px solid #3a3a3a; padding-top: 18px; font-size: 13px; color: #999; }

/* ==========================================================================
   12. Responsive
   ========================================================================== */
@media (max-width: 900px) {
  .magazine-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 680px) {
  .magazine-grid { grid-template-columns: 1fr; }
  .menu-toggle { display: inline-block; }
  .primary-nav { display: none; width: 100%; }
  .primary-nav.is-open { display: block; }
  .primary-nav ul { flex-direction: column; gap: 0; }
  .primary-nav li { border-bottom: 1px solid var(--bub-border); }
  .primary-nav a { display: block; padding: 12px 0; }
  .site-header .container { flex-direction: row; }
  .author-box { flex-direction: column; align-items: center; text-align: center; }
  .hero-post { min-height: 320px; }
}
