
.draft-banner {
  background: #3d2914;
  color: #f5e6c8;
  text-align: center;
  font-family: var(--font-ui);
  font-size: .8rem;
  letter-spacing: .04em;
  padding: .45rem 1rem;
}
:root {
  --font-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --font-body: "Libre Baskerville", Georgia, "Times New Roman", serif;
  --font-ui: "Source Sans 3", "Helvetica Neue", Arial, sans-serif;
  --ink: #1c1814;
  --paper: #f7f3e8;
  --cream: #fffdf7;
  --rule: #2c2c2c;
  --accent: #8b1e1e;
  --muted: #5a5348;
  --panel: #fffdf7;
  --sponsor: #faf6ee;
  --example: #b45309;
  --sports: #f3f6ee;
  --shadow: 0 1px 2px rgba(44,36,24,.06);
  --soft-border: #d4cbb8;
}

* { box-sizing: border-box; }
html { font-size: 16px; }
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--paper);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

.site-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 1rem 3rem;
}

.top-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .5rem 0;
  font-family: var(--font-ui);
  font-size: .75rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--rule);
}

.masthead {
  text-align: center;
  padding: 1.1rem 1rem 1.15rem;
  margin: 0 0 1.15rem;
  background: linear-gradient(180deg, #fffdf7 0%, #f7f1e3 100%);
  border-top: 3px double #4a3f32;
  border-bottom: 3px double #4a3f32;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6);
}

.masthead-logo {
  display: block;
  max-width: min(148px, 38vw);
  max-height: 148px;
  width: auto;
  height: auto;
  margin: 0 auto .7rem;
  object-fit: contain;
  border-radius: 50%;
  border: 1px solid var(--soft-border);
  background: #fffdf7;
}

.masthead h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2rem, 5.5vw, 3.25rem);
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.12;
  color: #1c1814;
  text-wrap: balance;
}

.masthead .tagline {
  margin: .45rem 0 0;
  font-family: var(--font-body);
  font-size: clamp(.9rem, 2.4vw, 1.05rem);
  font-style: italic;
  font-weight: 400;
  letter-spacing: .02em;
  text-transform: none;
  color: var(--accent);
  line-height: 1.35;
}

.masthead .edition {
  margin: .45rem 0 0;
  font-family: var(--font-ui);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
}

@media (max-width: 480px) {
  .masthead {
    padding: .9rem .65rem 1rem;
  }
  .masthead h1 {
    font-size: clamp(1.7rem, 8vw, 2.1rem);
    letter-spacing: .01em;
  }
  .masthead .tagline {
    font-size: .92rem;
    letter-spacing: .01em;
  }
}

.grid {
  display: grid;
  /* minmax(0, 1fr): a wide child (e.g. the 7-day forecast strip) must not stretch the
     column past the page width; panels stay flush with masthead + nav on phones. */
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}
.grid > * { min-width: 0; }

@media (min-width: 720px) {
  .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .span-2 { grid-column: 1 / -1; }
}

.panel {
  background: var(--panel);
  border: 1px solid var(--soft-border);
  box-shadow: var(--shadow);
  padding: 1rem 1.1rem 1.2rem;
}

.panel h2 {
  margin: 0 0 .8rem;
  font-family: var(--font-display);
  font-size: clamp(.92rem, 2.1vw, 1.02rem);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #1f1a14;
  border-top: 3px double #4a3f32;
  border-bottom: 3px double #4a3f32;
  padding: .38rem 0 .42rem;
  line-height: 1.25;
}

.badge {
  display: inline-block;
  font-family: var(--font-ui);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
  background: var(--example);
  padding: .15rem .45rem;
  margin-bottom: .5rem;
}

.weather-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .85rem;
}

@media (min-width: 640px) {
  .weather-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.weather-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .65rem 1rem;
  align-items: start;
  background: var(--cream);
  border: 1px solid var(--soft-border);
  padding: .85rem 1rem;
}

.weather-card.weather-error {
  border-color: #c9a27a;
}

.weather-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(160deg, #87b8e8, #f2d39b);
  border: 2px solid #c9b896;
  flex-shrink: 0;
}

.weather-meta {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  min-width: 0;
}

.weather-meta strong {
  display: block;
  font-size: 1.05rem;
}

.weather-temp {
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ink);
}

.weather-desc,
.weather-extra {
  color: var(--muted);
  font-size: .9rem;
}
.note {
  margin: .75rem 0 0;
  font-family: var(--font-body);
  font-size: .9rem;
  line-height: 1.55;
  color: var(--muted);
  font-style: italic;
}

.example-note {
  border-left: 3px solid var(--example);
  padding-left: .65rem;
  color: #6b5e4e;
}

.feed-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .85rem;
}

