/*
Theme Name: GospelMag
Theme URI: https://example.com/gospelmag
Author: Your Brand
Author URI: https://example.com
Description: A flexible Christian news, blog & media magazine WordPress theme. Everything is editable — header, footer, body, colors, fonts, layout blocks and widget areas — through the Customizer, a Theme Options panel and 12 widget zones. Elementor Theme Builder ready and fully Google AdSense integrated (Auto Ads, in-article ads, ad slots, ads.txt). Built for ministries, gospel bloggers, devotionals, biographies, interviews and Christian media sites.
Version: 1.0.0
Requires at least: 5.8
Tested up to: 6.5
Requires PHP: 7.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gospelmag
Tags: blog, news, magazine, two-columns, right-sidebar, custom-colors, custom-logo, custom-menu, featured-images, footer-widgets, theme-options, translation-ready, editor-style
*/

/* ==========================================================================
   GospelMag — Design Tokens (all overridable from Customizer via :root vars)
   ========================================================================== */
:root{
  --gm-primary:#203d21;        /* deep gospel green */
  --gm-primary-dark:#162b17;
  --gm-accent:#c9a227;         /* warm gold */
  --gm-bg:#ffffff;
  --gm-bg-alt:#f5f6f4;
  --gm-text:#1d1f1d;
  --gm-muted:#6b716b;
  --gm-border:#e4e7e3;
  --gm-radius:10px;
  --gm-maxw:1200px;
  --gm-gap:24px;
  --gm-font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --gm-font-head:"Fraunces","Playfair Display",Georgia,"Times New Roman",serif;
}

/* Reset-ish */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--gm-font-body);
  color:var(--gm-text);
  background:var(--gm-bg);
  line-height:1.65;
  font-size:16px;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--gm-primary);text-decoration:none;}
a:hover{color:var(--gm-accent);}
h1,h2,h3,h4,h5,h6{font-family:var(--gm-font-head);line-height:1.2;margin:0 0 .5em;font-weight:600;color:var(--gm-text);}
p{margin:0 0 1rem;}
ul,ol{margin:0 0 1rem;padding-left:1.25rem;}

/* Layout helpers */
.gm-container{max-width:var(--gm-maxw);margin:0 auto;padding:0 20px;}
.gm-grid{display:grid;gap:var(--gm-gap);}
.gm-flex{display:flex;}
.screen-reader-text{position:absolute !important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--gm-primary);color:#fff;padding:10px 16px;z-index:9999;}
.skip-link:focus{left:8px;top:8px;}

