/*
Theme Name: Novosti Crypto
Theme URI: https://novosti-crypto.com/
Author: Novosti Crypto
Author URI: https://novosti-crypto.com/
Description: Лёгкая редакционная тема для новостного криптовалютного издания Novosti Crypto. Mobile-first, доступность, чистая типографика, минимум JS. Schema/OG обеспечивает Yoast SEO.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: novosti-crypto
*/

/* ============ Design tokens ============ */
:root {
  --nc-graphite: #0e1622;      /* header/footer deep dark */
  --nc-graphite-2: #16202e;
  --nc-ink: #17202a;           /* body text */
  --nc-ink-soft: #4b5563;      /* secondary text */
  --nc-line: #e6e8ec;          /* borders */
  --nc-bg: #ffffff;            /* content bg */
  --nc-bg-alt: #f6f7f9;        /* section bg */
  --nc-accent: #e0a417;        /* single warm-gold accent */
  --nc-accent-ink: #8a6209;
  --nc-link: #0f5ad6;          /* links */
  --nc-danger: #b42318;
  --nc-radius: 10px;
  --nc-maxw: 1180px;
  --nc-gap: 24px;
  --nc-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, "PT Sans", sans-serif;
  --nc-font-head: "Segoe UI", "PT Sans", "Roboto", var(--nc-font);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--nc-font);
  color: var(--nc-ink);
  background: var(--nc-bg);
  font-size: 18px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--nc-link); text-decoration: none; }
a:hover { text-decoration: underline; }
:focus-visible { outline: 3px solid var(--nc-accent); outline-offset: 2px; }

