/*
Theme Name: Chelsea 02150
Theme URI: https://chelseamass.net
Author: Scalli Murphy Law
Description: News and city-information theme for chelseamass.net. Navy masthead carrying the
             Chelsea City Hall photograph from the original 2012 theme, grid article blocks with
             the image above the headline, native ad positions and Core Web Vitals in mind.
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: chelsea02150
Tags: news, blog, grid-layout, two-columns, right-sidebar, custom-menu, featured-images
*/

/* ---------- palette: sampled from the original Massachusetts 02150 stylesheet ---------- */
:root{
  --navy:#2c3b49; --navy-2:#22303c; --steel:#2d5e7b; --mid:#3d7ea4; --sky:#5096be;
  --slate:#3b4f63; --mist:#b2c2d1; --haze:#d6dee6; --gold:#d9c56b; --gold-2:#b99f3f;
  --ink:#2b3640; --ink-2:#55636f; --ink-3:#8697a6;
  --bg:#fff; --bg-alt:#f4f6f8; --bg-soft:#eef2f5; --rule:#dde4ea; --rule-2:#e9eef2;
  --wrap:1140px; --gap:26px;
  --sans:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:Georgia,"Bitstream Charter",serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg-alt);color:var(--ink);
  font:16px/1.65 var(--sans);word-wrap:break-word}