/* ===== Topbar ===== */
.gm-topbar{background:var(--gm-primary-dark);color:#fff;font-size:.82rem;}
.gm-topbar .gm-container{display:flex;align-items:center;justify-content:space-between;min-height:38px;gap:16px;flex-wrap:wrap;}
.gm-topbar a{color:#d9e2d6;}
.gm-topbar a:hover{color:#fff;}
.gm-topbar .gm-social a{margin-left:12px;display:inline-flex;}

/* ===== Header ===== */
.gm-header{background:var(--gm-bg);border-bottom:1px solid var(--gm-border);}
.gm-header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0;}
.gm-branding .gm-logo img{max-height:60px;width:auto;}
.gm-site-title{font-family:var(--gm-font-head);font-size:1.7rem;font-weight:700;color:var(--gm-primary);margin:0;}
.gm-site-desc{font-size:.8rem;color:var(--gm-muted);margin:2px 0 0;}

/* ===== Primary nav ===== */
.gm-nav{background:var(--gm-primary);}
.gm-nav .gm-container{display:flex;align-items:center;justify-content:space-between;}
.gm-menu{list-style:none;display:flex;flex-wrap:wrap;margin:0;padding:0;}
.gm-menu li{position:relative;}
.gm-menu a{display:block;color:#fff;padding:14px 16px;font-weight:500;font-size:.95rem;}
.gm-menu a:hover,.gm-menu .current-menu-item>a{background:var(--gm-primary-dark);color:#fff;}
.gm-menu .sub-menu{position:absolute;left:0;top:100%;min-width:210px;background:var(--gm-primary-dark);display:none;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.18);}
.gm-menu li:hover>.sub-menu{display:block;}
.gm-menu .sub-menu a{padding:11px 16px;border-bottom:1px solid rgba(255,255,255,.08);}
.gm-menu-toggle{display:none;background:transparent;border:0;color:#fff;padding:12px 16px;cursor:pointer;font-size:1.4rem;}

/* ===== Breaking / trending bar ===== */
.gm-breaking{background:var(--gm-bg-alt);border-bottom:1px solid var(--gm-border);font-size:.9rem;}
.gm-breaking .gm-container{display:flex;align-items:center;gap:14px;padding:9px 20px;overflow:hidden;}
.gm-breaking-label{background:var(--gm-accent);color:#fff;font-weight:600;padding:4px 12px;border-radius:4px;white-space:nowrap;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;}
.gm-breaking-track{display:flex;gap:28px;white-space:nowrap;overflow:hidden;}
.gm-breaking-track a{color:var(--gm-text);font-weight:500;}

/* ===== Site layout (content + sidebar) ===== */
.gm-site-main{padding:36px 0;}
.gm-with-sidebar{display:grid;grid-template-columns:1fr 330px;gap:40px;}
@media(max-width:980px){.gm-with-sidebar{grid-template-columns:1fr;}}

/* ===== Section headings ===== */
.gm-section-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 18px;border-bottom:2px solid var(--gm-primary);padding-bottom:8px;}
.gm-section-head h2{margin:0;font-size:1.25rem;color:var(--gm-primary);}
.gm-section-head .gm-more{font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;}

/* ===== Post cards ===== */
.gm-cards{display:grid;gap:var(--gm-gap);}
.gm-cards.cols-2{grid-template-columns:repeat(2,1fr);}
.gm-cards.cols-3{grid-template-columns:repeat(3,1fr);}
.gm-cards.cols-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:780px){.gm-cards.cols-2,.gm-cards.cols-3,.gm-cards.cols-4{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.gm-cards.cols-2,.gm-cards.cols-3,.gm-cards.cols-4{grid-template-columns:1fr;}}

.gm-card{background:var(--gm-bg);border:1px solid var(--gm-border);border-radius:var(--gm-radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease;}
.gm-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.10);}
.gm-card-thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--gm-bg-alt);}
.gm-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.gm-card:hover .gm-card-thumb img{transform:scale(1.05);}
.gm-card-cat{position:absolute;left:10px;top:10px;background:var(--gm-primary);color:#fff;font-size:.7rem;font-weight:600;padding:3px 9px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em;}
.gm-card-body{padding:14px 16px 18px;display:flex;flex-direction:column;flex:1;}
.gm-card-title{font-size:1.05rem;margin:0 0 8px;line-height:1.3;}
.gm-card-title a{color:var(--gm-text);}
.gm-card-title a:hover{color:var(--gm-primary);}
.gm-card-meta{font-size:.78rem;color:var(--gm-muted);margin-top:auto;}
.gm-card-meta a{color:var(--gm-muted);}
.gm-card-excerpt{font-size:.9rem;color:var(--gm-muted);margin:0 0 12px;}

/* Featured hero block */
.gm-featured{display:grid;grid-template-columns:2fr 1fr;gap:var(--gm-gap);margin-bottom:36px;}
@media(max-width:780px){.gm-featured{grid-template-columns:1fr;}}
.gm-featured-main .gm-card-thumb{aspect-ratio:16/9;}
.gm-featured-main .gm-card-title{font-size:1.6rem;}
.gm-featured-side{display:grid;gap:var(--gm-gap);}

/* List style (sidebar widgets) */
.gm-list{list-style:none;margin:0;padding:0;}
.gm-list li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--gm-border);}
.gm-list li:last-child{border-bottom:0;}
.gm-list .gm-list-thumb{flex:0 0 78px;height:60px;border-radius:8px;overflow:hidden;background:var(--gm-bg-alt);}
.gm-list .gm-list-thumb img{width:100%;height:100%;object-fit:cover;}
.gm-list .gm-list-title{font-size:.92rem;font-weight:600;line-height:1.3;font-family:var(--gm-font-body);margin:0 0 4px;}
.gm-list .gm-list-date{font-size:.74rem;color:var(--gm-muted);}

/* ===== Sidebar ===== */
.gm-sidebar .widget{background:var(--gm-bg);border:1px solid var(--gm-border);border-radius:var(--gm-radius);padding:18px;margin-bottom:26px;}
.gm-sidebar .widget-title{font-size:1.05rem;color:var(--gm-primary);border-bottom:2px solid var(--gm-primary);padding-bottom:8px;margin:0 0 14px;}

