/*
Theme Name: Daily Edition
Theme URI: https://example.com/daily-edition
Author: Your Name
Author URI: https://example.com
Description: A fast, clean, fully responsive news & magazine WordPress theme with a classic newspaper masthead, responsive dropdown navigation, sidebar and footer widget areas built for AdSense, and typography tuned for long-form reading.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: daily-edition
Tags: news, blog, grid-layout, custom-menu, featured-images, footer-widgets, sticky-post, threaded-comments, translation-ready, right-sidebar, one-column

Daily Edition WordPress Theme, (C) Your Name
Daily Edition is distributed under the terms of the GNU GPL v2 or later.
*/

/* =========================================================
   0. DESIGN TOKENS
========================================================= */
:root{
  --navy:        #14213D;
  --navy-deep:   #0D172C;
  --crimson:     #C81D25;
  --crimson-dark:#9E141B;
  --paper:       #FAF9F6;
  --paper-dim:   #F1EFE9;
  --ink:         #1C1C1C;
  --steel:       #5C6B7A;
  --steel-light: #8B96A3;
  --line:        #E3E1DA;
  --line-dark:   #2A3A5C;
  --white:       #FFFFFF;

  --font-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --font-body:    "Source Sans 3", "Helvetica Neue", Arial, sans-serif;
  --font-mono:    "IBM Plex Mono", "Courier New", monospace;

  --max-width: 1200px;
  --gap: 28px;
  --radius: 3px;
}

/* =========================================================
   1. RESET
========================================================= */
*, *::before, *::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--crimson); text-decoration:none; }
a:hover{ text-decoration:underline; }
ul,ol{ padding-left:1.2em; }
button{ font-family:inherit; }
:focus-visible{ outline:3px solid var(--crimson); outline-offset:2px; }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

.container{
  max-width:var(--max-width);
  margin:0 auto;
  padding:0 20px;
}
.screen-reader-text{
  position:absolute !important;
  width:1px; height:1px;
  overflow:hidden; clip:rect(1px,1px,1px,1px);
  white-space:nowrap;
}
.skip-link{
  position:absolute; top:-999px; left:0; z-index:10000;
  background:var(--crimson); color:#fff; padding:12px 20px;
}
.skip-link:focus{ top:0; }

/* =========================================================
   2. TYPOGRAPHY
========================================================= */
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.2;
  margin:0 0 .5em;
  color:var(--navy);
}
.eyebrow{
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:12px;
  font-weight:600;
  color:var(--crimson);
  display:inline-block;
  margin-bottom:8px;
}
p{ margin:0 0 1.2em; }

/* =========================================================
   3. TOP UTILITY BAR
========================================================= */
.top-bar{
  background:var(--navy-deep);
  color:#C9D2E0;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.03em;
}
.top-bar .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:36px;
}
.top-bar .top-date{ text-transform:uppercase; }
.top-bar .top-social a{
  color:#C9D2E0;
  margin-left:14px;
}
.top-bar .top-social a:hover{ color:#fff; text-decoration:none; }

/* =========================================================
   4. MASTHEAD
========================================================= */
.masthead{
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:26px 0 18px;
  text-align:center;
}
.masthead .site-title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(34px, 6vw, 62px);
  letter-spacing:-.01em;
  margin:0;
}
.masthead .site-title a{
  color:var(--navy);
  text-decoration:none;
}
.masthead .site-description{
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:11px;
  color:var(--steel);
  margin-top:6px;
}
.masthead-rule{
  height:3px;
  background:var(--navy);
  position:relative;
}
.masthead-rule::after{
  content:"";
  position:absolute; left:0; right:0; top:5px;
  height:1px; background:var(--navy);
}

