/*
Theme Name: D-MAG
Theme URI: https://d-mag.net
Author: Your Name
Description: Minimal, single-column data-journalism theme — English layout matching d-mag.net: centered logo, tagline, stacked feature posts with reading time and a "Discover More" CTA, simple sidebar (Search / Categories / Archives).
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: d-mag
*/

:root{
  --bg:      #FFFFFF;
  --ink:     #111111;
  --meta:    #6B6B6B;
  --rule:    #D9D9D9;
  --accent:  #990101;
  --accent-dk:#700101;
  --maxw:    1080px;

  --serif:  "Source Serif 4", "Times New Roman", Georgia, serif;
  --display:var(--serif);
  --sans:   "Inter", -apple-system, "Segoe UI", sans-serif;
  --mono:   "JetBrains Mono", "SFMono-Regular", monospace;
}

*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;height:auto;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

/* ---------- header ---------- */
header.site{padding:46px 0 26px;text-align:center;border-bottom:1px solid var(--rule);}
.logo-link{display:inline-block;margin-bottom:22px;}
.logo-link img{max-height:64px;width:auto;margin:0 auto;}
.logo-text{
  font-family:var(--serif);font-weight:700;font-style:italic;font-size:32px;letter-spacing:-0.01em;
}

nav.primary{
  display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;
  font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
}
nav.primary ul,.primary-fallback{
  display:flex;gap:26px;flex-wrap:wrap;justify-content:center;list-style:none;margin:0;padding:0;
}
nav.primary li{list-style:none;}
nav.primary a{padding:4px 2px;border-bottom:2px solid transparent;}
nav.primary a:hover,
nav.primary .current-menu-item>a{border-color:var(--accent);color:var(--accent-dk);}

.header-tools{
  display:flex;align-items:center;justify-content:center;gap:18px;margin-top:18px;
}
.search-btn{
  width:34px;height:34px;border:1px solid var(--rule);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.search-btn svg{width:15px;height:15px;stroke:var(--ink);}
.social-link{
  width:34px;height:34px;border:1px solid var(--rule);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.social-link svg{width:15px;height:15px;fill:var(--ink);}

/* ---------- hero tagline ---------- */
.site-tagline{
  text-align:center;font-family:var(--serif);font-weight:500;font-style:italic;
  font-size:18px;color:var(--meta);letter-spacing:0;margin:18px 0 6px;
}

/* ---------- layout ---------- */
.layout{display:grid;grid-template-columns:1fr 280px;gap:54px;padding:34px 0 80px;}
@media (max-width:820px){.layout{grid-template-columns:1fr;gap:44px;}}
main.col{min-width:0;}

/* ---------- feature post block ---------- */
.post-feature{
  display:flex;gap:26px;padding:26px 0;border-bottom:1px solid var(--rule);
}
.post-feature:first-of-type{padding-top:0;}
@media (max-width:560px){.post-feature{flex-direction:column;gap:16px;}}

.pf-body{flex:1;min-width:0;order:1;}
.pf-media{width:190px;flex-shrink:0;order:2;}
@media (max-width:560px){.pf-media{width:100%;order:-1;}}

.post-meta-top{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px;
}
.cat-pill{
  display:inline-block;font-family:var(--sans);font-size:11px;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:transparent;
  padding:0;border-radius:0;
}
.cat-pill:not(:last-of-type)::after{content:"·";margin-left:10px;color:var(--rule);font-weight:400;}
.read-time{font-family:var(--sans);font-size:11.5px;color:var(--meta);letter-spacing:.02em;}

.post-feature h2{
  font-family:var(--serif);font-weight:700;font-size:22px;line-height:1.28;
  letter-spacing:0;margin:0 0 8px;
}
.post-feature h2 a{color:var(--ink);}
.post-feature h2 a:hover{color:var(--accent-dk);}

.byline{font-family:var(--sans);font-size:12.5px;color:var(--meta);margin-bottom:10px;}
.byline a{font-weight:700;color:var(--ink);}
.byline a:hover{color:var(--accent-dk);}
.byline .sep{margin:0 6px;color:var(--rule);}

.pf-media .frame{border-radius:0;overflow:hidden;background:#f1efeb;}
.pf-media .frame img{width:100%;}

.post-feature .excerpt{
  font-family:var(--serif);font-size:16px;line-height:1.6;color:#2c2a28;max-width:68ch;margin:0 0 12px;
}

.discover-btn{
  display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:11.5px;
  font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-dk);
  border-bottom:1px solid var(--accent-dk);padding-bottom:2px;
}
.discover-btn:hover{color:var(--ink);border-color:var(--ink);}

.pagination{display:flex;gap:18px;margin-top:10px;font-family:var(--sans);font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;}
.pagination .current{color:var(--accent-dk);border-bottom:2px solid var(--accent);}

/* ---------- by-topic blocks (NYRB-style section teasers) ---------- */
.topic-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:36px 40px;
  padding:36px 0;border-top:2px solid var(--ink);margin-top:6px;
}
@media (max-width:680px){.topic-grid{grid-template-columns:1fr;}}
.topic-block h3{
  font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--rule);
  padding-bottom:8px;margin:0 0 14px;
}
.topic-block ul{list-style:none;margin:0;padding:0;}
.topic-block li{padding:10px 0;border-bottom:1px solid var(--rule);}
.topic-block li:last-child{border-bottom:none;}
.topic-block .t-byline{font-family:var(--sans);font-size:12.5px;font-weight:700;color:var(--ink);}
.topic-block a.t-title{font-family:var(--serif);font-size:15px;display:block;margin-top:2px;}
.topic-block a.t-title:hover{color:var(--accent-dk);}
.topic-block .t-date{font-family:var(--sans);font-size:11.5px;color:var(--meta);}
.topic-block .more{
  display:inline-block;margin-top:10px;font-family:var(--sans);font-size:11.5px;
  font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-dk);
}