/* ===== Single post ===== */
.gm-single .gm-entry-header{margin-bottom:22px;}
.gm-single .gm-entry-title{font-size:2.1rem;line-height:1.15;}
.gm-single .gm-entry-meta{color:var(--gm-muted);font-size:.85rem;margin-top:10px;}
.gm-single .gm-featured-img{margin:22px 0;border-radius:var(--gm-radius);overflow:hidden;}
.gm-entry-content{font-size:1.05rem;}
.gm-entry-content h2,.gm-entry-content h3{margin-top:1.6em;}
.gm-entry-content img{border-radius:8px;margin:1.2em 0;}
.gm-entry-content blockquote{border-left:4px solid var(--gm-accent);margin:1.4em 0;padding:.4em 1.2em;background:var(--gm-bg-alt);font-style:italic;}

/* ===== Subscribe / CTA strip ===== */
.gm-cta{background:var(--gm-primary);color:#fff;border-radius:var(--gm-radius);padding:34px;text-align:center;margin:36px 0;}
.gm-cta h2{color:#fff;}
.gm-cta .gm-btn{margin-top:12px;}

/* Buttons */
.gm-btn{display:inline-block;background:var(--gm-accent);color:#fff;font-weight:600;padding:12px 26px;border-radius:999px;border:0;cursor:pointer;transition:background .18s ease;}
.gm-btn:hover{background:var(--gm-primary-dark);color:#fff;}
.gm-btn-outline{background:transparent;border:2px solid #fff;}

/* Pagination */
.gm-pagination{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:36px 0;}
.gm-pagination a,.gm-pagination span{padding:9px 15px;border:1px solid var(--gm-border);border-radius:8px;color:var(--gm-text);}
.gm-pagination .current{background:var(--gm-primary);color:#fff;border-color:var(--gm-primary);}

/* ===== Footer ===== */
.gm-footer{background:var(--gm-primary-dark);color:#cdd6ca;margin-top:50px;}
.gm-footer a{color:#cdd6ca;}
.gm-footer a:hover{color:#fff;}
.gm-footer-widgets{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding:46px 0;}
@media(max-width:880px){.gm-footer-widgets{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.gm-footer-widgets{grid-template-columns:1fr;}}
.gm-footer .widget-title{color:#fff;font-size:1.05rem;margin:0 0 16px;}
.gm-footer .widget{margin:0;}
.gm-footer .gm-list li{border-color:rgba(255,255,255,.10);}
.gm-footer .gm-list .gm-list-title{color:#e8ede6;}
.gm-footer-social a{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.2);border-radius:50%;margin:0 8px 8px 0;}
.gm-footer-social a:hover{background:var(--gm-accent);border-color:var(--gm-accent);}
.gm-footer-bottom{border-top:1px solid rgba(255,255,255,.10);padding:18px 0;font-size:.85rem;}
.gm-footer-bottom .gm-container{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}

/* Widget generic */
.widget select,.widget input[type=text],.widget input[type=email]{width:100%;padding:10px 12px;border:1px solid var(--gm-border);border-radius:8px;font-size:.92rem;}
.widget ul{list-style:none;padding:0;margin:0;}
.widget ul li{padding:8px 0;border-bottom:1px solid var(--gm-border);}
.gm-footer .widget ul li{border-color:rgba(255,255,255,.10);}

/* Mobile nav */
@media(max-width:880px){
  .gm-menu-toggle{display:block;}
  .gm-menu{position:absolute;left:0;right:0;top:100%;flex-direction:column;background:var(--gm-primary);display:none;z-index:60;}
  .gm-menu.is-open{display:flex;}
  .gm-menu .sub-menu{position:static;display:block;background:var(--gm-primary-dark);}
  .gm-nav .gm-container{position:relative;flex-wrap:wrap;}
}

/* Utility spacing */
.gm-mb-0{margin-bottom:0;}
.gm-block{margin-bottom:40px;}
.gm-text-muted{color:var(--gm-muted);}

/* ===== Ad zones (AdSense friendly) ===== */
.gm-ad{margin:24px auto;text-align:center;max-width:100%;overflow:hidden;}
.gm-ad-label{display:block;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gm-muted);margin-bottom:6px;}
.gm-ad ins{display:block;}
.gm-ad-header{margin:0 0 8px;padding:10px 0;background:var(--gm-bg-alt);}
.gm-ad-in_article{margin:30px auto;}
.gm-ad-sidebar{margin:0 0 26px;}
.gm-ad-footer{margin:0;padding:16px 0;}
.gm-sidebar .gm-ad{border:1px solid var(--gm-border);border-radius:var(--gm-radius);padding:14px;background:var(--gm-bg);}
/* Reserve typical responsive ad height to reduce layout shift (better Core Web Vitals) */
.gm-ad ins.adsbygoogle{min-height:90px;}