.nc-container { max-width: var(--nc-maxw); margin: 0 auto; padding: 0 20px; }
.skip-link { position: absolute; left: -9999px; top: 0; background: #fff; padding: 10px 16px; z-index: 1000; }
.skip-link:focus { left: 8px; top: 8px; }

/* ============ Header ============ */
.site-header { background: var(--nc-graphite); color: #fff; border-bottom: 3px solid var(--nc-accent); }
.site-header a { color: #fff; }
.nc-topbar { display: flex; align-items: center; gap: 20px; padding: 16px 0; }
.site-branding { display: flex; align-items: baseline; gap: 10px; flex: 0 0 auto; }
.site-title { margin: 0; font-family: var(--nc-font-head); font-size: 26px; font-weight: 800; letter-spacing: -0.02em; }
.site-title .nc-mark { color: var(--nc-accent); }
.site-desc { margin: 0; font-size: 13px; color: #b8c1cc; }
.nc-header-right { margin-left: auto; display: flex; align-items: center; gap: 14px; }

/* Primary nav */
.nc-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; }
.nc-nav a { display: block; padding: 10px 12px; font-size: 15px; font-weight: 600; color: #d7dde5; border-radius: 6px; }
.nc-nav a:hover, .nc-nav .current-menu-item > a { color: #fff; background: var(--nc-graphite-2); text-decoration: none; }
.nc-primary-nav { background: var(--nc-graphite-2); }
.nc-primary-nav .nc-container { display: flex; align-items: center; }

/* Search */
.nc-search form { display: flex; }
.nc-search input[type=search] { border: 1px solid #33404f; background: #0b121b; color: #fff; padding: 8px 12px; border-radius: 6px 0 0 6px; font-size: 14px; min-width: 150px; }
.nc-search button { border: 0; background: var(--nc-accent); color: #1a1204; font-weight: 700; padding: 8px 14px; border-radius: 0 6px 6px 0; cursor: pointer; }

/* Mobile nav toggle */
.nc-nav-toggle { display: none; background: transparent; border: 1px solid #33404f; color: #fff; padding: 8px 12px; border-radius: 6px; font-size: 15px; cursor: pointer; }

/* ============ Layout ============ */
.site-main { padding: 28px 0 48px; }
.nc-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 40px; }
@media (max-width: 900px) { .nc-grid { grid-template-columns: 1fr; } }

/* ============ Breadcrumbs ============ */
.nc-breadcrumbs { font-size: 14px; color: var(--nc-ink-soft); padding: 14px 0 0; }
.nc-breadcrumbs a { color: var(--nc-ink-soft); }

/* ============ Cards ============ */
.nc-cat-label { display: inline-block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--nc-accent-ink); background: #fbf3df; padding: 3px 9px; border-radius: 999px; }
.nc-card { background: var(--nc-bg); border: 1px solid var(--nc-line); border-radius: var(--nc-radius); overflow: hidden; display: flex; flex-direction: column; }
.nc-card .nc-thumb { aspect-ratio: 16/9; background: var(--nc-bg-alt); overflow: hidden; }
.nc-card .nc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.nc-card-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; }
.nc-card h3 { margin: 4px 0; font-family: var(--nc-font-head); font-size: 20px; line-height: 1.3; }
.nc-card h3 a { color: var(--nc-ink); }
.nc-card .nc-excerpt { color: var(--nc-ink-soft); font-size: 15px; margin: 0; }
.nc-meta { font-size: 13px; color: var(--nc-ink-soft); display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }

/* Post list */
.nc-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--nc-gap); }
@media (max-width: 620px) { .nc-cards { grid-template-columns: 1fr; } }

/* ============ Hero (front) ============ */
.nc-hero { display: grid; grid-template-columns: 1.6fr 1fr; gap: var(--nc-gap); margin-bottom: 36px; }
@media (max-width: 780px) { .nc-hero { grid-template-columns: 1fr; } }
.nc-hero-main { position: relative; border-radius: var(--nc-radius); overflow: hidden; border: 1px solid var(--nc-line); }
.nc-hero-main .nc-thumb { aspect-ratio: 16/9; }
.nc-hero-main .nc-hero-cap { padding: 18px 20px; }
.nc-hero-main h2 { font-size: 28px; line-height: 1.25; margin: 8px 0; font-family: var(--nc-font-head); }
.nc-hero-main h2 a { color: var(--nc-ink); }
.nc-hero-side { display: flex; flex-direction: column; gap: 14px; }
.nc-hero-side .nc-mini { display: grid; grid-template-columns: 96px 1fr; gap: 12px; border-bottom: 1px solid var(--nc-line); padding-bottom: 14px; }
.nc-hero-side .nc-mini:last-child { border-bottom: 0; }
.nc-hero-side .nc-mini .nc-thumb { aspect-ratio: 1/1; border-radius: 8px; }
.nc-hero-side .nc-mini h4 { margin: 0; font-size: 15px; line-height: 1.35; }
.nc-hero-side .nc-mini h4 a { color: var(--nc-ink); }

/* Section heading */
.nc-section { margin: 36px 0; }
.nc-section-head { display: flex; align-items: center; justify-content: space-between; border-bottom: 2px solid var(--nc-graphite); padding-bottom: 8px; margin-bottom: 18px; }
.nc-section-head h2 { margin: 0; font-size: 22px; font-family: var(--nc-font-head); }
.nc-section-head h2 a { color: var(--nc-ink); }
.nc-section-head .nc-more { font-size: 14px; font-weight: 600; }

/* ============ Sidebar ============ */
.nc-sidebar .nc-widget { border: 1px solid var(--nc-line); border-radius: var(--nc-radius); padding: 18px; margin-bottom: 24px; }
.nc-sidebar h3 { margin: 0 0 12px; font-size: 17px; font-family: var(--nc-font-head); }
.nc-popular { list-style: none; margin: 0; padding: 0; }
.nc-popular li { display: flex; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--nc-line); }
.nc-popular li:last-child { border-bottom: 0; }
.nc-popular .num { color: var(--nc-accent); font-weight: 800; font-size: 18px; }
.nc-popular a { color: var(--nc-ink); font-size: 15px; font-weight: 600; }

/* ============ Single article ============ */
.nc-article { max-width: 760px; }
.nc-article-header h1 { font-family: var(--nc-font-head); font-size: 34px; line-height: 1.2; margin: 8px 0 12px; letter-spacing: -0.01em; }
@media (max-width: 620px){ .nc-article-header h1 { font-size: 27px; } }
.nc-article-meta { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; color: var(--nc-ink-soft); font-size: 14px; border-bottom: 1px solid var(--nc-line); padding-bottom: 14px; margin-bottom: 20px; }
.nc-article-featured { margin: 0 0 22px; border-radius: var(--nc-radius); overflow: hidden; }
.nc-article-body { font-size: 19px; }
.nc-article-body h2 { font-family: var(--nc-font-head); font-size: 26px; margin: 34px 0 12px; }
.nc-article-body h3 { font-size: 21px; margin: 26px 0 10px; }
.nc-article-body p { margin: 0 0 18px; }
.nc-article-body ul, .nc-article-body ol { margin: 0 0 18px; padding-left: 24px; }
.nc-article-body li { margin-bottom: 6px; }
.nc-article-body a { text-decoration: underline; }
.nc-article-body blockquote { border-left: 4px solid var(--nc-accent); margin: 22px 0; padding: 6px 18px; color: var(--nc-ink-soft); font-style: italic; }
.nc-article-body table { width: 100%; border-collapse: collapse; margin: 22px 0; font-size: 16px; }
.nc-article-body th, .nc-article-body td { border: 1px solid var(--nc-line); padding: 10px 12px; text-align: left; }
.nc-article-body th { background: var(--nc-bg-alt); }
.nc-article-body figure { margin: 22px 0; }
.nc-article-body figcaption { font-size: 14px; color: var(--nc-ink-soft); margin-top: 6px; }

/* Editorial blocks */
.nc-keyfacts { background: var(--nc-bg-alt); border: 1px solid var(--nc-line); border-left: 4px solid var(--nc-accent); border-radius: 8px; padding: 16px 20px; margin: 24px 0; }
.nc-keyfacts h2 { margin: 0 0 8px; font-size: 18px; }
.nc-sources { border-top: 1px solid var(--nc-line); margin-top: 30px; padding-top: 18px; }
.nc-sources h2 { font-size: 20px; }
.nc-sources ol { padding-left: 22px; font-size: 16px; }
.nc-disclaimer { background: #fdf6ec; border: 1px solid #f0dcb8; border-radius: 8px; padding: 14px 18px; margin: 26px 0 0; font-size: 15px; color: #6b5320; }
.nc-updated { font-size: 13px; color: var(--nc-ink-soft); }

/* Author box */
.nc-authorbox { display: flex; gap: 16px; align-items: flex-start; background: var(--nc-bg-alt); border: 1px solid var(--nc-line); border-radius: var(--nc-radius); padding: 18px; margin: 34px 0; }
.nc-authorbox .nc-avatar { width: 56px; height: 56px; border-radius: 50%; background: var(--nc-graphite); color: var(--nc-accent); display: grid; place-items: center; font-weight: 800; font-size: 20px; flex: 0 0 auto; }
.nc-authorbox h3 { margin: 0 0 4px; font-size: 17px; }
.nc-authorbox p { margin: 0; font-size: 14px; color: var(--nc-ink-soft); }

/* Related */
.nc-related h2 { font-size: 22px; border-bottom: 2px solid var(--nc-graphite); padding-bottom: 8px; }

/* ============ Pagination ============ */
.nc-pagination { display: flex; gap: 8px; flex-wrap: wrap; margin: 30px 0; }
.nc-pagination a, .nc-pagination span { padding: 8px 14px; border: 1px solid var(--nc-line); border-radius: 6px; color: var(--nc-ink); font-weight: 600; }
.nc-pagination .current { background: var(--nc-graphite); color: #fff; border-color: var(--nc-graphite); }

/* ============ Footer ============ */
.site-footer { background: var(--nc-graphite); color: #c4ccd6; margin-top: 40px; }
.site-footer a { color: #c4ccd6; }
.site-footer a:hover { color: #fff; }
.nc-footer-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; padding: 40px 0 28px; }
@media (max-width: 760px){ .nc-footer-top { grid-template-columns: 1fr; gap: 24px; } }
.site-footer h4 { color: #fff; font-size: 15px; margin: 0 0 12px; text-transform: uppercase; letter-spacing: .04em; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { padding: 4px 0; font-size: 14px; }
.nc-footer-brand .site-title { font-size: 22px; }
.nc-footer-disclaimer { font-size: 13px; color: #9aa5b1; margin-top: 12px; }
.nc-footer-bottom { border-top: 1px solid #26313f; padding: 16px 0; font-size: 13px; color: #9aa5b1; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; }

/* ============ Responsive nav ============ */
@media (max-width: 860px) {
  .nc-nav-toggle { display: inline-block; }
  .nc-primary-nav .nc-nav { display: none; width: 100%; }
  .nc-primary-nav .nc-nav.open { display: block; }
  .nc-primary-nav .nc-nav ul { flex-direction: column; padding: 8px 0; }
  .nc-primary-nav .nc-container { flex-wrap: wrap; padding-top: 8px; padding-bottom: 8px; }
}

/* Utility */
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.nc-muted { color: var(--nc-ink-soft); }