img{max-width:100%;height:auto;display:block}
a{color:var(--steel);text-decoration:none}
a:hover,a:focus{text-decoration:underline}
:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 18px}
.clear::after{content:"";display:table;clear:both}
.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;left:-9999px}
.skip-link:focus{left:8px;top:8px;background:#fff;padding:10px 16px;z-index:1000}

/* ---------- utility bar ---------- */
.secondary-nav{background:var(--navy-2);color:#9db2c4;font-size:12.5px}
.secondary-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap}
.secondary-nav a{color:#a9bccd;padding:7px 12px;display:inline-block}
.secondary-nav a:hover{color:#fff;text-decoration:none}

/* ---------- masthead: navy + City Hall at 26% + gold rule ---------- */
.site-header{position:relative;overflow:hidden;background:var(--navy);
  border-bottom:3px solid var(--gold)}
.site-header::before{content:"";position:absolute;inset:0;
  background-image:url(images/cityhall.jpg);background-size:cover;background-position:14% 68%;
  opacity:.26;pointer-events:none}
.site-header .wrap{position:relative;display:flex;align-items:center;gap:var(--gap);
  flex-wrap:wrap;padding-top:24px;padding-bottom:24px}
.site-branding{flex:1 1 280px;min-width:0}
.site-title{margin:0;font:800 32px/1 var(--sans);letter-spacing:-.02em}
.site-title a{color:#fff;text-decoration:none}
.site-title .hl{color:var(--gold)}
.site-description{margin:7px 0 0;color:#a9bccd;font-size:9.5px;
  text-transform:uppercase;letter-spacing:.13em}
.header-ad{flex:0 0 auto;max-width:100%}
.custom-logo{max-height:74px;width:auto}

/* ---------- primary nav ---------- */
.primary-nav{background:var(--navy-2);position:sticky;top:0;z-index:50}
.primary-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap}
.primary-nav li{position:relative}
.primary-nav a{display:block;padding:12px 15px;color:#c6d5e0;font-weight:600;font-size:11.5px;
  text-transform:uppercase;letter-spacing:.045em;border-bottom:3px solid transparent}
.primary-nav a:hover,.primary-nav .current-menu-item>a{color:var(--gold);
  border-bottom-color:var(--gold);text-decoration:none}
.nav-toggle{display:none;background:none;border:0;font:inherit;padding:11px 15px;
  cursor:pointer;color:#c6d5e0}
.primary-nav .sub-menu{display:none;position:absolute;left:0;top:100%;background:var(--navy);
  border:1px solid #3d5164;min-width:212px;box-shadow:0 6px 18px rgba(0,0,0,.28);
  flex-direction:column;z-index:60}
.primary-nav li:hover>.sub-menu,.primary-nav li:focus-within>.sub-menu{display:flex}
.primary-nav .sub-menu a{text-transform:none;font-weight:400;border-bottom:0;font-size:13px}

/* ---------- layout ---------- */
.main{padding:var(--gap) 0}
.site-content{display:flex;gap:var(--gap);align-items:flex-start}
.content{flex:1 1 auto;min-width:0}
.widget-area{flex:0 0 300px;max-width:300px}

/* ---------- ARTICLE GRID: image above the headline, in blocks ---------- */
.post-grid{display:grid;gap:var(--gap);
  grid-template-columns:repeat(auto-fill,minmax(288px,1fr));margin-bottom:var(--gap)}
.entry-grid{display:flex;flex-direction:column;background:var(--bg);
  border:1px solid var(--rule);border-radius:3px;overflow:hidden;
  transition:box-shadow .18s ease,transform .18s ease}
.entry-grid:hover{box-shadow:0 6px 20px rgba(44,59,73,.11)}
.entry-grid .post-thumb{display:block;position:relative;background:var(--bg-soft);
  aspect-ratio:16/10;overflow:hidden}
.entry-grid .post-thumb img{width:100%;height:100%;object-fit:cover}
.entry-grid .post-thumb.is-empty::after{content:"CHELSEA";position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font:700 15px/1 var(--sans);letter-spacing:.22em;color:var(--mist)}
.entry-grid .cat-flag{position:absolute;left:0;bottom:0;background:var(--steel);color:#fff;
  font:700 9.5px/1 var(--sans);letter-spacing:.09em;text-transform:uppercase;padding:6px 9px}
.entry-grid .entry-body{padding:15px 16px 17px;display:flex;flex-direction:column;gap:7px;flex:1}
.entry-grid .entry-title{margin:0;font:700 17px/1.28 var(--sans);letter-spacing:-.005em}
.entry-grid .entry-title a{color:var(--navy)}
.entry-grid .entry-title a:hover{color:var(--steel);text-decoration:none}
.entry-grid .entry-meta{font-size:10.5px;color:var(--ink-3);text-transform:uppercase;
  letter-spacing:.06em;margin:0}
.entry-grid .post-excerpt{margin:0;color:var(--ink-2);font-size:13.5px;line-height:1.6}
.entry-grid .more-link{margin-top:auto;padding-top:5px;font-weight:700;font-size:12.5px;
  color:var(--steel)}
.entry-grid .more-link::after{content:" \203A"}

/* lead story spans the full grid on wide screens */
@media(min-width:900px){
  .post-grid > .entry-grid.is-lead{grid-column:1 / -1;flex-direction:row}
  .post-grid > .entry-grid.is-lead .post-thumb{flex:0 0 46%;aspect-ratio:auto;min-height:250px}
  .post-grid > .entry-grid.is-lead .entry-body{padding:24px 26px;justify-content:center;gap:9px}
  .post-grid > .entry-grid.is-lead .entry-title{font-size:26px;line-height:1.2}
  .post-grid > .entry-grid.is-lead .post-excerpt{font-size:15px}
}

/* ---------- single ---------- */
.single-entry{background:var(--bg);border:1px solid var(--rule);padding:28px}
.single-entry .entry-title{font:700 31px/1.2 var(--sans);color:var(--navy);margin:0 0 9px;
  letter-spacing:-.015em}
.single-entry > .post-thumb{margin:18px 0}
.entry-content{font-size:17px;line-height:1.76}
.entry-content p{margin:0 0 1.15em}
.entry-content h2{font-size:23px;margin:1.6em 0 .5em;color:var(--navy)}
.entry-content h3{font-size:19px;margin:1.4em 0 .5em;color:var(--navy)}
.entry-content img{margin:1em 0}
.entry-content blockquote{margin:1.4em 0;padding:.4em 0 .4em 18px;border-left:4px solid var(--gold);
  color:var(--ink-2);font-family:var(--serif);font-style:italic}
.entry-content a{text-decoration:underline}
.entry-footer{margin-top:24px;padding-top:15px;border-top:1px solid var(--rule);
  font-size:13px;color:var(--ink-3)}
.entry-meta{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.entry-meta a{color:var(--ink-2)}
.entry-meta .sep{margin:0 6px;color:var(--rule)}

/* ---------- sidebar ---------- */
.widget{background:var(--bg);border:1px solid var(--rule);padding:17px;margin-bottom:var(--gap)}
.widget-title{margin:0 0 11px;font:700 11.5px/1 var(--sans);text-transform:uppercase;
  letter-spacing:.09em;color:var(--navy);padding-bottom:7px;border-bottom:2px solid var(--steel)}
.widget ul{list-style:none;margin:0;padding:0}
.widget li{padding:6px 0;border-bottom:1px solid var(--rule-2);font-size:13.5px}
.widget li:last-child{border-bottom:0}
.widget-area .sticky-ad{position:sticky;top:66px}

/* ---------- ads ---------- */
.ad-slot{margin:0 0 var(--gap);text-align:center;background:var(--bg-soft);
  border:1px solid var(--rule);padding:9px;overflow:hidden}
.ad-slot--inarticle{margin:24px 0}
.ad-label{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;
  color:var(--ink-3);margin-bottom:5px}
.ad-slot ins{display:block}
.ad-slot--leaderboard{min-height:100px;background:transparent;border-color:#5b6f80}
.ad-slot--leaderboard .ad-label{color:#93a7b8}
.ad-slot--rect{min-height:270px}
.ad-slot--infeed{min-height:110px;grid-column:1 / -1}

/* ---------- pagination / footer ---------- */
.navigation{display:flex;justify-content:space-between;margin:24px 0;font-weight:600}
.nav-previous,.nav-next{max-width:48%}
.page-numbers{display:inline-block;padding:8px 13px;border:1px solid var(--rule);
  background:#fff;margin-right:5px;color:var(--navy)}
.page-numbers.current{background:var(--steel);border-color:var(--steel);color:#fff}
.page-header{margin-bottom:20px}
.page-title{margin:0;font:700 25px/1.25 var(--sans);color:var(--navy)}
.footer{background:var(--navy);color:#a9bccd;margin-top:var(--gap);padding:28px 0;font-size:14px;
  border-top:3px solid var(--gold)}
.footer a{color:#fff}
.footer-cols{display:flex;gap:var(--gap);flex-wrap:wrap}
.footer-cols>*{flex:1 1 230px}
.footer .widget{background:transparent;border:0;padding:0}
.footer .widget-title{color:#fff;border-bottom-color:var(--gold)}
.footer .widget li{border-bottom-color:#3d5164}
.site-info{margin-top:20px;padding-top:15px;border-top:1px solid #3d5164;font-size:12.5px;
  color:#8ba0b1}

/* ---------- search ---------- */
.search-form{display:flex}
.search-form input[type=search]{flex:1;padding:9px 11px;border:1px solid var(--rule);
  font:inherit;min-width:0}
.search-form button{padding:9px 15px;background:var(--steel);color:#fff;border:0;
  font:inherit;cursor:pointer;font-weight:600}
.search-form button:hover{background:var(--mid)}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .site-content{flex-direction:column}
  .widget-area{flex:1 1 auto;max-width:none;width:100%}
  .widget-area .sticky-ad{position:static}
}
@media(max-width:680px){
  .site-title{font-size:25px}
  .single-entry{padding:18px}
  .single-entry .entry-title{font-size:24px}
  .nav-toggle{display:block}
  .primary-nav ul{display:none;flex-direction:column;width:100%}
  .primary-nav.open ul{display:flex}
  .site-header .wrap{padding-top:18px;padding-bottom:18px}
  .post-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.ad-slot,.widget-area,.primary-nav,.secondary-nav,.footer{display:none!important}}

/* =========================================================================
   HOMEPAGE - news structure: one lead, secondary row, compact rows,
   section blocks. Three card tiers, no sidebar, full-width ad bands.
   ========================================================================= */
.home .site-content{display:block}
.home .content{max-width:none}

.eyebrow{display:inline-block;font:700 10px/1 var(--sans);letter-spacing:.11em;
  text-transform:uppercase;color:var(--steel);margin-bottom:6px}
.eyebrow:hover{color:var(--mid);text-decoration:none}

/* ---- lead ---- */
.lede-block{margin-bottom:var(--gap)}
.lede{display:grid;grid-template-columns:1.35fr 1fr;gap:0;background:var(--bg);
  border:1px solid var(--rule);overflow:hidden}
.lede__media{display:block;background:var(--bg-soft);aspect-ratio:16/9;overflow:hidden}
.lede__media img{width:100%;height:100%;object-fit:cover}
.lede__media.is-empty{position:relative}
.lede__media.is-empty::after{content:"CHELSEA";position:absolute;inset:0;display:flex;
  align-items:center;justify-content:center;font:700 22px/1 var(--sans);
  letter-spacing:.3em;color:var(--mist)}
.lede__body{padding:26px 28px;display:flex;flex-direction:column;justify-content:center}
.lede__title{margin:0 0 10px;font:800 33px/1.16 var(--sans);letter-spacing:-.022em}
.lede__title a{color:var(--navy)}
.lede__title a:hover{color:var(--steel);text-decoration:none}
.lede__excerpt{margin:0 0 10px;color:var(--ink-2);font-size:15.5px;line-height:1.62}

/* ---- rows ---- */
.row{display:grid;gap:var(--gap)}
.row--3{grid-template-columns:repeat(3,1fr)}
.row--4{grid-template-columns:repeat(4,1fr)}
.row--wide{grid-template-columns:repeat(2,1fr)}
.row--text{grid-template-columns:repeat(4,1fr);gap:0 var(--gap)}

/* ---- card tiers ---- */
.card{background:var(--bg);border:1px solid var(--rule);display:flex;flex-direction:column;
  overflow:hidden}
.card__media{display:block;background:var(--bg-soft);aspect-ratio:16/10;overflow:hidden}
.card__media img{width:100%;height:100%;object-fit:cover}
.card__media.is-empty{position:relative}
.card__media.is-empty::after{content:"CHELSEA";position:absolute;inset:0;display:flex;
  align-items:center;justify-content:center;font:700 12px/1 var(--sans);
  letter-spacing:.24em;color:var(--mist)}
.card__body{padding:13px 15px 15px;display:flex;flex-direction:column;gap:5px}
.card__title{margin:0;font:700 16px/1.3 var(--sans)}
.card__title a{color:var(--navy)}
.card__title a:hover{color:var(--steel);text-decoration:none}
.card__date{font-size:11px;color:var(--ink-3);letter-spacing:.03em}

/* tier B: image left, text right; stacks on mobile */
.card--wide{flex-direction:row;align-items:stretch}
.card--wide .card__media{flex:0 0 132px;aspect-ratio:4/3}
.card--wide .card__body{flex:1;justify-content:center}
.card--wide .card__title{font-size:15px}

/* tier C: text only, hairline rules, no box */
.card--text{border:0;background:transparent;border-top:1px solid var(--rule);
  padding:11px 0 12px}
.card--text .card__body{padding:0;gap:4px}
.card--text .card__title{font-size:14.5px;line-height:1.35}

/* ---- section blocks ---- */
.block{margin-bottom:38px}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  margin-bottom:15px;padding-bottom:8px;border-bottom:2px solid var(--navy)}
.sec-head h2{margin:0;font:800 15px/1 var(--sans);letter-spacing:.1em;
  text-transform:uppercase;color:var(--navy)}
.sec-more{font:700 11px/1 var(--sans);letter-spacing:.07em;text-transform:uppercase;
  color:var(--steel);white-space:nowrap}
.block__cta{margin:18px 0 0;text-align:center}
.btn{display:inline-block;background:var(--steel);color:#fff;font-weight:700;font-size:13px;
  letter-spacing:.04em;padding:11px 22px;border-radius:2px}
.btn:hover{background:var(--mid);text-decoration:none;color:#fff}
.block--obits .sec-head{border-bottom-color:var(--steel)}

/* ---- ad bands: full width, labelled, tinted - never in a rail ---- */
.ad-slot--band{margin:0 0 38px;padding:16px;background:var(--bg-soft);
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  border-left:0;border-right:0;min-height:110px}
.ad-slot--band .ad-label{font-size:10px;letter-spacing:.12em;opacity:.75}

@media(max-width:1000px){
  .row--4{grid-template-columns:repeat(2,1fr)}
  .row--text{grid-template-columns:repeat(2,1fr)}
  .lede{grid-template-columns:1fr}
  .lede__title{font-size:27px}
  .lede__body{padding:20px}
}
@media(max-width:720px){
  .row--3,.row--4,.row--wide,.row--text{grid-template-columns:1fr}
  .card--wide{flex-direction:column}
  .card--wide .card__media{flex:none;width:100%;aspect-ratio:16/10}
  .lede__title{font-size:23px}
  .block{margin-bottom:28px}
}

/* =========================================================================
   CHELSEA HISTORY HUB - everything on one page, grouped by subject
   ========================================================================= */
.hist-hub{max-width:1000px;margin:0 auto}
.hist-hero{background:var(--navy);color:#fff;padding:34px 30px;margin-bottom:30px;
  border-bottom:3px solid var(--gold);position:relative;overflow:hidden}
.hist-hero::before{content:"";position:absolute;inset:0;background-image:url(images/cityhall.jpg);
  background-size:cover;background-position:14% 66%;opacity:.20;pointer-events:none}
.hist-hero > *{position:relative}
.hist-hero h1{margin:0 0 12px;font:800 34px/1.1 var(--sans);letter-spacing:-.02em;color:#fff}
.hist-lede{margin:0;max-width:62ch;color:#c3d5e2;font-size:15.5px;line-height:1.7}
.hist-stats{list-style:none;display:flex;flex-wrap:wrap;gap:26px;margin:22px 0 0;padding:0}
.hist-stats li{display:flex;flex-direction:column}
.hist-stats strong{font:800 22px/1 var(--sans);color:var(--gold);font-variant-numeric:tabular-nums}
.hist-stats span{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:#93a7b8;margin-top:5px}

.hist-h2{font:800 13px/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;
  color:var(--navy);margin:0 0 14px;padding-bottom:8px;border-bottom:2px solid var(--gold)}
.hist-featured{margin-bottom:32px}
.hist-fgrid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.hist-fcard{display:flex;gap:13px;background:var(--bg);border:1px solid var(--rule);
  padding:12px;text-decoration:none;transition:box-shadow .18s ease}
.hist-fcard:hover{box-shadow:0 5px 18px rgba(44,59,73,.12);text-decoration:none}
.hist-fthumb{flex:0 0 84px}
.hist-fthumb img{width:84px;height:60px;object-fit:cover;display:block}
.hist-ftext{min-width:0;display:flex;flex-direction:column;gap:4px}
.hist-ftext strong{font:700 14.5px/1.3 var(--sans);color:var(--navy)}
.hist-fcard:hover strong{color:var(--steel)}
.hist-ftext em{font-style:normal;font-size:12px;line-height:1.5;color:var(--ink-2);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.hist-jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 34px;padding:14px;
  background:var(--bg-soft);border:1px solid var(--rule)}
.hist-jump a{font:600 12px/1 var(--sans);color:var(--navy);background:var(--bg);
  border:1px solid var(--rule);padding:8px 11px;text-decoration:none;display:inline-flex;
  align-items:center;gap:7px}
.hist-jump a:hover{border-color:var(--steel);color:var(--steel);text-decoration:none}
.hist-jump a span{font-size:10px;color:#fff;background:var(--steel);border-radius:9px;
  padding:2px 6px;font-variant-numeric:tabular-nums}

.hist-sec{margin-bottom:34px;scroll-margin-top:70px}
.hist-sechead{display:flex;align-items:baseline;gap:10px;border-bottom:2px solid var(--navy);
  padding-bottom:7px;margin-bottom:8px}
.hist-sechead h2{margin:0;font:800 17px/1.2 var(--sans);color:var(--navy);letter-spacing:-.01em}
.hist-count{font:700 11px/1 var(--sans);color:#fff;background:var(--navy);
  border-radius:9px;padding:3px 8px;font-variant-numeric:tabular-nums}
.hist-secdesc{margin:0 0 13px;color:var(--ink-2);font-size:13.5px;max-width:72ch}
.hist-list{list-style:none;margin:0;padding:0;columns:2;column-gap:30px}
.hist-list li{break-inside:avoid;padding:5px 0;border-bottom:1px solid var(--rule-2);
  font-size:14px;line-height:1.45}
.hist-list a{color:var(--ink)}
.hist-list a:hover{color:var(--steel)}
.hist-pic{color:var(--mist);font-size:10px;margin-left:5px}

@media(max-width:820px){
  .hist-list{columns:1}
  .hist-hero{padding:24px 20px}
  .hist-hero h1{font-size:26px}
  .hist-stats{gap:18px}
}

/* history hub runs full width like the homepage */
.category-chelsea-history .site-content{display:block}
.category-chelsea-history .content{max-width:none}