/* ---------- sidebar / widgets ---------- */
aside.rail .widget{margin-bottom:34px;}
aside.rail .widget-title{
  font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink);border-bottom:2px solid var(--ink);padding-bottom:9px;margin:0 0 14px;
}
aside.rail .widget ul{list-style:none;margin:0;padding:0;}
aside.rail .widget li{padding:9px 0;border-bottom:1px solid var(--rule);font-family:var(--serif);font-size:14.5px;}
aside.rail .widget a:hover{color:var(--accent-dk);}
aside.rail .widget input[type="search"],
aside.rail .widget input[type="text"]{
  width:100%;padding:9px 11px;border:1px solid var(--rule);border-radius:0;font-family:var(--sans);font-size:13px;
}
aside.rail .widget input[type="submit"]{
  margin-top:8px;background:var(--ink);color:#fff;border:none;padding:9px 16px;border-radius:0;
  font-family:var(--sans);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;
}
aside.rail .widget input[type="submit"]:hover{background:var(--accent-dk);}

/* ---------- single article ---------- */
.article-head{padding:6px 0 0;}
.article-head h1{
  font-family:var(--serif);font-weight:700;font-size:34px;line-height:1.22;
  letter-spacing:0;margin:14px 0 14px;
}
.article-figure{margin:0 0 28px;}
.article-figure img{width:100%;border-radius:0;}
.article-figure figcaption{font-family:var(--sans);font-size:12px;color:var(--meta);margin-top:9px;}

.article-body{font-family:var(--serif);font-size:18px;line-height:1.75;color:#222;max-width:70ch;}
.article-body p{margin:0 0 22px;}
.article-body h2{font-family:var(--serif);font-weight:700;font-size:22px;margin:34px 0 14px;}
.article-body blockquote{
  margin:28px 0;padding:4px 0 4px 22px;border-left:3px solid var(--accent);
  font-style:italic;font-size:18px;color:var(--accent-dk);
}
.article-body img{border-radius:0;margin:22px 0;}
.article-body a{color:var(--accent-dk);text-decoration:underline;text-decoration-color:var(--rule);}

/* ---------- comments ---------- */
.comments-area{max-width:70ch;margin-top:46px;border-top:1px solid var(--rule);padding-top:30px;}
.comment-list{list-style:none;margin:0;padding:0;}
.comment-list li{padding:16px 0;border-bottom:1px solid var(--rule);}
#commentform input,#commentform textarea{
  width:100%;padding:10px 12px;border:1px solid var(--rule);border-radius:3px;
  font-family:var(--sans);margin-bottom:14px;
}
#commentform input[type="submit"]{
  width:auto;background:var(--ink);color:#fff;border:none;padding:11px 22px;
  font-weight:600;cursor:pointer;
}
#commentform input[type="submit"]:hover{background:var(--accent-dk);}

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--rule);padding:44px 0 30px;text-align:center;margin-top:30px;}
footer.site .logo-link img{max-height:46px;filter:grayscale(1);opacity:.85;margin:0 auto 14px;}
footer.site .tagline{font-size:13.5px;color:var(--meta);margin-bottom:16px;}
footer.site .fine{font-size:12px;color:#9b958c;}