@media (min-width: 640px) {
  .feed-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.feed-card {
  background: #faf6ee;
  border: 1px solid var(--soft-border);
  padding: .85rem 1rem;
}

.feed-card h3 {
  margin: 0 0 .4rem;
  font-family: Georgia, "Times New Roman", "Palatino Linotype", Palatino, serif;
  font-size: clamp(1.02rem, 2.4vw, 1.12rem);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.28;
  letter-spacing: -.01em;
  max-width: 36rem;
}

.feed-card p {
  margin: 0 0 .55rem;
  font-family: Georgia, "Times New Roman", "Palatino Linotype", Palatino, serif;
  color: #3a342c;
  font-size: .95rem;
  line-height: 1.58;
}
.feed-card p:last-child { margin-bottom: 0; }

.story-card {
  border-left: 3px solid var(--accent);
}

.stories-zone {
  margin-top: 1rem;
}

.stories-zone:first-of-type {
  margin-top: .35rem;
}

.zone-heading {
  margin: 0 0 .45rem;
  font-family: var(--font-ui);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
}

.zone-sub {
  margin: 0 0 .65rem;
  font-size: .88rem;
  color: var(--muted);
  font-style: italic;
}

.story-empty {
  background: #f7f2e8;
  border-style: dashed;
}

.story-empty .stories-empty-msg,
.stories-empty-msg {
  margin: 0 0 .4rem;
  font-weight: 600;
  color: var(--ink);
}

.tip-cta {
  margin: .55rem 0 0;
}

.tip-cta a {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid var(--accent);
}

.tip-cta a:hover {
  color: var(--ink);
  border-bottom-color: var(--ink);
}

.tip-hint {
  color: var(--muted);
  font-size: .9rem;
}

.brief-card .brief-title-link {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
}

.brief-card .brief-title-link:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.brief-meta {
  margin: 0;
  font-family: var(--font-ui);
  font-size: .82rem;
  color: var(--muted);
  font-style: normal;
}

.stories-briefs-loading {
  margin: 0;
  color: var(--muted);
  font-style: italic;
}

.badge-waiting {
  background: #8a6d3b;
}

.interview-slot p a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.sports-panel {
  background: var(--sports);
  border-color: #c9d4c0;
}

.resource-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.resource-list li {
  padding: .55rem 0;
  border-bottom: 1px dotted #cfc6b4;
}

.resource-list li:last-child { border-bottom: 0; }

.resource-list a {
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}

.resource-list a:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.sponsor-panel { background: var(--sponsor); }

.sponsor-card {
  background: var(--cream);
  display: flex;
  align-items: flex-start;
  gap: .75rem;
}

.sponsor-card-copy {
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: anywhere; /* long business URLs wrap instead of widening the card on phones */
}

.sponsor-logo {
  flex: 0 0 auto;
  width: auto;
  height: 2.75rem;
  max-width: 5.75rem;
  max-height: 3.25rem;
  object-fit: contain;
  object-position: top right;
  margin-left: auto;
  border-radius: 4px;
  background: transparent;
}

.sponsor-card h3 {
  font-size: 1rem;
}

.sponsor-card p {
  font-size: .85rem;
}

.site-footer {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 2px solid var(--rule);
  text-align: center;
  font-family: var(--font-ui);
  font-size: .8rem;
  color: var(--muted);
}

.business-spotlight-panel {
  background: #faf6ee;
  border-color: var(--soft-border);
}

.featured-business {
  max-width: 36rem;
  border-left: 4px solid var(--accent);
}

.featured-business h3 {
  font-size: 1.15rem;
}


.feed-live-list {
  list-style: none;
  margin: .5rem 0 0;
  padding: 0;
}

.feed-live-list li {
  padding: .35rem 0;
  border-bottom: 1px dotted #cfc6b4;
  font-size: .92rem;
  color: var(--muted);
}

.feed-live-list li:last-child { border-bottom: 0; }

.feed-live-list a {
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}

.feed-live-list a:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.badge-live {
  background: #1f6b3a;
}

.badge-fallback {
  background: #5c5c5c;
  letter-spacing: .04em;
}

.feed-featured {
  margin-top: .55rem;
  font-size: .9rem;
  color: var(--ink);
}

.feed-live-card .badge + h3 {
  margin-top: 0;
}

.qr-share-strip{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;background:var(--cream);border:1px solid var(--soft-border);padding:.75rem 1rem;margin:1.5rem 0 0}
.qr-code{width:88px;height:88px;object-fit:contain;background:#fff;border:1px solid #cfc6b4;flex-shrink:0}
.qr-share-copy{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.qr-share-copy strong{font-family:Helvetica Neue,Arial,sans-serif;font-size:.95rem}
.qr-share-copy span{color:var(--muted);font-size:.85rem}
.qr-share-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.35rem}
.btn{font-family:Helvetica Neue,Arial,sans-serif;font-size:.8rem;border:1px solid #cfc6b4;background:#fff;padding:.35rem .7rem;cursor:pointer}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.site-nav{display:flex;flex-wrap:wrap;gap:.35rem .9rem;padding:.55rem 0 .9rem;margin-bottom:.5rem;border-bottom:1px solid var(--soft-border);font-family:Helvetica Neue,Arial,sans-serif;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
.site-nav a{color:var(--ink);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:.15rem}
.site-nav a:hover,.site-nav a.is-active{color:var(--accent);border-bottom-color:var(--accent)}
.masthead-compact{padding:.75rem 0 .5rem}
.masthead-compact .masthead-logo{max-width:96px;max-height:96px}
.blotter-list{display:grid;gap:.85rem}
.blotter-card{background:#faf6ee;border:1px solid var(--soft-border);padding:.85rem 1rem;font-family:Georgia,"Times New Roman",serif}
.blotter-card h3{margin:0 0 .35rem;font-family:Georgia,"Times New Roman",serif;font-size:1.05rem;font-weight:700;line-height:1.3;color:var(--ink)}
.blotter-card p{margin:0 0 .55rem;font-size:.95rem;line-height:1.55;color:#3a342c}
.blotter-card p:last-child{margin-bottom:0}
.qa-answer{margin:.45rem 0 0;padding-top:.45rem;border-top:1px dotted #cfc6b4}
.qa-answer strong{color:var(--accent)}
.blotter-meta{display:flex;flex-wrap:wrap;gap:.35rem .85rem;font-family:Helvetica Neue,Arial,sans-serif;font-size:.75rem;color:var(--muted);margin:.35rem 0 .5rem}

.source-panel{margin-top:1rem}
.qr-share-strip{align-items:flex-start}
.site-nav a.is-active{font-weight:700}


.submit-panel {
  background: #faf6ee;
  border-color: var(--soft-border);
  margin-top: 1rem;
}
.submit-panel .submit-cta {
  display: inline-block;
  margin: .65rem 0 .35rem;
  font-family: var(--font-ui);
  font-size: .85rem;
  font-weight: 700;
  color: #fff;
  background: var(--accent);
  text-decoration: none;
  padding: .45rem .85rem;
  border: 1px solid var(--accent);
}
.submit-panel .submit-cta:hover {
  opacity: .92;
}
.submit-panel .review-label {
  display: block;
  margin: .35rem 0 0;
  font-family: var(--font-ui);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--accent);
  font-style: normal;
}
.link-primary-list {
  list-style: none;
  margin: .5rem 0 0;
  padding: 0;
}
.link-primary-list li {
  padding: .4rem 0;
  border-bottom: 1px dotted #cfc6b4;
  font-size: .95rem;
}
.link-primary-list li:last-child { border-bottom: 0; }
.link-primary-list a {
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.link-primary-list a:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
#jobs-live {
  margin: .75rem 0 0;
}
#jobs-live .jobs-empty {
  margin: .5rem 0 0;
  font-size: .9rem;
  color: var(--muted);
  font-style: italic;
}

.jobs-subhead {
  font-family: var(--font-ui);
  font-size: .8rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 1.15rem 0 .4rem;
  color: var(--ink);
}

.job-card {
  border: 1px solid var(--rule, #d4cfc4);
  border-radius: 6px;
  padding: .85rem 1rem;
  margin: .5rem 0 1rem;
  background: var(--paper-soft, #faf8f3);
}
.job-card-title {
  font-family: var(--font-display, var(--font-ui));
  font-size: 1.05rem;
  margin: 0 0 .35rem;
  color: var(--ink);
}
.job-card-meta {
  margin: 0 0 .65rem;
  font-size: .88rem;
  color: var(--muted);
}
.job-card-apply {
  margin: .65rem 0 0;
}
.job-card.neighbor-job {
  border-left: 3px solid var(--accent, #8b4513);
}

.ask-tagline {
  margin: -.35rem 0 .85rem;
  font-family: var(--font-body);
  font-size: clamp(1.05rem, 2.6vw, 1.25rem);
  font-style: italic;
  font-weight: 400;
  letter-spacing: .01em;
  color: var(--accent);
  line-height: 1.35;
}

.essentials-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .85rem;
}

/* Multi-day forecast strip (Open-Meteo draft) */
.weather-icon {
  grid-row: 1;
}
.weather-meta {
  grid-column: 2;
  grid-row: 1;
}
.forecast-strip {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .35rem;
  margin-top: .15rem;
  padding-top: .55rem;
  border-top: 3px double #c4b8a0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.forecast-day {
  min-width: 0;
  text-align: center;
  font-family: var(--font-ui);
  padding: .25rem .1rem;
}
.forecast-dow {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ink);
}
.forecast-temps {
  display: block;
  margin-top: .15rem;
  font-size: .78rem;
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
}
.forecast-label {
  display: block;
  margin-top: .12rem;
  font-size: .65rem;
  line-height: 1.25;
  color: var(--muted);
}
.weather-nws {
  display: inline-block;
  margin-top: .35rem;
  font-family: var(--font-ui);
  font-size: .72rem;
  letter-spacing: .02em;
  color: var(--accent);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.weather-nws:hover {
  border-bottom-color: var(--accent);
}
@media (max-width: 520px) {
  .forecast-strip {
    grid-template-columns: repeat(7, minmax(3.1rem, 1fr));
  }
  .forecast-label {
    font-size: .6rem;
  }
}

/* Essentials: four cards — almanac / joke / scripture / history */
@media (min-width: 720px) {
  .essentials-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 960px) {
  .essentials-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Soft double rules on footer / nav for heritage paper feel */
.site-footer {
  border-top: 3px double #4a3f32;
}
.top-bar {
  border-bottom: 3px double #4a3f32;
}


/* Unified submission form (cream / ink heritage, mobile-readable) */
.submit-form-panel {
  background: var(--cream);
  max-width: 40rem;
}
.form-intro {
  margin: 0 0 .65rem;
  font-size: 1rem;
  color: #3a342c;
}
.form-review-note {
  margin: 0 0 1.1rem;
  padding: .65rem .75rem;
  background: #faf6ee;
  border-left: 3px solid var(--accent);
  font-family: var(--font-ui);
  font-size: .9rem;
  color: var(--ink);
  line-height: 1.45;
}
.form-review-note a {
  color: var(--accent);
}
.kk-form {
  display: flex;
  flex-direction: column;
  gap: .85rem;
}
.kk-honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.kk-fieldset {
  margin: 0;
  padding: .85rem 1rem 1rem;
  border: 1px solid var(--soft-border);
  background: #fffdf7;
}
.kk-fieldset legend {
  font-family: var(--font-ui);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink);
  padding: 0 .35rem;
}
.kk-hint {
  margin: 0 0 .65rem;
  font-size: .85rem;
  color: var(--muted);
  font-style: italic;
}
.kk-field {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  margin-bottom: .7rem;
}
.kk-field:last-child { margin-bottom: 0; }
.kk-field label {
  font-family: var(--font-ui);
  font-size: .85rem;
  font-weight: 600;
  color: var(--ink);
}
.kk-field .req {
  color: var(--accent);
}
.kk-field .optional {
  font-weight: 400;
  color: var(--muted);
  font-size: .8rem;
}
.kk-field input,
.kk-field select,
.kk-field textarea {
  font-family: var(--font-ui);
  font-size: 1rem;
  line-height: 1.4;
  color: var(--ink);
  background: #fff;
  border: 1px solid #cfc6b4;
  padding: .55rem .65rem;
  width: 100%;
  max-width: 100%;
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
}
.kk-field select {
  background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position: calc(100% - 16px) calc(50% - 3px), calc(100% - 11px) calc(50% - 3px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 2rem;
}
.kk-field textarea {
  resize: vertical;
  min-height: 7rem;
}
.kk-field input:focus,
.kk-field select:focus,
.kk-field textarea:focus {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  border-color: var(--accent);
}
.kk-actions {
  margin-top: .35rem;
}
.kk-submit-btn {
  border: 1px solid var(--accent);
  cursor: pointer;
  font-size: .95rem;
  padding: .55rem 1.1rem;
}
.form-mailto-fallback {
  margin: .85rem 0 0;
  font-family: var(--font-ui);
  font-size: .88rem;
  color: var(--muted);
}
.form-mailto-fallback a {
  color: var(--accent);
}
.listing-cta-line {
  margin: .85rem 0 0;
  font-family: var(--font-ui);
  font-size: .92rem;
  line-height: 1.5;
  color: #3a342c;
}
.listing-cta-line .submit-cta {
  display: inline-block;
  margin: .45rem 0 0 .15rem;
  font-family: var(--font-ui);
  font-size: .85rem;
  font-weight: 700;
  color: #fff;
  background: var(--accent);
  text-decoration: none;
  padding: .4rem .8rem;
  border: 1px solid var(--accent);
  vertical-align: middle;
}
.listing-cta-line .submit-cta:hover {
  opacity: .92;
}
.thank-you-panel {
  max-width: 36rem;
}
.thank-you-panel p {
  font-size: 1.02rem;
  line-height: 1.55;
}
.thank-you-links {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 1rem;
}
.submit-cta-secondary {
  background: transparent !important;
  color: var(--accent) !important;
}
.third-party-label {
  font-family: var(--font-ui);
  font-size: .78rem;
  color: var(--muted);
  font-style: italic;
}
.jobs-cta-strong .submit-cta {
  font-size: .95rem;
  padding: .55rem 1.1rem;
}
@media (max-width: 480px) {
  .kk-field input,
  .kk-field select,
  .kk-field textarea {
    font-size: 16px; /* avoid iOS zoom */
  }
  .submit-form-panel {
    padding: .9rem .85rem 1.1rem;
  }
}


/* Neighbor column article (newsprint) */
.column-article {
  max-width: 42rem;
  margin: 0 auto;
}
.column-kicker {
  margin: 0 0 .35rem;
  font-family: var(--font-ui);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
}
.column-kicker a {
  color: var(--muted);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.column-kicker a:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.column-title {
  margin: 0 0 .35rem !important;
  font-family: var(--font-display) !important;
  font-size: clamp(1.55rem, 4.2vw, 2.15rem) !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
  border: 0 !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  color: var(--ink) !important;
  max-width: none !important;
}
.column-byline {
  margin: 0 0 1rem;
  font-family: var(--font-ui);
  font-size: .85rem;
  color: var(--muted);
  letter-spacing: .02em;
}
.column-lead {
  margin: 0 0 1rem;
  font-size: 1.12rem;
  font-style: italic;
  color: #3a342c;
  line-height: 1.5;
}
.column-safety {
  margin: 0 0 1.25rem;
  padding: .75rem .9rem;
  background: #faf6ee;
  border-left: 4px solid var(--accent);
  font-family: var(--font-ui);
  font-size: .92rem;
  line-height: 1.45;
  color: var(--ink);
}
.column-article h3 {
  margin: 1.35rem 0 .55rem;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #1f1a14;
  border-bottom: 1px solid var(--soft-border);
  padding-bottom: .25rem;
}
.column-materials,
.column-donts {
  margin: 0 0 1rem;
  padding-left: 1.2rem;
}
.column-materials li,
.column-donts li {
  margin: 0 0 .4rem;
  font-size: .98rem;
  color: #3a342c;
}
.column-steps {
  margin: 0;
  padding-left: 1.25rem;
}
.column-steps > li {
  margin: 0 0 1.15rem;
  padding-left: .25rem;
}
.column-steps > li > p {
  margin: 0 0 .65rem;
  font-size: 1rem;
  color: #3a342c;
}
.column-figure {
  margin: .5rem 0 0;
  padding: 0;
  background: #fffdf7;
  border: 1px solid var(--soft-border);
}
.column-figure img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 36rem;
  object-fit: contain;
  background: #f0ebe0;
}
.column-figure figcaption {
  margin: 0;
  padding: .45rem .7rem .55rem;
  font-family: var(--font-ui);
  font-size: .78rem;
  font-style: italic;
  color: var(--muted);
  border-top: 1px dotted #cfc6b4;
}
.column-figure-finale {
  margin: 1.25rem 0 1rem;
}
.column-close {
  margin: 1.25rem 0 .75rem;
  font-style: italic;
  color: var(--muted);
  font-size: .95rem;
}
.column-article .note a {
  color: var(--accent);
}

.column-byline-row {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: 0 0 1rem;
}
.column-author-mug {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border-radius: 50%;
  border: 1px solid var(--soft-border);
  background: #f0ebe0;
  flex-shrink: 0;
}
.column-byline-row .column-byline {
  margin: 0;
}
.column-figure-callout {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px rgba(140, 90, 40, .12);
}
.column-figure-callout figcaption {
  font-style: normal;
  color: #3a342c;
}
.column-figure-callout figcaption strong {
  display: block;
  margin-bottom: .15rem;
  font-family: var(--font-display);
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--accent);
}
.column-teaser .column-teaser-media {
  display: block;
  margin: .55rem 0 .7rem;
  border: 1px solid var(--soft-border);
  background: #f0ebe0;
  overflow: hidden;
}
.column-teaser .column-teaser-media img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 14rem;
  object-fit: cover;
  object-position: center;
}

.powered-by {
  margin-top: 0.75rem;
  font-size: 0.9rem;
}
.powered-by a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: inherit;
}
.powered-by a:hover {
  text-decoration: underline;
}
.powered-by-logo {
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: 6px;
}

/* —— Country Living Crossword (draft, off primary nav) —— */
.crossword-panel {
  position: relative;
}
.crossword-draft-badge {
  display: inline-block;
  margin: 0 0 .5rem;
  padding: .2rem .55rem;
  font-family: var(--font-ui);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #5a5348;
  background: #efe8da;
  border: 1px solid var(--soft-border);
}
.crossword-teaser {
  margin: .85rem 0 0;
  padding-top: .6rem;
  border-top: 1px dotted #cfc6b4;
  font-size: .9rem;
  color: #3a342c;
}
.crossword-teaser a {
  color: var(--accent);
  font-weight: 700;
}
.crossword-draft-badge[hidden] {
  display: none;
}
.crossword-week {
  margin: -.25rem 0 .75rem;
  font-family: var(--font-ui);
  font-size: .9rem;
  color: var(--muted);
  letter-spacing: .02em;
}
.crossword-intro {
  margin: 0 0 1rem;
  font-size: .95rem;
  color: #3a342c;
}
.crossword-empty {
  background: #faf6ee;
  border: 1px dashed var(--soft-border);
  padding: 1.25rem 1rem;
  margin: 1rem 0;
}
.crossword-empty h3 {
  margin: 0 0 .4rem;
  font-family: var(--font-display);
  font-size: 1.15rem;
}
.crossword-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 0 0 .65rem;
}
.crossword-status {
  min-height: 1.25rem;
  margin: 0 0 .85rem;
  font-family: var(--font-ui);
  font-size: .85rem;
  color: var(--muted);
}
.crossword-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.25rem 1.5rem;
  align-items: start;
}
.crossword-grid-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: .25rem;
}
.crossword-grid {
  --cw-size: 11;
  display: grid;
  grid-template-columns: repeat(var(--cw-size), minmax(0, 1fr));
  width: min(100%, 420px);
  aspect-ratio: 1;
  border: 2px solid var(--ink);
  background: var(--ink);
  gap: 1px;
  margin: 0 auto;
}
.cw-cell {
  position: relative;
  background: #fffdf7;
  aspect-ratio: 1;
  min-width: 0;
}
.cw-cell.is-block {
  background: #1c1814;
}
.cw-num {
  position: absolute;
  top: 1px;
  left: 2px;
  z-index: 1;
  font-family: var(--font-ui);
  font-size: clamp(.45rem, 1.8vw, .65rem);
  line-height: 1;
  color: var(--ink);
  pointer-events: none;
}
.cw-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  margin: 0;
  padding: 12% 0 0;
  text-align: center;
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: clamp(.7rem, 3.2vw, 1.05rem);
  text-transform: uppercase;
  color: var(--ink);
  background: transparent;
  caret-color: var(--accent);
}
.cw-input:focus {
  outline: none;
}
.cw-cell.is-active {
  background: #f3ead6;
}
.cw-cell.is-cursor {
  background: #e8d4a8;
  box-shadow: inset 0 0 0 2px var(--accent);
}
.cw-cell.is-correct .cw-input {
  color: #1f6b3a;
}
.cw-cell.is-wrong .cw-input {
  color: var(--accent);
}
.cw-cell.is-revealed {
  background: #eef4ea;
}
.crossword-clues {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.crossword-clue-col h3 {
  margin: 0 0 .45rem;
  font-family: var(--font-display);
  font-size: 1.05rem;
  border-bottom: 1px solid var(--soft-border);
  padding-bottom: .25rem;
}
.crossword-clue-list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: .88rem;
  line-height: 1.4;
}
.crossword-clue-list li {
  margin: 0 0 .2rem;
}
.crossword-clue-list li.is-active .cw-clue-btn {
  background: #f3ead6;
  border-color: #cfc6b4;
}
.cw-clue-btn {
  display: block;
  width: 100%;
  text-align: left;
  border: 1px solid transparent;
  background: transparent;
  padding: .3rem .4rem;
  font-family: var(--font-body);
  font-size: inherit;
  color: inherit;
  cursor: pointer;
  border-radius: 2px;
}
.cw-clue-btn:hover {
  background: #faf6ee;
}
.cw-clue-btn strong {
  font-family: var(--font-ui);
  margin-right: .25rem;
  color: var(--accent);
}
.crossword-editor-note {
  margin: 1.25rem 0 0;
  font-family: var(--font-ui);
  font-size: .8rem;
  color: var(--muted);
}

