/*
Theme Name: Side Hustles Daily
Theme URI: https://getsidehustles.com
Author: Devin
Author URI: https://getsidehustles.com
Description: A bold, editorial news-style WordPress theme for GetSideHustles.com — inspired by the punchy headline grids, red accent labels and dense story feed of big digital newsrooms. Built for a side-hustle / money-making blog with a featured hero story, trending sidebar and clean article pages.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: sidehustles
Tags: blog, news, one-column, two-columns, right-sidebar, custom-logo, custom-menu, featured-images, translation-ready
*/

/* =========================================================
   0. FONTS + RESET
========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;700;800;900&family=Source+Sans+3:wght@400;500;600;700&display=swap');

:root{
  --color-ink:#0b0b0c;
  --color-red:#e11931;
  --color-red-dark:#b8112a;
  --color-white:#ffffff;
  --color-bg:#f4f4f2;
  --color-line:#e3e2df;
  --color-gray:#6b6b6b;
  --color-gray-light:#9a9a9a;
  --font-head:'Archivo', 'Arial Narrow', Helvetica, sans-serif;
  --font-body:'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --wrap:1180px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--color-white);
  color:var(--color-ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{font-family:var(--font-head);margin:0;line-height:1.1;}
p{margin:0 0 1em;}
.container{max-width:var(--wrap);margin:0 auto;padding:0 20px;}
.screen-reader-text{position:absolute;left:-9999px;}

/* =========================================================
   2. MASTHEAD
========================================================= */
.masthead{border-bottom:1px solid var(--color-line);background:var(--color-white);}
.masthead .container{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;flex-wrap:nowrap;}
.logo{font-family:var(--font-head);font-weight:900;font-size:26px;letter-spacing:-.01em;text-transform:uppercase;flex-shrink:0;min-width:0;}
.logo a{color:var(--color-ink);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.logo .accent{color:var(--color-red);}
.logo img{max-height:36px;}

.masthead-utility{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.header-search{flex-shrink:1;min-width:0;}
.header-search input{
  border:1px solid var(--color-line);background:var(--color-bg);
  padding:7px 12px;font-size:13px;font-family:var(--font-body);width:170px;max-width:100%;
}
.subscribe-btn{
  background:var(--color-red);color:var(--color-white);
  font-family:var(--font-head);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;
  padding:9px 16px;white-space:nowrap;flex-shrink:0;
}
.subscribe-btn:hover{background:var(--color-red-dark);}

.menu-toggle{display:none;flex-shrink:0;background:none;border:2px solid var(--color-ink);padding:6px 10px;font-family:var(--font-head);font-weight:700;font-size:13px;text-transform:uppercase;cursor:pointer;}

/* Masthead collapses in stages so it never gets squeezed: search box goes
   first, then the subscribe button, well before the hamburger takes over
   the nav below. */
@media (max-width:760px){
  .header-search{display:none;}
}
@media (max-width:560px){
  .logo{font-size:21px;}
  .subscribe-btn{padding:8px 12px;font-size:11px;}
}
@media (max-width:400px){
  .subscribe-btn{display:none;}
}

/* =========================================================
   3. PRIMARY NAV
========================================================= */
.primary-nav{background:var(--color-ink);border-bottom:3px solid var(--color-red);}
.primary-nav .container{display:flex;}
.primary-nav ul{display:flex;flex-wrap:wrap;}
.primary-nav a{
  display:block;
  padding:9px 13px;
  color:var(--color-white);
  font-family:var(--font-head);
  font-weight:700;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.03em;
  border-right:1px solid rgba(255,255,255,.1);
  transition:background .15s ease,color .15s ease;
}
.primary-nav a:hover{background:var(--color-red);color:var(--color-white);}
.primary-nav .current-menu-item > a{background:var(--color-red);}

/* =========================================================
   4. KICKER / CATEGORY EYEBROW LABEL
========================================================= */
.kicker{
  display:inline-block;
  color:var(--color-red);
  font-family:var(--font-head);
  font-weight:800;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:6px;
}
.kicker::before{content:"";display:inline-block;width:8px;height:8px;background:var(--color-red);margin-right:6px;vertical-align:middle;}

/* =========================================================
   5. HOMEPAGE LAYOUT
========================================================= */
.home-layout{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:40px;
  padding:36px 0 60px;
}
@media (max-width:900px){
  .home-layout{grid-template-columns:1fr;}
}

/* Featured hero story */
.hero-story{border-bottom:1px solid var(--color-line);padding-bottom:32px;margin-bottom:32px;}
.hero-story .hero-thumb{margin-bottom:18px;overflow:hidden;}
.hero-story .hero-thumb img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .4s ease;}
.hero-story:hover .hero-thumb img{transform:scale(1.03);}
.hero-story h1,.hero-story h2{font-size:38px;font-weight:900;letter-spacing:-.01em;margin-bottom:12px;}
.hero-story h1 a,.hero-story h2 a{color:var(--color-ink);}
.hero-story h1 a:hover,.hero-story h2 a:hover{color:var(--color-red);}
.hero-story .dek{font-size:18px;color:#3b3b3b;margin-bottom:10px;}
.meta{font-size:12px;color:var(--color-gray);text-transform:uppercase;letter-spacing:.04em;}
.meta a{color:var(--color-gray);}
.meta a:hover{color:var(--color-red);}

/* Secondary row under hero */
.sub-hero-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
  margin-bottom:36px;
}
@media (max-width:600px){.sub-hero-grid{grid-template-columns:1fr;}}

/* Story grid cards */
.story-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:28px 24px;
}
@media (max-width:600px){.story-grid{grid-template-columns:1fr;}}

