/* ============================================================
   themes/custom-newspaper/style.css — Broadsheet Newspaper
   No framework. Georgia serif, editorial layout, B&W palette.
   ============================================================ */

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }

body { font-family:Georgia,'Times New Roman',Times,serif; font-size:16px; background:var(--bg); color:var(--text); line-height:1.65; }

a { color:var(--primary); text-decoration:none; }
a:hover { text-decoration:underline; color:var(--primary-dark); }

h1,h2,h3,h4,h5,h6 { font-family:Georgia,serif; line-height:1.2; color:var(--text); }

/* === RULES === */
.np-rule-thick { border:none; border-top:3px solid var(--primary); margin:0; }
.np-rule { border:none; border-top:1px solid #999; margin:0; }

/* === HEADER / MASTHEAD === */
.np-header { background:var(--primary-dark); color:#fff; padding:0; }
.np-masthead { max-width:1100px; margin:0 auto; padding:1rem 1.5rem; text-align:center; }
.np-logo { font-family:Georgia,serif; font-size:2rem; font-weight:bold; color:#fff; letter-spacing:-0.5px; text-decoration:none; display:block; }
.np-logo:hover { color:#ddd; text-decoration:none; }
.np-edition { display:block; font-size:0.75rem; color:#aaa; font-style:italic; margin-top:2px; letter-spacing:0.1em; text-transform:uppercase; }

.np-nav { max-width:1100px; margin:0 auto; padding:0.35rem 1.5rem; display:flex; align-items:center; gap:1.5rem; background:var(--primary-dark); }
.np-nav a { color:#ccc; font-size:0.8rem; text-transform:uppercase; letter-spacing:0.08em; text-decoration:none; }
.np-nav a:hover { color:#fff; text-decoration:none; }

.np-nav-search { margin-left:auto; display:flex; }
.np-search-input { border:1px solid #555; background:#222; color:#fff; padding:0.25rem 0.6rem; font-size:0.8rem; font-family:inherit; border-radius:2px 0 0 2px; }
.np-search-input::placeholder { color:#777; }
.np-search-btn { background:var(--primary); color:#fff; border:none; padding:0.25rem 0.6rem; font-size:0.8rem; cursor:pointer; border-radius:0 2px 2px 0; }

/* === LAYOUT === */
.np-layout { max-width:1100px; margin:0 auto; padding:1.5rem; display:grid; grid-template-columns:1fr 260px; gap:2rem; align-items:start; }
@media (max-width:700px) { .np-layout { grid-template-columns:1fr; } .np-sidebar { display:none; } }

.np-content { /* rich text area */ }
.np-content h1 { font-size:1.75rem; border-bottom:1px solid #ccc; padding-bottom:0.5rem; margin-bottom:1rem; }
.np-content h2 { font-size:1.3rem; margin-top:1.75rem; margin-bottom:0.5rem; }
.np-content p { margin-bottom:1rem; }

/* === SIDEBAR === */
.np-widget { border-top:3px solid #111; margin-bottom:1.5rem; padding-top:0.75rem; }
.np-widget-title { font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:0.12em; color:#555; border-bottom:1px solid #ccc; padding-bottom:0.35rem; margin-bottom:0.6rem; }
.np-widget-body { font-size:0.875rem; }

.np-linklist { list-style:none; }
.np-linklist li { border-bottom:1px solid #e8e4dc; }
.np-linklist a { display:block; padding:0.35rem 0; font-size:0.85rem; color:var(--primary); }
.np-linklist a:hover { color:var(--primary-dark); text-decoration:none; padding-left:4px; transition:padding 0.1s; }

.np-search-inline { display:flex; }
.np-widget-input { flex:1; border:1px solid #ccc; border-right:none; padding:0.3rem 0.5rem; font-size:0.85rem; font-family:inherit; }
.np-widget-btn { background:#111; color:#fff; border:none; padding:0.3rem 0.6rem; font-size:0.75rem; cursor:pointer; white-space:nowrap; font-family:inherit; }

/* County grid */
.np-county-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0.5rem 1rem; margin-bottom:1rem; }
.np-county-cell { border-bottom:1px solid #e8e4dc; padding:0.35rem 0; }
.np-county-link { font-size:0.85rem; color:var(--primary); font-weight:bold; display:block; }
.np-county-sub { font-size:0.75rem; color:#888; font-style:italic; }

/* Company grid */
.np-company-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0.75rem 1.5rem; margin-bottom:1rem; }
.np-company-item { border-left:2px solid var(--primary); padding-left:0.6rem; }
.np-company-name { font-size:0.9rem; margin-bottom:0.25rem; }
.np-company-name a { color:#111; font-weight:bold; }
.np-company-addr { font-size:0.8rem; color:#666; font-style:italic; margin-bottom:0.25rem; }
.np-company-link { font-size:0.78rem; color:var(--primary); text-decoration:none; }

/* Map */
.map-responsive { overflow:hidden; padding-bottom:56.25%; position:relative; height:0; margin-bottom:1.5rem; border:1px solid #ccc; }
.map-responsive iframe { left:0; top:0; height:100%; width:100%; position:absolute; border:0; }

/* Content tables */
.data-table { display:block; overflow-x:auto; width:100%; border-collapse:collapse; margin-bottom:1rem; font-size:0.875rem; font-family:Georgia,serif; }
.data-table th, .data-table td { padding:0.4rem 0.5rem; border-bottom:1px solid #e8e4dc; text-align:left; }
.data-table thead td, .data-table thead th { font-weight:bold; border-bottom:2px solid #ccc; }

.page-updated { color:#888; font-size:0.85rem; font-style:italic; display:block; margin-bottom:0.75rem; }

/* === FOOTER === */
.np-footer { max-width:1100px; margin:0 auto; padding:0 1.5rem 1.5rem; }
.np-footer-inner { display:flex; justify-content:space-between; align-items:center; padding:0.75rem 0; font-size:0.8rem; color:#666; flex-wrap:wrap; gap:0.5rem; }
.np-footer a { color:#666; text-decoration:none; }
.np-footer a:hover { color:var(--primary); }
