/*
Theme Name: CryptoDarshan
Theme URI: https://cryptodarshan.com/
Author: CryptoDarshan
Author URI: https://cryptodarshan.com/
Description: A fast, SEO-optimized crypto news theme for CryptoDarshan — featuring a magazine-style homepage grid, author archives, structured data, and a built-in XML sitemap.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: cryptodarshan
Tags: news, blog, grid-layout, custom-menu, featured-images, footer-widgets, theme-options, translation-ready
*/

/* =========================================================
   0. CSS VARIABLES
========================================================= */
:root{
  --cd-bg: #0B0E17;
  --cd-bg-elevated: #121629;
  --cd-bg-card: #161B2E;
  --cd-border: #262C45;
  --cd-text: #E9ECF5;
  --cd-text-dim: #9AA1BF;
  --cd-text-faint: #6C7395;
  --cd-accent: #F5B301;
  --cd-accent-dark: #C88E00;
  --cd-green: #16C784;
  --cd-red: #EA3943;
  --cd-white: #FFFFFF;
  --cd-radius: 10px;
  --cd-radius-sm: 6px;
  --cd-font-head: 'Sora', 'Segoe UI', sans-serif;
  --cd-font-body: 'Inter', 'Segoe UI', sans-serif;
  --cd-maxw: 1240px;
  --cd-shadow: 0 8px 24px rgba(0,0,0,0.35);
}

/* =========================================================
   1. RESET & BASE
========================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--cd-bg);
  color: var(--cd-text);
  font-family: var(--cd-font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color: inherit; text-decoration:none; transition: color .15s ease; }
a:hover{ color: var(--cd-accent); }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,h5,h6{ font-family: var(--cd-font-head); font-weight:700; line-height:1.25; margin:0 0 .5em; color: var(--cd-white); }
p{ margin:0 0 1em; }
button, input, textarea, select{ font-family: inherit; }
.cd-container{ max-width: var(--cd-maxw); margin:0 auto; padding:0 20px; }
.screen-reader-text{ position:absolute !important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }
.cd-visually-hidden{ display:none; }

/* =========================================================
   2. TOPBAR
========================================================= */
.cd-topbar{
  background: var(--cd-bg-elevated);
  border-bottom: 1px solid var(--cd-border);
  font-size: 13px;
}
.cd-topbar .cd-container{ display:flex; align-items:center; justify-content:space-between; height:38px; }
.cd-topbar-date{ color: var(--cd-text-faint); }
.cd-social-links{ display:flex; gap:14px; }
.cd-social-links a{ color: var(--cd-text-dim); }
.cd-social-links a:hover{ color: var(--cd-accent); }

/* =========================================================
   3. HEADER
========================================================= */
.cd-header{
  background: var(--cd-bg);
  border-bottom: 1px solid var(--cd-border);
  position: sticky; top:0; z-index: 200;
}
.cd-header-inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding: 16px 0; }
.cd-logo img{ max-height:44px; width:auto; }
.cd-logo{ font-family: var(--cd-font-head); font-size:24px; font-weight:800; color:var(--cd-white); }
.cd-logo span{ color: var(--cd-accent); }

.cd-primary-nav ul{ display:flex; align-items:center; gap:28px; }
.cd-primary-nav a{
  font-family: var(--cd-font-head);
  font-size: 14px;
  font-weight:600;
  letter-spacing:.02em;
  text-transform: uppercase;
  color: var(--cd-text);
}
.cd-primary-nav .current-menu-item > a{ color: var(--cd-accent); }
.cd-primary-nav .menu-item-has-children{ position:relative; }
.cd-primary-nav .sub-menu{
  position:absolute; top:100%; left:0; min-width:200px;
  background: var(--cd-bg-card); border:1px solid var(--cd-border);
  border-radius: var(--cd-radius-sm); padding:8px; display:none; box-shadow: var(--cd-shadow);
}
.cd-primary-nav .menu-item-has-children:hover .sub-menu{ display:block; }
.cd-primary-nav .sub-menu a{ display:block; padding:8px 10px; text-transform:none; font-weight:500; }