.story-card{border-bottom:1px solid var(--color-line);padding-bottom:22px;}
.story-card .thumb{margin-bottom:12px;overflow:hidden;background:var(--color-bg);}
.story-card .thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .35s ease;}
.story-card:hover .thumb img{transform:scale(1.04);}
.story-card h3{font-size:19px;font-weight:800;margin-bottom:8px;letter-spacing:-.005em;}
.story-card h3 a{color:var(--color-ink);}
.story-card h3 a:hover{color:var(--color-red);}
.story-card .excerpt{font-size:14px;color:var(--color-gray);}

.section-heading{
  font-family:var(--font-head);
  font-weight:900;
  font-size:15px;
  text-transform:uppercase;
  letter-spacing:.06em;
  padding-bottom:10px;
  margin-bottom:22px;
  border-bottom:3px solid var(--color-ink);
  display:flex;
  align-items:center;
  gap:8px;
}
.section-heading::before{content:"";width:14px;height:14px;background:var(--color-red);display:inline-block;}

/* =========================================================
   5B. DENSE HOMEPAGE MODULES (Business Insider style)
========================================================= */
.feature-duo{
  display:grid;grid-template-columns:1fr 1fr;gap:30px;
  padding:28px 0 30px;border-bottom:1px solid var(--color-line);
}
@media (max-width:760px){.feature-duo{grid-template-columns:1fr;gap:26px;padding:20px 0 24px;}}
.feature-card .feature-thumb{display:block;margin-bottom:12px;overflow:hidden;}
.feature-card .feature-thumb img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .35s ease;}
.feature-card:hover .feature-thumb img{transform:scale(1.03);}
.feature-card h2{font-size:24px;font-weight:900;letter-spacing:-.005em;margin-bottom:8px;}
@media (max-width:560px){.feature-card h2{font-size:20px;}}
.feature-card h2 a{color:var(--color-ink);}
.feature-card h2 a:hover{color:var(--color-red);}
.feature-card .dek{font-size:14px;color:#3b3b3b;margin-bottom:6px;}
.feature-card .meta{font-size:11px;}

.module{padding:26px 0;border-bottom:1px solid var(--color-line);}
@media (max-width:560px){.module{padding:20px 0;}}
.module-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.module-head h2{
  font-family:var(--font-head);font-weight:900;font-size:18px;text-transform:uppercase;
  letter-spacing:.03em;border-left:5px solid var(--color-red);padding-left:10px;
}
@media (max-width:560px){.module-head h2{font-size:15px;}}
.more-link{font-family:var(--font-head);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-red);white-space:nowrap;}
.more-link:hover{color:var(--color-red-dark);text-decoration:underline;}
@media (max-width:560px){.more-link{font-size:11px;}}

.latest-plus-newsletter{display:grid;grid-template-columns:2fr 1fr;gap:36px;padding:24px 0;border-bottom:1px solid var(--color-line);}
@media (max-width:760px){.latest-plus-newsletter{grid-template-columns:1fr;}}
.latest-ticker li{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  padding:10px 0;border-bottom:1px solid var(--color-line);font-size:14px;
}
.latest-ticker li .kicker{margin-bottom:0;flex-shrink:0;}
.latest-ticker li a{font-weight:700;color:var(--color-ink);}
.latest-ticker li a:hover{color:var(--color-red);}
.latest-ticker li .time-ago{margin-left:auto;font-size:11px;color:var(--color-gray-light);white-space:nowrap;}
@media (max-width:480px){
  .latest-ticker li{font-size:13px;}
  .latest-ticker li .time-ago{margin-left:0;flex-basis:100%;}
}
.newsletter-box--compact{margin-bottom:0;}