@media (max-width: 800px) {
  .crossword-layout {
    grid-template-columns: 1fr;
  }
  .crossword-grid {
    width: min(100%, 360px);
  }
  .crossword-clues {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 480px) {
  .crossword-clues {
    grid-template-columns: 1fr;
  }
  .crossword-toolbar .btn {
    flex: 1 1 auto;
  }
}
@media print {
  .crossword-toolbar,
  .qr-share-strip,
  .site-nav,
  .crossword-draft-badge,
  .crossword-status {
    display: none !important;
  }
  .crossword-grid {
    width: 360px;
  }
  .cw-cell.is-active,
  .cw-cell.is-cursor {
    background: #fffdf7;
    box-shadow: none;
  }
}

/* Interviews / spotlight teaser cards (interviews.html + homepage) */
.spotlight-teaser .spotlight-teaser-meta {
  margin: .35rem 0 0;
  font-family: var(--font-ui);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--muted);
}
.spotlight-teaser .column-teaser-media img {
  object-position: center 20%;
}
.spotlight-teaser h3 a {
  color: inherit;
  text-decoration: none;
}
.spotlight-teaser h3 a:hover {
  color: var(--accent);
}
.spotlight-teaser .spotlight-teaser-link {
  margin: .4rem 0 0;
  font-family: var(--font-ui);
  font-weight: 700;
}
.spotlight-teaser .spotlight-teaser-link a {
  color: var(--accent);
}

