/* Local News — Responsive newspaper layout with dark mode — <15KB */

/* === Reset & Variables === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#ffffff;--bg-alt:#f8f9fa;--text:#1a1a2e;--text-muted:#6c757d;
  --primary:#1a56db;--primary-hover:#1e40af;--accent:#dc2626;
  --border:#e5e7eb;--card-bg:#ffffff;--card-shadow:0 1px 3px rgba(0,0,0,.08);
  --radius:8px;--max-w:1200px;--gap:1.5rem;
  --font-sans:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-serif:Georgia,'Times New Roman',serif;
}
body.dark{
  --bg:#0f172a;--bg-alt:#1e293b;--text:#e2e8f0;--text-muted:#94a3b8;
  --primary:#60a5fa;--primary-hover:#93c5fd;--accent:#f87171;
  --border:#334155;--card-bg:#1e293b;--card-shadow:0 1px 3px rgba(0,0,0,.3);
}

/* === Base === */
html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.6}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-hover);text-decoration:underline}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--font-serif);line-height:1.25;color:var(--text)}
h1{font-size:clamp(1.75rem,4vw,2.5rem);margin-bottom:1rem}
h2{font-size:clamp(1.25rem,3vw,1.75rem);margin-bottom:.75rem}
h3{font-size:1.125rem}
.container{max-width:var(--max-w);margin:0 auto;padding:0 1rem}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* === Header === */
.site-header{background:var(--card-bg);border-bottom:3px solid var(--accent);position:sticky;top:0;z-index:100;box-shadow:var(--card-shadow)}
.header-inner{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;flex-wrap:wrap}
.site-logo{display:flex;align-items:center;gap:.5rem;font-family:var(--font-serif);font-size:1.25rem;font-weight:700;color:var(--text);text-decoration:none;white-space:nowrap}
.logo-icon{font-size:1.5rem}
.main-nav ul{display:flex;list-style:none;gap:.25rem;flex-wrap:wrap}
.main-nav a{padding:.35rem .65rem;border-radius:var(--radius);font-size:.8125rem;font-weight:500;color:var(--text-muted);transition:all .15s}
.main-nav a:hover,.main-nav a.active{background:var(--primary);color:#fff;text-decoration:none}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem}
.menu-toggle span{display:block;width:22px;height:2px;background:var(--text);margin:5px 0;transition:.2s}
.dark-toggle{background:none;border:1px solid var(--border);border-radius:50%;width:36px;height:36px;cursor:pointer;font-size:1.1rem;color:var(--text);margin-left:auto}

@media(max-width:768px){
  .menu-toggle{display:block}
  .main-nav{display:none;width:100%;order:3}
  .main-nav ul{flex-direction:column}
  .header-inner.nav-open .main-nav{display:block}
}

/* === Hero === */
.hero{text-align:center;padding:2.5rem 0 1.5rem;border-bottom:1px solid var(--border)}
.hero h1{font-size:clamp(1.5rem,4vw,2.25rem);margin-bottom:.5rem}
.hero-sub{color:var(--text-muted);font-size:1.05rem}

/* === Widgets Bar === */
.widgets-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;padding:1.5rem 0;border-bottom:1px solid var(--border)}
.widget{background:var(--bg-alt);border-radius:var(--radius);padding:1rem;border:1px solid var(--border)}
.widget h3{font-family:var(--font-sans);font-size:.875rem;margin-bottom:.5rem;color:var(--text-muted)}
.widget ul{list-style:none;font-size:.85rem}
.widget li{padding:.15rem 0}
.widget-info{font-size:.85rem;color:var(--text-muted)}
.widget-loading{font-size:.85rem;color:var(--text-muted);font-style:italic}
.meteo-now{font-size:.9rem;margin-bottom:.5rem}
.meteo-temp{font-size:1.5rem;font-weight:700;color:var(--primary)}
.meteo-forecast{display:flex;gap:.75rem}
.meteo-day{text-align:center;font-size:.8rem}