.great-reads-row{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
@media (max-width:760px){.great-reads-row{grid-template-columns:repeat(2,1fr);gap:18px;}}
@media (max-width:480px){.great-reads-row{grid-template-columns:1fr;}}
.great-read-card{display:flex;gap:14px;align-items:flex-start;}
@media (max-width:480px){.great-read-card{gap:12px;}}
.great-read-card .thumb{width:96px;height:96px;flex-shrink:0;overflow:hidden;background:var(--color-bg);}
@media (max-width:760px){.great-read-card .thumb{width:72px;height:72px;}}
.great-read-card .thumb img{width:100%;height:100%;object-fit:cover;}
.great-read-card h3{font-size:15px;font-weight:800;margin:4px 0 4px;line-height:1.3;}
@media (max-width:760px){.great-read-card h3{font-size:13px;}}
.great-read-card h3 a{color:var(--color-ink);}
.great-read-card h3 a:hover{color:var(--color-red);}
.great-read-card .excerpt{font-size:12px;color:var(--color-gray);display:none;}
@media (min-width:900px){.great-read-card .excerpt{display:block;}}

.cat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media (max-width:760px){.cat-row{grid-template-columns:repeat(2,1fr);gap:16px;}}
@media (max-width:480px){.cat-row{grid-template-columns:1fr;}}
.cat-card .thumb{display:block;margin-bottom:10px;overflow:hidden;background:var(--color-bg);}
.cat-card .thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .3s ease;}
.cat-card:hover .thumb img{transform:scale(1.04);}
.cat-card h3{font-size:14px;font-weight:700;line-height:1.35;}
.cat-card h3 a{color:var(--color-ink);}
.cat-card h3 a:hover{color:var(--color-red);}

/* =========================================================
   6. SIDEBAR / TRENDING
========================================================= */
.sidebar{padding-top:2px;}
.trending-list{counter-reset:trend;}
.trending-list li{
  counter-increment:trend;
  display:flex;
  gap:14px;
  padding:14px 0;
  border-bottom:1px solid var(--color-line);
}
.trending-list li::before{
  content:counter(trend);
  font-family:var(--font-head);
  font-weight:900;
  font-size:26px;
  color:var(--color-red);
  line-height:1;
  min-width:28px;
}
.trending-list h4{font-size:15px;font-weight:700;line-height:1.3;}
.trending-list h4 a{color:var(--color-ink);}
.trending-list h4 a:hover{color:var(--color-red);}

.widget{margin-bottom:40px;}
.widget-title{
  font-family:var(--font-head);
  font-weight:900;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.06em;
  padding-bottom:10px;
  margin-bottom:16px;
  border-bottom:3px solid var(--color-ink);
}

.newsletter-box{background:var(--color-ink);color:var(--color-white);padding:26px 22px;margin-bottom:40px;}
.newsletter-box h4{font-family:var(--font-head);font-weight:800;font-size:18px;margin-bottom:8px;}
.newsletter-box p{font-size:13px;color:#c9c9c9;margin-bottom:14px;}
.newsletter-box input[type=email]{width:100%;padding:10px;border:none;margin-bottom:10px;font-family:var(--font-body);}
.newsletter-box button{
  width:100%;background:var(--color-red);color:#fff;border:none;padding:11px;
  font-family:var(--font-head);font-weight:800;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;
}
.newsletter-box button:hover{background:var(--color-red-dark);}

/* =========================================================
   7. SINGLE ARTICLE PAGE
========================================================= */
.article-wrap{padding:40px 0 60px;}
.article-header{max-width:760px;margin:0 auto 28px;text-align:left;}
.article-header .kicker{margin-bottom:14px;}
.article-header h1{font-size:40px;font-weight:900;letter-spacing:-.01em;margin-bottom:16px;}
.article-header .dek{font-size:19px;color:#3b3b3b;margin-bottom:16px;}
.byline{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);font-size:13px;color:var(--color-gray);}
.byline .author-name{color:var(--color-ink);font-weight:700;}
.byline .avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;background:var(--color-bg);}

.article-thumb{max-width:900px;margin:0 auto 30px;}
.article-thumb img{width:100%;object-fit:cover;}
.article-thumb figcaption{font-size:12px;color:var(--color-gray-light);padding-top:8px;}