.cd-header-actions{ display:flex; align-items:center; gap:14px; }
.cd-search-toggle, .cd-menu-toggle{
  background: var(--cd-bg-card); border:1px solid var(--cd-border); color: var(--cd-text);
  width:38px; height:38px; border-radius: var(--cd-radius-sm); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.cd-menu-toggle{ display:none; }
.cd-btn{
  display:inline-flex; align-items:center; justify-content:center;
  background: var(--cd-accent); color:#191300; font-weight:700; font-family: var(--cd-font-head);
  padding: 9px 18px; border-radius: var(--cd-radius-sm); font-size:13px; text-transform:uppercase; letter-spacing:.03em;
  border:none; cursor:pointer;
}
.cd-btn:hover{ background: var(--cd-accent-dark); color:#191300; }

.cd-search-panel{
  max-height:0; overflow:hidden; background: var(--cd-bg-elevated); border-bottom:1px solid var(--cd-border);
  transition: max-height .25s ease;
}
.cd-search-panel.is-open{ max-height:120px; }
.cd-search-panel .cd-container{ padding-top:16px; padding-bottom:16px; }
.cd-search-panel form{ display:flex; gap:10px; }
.cd-search-panel input[type="search"]{
  flex:1; background: var(--cd-bg-card); border:1px solid var(--cd-border); color:var(--cd-text);
  padding:10px 14px; border-radius: var(--cd-radius-sm); font-size:15px;
}

/* Mobile nav */
@media (max-width: 900px){
  .cd-primary-nav{ position:fixed; inset:0 0 0 auto; width:280px; background:var(--cd-bg-card); border-left:1px solid var(--cd-border);
    transform:translateX(100%); transition:transform .25s ease; z-index:300; padding:80px 24px 24px; overflow-y:auto; }
  .cd-primary-nav.is-open{ transform:translateX(0); }
  .cd-primary-nav ul{ flex-direction:column; align-items:flex-start; gap:4px; }
  .cd-primary-nav ul li{ width:100%; }
  .cd-primary-nav a{ display:block; padding:12px 0; border-bottom:1px solid var(--cd-border); width:100%; }
  .cd-primary-nav .sub-menu{ position:static; display:block; background:none; border:none; padding-left:12px; box-shadow:none; }
  .cd-menu-toggle{ display:flex; }
}

/* =========================================================
   4. TICKER / MARQUEE (optional utility strip)
========================================================= */
.cd-breaking{
  background: var(--cd-bg-elevated); border-bottom:1px solid var(--cd-border);
  display:flex; align-items:center; gap:14px; padding:10px 0;
}
.cd-breaking-label{
  background: var(--cd-red); color:#fff; font-family:var(--cd-font-head); font-weight:700; font-size:11px;
  text-transform:uppercase; padding:4px 10px; border-radius:4px; flex-shrink:0;
}
.cd-breaking-text a{ font-size:14px; color: var(--cd-text-dim); }
.cd-breaking-text a:hover{ color: var(--cd-text); }

/* =========================================================
   5. SECTION HEADERS
========================================================= */
.cd-section{ padding: 40px 0; }
.cd-section-head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:22px; border-bottom:2px solid var(--cd-border); padding-bottom:12px; }
.cd-section-title{ font-size:22px; margin:0; display:flex; align-items:center; gap:10px; }
.cd-section-title::before{ content:""; width:6px; height:22px; background: var(--cd-accent); border-radius:3px; display:inline-block; }
.cd-section-more{ font-size:13px; font-weight:600; color: var(--cd-accent); text-transform:uppercase; }

.cd-kicker{
  display:inline-block; font-family: var(--cd-font-head); font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em; color: var(--cd-accent);
  background: rgba(245,179,1,0.12); padding:3px 9px; border-radius:4px; margin-bottom:10px;
}

/* =========================================================
   6. HERO GRID (front page)
========================================================= */
.cd-hero{ display:grid; grid-template-columns: 1.6fr 1fr; gap:24px; margin-top: 28px; }
.cd-hero-main{ position:relative; border-radius: var(--cd-radius); overflow:hidden; background: var(--cd-bg-card); border:1px solid var(--cd-border); }
.cd-hero-photo{ width:100%; height:420px; object-fit:cover; display:block; }
.cd-hero-main .cd-hero-overlay{
  position:absolute; left:0; right:0; bottom:0; padding:28px 26px 24px;
  background: linear-gradient(180deg, rgba(11,14,23,0) 0%, rgba(11,14,23,0.95) 85%);
}
.cd-hero-main h2{ font-size:28px; margin-bottom:10px; }
.cd-hero-main h2 a{ color: var(--cd-white); }
.cd-hero-side{ display:flex; flex-direction:column; gap:16px; }
.cd-hero-side-item{ display:flex; gap:12px; background: var(--cd-bg-card); border:1px solid var(--cd-border); border-radius: var(--cd-radius); padding:12px; flex:1; }
.cd-hero-side-item img{ width:110px; height:78px; object-fit:cover; border-radius: var(--cd-radius-sm); flex-shrink:0; }
.cd-hero-side-item h3{ font-size:15px; margin-bottom:6px; }
.cd-hero-side-item h3 a{ color: var(--cd-white); }

@media (max-width: 900px){
  .cd-hero{ grid-template-columns: 1fr; }
  .cd-hero-photo{ height:280px; }
}

/* =========================================================
   7. CARD GRID (news cards)
========================================================= */
.cd-grid{ display:grid; gap:22px; }
.cd-grid-3{ grid-template-columns: repeat(3, 1fr); }
.cd-grid-4{ grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px){ .cd-grid-3, .cd-grid-4{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .cd-grid-3, .cd-grid-4{ grid-template-columns: 1fr; } }

.cd-card{
  background: var(--cd-bg-card); border:1px solid var(--cd-border); border-radius: var(--cd-radius);
  overflow:hidden; display:flex; flex-direction:column; transition: border-color .15s ease, transform .15s ease;
}
.cd-card:hover{ border-color: var(--cd-accent); transform: translateY(-2px); }
.cd-card-thumb{ aspect-ratio: 16/10; overflow:hidden; background:#0d1120; }
.cd-card-thumb img{ width:100%; height:100%; object-fit:cover; }
.cd-card-body{ padding:16px; display:flex; flex-direction:column; flex:1; }
.cd-card-title{ font-size:17px; margin-bottom:10px; }
.cd-card-title a{ color: var(--cd-white); }
.cd-card-excerpt{ font-size:14px; color: var(--cd-text-dim); margin-bottom:12px; flex:1; }
.cd-card-meta{ display:flex; align-items:center; gap:8px; font-size:12.5px; color: var(--cd-text-faint); margin-top:auto; }
.cd-card-meta a{ color: var(--cd-text-dim); font-weight:600; }
.cd-card-meta a:hover{ color: var(--cd-accent); }
.cd-avatar{ width:22px; height:22px; border-radius:50%; object-fit:cover; }

/* List style rows (used in sidebars / trending) */
.cd-list{ display:flex; flex-direction:column; gap:16px; }
.cd-list-item{ display:flex; gap:12px; align-items:flex-start; }
.cd-list-rank{ font-family: var(--cd-font-head); font-size:20px; font-weight:800; color: var(--cd-border); width:26px; flex-shrink:0; }
.cd-list-item img{ width:76px; height:56px; object-fit:cover; border-radius: var(--cd-radius-sm); flex-shrink:0; }
.cd-list-item h4{ font-size:14.5px; margin-bottom:4px; }
.cd-list-item h4 a{ color: var(--cd-white); }
.cd-list-meta{ font-size:12px; color: var(--cd-text-faint); }

/* =========================================================
   8. TWO COLUMN LAYOUT (main + sidebar)
========================================================= */
.cd-columns{ display:grid; grid-template-columns: 2fr 1fr; gap:32px; align-items:start; }
@media (max-width: 960px){ .cd-columns{ grid-template-columns: 1fr; } }
.cd-widget{ background: var(--cd-bg-card); border:1px solid var(--cd-border); border-radius: var(--cd-radius); padding:20px; margin-bottom:24px; }
.cd-widget h3{ font-size:16px; margin-bottom:16px; padding-bottom:10px; border-bottom:1px solid var(--cd-border); }

/* =========================================================
   9. NEWSLETTER BLOCK
========================================================= */
.cd-newsletter{
  background: radial-gradient(circle at top left, rgba(245,179,1,0.12), transparent 60%), var(--cd-bg-elevated);
  border:1px solid var(--cd-border); border-radius: var(--cd-radius); padding:34px; text-align:center; margin: 40px 0;
}
.cd-newsletter h2{ font-size:24px; margin-bottom:8px; }
.cd-newsletter p{ color: var(--cd-text-dim); max-width:520px; margin:0 auto 20px; }
.cd-newsletter form{ display:flex; gap:10px; max-width:460px; margin:0 auto; flex-wrap:wrap; justify-content:center; }
.cd-newsletter input[type="email"], .cd-newsletter input[type="text"]{
  flex:1; min-width:200px; background: var(--cd-bg-card); border:1px solid var(--cd-border); color:var(--cd-text);
  padding:11px 14px; border-radius: var(--cd-radius-sm);
}

/* =========================================================
   10. CATEGORY TABS (Blog / News / Press Release blocks)
========================================================= */
.cd-cat-block{ margin-bottom:44px; }
.cd-cat-block-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.cd-cat-block-head h2 a{ font-size:22px; color: var(--cd-white); }
.cd-cat-block-head h2 a:hover{ color: var(--cd-accent); }
.cd-cat-featured{ display:grid; grid-template-columns: 1.2fr 1fr; gap:22px; }
@media (max-width: 800px){ .cd-cat-featured{ grid-template-columns: 1fr; } }
.cd-cat-featured .cd-card-thumb{ aspect-ratio: 16/9; }
.cd-cat-side-list{ display:flex; flex-direction:column; justify-content:space-between; gap:14px; height:100%; }

/* =========================================================
   11. SINGLE POST
========================================================= */
.cd-post-header{ max-width: 820px; margin: 32px auto 0; text-align:left; }
.cd-post-header .cd-kicker{ margin-bottom:14px; }
.cd-post-title{ font-size: 34px; margin-bottom:16px; }
.cd-post-byline{ display:flex; align-items:center; gap:12px; color: var(--cd-text-dim); font-size:14px; margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid var(--cd-border); }
.cd-post-byline img{ width:38px; height:38px; border-radius:50%; }
.cd-post-byline a{ color: var(--cd-white); font-weight:600; }
.cd-post-thumb{ max-width: 900px; margin: 0 auto 30px; border-radius: var(--cd-radius); overflow:hidden; }
.cd-post-content{ max-width: 820px; margin: 0 auto; font-size:17px; line-height:1.8; }
.cd-post-content h2{ font-size:24px; margin-top:1.6em; }
.cd-post-content h3{ font-size:20px; margin-top:1.4em; }
.cd-post-content p{ margin-bottom:1.2em; }
.cd-post-content a{ color: var(--cd-accent); text-decoration:underline; }
.cd-post-content img{ border-radius: var(--cd-radius-sm); margin: 1.2em 0; }
.cd-post-content blockquote{ border-left:3px solid var(--cd-accent); padding:6px 20px; margin:1.4em 0; color: var(--cd-text-dim); font-style:italic; }
.cd-post-content ul, .cd-post-content ol{ margin: 0 0 1.2em 1.4em; padding:0; }
.cd-post-content li{ margin-bottom:.4em; }

.cd-post-tags{ max-width:820px; margin:26px auto 0; display:flex; gap:8px; flex-wrap:wrap; }
.cd-post-tags a{ background: var(--cd-bg-card); border:1px solid var(--cd-border); padding:5px 12px; border-radius:14px; font-size:12.5px; }

.cd-author-box{
  max-width:820px; margin: 34px auto 0; display:flex; gap:16px; background: var(--cd-bg-card);
  border:1px solid var(--cd-border); border-radius: var(--cd-radius); padding:20px;
}
.cd-author-box img{ width:64px; height:64px; border-radius:50%; flex-shrink:0; }
.cd-author-box h4{ font-size:16px; margin-bottom:4px; }
.cd-author-box h4 a{ color:var(--cd-white); }
.cd-author-box p{ font-size:14px; color: var(--cd-text-dim); margin:0; }

.cd-disclaimer{
  max-width:820px; margin:30px auto 0; font-size:13px; color: var(--cd-text-faint); background: var(--cd-bg-elevated);
  border:1px solid var(--cd-border); border-radius: var(--cd-radius-sm); padding:14px 16px;
}

.cd-related{ margin: 50px auto 0; max-width: var(--cd-maxw); }

/* =========================================================
   12. AUTHOR ARCHIVE
========================================================= */
.cd-author-header{
  display:flex; align-items:center; gap:20px; background: var(--cd-bg-card); border:1px solid var(--cd-border);
  border-radius: var(--cd-radius); padding:26px; margin: 30px 0 34px;
}
.cd-author-header img{ width:84px; height:84px; border-radius:50%; }
.cd-author-header h1{ font-size:24px; margin-bottom:6px; }
.cd-author-social a{ display:inline-flex; margin-right:10px; color: var(--cd-text-dim); }

/* =========================================================
   13. ARCHIVE / CATEGORY / SEARCH
========================================================= */
.cd-archive-header{ margin: 30px 0 24px; }
.cd-archive-header h1{ font-size:28px; }
.cd-archive-header p{ color: var(--cd-text-dim); }

.cd-pagination{ display:flex; gap:8px; justify-content:center; margin: 40px 0; flex-wrap:wrap; }
.cd-pagination a, .cd-pagination span{
  min-width:38px; height:38px; display:flex; align-items:center; justify-content:center;
  background: var(--cd-bg-card); border:1px solid var(--cd-border); border-radius: var(--cd-radius-sm); font-size:14px;
}
.cd-pagination .current{ background: var(--cd-accent); color:#191300; border-color: var(--cd-accent); font-weight:700; }
.cd-pagination a:hover{ border-color: var(--cd-accent); }

/* =========================================================
   14. FOOTER
========================================================= */
.cd-footer{ background: var(--cd-bg-elevated); border-top:1px solid var(--cd-border); margin-top:60px; padding-top:50px; }
.cd-footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap:32px; padding-bottom:36px; border-bottom:1px solid var(--cd-border); }
@media (max-width: 800px){ .cd-footer-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px){ .cd-footer-grid{ grid-template-columns: 1fr; } }
.cd-footer-brand p{ color: var(--cd-text-dim); font-size:14px; }
.cd-footer h4{ font-size:14px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:16px; color: var(--cd-white); }
.cd-footer ul li{ margin-bottom:10px; }
.cd-footer a{ color: var(--cd-text-dim); font-size:14px; }
.cd-footer a:hover{ color: var(--cd-accent); }
.cd-footer-bottom{ display:flex; align-items:center; justify-content:space-between; padding:22px 0; font-size:13px; color: var(--cd-text-faint); flex-wrap:wrap; gap:10px; }
.cd-footer-disclaimer{ font-size:12.5px; color: var(--cd-text-faint); padding: 20px 0; border-bottom:1px solid var(--cd-border); }

/* =========================================================
   15. UTILITIES
========================================================= */
.cd-badge{ display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; padding:3px 8px; border-radius:4px; }
.cd-badge-news{ background: rgba(22,199,132,0.15); color: var(--cd-green); }
.cd-badge-blog{ background: rgba(245,179,1,0.15); color: var(--cd-accent); }
.cd-badge-press{ background: rgba(155,140,255,0.15); color: #9b8cff; }
.cd-skip-link{ position:absolute; left:-999px; top:0; background:var(--cd-accent); color:#191300; padding:10px 16px; z-index:999; }
.cd-skip-link:focus{ left:10px; top:10px; }