/* === Cards & Grids === */
.articles-featured-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);margin-bottom:var(--gap)}
.articles-featured-grid .card-hero{grid-row:1/3}
.articles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--gap)}
.card{background:var(--card-bg);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.card-image{display:block;overflow:hidden;aspect-ratio:16/9}
.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.card:hover .card-image img{transform:scale(1.03)}
.card-body{padding:1rem}
.card-cat{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:.35rem}
.card-body h3{font-size:1rem;margin-bottom:.5rem;line-height:1.35}
.card-body h3 a{color:var(--text);text-decoration:none}
.card-body h3 a:hover{color:var(--primary)}
.card-excerpt{font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem;line-height:1.5}
.card-date{font-size:.75rem;color:var(--text-muted)}

@media(max-width:640px){
  .articles-featured-grid{grid-template-columns:1fr}
  .articles-featured-grid .card-hero{grid-row:auto}
}

/* === Category Pills === */
.category-nav-bar{padding:1.5rem 0;border-bottom:1px solid var(--border)}
.cat-pills{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}
.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .85rem;background:var(--bg-alt);border:1px solid var(--border);border-radius:20px;font-size:.8rem;color:var(--text);text-decoration:none;transition:.15s}
.pill:hover{background:var(--primary);color:#fff;border-color:var(--primary);text-decoration:none}
.pill-count{font-size:.7rem;opacity:.7}

/* === Article Full === */
.breadcrumb{padding:1rem 0;font-size:.8rem;color:var(--text-muted)}
.breadcrumb a{color:var(--text-muted)}
.breadcrumb span{margin:0 .25rem}
.article-full{max-width:800px;margin:0 auto;padding-bottom:2rem}
.article-header{margin-bottom:1.5rem}
.article-cat{display:inline-block;background:var(--accent);color:#fff;padding:.2rem .6rem;border-radius:var(--radius);font-size:.7rem;font-weight:600;text-transform:uppercase;margin-bottom:.75rem}
.article-cat a{color:#fff;text-decoration:none}
.article-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.85rem;color:var(--text-muted);margin-top:.75rem}
.meta-sep{opacity:.4}
.article-hero-image{margin-bottom:1.5rem;border-radius:var(--radius);overflow:hidden}
.article-hero-image figcaption{font-size:.8rem;color:var(--text-muted);padding:.5rem 0;font-style:italic}
.article-content{font-family:var(--font-serif);font-size:1.05rem;line-height:1.8}
.article-content h2{margin-top:2rem;margin-bottom:.75rem;font-size:1.5rem}
.article-content h3{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.2rem}
.article-content p{margin-bottom:1.25rem}
.article-content ul,.article-content ol{margin-bottom:1.25rem;padding-left:1.5rem}
.article-content li{margin-bottom:.35rem}
.article-content blockquote{border-left:4px solid var(--primary);margin:1.5rem 0;padding:.75rem 1.25rem;background:var(--bg-alt);border-radius:0 var(--radius) var(--radius) 0;font-style:italic}
.article-content a{color:var(--primary);text-decoration:underline}
.article-tags{padding:1.5rem 0;display:flex;gap:.5rem;flex-wrap:wrap}
.tag{background:var(--bg-alt);border:1px solid var(--border);padding:.25rem .6rem;border-radius:var(--radius);font-size:.75rem;color:var(--text-muted)}

/* === Share === */
.share-bar{display:flex;align-items:center;gap:.5rem;padding:1rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:1.5rem auto;max-width:800px;font-size:.85rem;flex-wrap:wrap}
.share-btn{padding:.4rem .7rem;border-radius:var(--radius);font-size:.78rem;color:#fff;text-decoration:none;border:none;cursor:pointer;font-family:inherit;line-height:1.4}
.share-fb{background:#1877f2}.share-tw{background:#000}.share-li{background:#0a66c2}.share-wa{background:#25d366}.share-tg{background:#26a5e4}.share-copy{background:var(--text-muted)}
.share-btn:hover{opacity:.85;text-decoration:none;color:#fff}

/* === Related & Article Nav === */
.related-articles{padding:2rem 0}
.article-nav{display:flex;gap:1rem;padding:1rem 0 2rem;flex-wrap:wrap}

/* === All Articles / Section Headers === */
.all-articles,.featured-articles{padding:1.5rem 0}
.all-articles h2,.featured-articles h2,.related-articles h2,.category-page h1{padding-bottom:.5rem;border-bottom:2px solid var(--accent);display:inline-block;margin-bottom:1.25rem}

/* === Category === */
.category-desc{color:var(--text-muted);margin-bottom:1.5rem;font-size:1rem}
.empty-state{text-align:center;padding:3rem 0}

/* === Pagination === */
.pagination{display:flex;justify-content:center;gap:.35rem;padding:2rem 0;flex-wrap:wrap}
.page-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;color:var(--text);text-decoration:none;transition:.15s}
.page-link:hover{background:var(--primary);color:#fff;border-color:var(--primary);text-decoration:none}
.page-link.current{background:var(--primary);color:#fff;border-color:var(--primary)}

/* === Contact === */
.contact-page{max-width:640px;margin:0 auto;padding:2rem 0}
.contact-form{display:flex;flex-direction:column;gap:1rem;margin:1.5rem 0}
.form-group{display:flex;flex-direction:column;gap:.35rem}
.form-group label{font-weight:600;font-size:.875rem}
.form-group input,.form-group textarea{padding:.65rem .85rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem;font-family:var(--font-sans);background:var(--bg);color:var(--text);transition:border-color .15s}
.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,86,219,.15)}
.contact-info{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border);font-size:.9rem;color:var(--text-muted)}

/* === Alerts === */
.alert{padding:1rem;border-radius:var(--radius);margin-bottom:1.5rem;font-size:.9rem}
.alert-success{background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46}
.alert-error{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}
body.dark .alert-success{background:#064e3b;border-color:#059669;color:#a7f3d0}
body.dark .alert-error{background:#450a0a;border-color:#dc2626;color:#fca5a5}

/* === Legal === */
.legal-page{max-width:800px;margin:0 auto;padding:2rem 0}
.legal-content{font-size:.95rem;line-height:1.75}
.legal-content h2{margin-top:2rem;margin-bottom:.75rem;font-size:1.25rem}
.legal-content h3{margin-top:1.25rem;font-size:1.05rem}
.legal-content p,.legal-content ul{margin-bottom:1rem}
.legal-content ul{padding-left:1.5rem}
.legal-back{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border)}

/* === 404 === */
.page-404{text-align:center;padding:4rem 0}
.page-404 h1{font-size:3rem;margin-bottom:.5rem}
.page-404-actions{display:flex;justify-content:center;gap:1rem;margin:1.5rem 0}
.page-404-suggestions{text-align:left;max-width:500px;margin:2rem auto 0}
.page-404-suggestions ul{list-style:none}
.page-404-suggestions li{padding:.5rem 0;border-bottom:1px solid var(--border)}

/* === Buttons === */
.btn{display:inline-block;padding:.55rem 1.25rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;text-decoration:none;border:1px solid var(--border);color:var(--text);background:var(--bg);transition:.15s;cursor:pointer;font-family:var(--font-sans)}
.btn:hover{background:var(--bg-alt);text-decoration:none}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-primary:hover{background:var(--primary-hover);color:#fff}
.btn-secondary{background:transparent;border:1px solid var(--border)}

/* === Cookie Banner === */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:var(--card-bg);border-top:1px solid var(--border);padding:1rem;display:flex;align-items:center;justify-content:center;gap:1rem;z-index:200;box-shadow:0 -2px 10px rgba(0,0,0,.1);flex-wrap:wrap}
.cookie-banner p{font-size:.85rem;margin:0}
.cookie-banner button{padding:.4rem 1rem;border-radius:var(--radius);font-size:.8rem;cursor:pointer;border:none;font-family:var(--font-sans)}
.cookie-banner button:first-of-type{background:var(--primary);color:#fff}

/* === Footer === */
.site-footer{background:var(--bg-alt);border-top:3px solid var(--accent);margin-top:3rem;padding:2.5rem 0 0}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem}
.footer-col h3{font-family:var(--font-sans);font-size:.9rem;margin-bottom:.75rem;color:var(--text)}
.footer-col p{font-size:.85rem;color:var(--text-muted);line-height:1.6}
.footer-col ul{list-style:none}
.footer-col li{padding:.2rem 0}
.footer-col a{font-size:.85rem;color:var(--text-muted)}
.footer-col a:hover{color:var(--primary)}
.footer-bottom{text-align:center;padding:1.5rem 0;margin-top:2rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--text-muted)}
.footer-bottom a{color:var(--text-muted)}

/* === Print === */
@media print{
  .site-header,.site-footer,.cookie-banner,.share-bar,.pagination,.widgets-bar,.dark-toggle,.menu-toggle{display:none!important}
  body{color:#000;background:#fff}
  .article-content{font-size:12pt}
}