.article-body{max-width:720px;margin:0 auto;font-size:18px;line-height:1.75;}
@media (max-width:600px){.article-body{font-size:16px;line-height:1.68;}}
.article-body p{margin-bottom:22px;}
.article-body h2{font-size:26px;font-weight:800;margin:36px 0 14px;}
@media (max-width:600px){.article-body h2{font-size:22px;margin:28px 0 12px;}}
.article-body h3{font-size:21px;font-weight:800;margin:28px 0 12px;}
@media (max-width:600px){.article-body h3{font-size:18px;}}
.article-body a{color:var(--color-red-dark);text-decoration:underline;}
.article-body blockquote{
  border-left:4px solid var(--color-red);
  margin:26px 0;padding:4px 0 4px 22px;
  font-style:italic;font-size:20px;color:#3b3b3b;
}
.article-body img{margin:26px 0;}
.article-body ul,.article-body ol{margin:0 0 22px 22px;}
.article-body li{margin-bottom:8px;}

.tag-list{max-width:720px;margin:36px auto 0;display:flex;flex-wrap:wrap;gap:8px;}
.tag-list a{
  border:1px solid var(--color-line);padding:6px 12px;font-size:12px;
  text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--color-gray);
}
.tag-list a:hover{background:var(--color-ink);color:#fff;border-color:var(--color-ink);}

.related-stories{max-width:900px;margin:56px auto 0;border-top:3px solid var(--color-ink);padding-top:26px;}

/* =========================================================
   8. FOOTER
========================================================= */
.site-footer{background:var(--color-ink);color:#bdbdbd;margin-top:40px;}
.footer-catbar{border-bottom:1px solid rgba(255,255,255,.12);}
.footer-catbar ul{display:flex;flex-wrap:wrap;padding:14px 0;gap:4px 0;}
.footer-catbar a{
  display:block;padding:6px 16px;border-right:1px solid rgba(255,255,255,.12);
  font-family:var(--font-head);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#c9c9c9;
}
.footer-catbar a:hover{color:var(--color-red);}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:30px;padding:40px 0 26px;}
@media (max-width:900px){.footer-grid{grid-template-columns:repeat(2,1fr);gap:24px;}}
@media (max-width:480px){.footer-grid{grid-template-columns:1fr;padding:30px 0 20px;}}
@media (max-width:480px){.footer-catbar ul{justify-content:flex-start;}}
.footer-col h5{color:#fff;font-family:var(--font-head);font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.05em;margin-bottom:14px;}
.footer-col li{margin-bottom:8px;font-size:13px;}
.footer-col p{font-size:13px;color:#9a9a9a;}
.footer-col a:hover{color:var(--color-red);}
.footer-logo{font-family:var(--font-head);font-weight:900;font-size:20px;color:#fff;text-transform:uppercase;margin-bottom:10px;}
.footer-logo .accent{color:var(--color-red);}
.social-icons{display:flex;gap:8px;margin-top:14px;}
.social-icons a{
  width:30px;height:30px;border:1px solid rgba(255,255,255,.25);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#e5e5e5;
}
.social-icons a:hover{background:var(--color-red);border-color:var(--color-red);color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:18px 0;font-size:12px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

/* =========================================================
   9. MISC / GENERIC PAGES
========================================================= */
.pagination{display:flex;gap:10px;justify-content:center;padding:30px 0;}
.pagination a,.pagination span{
  border:1px solid var(--color-line);padding:8px 14px;font-size:13px;font-weight:700;font-family:var(--font-head);
}
.pagination .current{background:var(--color-ink);color:#fff;border-color:var(--color-ink);}
.pagination a:hover{background:var(--color-red);color:#fff;border-color:var(--color-red);}

.page-header-generic{padding:36px 0 10px;border-bottom:3px solid var(--color-ink);margin-bottom:30px;}
.page-header-generic h1{font-size:30px;font-weight:900;text-transform:uppercase;}

.no-results{padding:60px 0;text-align:center;}

@media (max-width:900px){
  .menu-toggle{display:block;}
  .primary-nav ul{display:none;flex-direction:column;width:100%;}
  .primary-nav.open ul{display:flex;}
  .primary-nav a{border-right:none;border-bottom:1px solid rgba(255,255,255,.12);padding:12px 16px;font-size:13px;}
  .hero-story h1,.hero-story h2{font-size:28px;}
  .article-header h1{font-size:30px;}
}

@media (max-width:600px){
  .container{padding:0 16px;}
  .article-header h1{font-size:24px;}
  .article-header .dek{font-size:16px;}
  .byline{flex-wrap:wrap;}
  .page-header-generic h1{font-size:22px;}
  .section-heading{font-size:13px;}
  .footer-bottom{flex-direction:column;gap:6px;text-align:left;}
}

@media (max-width:400px){
  .logo{font-size:19px;}
  .module-head h2{font-size:14px;}
  .feature-card h2{font-size:18px;}
}