/* —— Country Living Word Search —— */
.ws-progress {
  align-self: center;
  margin-left: .5rem;
  font-family: var(--font-ui);
  font-size: .95rem;
  font-weight: 700;
  color: var(--accent);
}
.ws-layout {
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
}
.ws-grid-wrap {
  padding-bottom: .25rem;
}
.ws-grid {
  --ws-size: 14;
  width: min(100%, 560px);
  margin: 0 auto;
  border: 2px solid var(--ink);
  background: #fffdf7;
  touch-action: none;           /* no page scroll/zoom while dragging on the grid */
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
  cursor: crosshair;
}
.ws-row {
  display: grid;
  grid-template-columns: repeat(var(--ws-size), minmax(0, 1fr));
}
.ws-cell {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: clamp(.8rem, 4.4vw, 1.3rem);
  line-height: 1;
  color: var(--ink);
  border-right: 1px solid #ece4d2;
  border-bottom: 1px solid #ece4d2;
  touch-action: none;
  transition: background-color .08s;
}
.ws-cell.ws-selecting {
  background: #e8d4a8;
  box-shadow: inset 0 0 0 2px var(--accent);
}
.ws-cell.ws-found { color: #10301c; }
.ws-found-0 { background: #cfe6c6; }
.ws-found-1 { background: #f6d9a6; }
.ws-found-2 { background: #cfdcf0; }
.ws-found-3 { background: #ecc9d4; }
.ws-found-4 { background: #e3d6f0; }
.ws-found-5 { background: #f3efb0; }
.ws-cell.ws-revealed { background: #eef4ea; color: #1f6b3a; outline: 1px dashed #8fb08a; outline-offset: -2px; }
.ws-help {
  margin: .4rem 0 0;
  text-align: center;
  font-family: var(--font-ui);
  font-size: .8rem;
  color: var(--muted);
}
.ws-words-wrap h3 {
  margin: 0 0 .45rem;
  font-family: var(--font-display);
  font-size: 1.05rem;
  border-bottom: 1px solid var(--soft-border);
  padding-bottom: .25rem;
}
.ws-words {
  list-style: none;
  margin: 0;
  padding: 0;
  columns: 2;
  column-gap: 1rem;
  font-family: var(--font-ui);
  font-size: 1rem;
  letter-spacing: .05em;
}
.ws-word {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-height: 2.2rem;          /* large rows for easy reading on phones */
  break-inside: avoid;
  padding: .15rem .25rem;
}
.ws-check {
  flex: 0 0 1.1rem;
  width: 1.1rem;
  height: 1.1rem;
  border: 2px solid var(--ink);
  border-radius: 3px;
  background: #fff;
  position: relative;
}
.ws-word.is-found .ws-check,
.ws-word.is-revealed .ws-check { background: #1f6b3a; border-color: #1f6b3a; }
.ws-word.is-found .ws-check::after,
.ws-word.is-revealed .ws-check::after {
  content: "";
  position: absolute;
  left: 3px; top: 0;
  width: 4px; height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.ws-word.is-found .ws-word-text,
.ws-word.is-revealed .ws-word-text { text-decoration: line-through; color: #5a5348; }
.ws-word.is-revealed .ws-word-text { font-style: italic; }
.ws-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ws-toolbar-btn, .wordsearch-panel .crossword-toolbar .btn { min-height: 2.6rem; padding-left: 1rem; padding-right: 1rem; }
@media (max-width: 800px) {
  .ws-layout { grid-template-columns: 1fr; }
}
@media print {
  .wordsearch-panel .crossword-toolbar,
  .ws-progress, .ws-help,
  .qr-share-strip, .site-nav, .crossword-draft-badge { display: none !important; }
  .ws-grid { width: 480px; cursor: auto; }
  .ws-cell.ws-selecting, .ws-found-0, .ws-found-1, .ws-found-2, .ws-found-3, .ws-found-4, .ws-found-5, .ws-cell.ws-revealed {
    background: #fffdf7; box-shadow: none; outline: 0; color: var(--ink);
  }
  .ws-word.is-found .ws-word-text, .ws-word.is-revealed .ws-word-text { text-decoration: none; }
  .ws-word.is-found .ws-check, .ws-word.is-revealed .ws-check { background: #fff; border-color: var(--ink); }
  .ws-word.is-found .ws-check::after, .ws-word.is-revealed .ws-check::after { display: none; }
}

/* --- Positive-news promise + "Know a good neighbor?" callout (Oct. 2, 2026) --- */
.masthead .promise{margin:.55rem auto 0;max-width:38rem;font-family:var(--font-body);font-size:clamp(.88rem,2.3vw,1rem);line-height:1.45;color:var(--ink)}
.masthead .promise a{color:var(--accent);white-space:nowrap}
.good-neighbor{background:var(--cream);border:1px solid var(--soft-border);border-left:4px solid var(--accent);box-shadow:var(--shadow);padding:.9rem 1.1rem 1rem;margin:1.25rem 0 0}
.good-neighbor .good-neighbor-title{margin:0 0 .4rem;font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:.01em;text-transform:none;color:var(--ink);border:0;padding:0;line-height:1.25}
.good-neighbor p{margin:0 0 .6rem;font-family:var(--font-body);font-size:.95rem;line-height:1.5;color:var(--ink)}
.good-neighbor .good-neighbor-action{margin:.2rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem .9rem;align-items:center}
.good-neighbor .good-neighbor-link{display:inline-block;text-decoration:none;font-size:.85rem;padding:.45rem .8rem}
.good-neighbor .good-neighbor-or{font-family:var(--font-ui);font-size:.85rem;color:var(--muted);overflow-wrap:anywhere}
.good-neighbor .good-neighbor-or a{color:var(--accent)}
.about-sign{font-style:italic;color:var(--muted)}
@media print{.good-neighbor{display:none}}

/* Local Updates page + homepage pointer (Oct. 3, 2026) */
.local-updates-intro{margin:.2rem 0 1rem;font-family:var(--font-body);font-size:1rem;color:var(--muted)}
.local-updates-link{margin:1.1rem 0 0;font-family:var(--font-ui);font-size:.9rem;color:var(--muted);text-align:center}
.local-updates-link a{color:var(--accent);font-weight:700}

/* Puzzle archive link (previous week) */
.puzzle-archive { margin: 0 0 14px; font-size: 0.95rem; }
.puzzle-archive a { color: var(--accent, #8b1e1e); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* Puzzle celebration pop-up (puzzle-celebrate.js) */
.pc-open { overflow: hidden; }
.pc-overlay { position: fixed; inset: 0; z-index: 1000; background: rgba(28, 24, 20, 0.62); display: flex; align-items: center; justify-content: center; padding: 1rem; overflow-y: auto; animation: pc-fade 0.2s ease-out; }
.pc-overlay[hidden] { display: none; }
.pc-card { background: #fffdf7; color: #1c1814; max-width: 26rem; width: 100%; padding: 1.4rem 1.4rem 1.2rem; text-align: center; border: 1px solid #cfc6b4; outline: 3px double #1c1814; outline-offset: -9px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35); animation: pc-pop 0.25s ease-out; }
.pc-orn { margin: 0 0 0.25rem; color: var(--accent, #8b1e1e); letter-spacing: 0.4em; font-size: 0.9rem; }
.pc-title { font-family: "Playfair Display", Georgia, serif; font-size: 1.7rem; line-height: 1.2; margin: 0 0 0.6rem; color: #1c1814; }
.pc-line { font-family: "Libre Baskerville", Georgia, serif; font-style: italic; font-size: 1.05rem; line-height: 1.45; margin: 0 0 1.1rem; color: #4a443a; }
.pc-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; }
.pc-actions .btn { min-height: 2.6rem; padding: 0.4rem 0.9rem; font-size: 0.9rem; }
.pc-note { min-height: 1.2rem; margin: 0.7rem 0 0; font-size: 0.85rem; color: #5a5348; }
@keyframes pc-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pc-pop { from { transform: translateY(10px) scale(0.98); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .pc-overlay, .pc-card { animation: none; } }
@media (max-width: 480px) { .pc-card { padding: 1.1rem 1rem 1rem; } .pc-title { font-size: 1.45rem; } .pc-actions .btn { flex: 1 1 100%; } }
@media print { .pc-overlay { display: none !important; } }

/* Column sources list */
.column-sources { font-size: 0.85rem; line-height: 1.5; padding-left: 1.2rem; color: #4a443a; }
.column-sources li { margin: 0 0 0.35rem; }
.column-safety a { color: var(--accent, #8b1e1e); text-decoration: underline; }
.column-sources a { color: #8b1e1e; }
/* Draft-only: yellow blanks for author-supplied items (remove blanks before publish) */
.draft-blank { background: #fff200; color: #222; padding: 0 0.25em; border-radius: 2px; }

/* Game icons and "Play today" tiles */
.site-nav .nav-ico{display:inline-block;vertical-align:-.17em;margin-right:.28em;flex:none}
.crossword-panel .game-ico{display:inline-block;vertical-align:-.2em;margin-right:.35rem;color:var(--accent)}
.play-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1rem}
.play-tile{display:block;min-width:0;text-decoration:none;color:inherit;background:var(--cream);border:1px solid var(--soft-border);border-top:3px solid var(--accent);box-shadow:var(--shadow);overflow:hidden}
.play-tile svg{display:block;width:100%;height:auto;aspect-ratio:320/150}
.play-tile .play-body{display:block;padding:.7rem .9rem .9rem}
.play-tile .play-title{display:block;font-family:var(--font-display);font-size:1.15rem;font-weight:700;line-height:1.25;margin-bottom:.25rem}
.play-tile .play-blurb{display:block;font-family:var(--font-ui);font-size:.95rem;line-height:1.45;color:var(--muted);margin-bottom:.45rem}
.play-tile .play-cta{display:block;font-family:var(--font-ui);font-weight:700;color:var(--accent)}
.play-tile:hover,.play-tile:focus-visible{border-top-color:var(--ink)}
.play-tile:hover .play-cta,.play-tile:focus-visible .play-cta{text-decoration:underline}
@media print{.play-panel{display:none!important}}
