/* uniquification-2026-05-26.css
   Styles for the per-city unique content sections added in the 2026-05-26
   SEO uniquification pass:
     .city-climate     -> "When local pros are busiest" seasonality block
     .city-licensing   -> "Verify before you hire" state-licensing table
     .closest-populated -> "If [city] is empty, try one of these" sidebar
     .cat-tldr         -> Category page TL;DR summary section
   Loads AFTER editorial-2026-05-26.css so it inherits tokens and can override
   where it needs to. Uses paper/serif palette to feel of-a-piece with the rest.
*/

/* Category page — TL;DR summary section (was missing a rule, causing unstyled layout) */
.cat-tldr {
  padding: 48px 0 !important;
  background: var(--paper, #FAF7F2) !important;
  border-top: 1px solid var(--line, #E6DFD2) !important;
}
@media (max-width: 540px) {
  .cat-tldr { padding: 36px 0 !important; }
}

.city-climate,
.city-licensing,
.closest-populated {
  padding: 56px 0 !important;
  background: var(--paper, #FAF7F2) !important;
  border-top: 1px solid var(--line, #E6DFD2) !important;
}
.city-climate .band-head,
.city-licensing .band-head,
.closest-populated .band-head {
  max-width: 760px;
  margin-bottom: 28px;
}
.city-climate h2,
.city-licensing h2,
.closest-populated h2 {
  font-family: 'Source Serif 4', Georgia, serif !important;
  font-size: clamp(24px, 3.2vw, 32px) !important;
  line-height: 1.2 !important;
  margin: 6px 0 12px !important;
}
.city-climate .sec-lede,
.city-licensing .sec-lede,
.closest-populated .sec-lede {
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: var(--ink-2, #4A4537) !important;
}

/* --- Climate / seasonality grid --- */
.season-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
  margin-top: 24px;
}
.season-item {
  background: #fff;
  border: 1px solid var(--line, #E6DFD2);
  border-radius: 10px;
  padding: 18px 20px;
}
.season-item h4 {
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 17px;
  margin: 0 0 8px;
  color: var(--ink, #1F1B12);
}
.season-item p {
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ink-2, #4A4537);
  margin: 0;
}
.season-foot {
  margin-top: 22px;
  font-size: 13px;
  color: var(--muted, #8A8275);
  font-style: italic;
}

/* --- Licensing table --- */
.licensing-wrap {
  overflow-x: auto;
  margin-top: 24px;
}
.licensing-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid var(--line, #E6DFD2);
  border-radius: 10px;
  overflow: hidden;
}
.licensing-table th {
  background: #F2EDE2;
  text-align: left;
  padding: 12px 14px;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink, #1F1B12);
  border-bottom: 1px solid var(--line, #E6DFD2);
}
.licensing-table td {
  padding: 14px;
  font-size: 15px;
  line-height: 1.55;
  border-top: 1px solid var(--line, #E6DFD2);
  vertical-align: top;
  color: var(--ink-2, #4A4537);
}
.licensing-table td strong { color: var(--ink, #1F1B12); }
.licensing-table td a {
  color: var(--brand, #2D6A4F);
  font-weight: 600;
  text-decoration: underline;
}
.licensing-foot {
  margin-top: 18px;
  font-size: 13px;
  color: var(--muted, #8A8275);
  font-style: italic;
}

/* --- "Closest populated towns" grid --- */
.cp-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 24px;
}
.cp-link {
  display: block;
  padding: 18px 20px;
  background: #fff;
  border: 1px solid var(--line, #E6DFD2);
  border-radius: 10px;
  text-decoration: none;
  color: var(--ink, #1F1B12);
  transition: transform 120ms ease, border-color 120ms ease;
}
.cp-link:hover {
  border-color: var(--brand, #2D6A4F);
  transform: translateY(-2px);
}
.cp-link strong {
  display: block;
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 17px;
  margin-bottom: 4px;
}
.cp-meta {
  font-size: 13px;
  color: var(--muted, #8A8275);
}
.cp-foot {
  margin-top: 22px;
  font-size: 15px;
  color: var(--ink-2, #4A4537);
}
.cp-foot a {
  color: var(--brand, #2D6A4F);
  font-weight: 600;
}

@media (max-width: 540px) {
  .city-climate, .city-licensing, .closest-populated { padding: 40px 0 !important; }
  .season-grid, .cp-grid { gap: 12px; }
  .licensing-table td, .licensing-table th { padding: 10px 12px; font-size: 14px; }
}

/* ===== Category pillar pages (added 2026-05-26) ===== */

.tldr-box {
  background: #fff;
  border: 1px solid var(--line, #E6DFD2);
  border-left: 4px solid var(--brand, #2D6A4F);
  border-radius: 8px;
  padding: 24px 28px;
  margin: 12px 0 0;
}
.tldr-box h2 {
  font-family: 'Source Serif 4', Georgia, serif !important;
  font-size: 22px !important;
  margin: 0 0 12px !important;
  line-height: 1.25 !important;
}
.tldr-box p {
  margin: 0;
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--ink-2, #4A4537);
}

.cat-services,
.cat-pricing,
.cat-licensing,
.cat-questions,
.cat-scams,
.cat-topcities {
  padding: 48px 0 !important;
  background: var(--paper, #FAF7F2) !important;
  border-top: 1px solid var(--line, #E6DFD2) !important;
}
.cat-services h2, .cat-pricing h2, .cat-licensing h2,
.cat-questions h2, .cat-scams h2, .cat-topcities h2 {
  font-family: 'Source Serif 4', Georgia, serif !important;
  font-size: clamp(22px, 3vw, 30px) !important;
  margin: 4px 0 10px !important;
}
.cat-services .sec-lede, .cat-pricing .sec-lede, .cat-licensing .sec-lede,
.cat-questions .sec-lede, .cat-scams .sec-lede, .cat-topcities .sec-lede {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--ink-2, #4A4537) !important;
}

.service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 22px;
}
.service-item {
  background: #fff;
  border: 1px solid var(--line, #E6DFD2);
  border-radius: 10px;
  padding: 16px 18px;
}
.service-item h4 {
  margin: 0 0 6px;
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 16px;
  color: var(--ink, #1F1B12);
}
.service-item p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--ink-2, #4A4537);
}

.pricing-wrap { overflow-x: auto; margin-top: 22px; }
.pricing-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid var(--line, #E6DFD2);
  border-radius: 10px;
  overflow: hidden;
}
.pricing-table th {
  background: #F2EDE2;
  text-align: left;
  padding: 12px 14px;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: 1px solid var(--line, #E6DFD2);
}
.pricing-table td {
  padding: 13px 14px;
  font-size: 15px;
  line-height: 1.55;
  border-top: 1px solid var(--line, #E6DFD2);
  vertical-align: top;
  color: var(--ink-2, #4A4537);
}
.pricing-table td.range { font-weight: 700; color: var(--brand, #2D6A4F); white-space: nowrap; }
.pricing-table td.notes { color: var(--muted, #8A8275); font-size: 14px; }
.pricing-foot { margin-top: 18px; font-size: 13px; color: var(--muted, #8A8275); font-style: italic; }

.hiring-questions {
  background: #fff;
  border: 1px solid var(--line, #E6DFD2);
  border-radius: 10px;
  padding: 22px 28px 22px 48px;
  margin: 22px 0 0;
}
.hiring-questions li {
  padding: 8px 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-2, #4A4537);
  border-bottom: 1px dashed var(--line, #E6DFD2);
}
.hiring-questions li:last-child { border-bottom: 0; }

.scam-list {
  background: #fff;
  border: 1px solid #E2C9A6;
  border-left: 4px solid #B4863A;
  border-radius: 10px;
  padding: 18px 24px 18px 40px;
  margin: 22px 0 0;
  list-style: square;
}
.scam-list li {
  padding: 6px 0;
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--ink-2, #4A4537);
}

.topcity-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 22px;
}
.topcity-link {
  display: block;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid var(--line, #E6DFD2);
  border-radius: 10px;
  text-decoration: none;
  color: var(--ink, #1F1B12);
}
.topcity-link:hover { border-color: var(--brand, #2D6A4F); }
.topcity-link strong {
  display: block;
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 16.5px;
}
.topcity-meta { font-size: 13px; color: var(--muted, #8A8275); }

@media (max-width: 540px) {
  .cat-services, .cat-pricing, .cat-licensing, .cat-questions, .cat-scams, .cat-topcities { padding: 36px 0 !important; }
  .pricing-table td, .pricing-table th { padding: 9px 10px; font-size: 13.5px; }
  .hiring-questions { padding-left: 36px; padding-right: 18px; }
}