/* =========================================================
   5. BREAKING TICKER
========================================================= */
.ticker{
  background:var(--crimson);
  color:#fff;
  overflow:hidden;
  white-space:nowrap;
}
.ticker .container{ display:flex; align-items:center; height:38px; padding:0; }
.ticker-label{
  flex:0 0 auto;
  background:var(--crimson-dark);
  font-family:var(--font-mono);
  font-weight:700;
  font-size:12px;
  letter-spacing:.08em;
  padding:0 16px;
  height:38px;
  display:flex; align-items:center;
  text-transform:uppercase;
}
.ticker-track-wrap{ flex:1 1 auto; overflow:hidden; padding-left:16px; }
.ticker-track{
  display:inline-block;
  font-size:13px;
  animation:ticker-scroll 28s linear infinite;
}
.ticker-track span{ margin-right:48px; }
@keyframes ticker-scroll{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}
.ticker.no-items{ display:none; }

/* =========================================================
   6. PRIMARY NAVIGATION (responsive + dropdown)
========================================================= */
.site-nav{
  background:var(--navy);
  position:sticky;
  top:0;
  z-index:500;
}
.site-nav .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.menu-toggle{
  display:none;
  background:transparent;
  border:0;
  color:#fff;
  padding:16px 4px;
  cursor:pointer;
  align-items:center;
  gap:8px;
  font-family:var(--font-mono);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.menu-toggle .bars{
  width:24px; height:18px; position:relative;
  display:inline-block;
}
.menu-toggle .bars span{
  position:absolute; left:0; right:0; height:2px; background:#fff;
  transition:transform .2s ease, opacity .2s ease;
}
.menu-toggle .bars span:nth-child(1){ top:0; }
.menu-toggle .bars span:nth-child(2){ top:8px; }
.menu-toggle .bars span:nth-child(3){ top:16px; }
.menu-toggle[aria-expanded="true"] .bars span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .bars span:nth-child(2){ opacity:0; }
.menu-toggle[aria-expanded="true"] .bars span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

.primary-menu{
  list-style:none;
  display:flex;
  margin:0; padding:0;
  flex-wrap:wrap;
}
.primary-menu li{ position:relative; }
.primary-menu > li > a{
  display:block;
  color:#EDEFF3;
  padding:16px 16px;
  font-family:var(--font-mono);
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
  text-decoration:none;
  border-bottom:3px solid transparent;
}
.primary-menu > li > a:hover,
.primary-menu > li.current-menu-item > a{
  color:#fff;
  border-bottom-color:var(--crimson);
}
.primary-menu li.menu-item-has-children > a{
  padding-right:26px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23EDEFF3'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 8px center;
}
.primary-menu .sub-menu{
  list-style:none;
  margin:0; padding:8px 0;
  position:absolute;
  top:100%; left:0;
  min-width:230px;
  background:var(--white);
  box-shadow:0 12px 24px rgba(13,23,44,.18);
  border-top:3px solid var(--crimson);
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
  z-index:600;
}
.primary-menu .sub-menu .sub-menu{ top:-8px; left:100%; }
.primary-menu li:hover > .sub-menu,
.primary-menu li:focus-within > .sub-menu{
  opacity:1; visibility:visible; transform:translateY(0);
}
.primary-menu .sub-menu a{
  display:block;
  padding:10px 18px;
  color:var(--ink);
  font-family:var(--font-body);
  font-size:14px;
  font-weight:600;
  text-transform:none;
  letter-spacing:0;
  border-bottom:1px solid var(--line);
}
.primary-menu .sub-menu li:last-child a{ border-bottom:0; }
.primary-menu .sub-menu a:hover{ background:var(--paper-dim); color:var(--crimson); text-decoration:none; }

.nav-search{
  display:flex; align-items:center;
}
.nav-search input[type="search"]{
  background:var(--line-dark);
  border:0;
  color:#fff;
  padding:8px 12px;
  border-radius:var(--radius);
  font-size:13px;
  width:150px;
}
.nav-search input[type="search"]::placeholder{ color:#9AA6BB; }
.nav-search button{
  background:var(--crimson);
  color:#fff;
  border:0;
  padding:9px 12px;
  margin-left:6px;
  border-radius:var(--radius);
  cursor:pointer;
}

/* Mobile nav */
@media (max-width: 880px){
  .menu-toggle{ display:inline-flex; }
  .primary-menu-wrap{
    display:none;
    width:100%;
    flex-direction:column;
    background:var(--navy);
    border-top:1px solid var(--line-dark);
  }
  .primary-menu-wrap.is-open{ display:flex; }
  .site-nav .container{ flex-wrap:wrap; }
  .primary-menu{ flex-direction:column; width:100%; }
  .primary-menu > li{ width:100%; border-bottom:1px solid var(--line-dark); }
  .primary-menu > li > a{ padding:14px 4px; }
  .primary-menu .sub-menu{
    position:static;
    opacity:1; visibility:visible; transform:none;
    box-shadow:none; border-top:0;
    background:var(--navy-deep);
    display:none;
    min-width:0;
  }
  .primary-menu li.submenu-open > .sub-menu{ display:block; }
  .primary-menu .sub-menu a{ color:#EDEFF3; padding:10px 24px; border-bottom:1px solid var(--line-dark); }
  .primary-menu .sub-menu .sub-menu{ position:static; }
  .submenu-toggle{
    position:absolute; right:0; top:0;
    background:transparent; border:0; color:#fff;
    width:48px; height:48px; cursor:pointer; font-size:16px;
  }
  .nav-search{ width:100%; padding:12px 0; }
  .nav-search input[type="search"]{ flex:1; width:auto; }
}

/* =========================================================
   7. LAYOUT / GRID
========================================================= */
.site-main-wrap{
  padding:36px 0 60px;
}
.layout-grid{
  display:grid;
  grid-template-columns:2.3fr 1fr;
  gap:var(--gap);
  align-items:start;
}
@media (max-width: 960px){
  .layout-grid{ grid-template-columns:1fr; }
}

.section-heading{
  display:flex;
  align-items:center;
  gap:12px;
  margin:44px 0 20px;
  font-family:var(--font-display);
  font-size:22px;
  color:var(--navy);
  border-bottom:2px solid var(--navy);
  padding-bottom:8px;
}
.section-heading::before{
  content:"";
  width:10px; height:10px;
  background:var(--crimson);
}
.section-heading:first-child{ margin-top:0; }

/* Featured hero */
.featured-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:var(--gap);
}
@media (max-width: 700px){ .featured-grid{ grid-template-columns:1fr; } }

.hero-story{ position:relative; overflow:hidden; border-radius:var(--radius); }
.hero-story img{ width:100%; height:420px; object-fit:cover; }
.hero-story .hero-overlay{
  position:absolute; left:0; right:0; bottom:0;
  padding:26px 24px 22px;
  background:linear-gradient(0deg, rgba(13,23,44,.92) 0%, rgba(13,23,44,.5) 60%, transparent 100%);
}
.hero-story .eyebrow{ color:#FF8A8E; }
.hero-story h2{ color:#fff; font-size:clamp(22px,3vw,32px); margin-bottom:8px; }
.hero-story h2 a{ color:#fff; text-decoration:none; }
.hero-story .meta{ color:#D6DCE8; font-family:var(--font-mono); font-size:12px; }
@media (max-width:700px){ .hero-story img{ height:280px; } }

.side-stack{ display:flex; flex-direction:column; gap:18px; }
.side-story{ display:flex; gap:14px; border-bottom:1px solid var(--line); padding-bottom:16px; }
.side-story:last-child{ border-bottom:0; }
.side-story img{ width:110px; height:80px; object-fit:cover; border-radius:var(--radius); flex-shrink:0; }
.side-story h3{ font-size:16px; margin-bottom:4px; }
.side-story .meta{ font-family:var(--font-mono); font-size:11px; color:var(--steel); }

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

.post-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; }
.post-card .thumb{ display:block; aspect-ratio:16/10; overflow:hidden; background:var(--paper-dim); }
.post-card .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.post-card:hover .thumb img{ transform:scale(1.05); }
.post-card .card-body{ padding:16px 16px 18px; display:flex; flex-direction:column; flex:1; }
.post-card h3{ font-size:18px; margin-bottom:8px; }
.post-card .excerpt{ color:var(--steel); font-size:14.5px; margin-bottom:10px; }
.post-card .meta{ margin-top:auto; font-family:var(--font-mono); font-size:11px; color:var(--steel-light); text-transform:uppercase; letter-spacing:.04em; }
.category-pill{
  display:inline-block;
  background:var(--crimson);
  color:#fff;
  font-family:var(--font-mono);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:3px 9px;
  border-radius:2px;
  margin-bottom:10px;
}

/* Standard blog list (index/archive fallback loop) */
.post-list-item{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:20px;
  padding:24px 0;
  border-bottom:1px solid var(--line);
}
.post-list-item .thumb img{ width:100%; height:140px; object-fit:cover; border-radius:var(--radius); }
.post-list-item h2{ font-size:24px; }
@media (max-width:600px){
  .post-list-item{ grid-template-columns:1fr; }
  .post-list-item .thumb img{ height:200px; }
}

/* =========================================================
   8. AD SLOTS
========================================================= */
.ad-slot{
  margin:26px 0;
  text-align:center;
  background:var(--paper-dim);
  border:1px dashed var(--line);
  padding:14px;
  border-radius:var(--radius);
}
.ad-slot .ad-label{
  display:block;
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--steel-light);
  margin-bottom:8px;
}
.ad-slot:empty,
.ad-slot.widget:not(:has(*)){ display:none; }

/* =========================================================
   9. SIDEBAR / WIDGETS
========================================================= */
.widget{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px 20px 22px;
  margin-bottom:var(--gap);
}
.widget-title{
  font-family:var(--font-display);
  font-size:17px;
  color:var(--navy);
  margin:0 0 14px;
  padding-bottom:10px;
  border-bottom:2px solid var(--navy);
}
.widget ul{ list-style:none; margin:0; padding:0; }
.widget ul li{ padding:9px 0; border-bottom:1px solid var(--line); font-size:14.5px; }
.widget ul li:last-child{ border-bottom:0; }
.widget select,.widget input{ width:100%; padding:8px; border:1px solid var(--line); border-radius:var(--radius); }

.trending-list{ list-style:none; margin:0; padding:0; counter-reset:trend; }
.trending-list li{ counter-increment:trend; display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); }
.trending-list li:last-child{ border-bottom:0; }
.trending-list li::before{
  content: counter(trend);
  font-family:var(--font-display);
  font-weight:900;
  font-size:22px;
  color:var(--crimson);
  line-height:1;
  flex-shrink:0;
  width:28px;
}
.trending-list a{ color:var(--ink); font-weight:600; font-size:14.5px; }
.trending-list a:hover{ color:var(--crimson); }

/* =========================================================
   10. SINGLE POST / PAGE
========================================================= */
.entry-header{ margin-bottom:20px; }
.entry-header h1{ font-size:clamp(28px,4vw,44px); }
.entry-meta{ font-family:var(--font-mono); font-size:12.5px; color:var(--steel); text-transform:uppercase; letter-spacing:.04em; }
.entry-meta a{ color:var(--steel); }
.entry-thumbnail{ margin:20px 0; border-radius:var(--radius); overflow:hidden; }
.entry-content{ font-size:18px; line-height:1.75; }
.entry-content h2{ font-size:26px; margin-top:1.6em; }
.entry-content h3{ font-size:21px; margin-top:1.4em; }
.entry-content blockquote{
  margin:1.6em 0;
  padding:6px 0 6px 22px;
  border-left:4px solid var(--crimson);
  font-family:var(--font-display);
  font-style:italic;
  font-size:21px;
  color:var(--navy);
}
.entry-content img{ border-radius:var(--radius); }
.entry-content a{ text-decoration:underline; }
.entry-footer{ margin-top:30px; padding-top:18px; border-top:1px solid var(--line); }
.tag-links a{
  display:inline-block; background:var(--paper-dim); border:1px solid var(--line);
  padding:5px 12px; margin:0 6px 6px 0; border-radius:20px; font-size:12.5px; color:var(--ink); text-decoration:none;
}
.tag-links a:hover{ background:var(--navy); color:#fff; }

.author-box{
  display:flex; gap:16px; align-items:flex-start;
  background:var(--paper-dim); border-radius:var(--radius);
  padding:20px; margin:30px 0;
}
.author-box img{ border-radius:50%; width:64px; height:64px; }

.post-nav{ display:flex; justify-content:space-between; gap:20px; margin:30px 0; }
.post-nav a{ flex:1; padding:14px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); font-size:14px; }
.post-nav .nav-next{ text-align:right; }

/* Comments */
.comments-area{ margin-top:40px; }
.comment-list{ list-style:none; margin:0; padding:0; }
.comment-body{ padding:18px 0; border-bottom:1px solid var(--line); }
.comment-author img{ border-radius:50%; float:left; margin-right:14px; }
.comment-metadata{ font-family:var(--font-mono); font-size:11px; color:var(--steel); }
.comment-reply-link{ font-size:12px; }
.comment-respond input[type=text],
.comment-respond input[type=email],
.comment-respond input[type=url],
.comment-respond textarea{
  width:100%; padding:10px; border:1px solid var(--line); border-radius:var(--radius); margin-bottom:12px; font-family:var(--font-body);
}
.comment-respond .form-submit input{
  background:var(--crimson); color:#fff; border:0; padding:11px 22px; border-radius:var(--radius); cursor:pointer; font-weight:700;
}

/* Pagination */
.pagination, .nav-links{
  display:flex; justify-content:center; gap:8px; margin:36px 0; flex-wrap:wrap;
}
.pagination a, .pagination span, .nav-links a, .nav-links span{
  padding:9px 15px; border:1px solid var(--line); border-radius:var(--radius); font-family:var(--font-mono); font-size:13px; color:var(--ink); background:#fff;
}
.pagination .current, .nav-links .current{ background:var(--navy); color:#fff; border-color:var(--navy); }
.pagination a:hover, .nav-links a:hover{ background:var(--paper-dim); text-decoration:none; }

/* =========================================================
   11. FOOTER
========================================================= */
.site-footer{
  background:var(--navy-deep);
  color:#C9D2E0;
  margin-top:60px;
}
.footer-widgets{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:28px;
  padding:50px 0 30px;
}
@media (max-width:880px){ .footer-widgets{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .footer-widgets{ grid-template-columns:1fr; } }
.footer-widgets .widget{
  background:transparent; border:0; padding:0;
}
.footer-widgets .widget-title{ color:#fff; border-bottom-color:var(--crimson); }
.footer-widgets ul li{ border-bottom:1px solid var(--line-dark); }
.footer-widgets a{ color:#C9D2E0; }
.footer-widgets a:hover{ color:#fff; }

.footer-bottom{
  border-top:1px solid var(--line-dark);
  padding:18px 0;
  font-family:var(--font-mono);
  font-size:12px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
}
.footer-bottom a{ color:#C9D2E0; }

/* =========================================================
   12. UTILITIES
========================================================= */
.alignwide{ margin-left:-40px; margin-right:-40px; max-width:calc(100% + 80px); }
.alignfull{ width:100vw; position:relative; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw; }
.aligncenter{ margin-left:auto; margin-right:auto; display:block; }
.alignleft{ float:left; margin:0 20px 10px 0; }
.alignright{ float:right; margin:0 0 10px 20px; }
.sticky{ border:2px solid var(--crimson); }
.search-form input[type=search]{ width:100%; padding:12px; border:1px solid var(--line); border-radius:var(--radius); }
.no-results{ padding:40px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:var(--radius); }
