/* =========================================================
   RESOURCE GUIDES — Filterable directory tables
   Uses CPC design tokens from cpc-additional.css
========================================================= */

:is(#cpc-resource-guide, .cpc-resource-guide) {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
  font-family: 'foco', 'DM Sans', -apple-system, sans-serif;
  color: var(--cpc-text);
  line-height: 1.6;
}

:is(#cpc-resource-guide, .cpc-resource-guide) * {
  box-sizing: border-box;
}

/* ── Loading / Error ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-loading,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-error {
  text-align: center;
  padding: 48px 24px;
  color: #8A8A8A;
  font-size: 15px;
}

/* ── Guide title ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-guide-title {
  font-size: 28px !important;
  font-weight: 700 !important;
  color: var(--cpc-fuchsia, #7E2C65) !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
}

/* ── Stats summary ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats {
  margin: 0 0 16px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-card {
  flex: 1;
  min-width: 120px;
  background: #FFF;
  border: 1px solid #E8E0EC;
  border-radius: 8px;
  padding: 12px 14px;
  text-align: center;
  box-shadow: 0 1px 4px rgba(72,39,87,0.06);
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-label {
  font-size: 16px;
  font-weight: 700;
  color: var(--cpc-plum, #482757);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-avg {
  font-size: 22px;
  font-weight: 700;
  color: var(--cpc-fuchsia, #7E2C65);
  margin-bottom: 4px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-range {
  font-size: 16px;
  font-weight: 600;
  color: #2D2226;
  margin-bottom: 4px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-count {
  font-size: 15px;
  font-weight: 600;
  color: var(--cpc-plum, #482757);
}

/* Clickable stat cards (when paired with facility calculator) */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-card[data-room-key] {
  cursor: pointer;
  transition: all 0.15s;
  border-width: 2px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-card[data-room-key]:hover {
  border-color: var(--cpc-fuchsia, #7E2C65);
  background: #FDFAFC;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-card.crg-stat-active {
  background: var(--cpc-plum, #482757) !important;
  border-color: var(--cpc-plum, #482757) !important;
  box-shadow: 0 4px 12px rgba(72,39,87,0.2);
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-active .crg-stat-label,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-active .crg-stat-avg,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-active .crg-stat-range,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-active .crg-stat-count {
  color: #FFF !important;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-active .crg-stat-range {
  opacity: 0.75;
}

/* ── Tally bubble grid ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tally {
  background: linear-gradient(135deg, var(--cpc-plum), var(--cpc-fuchsia));
  border-radius: 10px;
  padding: 24px 32px;
  margin: 0 0 18px;
  color: #FFF;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tally-layout {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tally-title {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid {
  display: grid;
  gap: 5px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid-row {
  display: grid;
  grid-template-columns: 120px repeat(4, 80px);
  gap: 6px;
  align-items: center;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid-header {
  margin-bottom: 2px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid-cell {
  text-align: center;
  display: flex;
  justify-content: center;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid-label {
  text-align: left;
  font-size: 12.5px;
  font-weight: 600;
  opacity: 0.95;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid-col-header {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.75;
  display: flex;
  justify-content: center;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid-total-header {
  opacity: 0.9;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-bubble {
  display: block;
  width: 80px;
  padding: 5px 0;
  background: rgba(255,255,255,0.15);
  border-radius: 99px;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-bubble-zero {
  opacity: 0.4;
  font-weight: 400;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-bubble-total {
  background: rgba(255,255,255,0.25);
  font-weight: 700;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-bubble-grand {
  background: rgba(255,255,255,0.35);
  font-weight: 700;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid-total-row {
  border-top: 1px solid rgba(255,255,255,0.2);
  padding-top: 6px;
  margin-top: 2px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid-total-row .crg-grid-label {
  opacity: 1;
}

/* ── Stacked tags (vertical, one per line) ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tags-stacked {
  flex-direction: column;
  align-items: flex-start;
}

/* ── Stacked numbers (aligned with stacked tags) ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stacked-nums {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-unit-num {
  display: flex;
  align-items: center;
  height: 24px;
  font-size: 13px;
  font-weight: 600;
  color: var(--cpc-plum);
  line-height: 1;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-unit-num.crg-unit-na {
  color: #CCC;
  font-weight: 400;
}

/* ── Unit tags (mobile cards) ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-unit-tags {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-unit-tag {
  display: inline-block;
  padding: 3px 10px;
  background: #F0EDF3;
  color: var(--cpc-plum);
  font-size: 12px;
  font-weight: 500;
  border-radius: 99px;
  white-space: nowrap;
  width: fit-content;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-unit-tag strong {
  font-weight: 700;
  color: var(--cpc-fuchsia);
}

/* ── Filters ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-filters {
  display: flex;
  gap: 16px;
  align-items: flex-end;
  flex-wrap: wrap;
  margin: 0 0 20px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-filter-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: 1 1 170px;
  min-width: 160px;
  max-width: 240px;
  margin: 0 !important;
  padding: 0 !important;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-filter-group label {
  font-size: 16px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--cpc-fuchsia);
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3 !important;
}

/* Shared control reset — kills ALL Enfold interference */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-filter-group select,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-ms-btn,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-toggle-control {
  display: block !important;
  box-sizing: border-box !important;
  height: 46px !important;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 1.5px solid var(--cpc-border) !important;
  border-radius: 6px !important;
  background-color: #FFF !important;
  font-family: 'foco', 'DM Sans', sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 46px !important;
  color: var(--cpc-text) !important;
  cursor: pointer;
  width: 100%;
  max-width: 240px;
  transition: border-color 0.2s, box-shadow 0.2s;
}

/* Dropdown arrow on selects and multi-select buttons */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-filter-group select,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-ms-btn {
  appearance: none !important;
  -webkit-appearance: none !important;
  padding-right: 38px !important;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%237E2C65' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-position: right 14px center !important;
  background-size: 12px 8px !important;
  background-repeat: no-repeat !important;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-ms-btn {
  text-align: left !important;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-filter-group select:hover,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-ms-btn:hover,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-toggle-control:hover {
  border-color: var(--cpc-fuchsia) !important;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-filter-group select:focus {
  outline: none !important;
  border-color: var(--cpc-fuchsia) !important;
  box-shadow: 0 0 0 3px rgba(126, 44, 101, 0.12) !important;
}

/* ── Filter line break ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-filter-break {
  flex-basis: 100%;
  height: 0;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-reset {
  padding: 10px 16px;
  border: none;
  background: none;
  color: var(--cpc-fuchsia);
  font-family: 'foco', 'DM Sans', sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border-radius: 6px;
  white-space: nowrap;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-reset:hover {
  background: #F3EAF5;
}

/* ── Multi-select checkbox dropdown ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-ms-wrap {
  position: relative;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-ms-btn:hover {
  border-color: var(--cpc-fuchsia) !important;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-ms-panel {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  max-width: 300px;
  margin-top: 4px;
  background: #FFF;
  border: 1.5px solid var(--cpc-border);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(72, 39, 87, 0.12);
  z-index: 100;
  max-height: 280px;
  overflow-y: auto;
  padding: 6px 0;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-ms-panel.crg-ms-open {
  display: block;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-ms-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  cursor: pointer;
  font-size: 14px;
  color: var(--cpc-text);
  transition: background 0.1s;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-ms-option:hover {
  background: #F3EAF5;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-ms-option input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--cpc-fuchsia);
  cursor: pointer;
  flex-shrink: 0;
}

/* ── Highlighted check cell ── */
:is(#cpc-resource-guide, .cpc-resource-guide) td.crg-sc-active {
  background: #EDF7EE;
}

/* ── Toggle checkbox filter ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-filter-toggle {
  flex: 0 0 auto;
  min-width: auto;
  max-width: none;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-toggle-control {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important;
  border: none !important;
  background: transparent !important;
  line-height: normal !important;
  padding: 0 !important;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-toggle-control span {
  display: none !important;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-toggle-control input[type="checkbox"] {
  width: 20px !important;
  height: 20px !important;
  accent-color: var(--cpc-fuchsia) !important;
  cursor: pointer !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ── Right-aligned count + date ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-meta-right {
  margin-left: auto;
  text-align: right;
  flex-shrink: 0;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-count {
  font-size: 13px;
  color: #8A8A8A;
  line-height: 1.4;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-updated {
  font-size: 12px;
  color: #AAAAAA;
  line-height: 1.4;
  margin-top: 2px;
}

/* ── Table card ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table-card {
  background: #FFF;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(72, 39, 87, 0.08);
  overflow: hidden;
  border: 1px solid var(--cpc-border);
  margin: 18px 0 20px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

:is(#cpc-resource-guide, .cpc-resource-guide) table.crg-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 960px;
  border: none;
}

/* ── Table header ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th {
  background: var(--cpc-plum);
  color: #FFF;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 14px 8px;
  text-align: left;
  white-space: normal;
  line-height: 1.4;
  vertical-align: bottom;
  border: none;
  position: sticky;
  top: 0;
  z-index: 2;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th:first-child {
  padding-left: 18px;
  min-width: 190px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table th.crg-col-id,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table td.crg-col-id {
  width: 36px !important;
  min-width: 36px !important;
  max-width: 50px !important;
  padding-left: 14px !important;
  padding-right: 4px !important;
  font-weight: 700;
  color: var(--cpc-plum, #482757);
  text-align: center;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table th.crg-col-id + th {
  min-width: 100px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th:nth-child(2) {
  min-width: 140px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th.crg-svc {
  text-align: center;
  width: 88px;
  min-width: 78px;
}

/* ── Table body ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table tbody tr {
  transition: background 0.15s;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table tbody tr:hover {
  background: #F3EAF5;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table tbody td {
  padding: 12px 10px;
  font-size: 14.5px;
  vertical-align: top;
  border: none;
  border-bottom: 1px solid #F0ECF1;
  color: var(--cpc-text);
  line-height: 1.5;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table tbody tr:last-child td {
  border-bottom: none;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table tbody td:first-child {
  padding-left: 18px;
}

/* ── Provider name ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-pn {
  font-weight: 600;
  color: var(--cpc-fuchsia);
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-pn a {
  color: inherit;
  text-decoration: none;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-pn a:hover {
  text-decoration: underline;
}

/* ── Tags ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tag {
  display: inline-block;
  padding: 3px 9px;
  background: #F3EAF5;
  color: var(--cpc-fuchsia);
  font-size: 12px;
  font-weight: 500;
  border-radius: 99px;
  white-space: nowrap;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tag-green {
  display: inline-block;
  padding: 3px 9px;
  background: #EDF7EE;
  color: #2E7D32;
  font-size: 12px;
  font-weight: 500;
  border-radius: 99px;
  white-space: nowrap;
}

/* Active/highlighted tag — matches current filter selection */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tag.crg-tag-active {
  background: var(--cpc-fuchsia);
  color: #FFF;
  font-weight: 600;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tag-green.crg-tag-active {
  background: #2E7D32;
  color: #FFF;
  font-weight: 600;
}

/* ── Checkmarks ── */
:is(#cpc-resource-guide, .cpc-resource-guide) td.crg-sc {
  text-align: center;
  vertical-align: middle;
}

:is(#cpc-resource-guide, .cpc-resource-guide) td.crg-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: 13px;
  white-space: nowrap;
  color: var(--cpc-plum, #482757);
}

:is(#cpc-resource-guide, .cpc-resource-guide) td.crg-num-na {
  color: #CCC;
  font-weight: 400;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #EDF7EE;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-check svg {
  display: block;
}

/* ── Empty state ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-empty {
  text-align: center;
  padding: 48px 24px;
  color: #8A8A8A;
}

:is(#cpc-resource-guide, .cpc-resource-guide) .crg-empty p {
  font-size: 15px;
  margin-top: 8px;
}

/* ── Mobile cards ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-cards {
  display: none;
}

/* =========================================================
   RATES TABLE — Simple service/rate display
========================================================= */

#cpc-rates-table {
  max-width: 640px;
  font-family: 'foco', 'DM Sans', -apple-system, sans-serif;
}

#cpc-rates-table .cpc-rt {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(72,39,87,0.10);
  border: 1px solid #E8E0EC;
}

#cpc-rates-table .cpc-rt td {
  padding: 16px 24px !important;
  border: none !important;
  border-bottom: 1px solid #F0ECF1 !important;
  font-size: 16px !important;
  color: #333 !important;
  background: #FFF !important;
  vertical-align: middle !important;
}

#cpc-rates-table .cpc-rt tr:last-child td {
  border-bottom: none !important;
}

#cpc-rates-table .cpc-rt tr:hover td {
  background: #F9F5FB !important;
}

#cpc-rates-table .cpc-rt tr.cpc-rt-section td,
#cpc-rates-table .cpc-rt .cpc-rt-section td {
  background: var(--cpc-fuchsia, #7E2C65) !important;
  color: #FFF !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 14px 24px !important;
}

#cpc-rates-table .cpc-rt tr.cpc-rt-section:hover td,
#cpc-rates-table .cpc-rt .cpc-rt-section:hover td {
  background: var(--cpc-fuchsia, #7E2C65) !important;
  color: #FFF !important;
}

#cpc-rates-table .cpc-rt-service {
  font-weight: 600 !important;
  color: var(--cpc-fuchsia, #7E2C65) !important;
  font-size: 16px !important;
}

#cpc-rates-table .cpc-rt-rate {
  text-align: right !important;
  white-space: nowrap !important;
}

#cpc-rates-table .cpc-rt-rate strong {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--cpc-fuchsia, #7E2C65) !important;
}

#cpc-rates-table .cpc-rt-rate span {
  font-size: 14px !important;
  color: #6a6a6a !important;
  font-weight: 400 !important;
}

#cpc-rates-table .cpc-rt-notes {
  margin: 14px 0 0;
  padding: 14px 24px;
  background: #F9F5FB;
  border-radius: 8px;
  font-size: 15px;
  color: #555;
  line-height: 1.6;
}

#cpc-rates-table .cpc-rt-notes strong {
  color: var(--cpc-plum, #482757);
}

#cpc-rates-table .cpc-rt-notes p {
  margin: 0 0 4px;
}

#cpc-rates-table .cpc-rt-notes p:last-child {
  margin: 0;
}

/* =========================================================
   CARE CALCULATOR — Interactive cost estimator
========================================================= */

#cpc-care-calculator {
  max-width: 1100px;
  margin: 0 auto;
  font-family: 'foco', 'DM Sans', -apple-system, sans-serif;
  color: var(--cpc-text, #333);
}

/* ── Care Calculator: About pill row (no title) ── */
.cpc-calc-about-row {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 12px;
  position: relative;
}

/* Title + About pill inline row */
.cpc-calc-title-about-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 12px;
  position: relative;
  flex-wrap: wrap;
}
.cpc-calc-inline-title {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--cpc-fuchsia, #7E2C65) !important;
  margin: 0 !important;
  padding: 0 !important;
}
.cpc-calc-title-about-row .cpc-fc-about { margin: 0; position: relative; }
.cpc-calc-title-about-row .cpc-fc-about[open] summary { margin-bottom: 0; }
.cpc-calc-title-about-row .cpc-fc-about-body {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  width: min(560px, 90vw);
  z-index: 20;
  box-shadow: 0 8px 24px rgba(72,39,87,0.18);
  border: 1px solid #C4D17A;
}
.cpc-calc-about-row .cpc-fc-about { margin: 0; position: relative; }
.cpc-calc-about-row .cpc-fc-about[open] summary { margin-bottom: 0; }
.cpc-calc-about-row .cpc-fc-about-body {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  width: min(560px, 90vw);
  z-index: 20;
  box-shadow: 0 8px 24px rgba(72,39,87,0.18);
  border: 1px solid #C4D17A;
}

/* About pill inside Cost Estimate header */
.cpc-calc-box-header-flex {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.cpc-calc-header-about { margin: 0 !important; position: relative; }
.cpc-calc-header-about[open] summary { margin-bottom: 0 !important; }
.cpc-calc-header-about summary {
  padding: 6px 14px !important;
  font-size: 13px !important;
}
.cpc-calc-header-about .cpc-fc-about-icon { font-size: 17px !important; }
.cpc-calc-header-about .cpc-fc-about-body {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: min(560px, 90vw);
  z-index: 20;
  box-shadow: 0 8px 24px rgba(72,39,87,0.18);
  border: 1px solid #C4D17A;
  text-transform: none !important;
  letter-spacing: normal !important;
}

.cpc-calc-intro {
  text-align: center;
  color: var(--cpc-text-light, #5A5261);
  font-size: 15px;
  line-height: 1.5;
  margin: 0 0 24px;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

/* ── Care Calculator: Layout ── */
.cpc-calc-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 20px;
  align-items: start;
}

.cpc-calc-layout-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.cpc-calc-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-items: start;
}

@media (max-width: 768px) {
  .cpc-calc-row-2 { grid-template-columns: 1fr; }
}

/* Greyed-out weekly schedule when live-in is selected */
.cpc-calc-box.cpc-calc-greyed { opacity: 0.45; pointer-events: none; position: relative; }
.cpc-calc-box.cpc-calc-greyed .cpc-calc-grey-note { display: block; }
.cpc-calc-grey-note { display: none; padding: 12px 18px; background: #FFF6E5; color: #5A3E00; font-size: 15px; font-weight: 500; border-top: 1px solid #F0E0B0; text-align: center; font-style: italic; }

/* Premium breakdown section */
.cpc-calc-section-label { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; color: var(--cpc-plum, #482757); margin: 16px 0 8px; padding: 0 2px; }
.cpc-calc-breakdown { background: rgba(255,255,255,0.6); border-radius: 8px; padding: 12px 16px; border: 1px solid #C4D17A; }
.cpc-calc-bk-line { display: flex; justify-content: space-between; padding: 5px 0; font-size: 15px; gap: 12px; align-items: baseline; }
.cpc-calc-bk-line span { color: #2D2226; font-weight: 500; }
.cpc-calc-bk-line strong { color: var(--cpc-plum, #482757); font-weight: 700; white-space: nowrap; font-size: 15.5px; }

.cpc-calc-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.cpc-calc-side {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: 80px;
}

/* ── Care Calculator: Box card ── */
.cpc-calc-box {
  background: #FFF;
  border: 1px solid #E8E0EC;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(72,39,87,0.06);
}

.cpc-calc-box-header {
  background: var(--cpc-plum, #482757);
  color: #FFF;
  padding: 11px 16px;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.cpc-calc-reset-btn {
  background: #FBF7E8;
  border: 1px solid #C4D17A;
  color: #3D5A1F;
  padding: 6px 14px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s;
}

.cpc-calc-reset-btn:hover {
  background: #E9F0C8;
  color: #2A3E14;
}

.cpc-calc-grid-help {
  padding: 12px 18px 6px;
  font-size: 15px;
  color: #2D2226;
  margin: 0;
  line-height: 1.55;
  font-weight: 500;
}

/* ── Care Calculator: Weekly Grid ── */
.cpc-calc-grid {
  padding: 8px 12px 12px;
}

.cpc-calc-grid-row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.cpc-calc-grid-header .cpc-calc-grid-cell {
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--cpc-plum, #482757);
  padding: 6px 0;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.cpc-calc-grid-header .cpc-calc-grid-we {
  color: var(--cpc-fuchsia, #7E2C65);
}

.cpc-calc-grid-cell {
  position: relative;
  padding: 2px;
}

.cpc-calc-grid-cell input[type="number"] {
  width: 100% !important;
  padding: 8px 26px 8px 6px !important;
  border: 1.5px solid #E0D6E6 !important;
  border-radius: 5px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-align: right !important;
  color: var(--cpc-plum, #482757) !important;
  background: #FFF !important;
  -moz-appearance: textfield !important;
  box-sizing: border-box !important;
}

.cpc-calc-grid-cell input[type="number"]::placeholder {
  color: #AAA;
  font-weight: 500;
  font-size: 12px;
}

.cpc-calc-grid-unit {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 11px;
  font-weight: 500;
  color: #888;
  pointer-events: none;
  line-height: 1;
}

.cpc-calc-grid-cell input[type="number"]::-webkit-inner-spin-button,
.cpc-calc-grid-cell input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.cpc-calc-grid-cell input[type="number"]:focus {
  border-color: var(--cpc-fuchsia, #7E2C65) !important;
  outline: none;
  box-shadow: 0 0 0 2px rgba(126,44,101,0.15);
}

.cpc-calc-grid-we input[type="number"] {
  border-color: #D4C0DA !important;
  background: #FAF5FC !important;
}

.cpc-calc-grid-rm {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  font-size: 10px;
  line-height: 18px;
  text-align: center;
  background: var(--cpc-fuchsia, #7E2C65);
  color: #FFF;
  border-radius: 50%;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.15s;
}

.cpc-calc-grid-rm:hover {
  opacity: 1;
}

/* ── Care Calculator: Overnight Options ── */
.cpc-calc-on-group {
  padding: 4px 0;
}

.cpc-calc-on-opt {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-bottom: 1px solid #F0ECF1;
  cursor: pointer;
  transition: background 0.15s;
}

.cpc-calc-on-opt:last-child {
  border-bottom: none;
}

.cpc-calc-on-opt:hover {
  background: #F9F5FB;
}

.cpc-calc-on-opt input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: var(--cpc-fuchsia, #7E2C65);
  cursor: pointer;
  flex-shrink: 0;
  margin: 0;
}

.cpc-calc-on-info {
  flex: 1;
  min-width: 0;
}

.cpc-calc-on-info strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #333;
}

.cpc-calc-on-info small {
  display: block;
  font-size: 12px;
  color: #999;
  margin-top: 1px;
}

.cpc-calc-on-freq {
  width: 48px !important;
  padding: 5px 4px !important;
  border: 1.5px solid #E0D6E6 !important;
  border-radius: 5px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-align: center !important;
  color: var(--cpc-plum, #482757) !important;
  background: #FFF !important;
  -moz-appearance: textfield !important;
}

.cpc-calc-on-freq-label {
  font-size: 11px;
  color: #999;
  flex-shrink: 0;
}

/* ── Care Calculator: Rates Info ── */
.cpc-calc-rates-grid {
  padding: 16px 18px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 28px;
}

@media (max-width: 640px) {
  .cpc-calc-rates-grid { grid-template-columns: 1fr; gap: 0; }
}

.cpc-calc-rates-col { display: flex; flex-direction: column; }

.cpc-calc-rate-item {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px solid #F0ECF1;
  font-size: 15px;
  gap: 8px;
  align-items: baseline;
}

.cpc-calc-rate-item:last-child {
  border-bottom: none;
}

.cpc-calc-rate-label {
  color: #2D2226;
  font-weight: 500;
}

.cpc-calc-rate-val {
  font-weight: 700;
  color: var(--cpc-plum, #482757);
  white-space: nowrap;
}

.cpc-calc-rate-2line .cpc-calc-rate-label { display: flex; flex-direction: column; gap: 2px; }
.cpc-calc-rate-2line .cpc-calc-rate-label small { font-size: 12.5px; font-weight: 500; color: #6B4E8B; font-style: italic; }

.cpc-calc-disc-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  margin: 8px 0 4px;
}
.cpc-calc-disc-table th {
  text-align: right;
  padding: 8px 8px;
  background: var(--cpc-plum, #482757);
  color: #FFF;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.cpc-calc-disc-table th:first-child { text-align: left; }
.cpc-calc-disc-table tbody th[scope="row"] {
  background: transparent;
  color: var(--cpc-plum, #482757);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  font-size: 14px;
  text-align: left;
  padding-left: 10px;
}
.cpc-calc-disc-table td {
  padding: 8px 8px;
  border-bottom: 1px solid #EFE5F0;
  text-align: right;
  color: #2D2226;
  font-weight: 500;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.cpc-calc-disc-table tr.cpc-calc-disc-reg { background: #F2EBF4; }
.cpc-calc-disc-table tr.cpc-calc-disc-reg th,
.cpc-calc-disc-table tr.cpc-calc-disc-reg td { font-weight: 800; color: var(--cpc-plum, #482757); }
.cpc-calc-disc-table tbody tr:last-child td,
.cpc-calc-disc-table tbody tr:last-child th { border-bottom: none; }

/* ── Care Calculator: Results Panel ── */
.cpc-calc-results-box {
  border-color: var(--cpc-fuchsia, #7E2C65);
  border-width: 2px;
}

.cpc-calc-results-top {
  background: #FBF7E8 !important;
  border: 2px solid #C4D17A !important;
  box-shadow: none !important;
  overflow: visible !important;
  width: calc(50% - 8px);
  margin-left: auto;
  margin-right: auto;
  align-self: center;
}

@media (max-width: 768px) {
  .cpc-calc-results-top { width: 100%; }
}
.cpc-calc-results-top .cpc-calc-box-header {
  background: transparent !important;
  color: var(--cpc-plum, #482757) !important;
  border-bottom: 1px solid #C4D17A;
}
.cpc-calc-results-top .cpc-calc-box-header span {
  color: var(--cpc-plum, #482757) !important;
  font-weight: 800;
  font-size: 17px;
}

.cpc-calc-results-body {
  padding: 16px;
}

.cpc-calc-empty-text {
  color: #2D2226;
  font-style: italic;
  font-size: 16px;
  line-height: 1.6;
  text-align: center;
  padding: 12px 0;
  font-weight: 500;
}

.cpc-calc-svc-summary {
  font-size: 16px;
  font-weight: 700;
  color: #482757;
  padding: 0 0 8px;
  margin-bottom: 4px;
  text-align: left;
  border-bottom: 1px solid #C4D17A;
}

.cpc-calc-line-items {
  margin-bottom: 8px;
}

.cpc-calc-line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 5px 0;
  font-size: 14.5px;
  border-bottom: 1px solid rgba(196,209,122,0.4);
}

.cpc-calc-line:last-child {
  border-bottom: none;
}

.cpc-calc-line-label {
  color: #2D2226;
}

.cpc-calc-line-cost {
  font-weight: 700;
  color: var(--cpc-plum, #482757);
  white-space: nowrap;
  margin-left: 8px;
}

.cpc-calc-line-on {
  padding: 8px 0;
  margin-top: 4px;
  border-top: 1px solid #C4D17A;
  border-bottom: none;
  font-size: 15px;
  font-weight: 600;
}

.cpc-calc-stat {
  font-size: 15px;
  color: var(--cpc-plum, #482757);
  padding: 8px 0 4px;
  text-align: center;
  font-weight: 600;
}

.cpc-calc-totals {
  border-top: 2px solid #E8E0EC;
  padding: 10px 0 0;
  margin-top: 8px;
}

.cpc-calc-total-row {
  display: flex;
  justify-content: space-between;
  padding: 4px 0;
  font-size: 15px;
  color: #555;
}

.cpc-calc-total-row strong {
  color: var(--cpc-plum, #482757);
  font-size: 16px;
}

.cpc-calc-total-cost {
  padding-top: 4px;
}

.cpc-calc-total-cost span {
  font-weight: 600;
  color: #333;
}

.cpc-calc-total-cost strong {
  font-size: 20px;
  color: var(--cpc-fuchsia, #7E2C65);
}

.cpc-calc-download {
  display: block;
  width: 100%;
  margin: 12px 0 0;
  padding: 10px 16px;
  background: var(--cpc-fuchsia, #7E2C65);
  color: #FFF;
  border: none;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  transition: opacity 0.2s;
}

.cpc-calc-download:hover {
  opacity: 0.85;
}

.cpc-calc-premiums {
  padding: 12px 0 0;
  margin-top: 14px;
  font-size: 14px;
  color: #2D2226;
  line-height: 1.55;
  border-top: 1px solid #C4D17A;
  font-weight: 500;
}

/* =========================================================
   COST COMPARISON CALCULATOR
========================================================= */

#cpc-cost-comparison {
  max-width: 1100px;
  margin: 0 auto;
  font-family: 'foco', 'DM Sans', -apple-system, sans-serif;
}

.cpc-cmp-title {
  font-size: 28px !important;
  font-weight: 700 !important;
  color: var(--cpc-fuchsia, #7E2C65) !important;
  text-align: center !important;
  margin: 0 0 20px !important;
  padding: 0 !important;
}

/* Type toggle */
.cpc-cmp-toggle-row {
  display: flex;
  justify-content: center;
  gap: 0;
  margin-bottom: 20px;
}

.cpc-cmp-toggle-btn {
  padding: 10px 28px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  border: 2px solid var(--cpc-plum, #482757) !important;
  background: #FFF !important;
  color: var(--cpc-plum, #482757) !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
}

.cpc-cmp-toggle-btn:first-child {
  border-radius: 8px 0 0 8px !important;
}

.cpc-cmp-toggle-btn:last-child {
  border-radius: 0 8px 8px 0 !important;
  border-left: none !important;
}

.cpc-cmp-toggle-active {
  background: var(--cpc-plum, #482757) !important;
  color: #FFF !important;
}

/* Pickers */
.cpc-cmp-pickers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}

.cpc-cmp-picker-col {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.cpc-cmp-picker-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--cpc-plum, #482757);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cpc-cmp-select {
  width: 100% !important;
  height: 44px !important;
  padding: 0 12px !important;
  border: 1.5px solid #E0D6E6 !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--cpc-plum, #482757) !important;
  background: #FFF !important;
  cursor: pointer;
}

/* Services */
.cpc-cmp-services {
  background: #FFF;
  border: 1px solid #E8E0EC;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(72,39,87,0.06);
  margin-bottom: 20px;
}

.cpc-cmp-svc-header {
  background: var(--cpc-plum, #482757);
  color: #FFF;
  padding: 11px 16px;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cpc-cmp-svc-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-bottom: 1px solid #F0ECF1;
}

.cpc-cmp-svc-row:last-child {
  border-bottom: none;
}

.cpc-cmp-svc-name {
  flex: 1;
  font-size: 15px;
  font-weight: 500;
  color: #333;
}

.cpc-cmp-qty {
  width: 58px !important;
  padding: 5px 4px 5px 8px !important;
  border: 1.5px solid #E0D6E6 !important;
  border-radius: 5px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-align: center !important;
  color: var(--cpc-plum, #482757) !important;
  background: #FFF !important;
  -moz-appearance: textfield !important;
}

.cpc-cmp-qty::-webkit-inner-spin-button,
.cpc-cmp-qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.cpc-cmp-unit {
  font-size: 12px;
  color: #999;
  width: 60px;
  flex-shrink: 0;
}

/* Results grid */
.cpc-cmp-results {
  margin-top: 0;
}

.cpc-cmp-empty {
  padding: 24px;
  text-align: center;
  color: #999;
  font-size: 15px;
  font-style: italic;
  background: #FFF;
  border: 1px solid #E8E0EC;
  border-radius: 10px;
}

.cpc-cmp-table {
  background: #FFF;
  border: 1px solid #E8E0EC;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(72,39,87,0.06);
}

.cpc-cmp-row {
  display: grid;
  grid-template-columns: 1fr 70px 1fr 1fr;
  border-bottom: 1px solid #F0ECF1;
}

.cpc-cmp-row:last-child {
  border-bottom: none;
}

.cpc-cmp-row-header {
  background: var(--cpc-plum, #482757);
}

.cpc-cmp-row-header .cpc-cmp-cell {
  color: #FFF !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 11px 14px !important;
}

.cpc-cmp-cell {
  padding: 10px 14px;
  font-size: 14px;
  color: #333;
}

.cpc-cmp-cell-svc {
  font-weight: 500;
}

.cpc-cmp-cell-qty {
  text-align: center;
  color: #888;
  font-size: 13px;
}

.cpc-cmp-cell-prov {
  text-align: right;
  font-size: 13px;
}

.cpc-cmp-cheaper {
  background: #F0FAF0 !important;
  color: #2E7D32 !important;
  font-weight: 600 !important;
}

.cpc-cmp-row-total {
  background: #F9F5FB;
  border-top: 2px solid #E8E0EC;
}

.cpc-cmp-row-total .cpc-cmp-cell-svc {
  font-weight: 700;
  color: var(--cpc-plum, #482757);
}

.cpc-cmp-total {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: var(--cpc-fuchsia, #7E2C65) !important;
}

.cpc-cmp-savings {
  margin-top: 14px;
  padding: 14px 20px;
  background: #F0FAF0;
  border: 1px solid #C8E6C9;
  border-radius: 8px;
  font-size: 15px;
  color: #2E7D32;
  text-align: center;
}

.cpc-cmp-savings strong {
  color: #1B5E20;
}

.cpc-cmp-row-diff {
  background: #FFF8E1;
  border-top: 1px solid #F0ECF1;
}

.cpc-cmp-row-diff .cpc-cmp-cell-svc {
  font-weight: 700;
  color: var(--cpc-plum, #482757);
}

.cpc-cmp-diff-val {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--cpc-fuchsia, #7E2C65) !important;
  text-align: center !important;
}

/* =========================================================
   GOVERNMENT CARE CALCULATOR
========================================================= */

#cpc-gov-calculator {
  max-width: 1000px;
  margin: 0 auto;
  font-family: 'foco', 'DM Sans', -apple-system, sans-serif;
}

.cpc-gov-title {
  font-size: 28px !important;
  font-weight: 700 !important;
  color: var(--cpc-fuchsia, #7E2C65) !important;
  text-align: center !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
}

.cpc-gov-subtitle {
  text-align: center;
  font-size: 15px;
  color: #666;
  margin: 0 0 24px;
  line-height: 1.5;
}

.cpc-gov-form {
  margin-bottom: 24px;
  border: 2px solid var(--cpc-plum, #482757);
  border-radius: 12px;
  padding: 20px;
}

.cpc-gov-form-help {
  font-size: 15px;
  font-weight: 500;
  color: #2D2226;
  margin: 0 0 10px;
  text-align: center;
  font-style: italic;
}

.cpc-gov-fam-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.cpc-gov-fam-label {
  font-size: 15px;
  font-weight: 600;
  color: var(--cpc-plum, #482757);
}

.cpc-gov-select {
  height: 42px !important;
  padding: 0 12px !important;
  border: 1.5px solid #E0D6E6 !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  color: var(--cpc-plum, #482757) !important;
  background: #FFF !important;
}

.cpc-gov-exempt-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: #FFF8E1;
  border: 1px solid #FFE082;
  border-radius: 8px;
  margin-bottom: 16px;
  font-size: 14px;
  color: #5D4037;
  cursor: pointer;
}

.cpc-gov-exempt-row input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--cpc-fuchsia, #7E2C65) !important;
  flex-shrink: 0;
}

.cpc-gov-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.cpc-gov-col {
  background: #FFF;
  border: 1px solid #E8E0EC;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(72,39,87,0.06);
}

.cpc-gov-col-header {
  background: var(--cpc-plum, #482757);
  color: #FFF;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cpc-gov-input-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  border-bottom: 1px solid #F0ECF1;
  gap: 10px;
}

.cpc-gov-input-row:last-child {
  border-bottom: none;
}

.cpc-gov-input-label {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
  color: #333;
}

.cpc-gov-line-tag {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: #6B4E8B;
}

.cpc-gov-input {
  width: 120px !important;
  padding: 8px 10px !important;
  border: 1.5px solid #E0D6E6 !important;
  border-radius: 5px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-align: right !important;
  color: var(--cpc-plum, #482757) !important;
  background: #FFF !important;
  -moz-appearance: textfield !important;
}

.cpc-gov-input::-webkit-inner-spin-button,
.cpc-gov-input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.cpc-gov-earn-details {
  margin: 0;
  border-top: 1px solid #E8E0EC;
}
.cpc-gov-earn-header {
  background: #F5F0F8;
  padding: 10px 16px;
  font-size: 13px;
  font-weight: 700;
  color: var(--cpc-fuchsia, #7E2C65);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
}
.cpc-gov-earn-header::-webkit-details-marker { display: none; }
.cpc-gov-earn-header::before {
  content: '\25B6';
  font-size: 9px;
  color: var(--cpc-fuchsia, #7E2C65);
  transition: transform 0.15s;
}
.cpc-gov-earn-details[open] > .cpc-gov-earn-header::before {
  transform: rotate(90deg);
}

.cpc-gov-earn-row {
  padding: 8px 16px;
}

.cpc-gov-earn-row .cpc-gov-input-label {
  font-size: 13px;
}

/* Cost Estimate full width in article modal */
.article-modal-content .cpc-calc-results-top {
  width: 100% !important;
}
#cpc-gov-calculator .cpc-calc-results-top {
  width: 100% !important;
  margin-bottom: 20px !important;
}
#cpc-gov-calculator .cpc-calc-results-top .cpc-calc-box-header {
  border-bottom: none !important;
}

/* S50: unified wrapper — results + form render as one bordered block.
   Outer 2px plum border carries the visual; inner panels go borderless.
   The results-top keeps a subtle bottom divider (1px #C4D17A) marking the
   transition from the green results section to the white form section.
   Help text now renders inline with Family Size inside the form. */
.cpc-gov-calc-wrap {
  border: 2px solid var(--cpc-plum, #482757);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: 0 2px 8px rgba(72,39,87,0.08);
}
#cpc-gov-calculator .cpc-gov-calc-wrap .cpc-calc-results-top {
  border: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  box-shadow: none !important;
  border-bottom: 1px solid #C4D17A !important;
}
#cpc-gov-calculator .cpc-gov-calc-wrap .cpc-gov-form {
  border: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
}

/* Inline help beside Family Size (replaces the old standalone .cpc-gov-form-help paragraph) */
.cpc-gov-form-help-inline {
  font-size: 13px;
  color: #5A5261;
  font-style: italic;
  line-height: 1.4;
  margin-left: auto;
  text-align: right;
  flex: 1 1 220px;
  min-width: 220px;
}
@media (max-width: 640px) {
  .cpc-gov-form-help-inline {
    text-align: left;
    margin-left: 0;
    flex-basis: 100%;
  }
}

/* Results grid */
.cpc-gov-results-body {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
}

@media (max-width: 768px) {
  .cpc-gov-results-body { grid-template-columns: 1fr; }
}

.cpc-gov-result-card {
  padding: 18px 22px;
  border-right: 1px solid #C4D17A;
}

.cpc-gov-result-card:last-child {
  border-right: none;
}

.cpc-gov-card-header {
  font-size: 14px;
  font-weight: 700;
  color: #FFF;
  background: var(--cpc-plum, #482757);
  margin: -18px -22px 14px;
  padding: 10px 22px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cpc-gov-card-row {
  display: flex;
  justify-content: space-between;
  padding: 5px 0;
  font-size: 15px;
  color: #2D2226;
  gap: 8px;
  align-items: baseline;
}

.cpc-gov-card-row strong {
  color: var(--cpc-plum, #482757);
  font-weight: 700;
  white-space: nowrap;
}

.cpc-gov-card-total {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 2px solid #C4D17A;
}

.cpc-gov-card-total span {
  font-weight: 700;
  color: #2D2226;
}

.cpc-gov-card-total strong {
  font-size: 20px;
  color: var(--cpc-fuchsia, #7E2C65);
  font-weight: 800;
}

.cpc-gov-card-note {
  font-size: 14px;
  color: #2D2226;
  margin-top: 8px;
  font-weight: 500;
  font-style: italic;
}

.cpc-gov-exempt-note {
  padding: 14px 22px;
  background: #E8F5E9;
  font-size: 15px;
  font-weight: 500;
  color: #2E7D32;
}

.cpc-gov-header-row {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 16px !important;
}

.cpc-gov-exempt-inline {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #2E7D32 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  text-align: center;
  line-height: 1.4;
  background: #E8F5E9;
  padding: 8px 14px;
  border-radius: 8px;
  flex: 1;
}

.cpc-gov-disclaimer {
  padding: 14px 22px;
  font-size: 14px;
  color: #2D2226;
  line-height: 1.55;
  border-top: 1px solid #C4D17A;
  font-weight: 500;
}

/* ── Responsive ── */

/* =========================================================
   FACILITY ADD-ON COST ESTIMATOR
========================================================= */
#cpc-facility-calculator { max-width: 1100px; margin: 0 auto; font-family: 'foco', 'DM Sans', -apple-system, sans-serif; color: var(--cpc-text, #1F1A24); line-height: 1.6; }
#cpc-facility-calculator * { box-sizing: border-box; }
#cpc-facility-calculator .crg-loading, #cpc-facility-calculator .crg-error { text-align: center; padding: 48px 24px; color: #8A8A8A; font-size: 15px; }
.cpc-fc-page-title { font-size: 28px !important; font-weight: 700 !important; color: var(--cpc-fuchsia, #7E2C65) !important; margin: 0 0 6px !important; padding: 0 !important; text-align: center !important; }
.cpc-fc-page-desc { text-align: center; font-size: 14px; color: #888; margin: 0 auto 18px; max-width: 680px; line-height: 1.5; }

/* Full cost (room + add-ons) — inserted after guide stats */
.cpc-fc-full-cost { margin-bottom: 12px; }
.cpc-fc-fc-empty { text-align: center; padding: 12px; color: #AAA; font-size: 13px; font-style: italic; }
.cpc-fc-fc-grid { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 12px; max-width: 750px; margin: 0 auto; align-items: center; }

/* Average card subtle accent */
.cpc-fc-fc-wrap { background: #FBF7E8; padding: 20px 24px; border-radius: 10px; margin: 8px auto 16px; max-width: 800px; min-height: 220px; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; }

/* Guide title row — flex layout so About this Calculator sits right-aligned next to the title */
.crg-guide-title-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 0 0 14px; }
.crg-guide-title-row .crg-guide-title { margin: 0 !important; }
.crg-guide-title-row .cpc-fc-about { margin: 0; position: relative; }

/* About this Calculator — collapsible info panel */
.cpc-fc-about { max-width: 900px; margin: 0 auto 20px; }
.cpc-fc-about summary { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; background: #FBF7E8; color: var(--cpc-plum, #482757); font-size: 15px; font-weight: 700; border-radius: 999px; cursor: pointer; list-style: none; transition: background 0.15s; user-select: none; border: 1.5px solid #C4D17A; white-space: nowrap; }
.cpc-fc-about summary::-webkit-details-marker { display: none; }
.cpc-fc-about summary:hover { background: #E9F0C8; }
.cpc-fc-about[open] summary { background: #E9F0C8; margin-bottom: 10px; }
.cpc-fc-about-icon { font-size: 20px; color: #5A7A1F; line-height: 1; }
.cpc-fc-about-body { background: #FBF7E8; padding: 18px 24px; border-radius: 10px; }
.cpc-fc-about-body p { margin: 0 0 10px; font-size: 15px; line-height: 1.55; color: #2D2226; }
.cpc-fc-about-body p:last-child { margin-bottom: 0; }

/* When About is inside the title row, expanded body becomes a dropdown popover anchored right */
.crg-guide-title-row .cpc-fc-about[open] summary { margin-bottom: 0; }
.crg-guide-title-row .cpc-fc-about-body { position: absolute; top: calc(100% + 6px); right: 0; width: min(560px, 90vw); z-index: 20; box-shadow: 0 8px 24px rgba(72,39,87,0.18); border: 1px solid #C4D17A; }


.cpc-fc-fc-hint { text-align: center; border: 2px dashed #8BA52E; }
.cpc-fc-fc-hint-title { font-size: 20px; font-weight: 800; color: var(--cpc-plum, #482757); margin-bottom: 6px; }
.cpc-fc-fc-hint-desc { font-size: 16px; color: #2D2226; font-weight: 500; line-height: 1.45; max-width: 560px; margin: 0 auto; }
.cpc-fc-fc-hint-desc strong { color: var(--cpc-fuchsia, #7E2C65); font-weight: 700; }
.cpc-fc-fc-col-avg { border-color: var(--cpc-fuchsia, #7E2C65); border-width: 2px; }
.cpc-fc-fc-col-low { border-color: #2E7D32; border-width: 2px; }
.cpc-fc-fc-col-low .cpc-fc-fc-total { border-top-color: #2E7D32; color: #2E7D32; }
.cpc-fc-fc-title { text-align: center; font-size: 20px; font-weight: 800; color: var(--cpc-plum, #482757); margin-bottom: 14px; letter-spacing: 0.02em; }

/* Jump to add-ons button (third column) */
.cpc-fc-fc-jump { display: flex; flex-direction: column; align-items: center; gap: 8px; justify-content: center; }
.cpc-fc-jump-btn { display: inline-flex; align-items: center; gap: 4px; padding: 10px 18px; background: var(--cpc-fuchsia, #7E2C65); color: #FFF !important; border-radius: 8px; font-size: 13px; font-weight: 600; text-decoration: none !important; white-space: nowrap; transition: opacity 0.15s; }
.cpc-fc-jump-btn:hover { opacity: 0.85; }
.cpc-fc-jump-btn span { font-size: 15px; }
.cpc-fc-pdf-btn { background: #FFF !important; color: var(--cpc-fuchsia, #7E2C65) !important; border: 2px solid var(--cpc-fuchsia, #7E2C65); }
.cpc-fc-pdf-btn:hover { background: #F9F5FB !important; opacity: 1; }

/* Title row — title left, back button right */
.cpc-fc-title-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.cpc-fc-title-row .cpc-fc-page-title { margin: 0 !important; }
.cpc-fc-back-btn span { font-size: 15px; }
.cpc-fc-fc-col { text-align: center; padding: 12px; background: #FFF; border: 1px solid #E8E0EC; border-radius: 8px; box-shadow: 0 2px 6px rgba(72,39,87,0.06); }
.cpc-fc-fc-colhdr { font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cpc-plum, #482757); margin-bottom: 4px; }
.cpc-fc-fc-room { font-size: 18px; font-weight: 700; color: var(--cpc-plum, #482757); }
.cpc-fc-fc-add { font-size: 12px; color: var(--cpc-fuchsia, #7E2C65); font-weight: 500; margin: 2px 0; }
.cpc-fc-fc-total { font-size: 22px; font-weight: 800; color: var(--cpc-fuchsia, #7E2C65); border-top: 2px solid #E8E0EC; padding-top: 6px; margin-top: 4px; }
.cpc-fc-fc-total span { font-size: 12px; font-weight: 500; color: #999; }

/* Compact add-ons bar */
.cpc-fc-summary-compact { display: flex; align-items: center; gap: 10px; padding: 10px 18px; margin-bottom: 14px; background: #FFF; border: 1px solid #E8E0EC; border-radius: 8px; box-shadow: 0 2px 6px rgba(72,39,87,0.06); flex-wrap: wrap; }
.cpc-fc-sum-label { font-size: 14px; font-weight: 600; color: var(--cpc-plum, #482757); }
.cpc-fc-sum-val { font-size: 20px; font-weight: 800; color: var(--cpc-fuchsia, #7E2C65); }
.cpc-fc-sum-note { font-size: 13px; color: #AAA; font-style: italic; }

/* Task grid */
.cpc-fc-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
.cpc-fc-col { display: flex; flex-direction: column; gap: 14px; }
.cpc-fc-section { background: #FFF; border: 1px solid #E8E0EC; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 8px rgba(72,39,87,0.06); }
.cpc-fc-section-header { background: var(--cpc-plum, #482757); color: #FFF; padding: 10px 16px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.cpc-fc-section-desc { padding: 8px 16px 6px; font-size: 12px; color: #888; line-height: 1.4; border-bottom: 1px solid #F0ECF1; }
.cpc-fc-task { display: flex !important; align-items: center; gap: 8px; padding: 9px 14px; border-bottom: 1px solid #F0ECF1; cursor: pointer; transition: background 0.15s; margin: 0 !important; }
.cpc-fc-task:last-child { border-bottom: none; }
.cpc-fc-task:hover { background: #F9F5FB; }
.cpc-fc-task input[type="checkbox"], .cpc-fc-task input[type="radio"] { width: 16px !important; height: 16px !important; accent-color: var(--cpc-fuchsia, #7E2C65) !important; cursor: pointer !important; flex-shrink: 0; margin: 0 !important; }
.cpc-fc-task-name { flex: 1; font-size: 14px; font-weight: 500; color: #333; }
.cpc-fc-task-note { display: block; font-size: 11px; font-weight: 400; color: #999; font-style: italic; margin-top: 1px; }
.cpc-fc-task-badge { font-size: 11px; font-weight: 600; color: var(--cpc-fuchsia, #7E2C65); background: #F5F0F8; padding: 2px 8px; border-radius: 99px; white-space: nowrap; flex-shrink: 0; }
.cpc-fc-task-none .cpc-fc-task-name { font-style: italic; }
.cpc-fc-qty { width: 48px !important; padding: 4px 3px 4px 7px !important; border: 1.5px solid #E0D6E6 !important; border-radius: 5px !important; font-size: 13px !important; font-weight: 600 !important; text-align: center !important; color: var(--cpc-plum, #482757) !important; background: #FFF !important; -moz-appearance: textfield !important; }
.cpc-fc-qty::-webkit-inner-spin-button, .cpc-fc-qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.cpc-fc-qty-label { font-size: 11px; color: #999; flex-shrink: 0; white-space: nowrap; }

/* Care level */
.cpc-fc-care-level-form { padding: 14px; display: grid; grid-template-columns: auto 1fr; gap: 8px 10px; align-items: center; }
.cpc-fc-cl-label { font-size: 13px; font-weight: 600; color: var(--cpc-plum, #482757); cursor: default !important; }
.cpc-fc-cl-select { width: 100% !important; padding: 7px 10px !important; border: 1.5px solid #E0D6E6 !important; border-radius: 6px !important; font-size: 13px !important; font-weight: 500 !important; color: var(--cpc-text, #333) !important; background: #FFF !important; cursor: pointer !important; appearance: auto !important; }
.cpc-fc-cl-select:focus { border-color: var(--cpc-fuchsia, #7E2C65) !important; outline: none !important; }
.cpc-fc-cl-select:disabled { opacity: 0.5; cursor: not-allowed !important; }

/* Notes */
.cpc-fc-notes { margin-top: 18px; padding: 14px 18px; background: #F9F5FB; border-radius: 8px; border: 1px solid #E8E0EC; }
.cpc-fc-notes-title { font-size: 14px; font-weight: 700; color: var(--cpc-plum, #482757); margin-bottom: 6px; }
.cpc-fc-notes p { font-size: 12px; color: #888; margin: 0 0 4px; line-height: 1.4; padding-left: 12px; position: relative; }
.cpc-fc-notes p::before { content: '\2022'; position: absolute; left: 0; color: var(--cpc-fuchsia, #7E2C65); }
.cpc-fc-notes p:last-child { margin-bottom: 0; }

/* Utility */
.crg-col-narrow { width: 48px; max-width: 48px; text-align: center; padding-left: 8px !important; padding-right: 8px !important; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table tbody td.crg-col-narrow:first-child { padding-left: 8px !important; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table th.crg-col-rate,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table td.crg-col-rate {
  min-width: 96px;
  width: 96px;
  text-align: right !important;
  font-variant-numeric: tabular-nums;
  padding-left: 10px !important;
  padding-right: 18px !important;
  white-space: nowrap;
}

@media (max-width: 768px) {
  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-scroll {
    display: none;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-cards {
    display: block;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-card {
    padding: 16px 18px;
    border-bottom: 1px solid #F0ECF1;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-card:last-child {
    border-bottom: none;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-card .crg-pn {
    font-size: 15px;
    margin-bottom: 6px;
    display: block;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-card-field {
    margin-bottom: 6px;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-card-field:last-child {
    margin-bottom: 0;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-card-regions {
    margin-bottom: 8px;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-card-services {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-card-svc {
    padding: 4px 11px;
    background: #EDF7EE;
    color: #2E7D32;
    font-size: 13px;
    font-weight: 600;
    border-radius: 99px;
    display: inline-block;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-filter-group {
    max-width: none;
    flex: 1 1 100%;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-tally {
    padding: 16px 16px;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-tally-layout {
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-tally-title {
    flex: none;
    font-size: 17px;
    white-space: normal;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid {
    width: 100%;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid-row {
    grid-template-columns: 100px repeat(4, 1fr);
    gap: 4px;
    justify-content: stretch;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-bubble {
    width: 100%;
    font-size: 12px;
    padding: 4px 0;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-bubble {
    padding: 4px 8px;
    font-size: 13px;
    min-width: 50px;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-grid-label {
    font-size: 11px;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-card-text {
    font-size: 13px;
    color: #666;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-meta-right {
    margin-left: 0;
    text-align: left;
    width: 100%;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-guide-title {
    font-size: 22px !important;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-card {
    min-width: 100px;
    padding: 10px 10px;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-range {
    font-size: 14px;
  }

  :is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-avg {
    font-size: 17px;
  }

  #cpc-rates-table .cpc-rt td {
    padding: 12px 16px !important;
    font-size: 15px !important;
  }

  #cpc-rates-table .cpc-rt-rate strong {
    font-size: 18px !important;
  }

  .cpc-calc-layout {
    grid-template-columns: 1fr;
  }

  .cpc-calc-side {
    position: static;
  }

  .cpc-calc-grid-cell input[type="number"] {
    padding: 6px 2px !important;
    font-size: 13px !important;
  }

  .cpc-cmp-pickers {
    grid-template-columns: 1fr;
  }

  .cpc-cmp-row {
    grid-template-columns: 1fr;
    gap: 2px;
    padding: 8px 0;
  }

  .cpc-cmp-row-header {
    display: none;
  }

  .cpc-cmp-cell-prov {
    text-align: left;
    padding: 4px 14px;
  }

  .cpc-cmp-cell-qty {
    text-align: left;
    padding: 2px 14px;
  }

  .cpc-cmp-title {
    font-size: 22px !important;
  }

  .cpc-cmp-toggle-btn {
    padding: 8px 18px !important;
    font-size: 14px !important;
  }

  .cpc-gov-cols {
    grid-template-columns: 1fr;
  }

  .cpc-gov-results-body {
    grid-template-columns: 1fr;
  }

  .cpc-gov-result-card {
    border-right: none;
    border-bottom: 1px solid #F0ECF1;
  }

  .cpc-gov-title {
    font-size: 22px !important;
  }

  .cpc-fc-sections { grid-template-columns: 1fr; }
  .cpc-fc-fc-grid { grid-template-columns: 1fr; gap: 8px; }
  .cpc-fc-fc-jump { justify-content: center; }
  .cpc-fc-title-row { flex-wrap: wrap; }
  .cpc-fc-page-title { font-size: 22px !important; }
  .cpc-fc-care-level-form { grid-template-columns: 1fr; gap: 6px 0; }
  .cpc-fc-summary-compact { flex-direction: column; align-items: flex-start; gap: 4px; }
}

/* ── Care Calculator: Reasons for Support (S52) ── */
.cpc-calc-reasons-box {
  /* inherits from .cpc-calc-box */
}
.cpc-calc-reasons-live {
  font-size: 12px;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.18);
  color: #FFF;
  padding: 4px 10px;
  border-radius: 999px;
  letter-spacing: 0.02em;
  text-transform: none;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.cpc-calc-reasons-body {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 0;
  padding: 6px 16px 14px 14px;
  position: relative;
}
.cpc-calc-reasons-gradient {
  position: relative;
  width: 12px;
  border-radius: 6px;
  background: linear-gradient(180deg, #E9F0C8 0%, #C4D17A 38%, #7E2C65 72%, #482757 100%);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
  align-self: stretch;
}
.cpc-calc-reasons-marker {
  position: absolute;
  left: 14px;
  top: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 0 6px 9px;
  border-color: transparent transparent transparent var(--cpc-plum, #482757);
  filter: drop-shadow(0 1px 2px rgba(72, 39, 87, 0.35));
  opacity: 0;
  transition: top 0.4s cubic-bezier(.22, .61, .36, 1), opacity 0.25s ease;
  pointer-events: none;
  z-index: 2;
}
.cpc-calc-reasons-list {
  list-style: none;
  margin: 0;
  padding: 0 0 0 6px;
  display: flex;
  flex-direction: column;
}
.cpc-calc-reasons-row {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 14px;
  align-items: center;
  padding: 9px 10px 9px 12px;
  border-bottom: 1px solid #F3EEF5;
  border-left: 3px solid transparent;
  border-radius: 0 6px 6px 0;
  opacity: 0.55;
  transition: background 0.3s ease, opacity 0.3s ease, border-color 0.3s ease, transform 0.25s ease;
}
.cpc-calc-reasons-row:last-child {
  border-bottom: none;
}
.cpc-calc-reasons-row.is-match {
  opacity: 1;
  background: linear-gradient(90deg, #F7FAE8 0%, #FFFFFF 82%);
  border-left-color: var(--cpc-plum, #482757);
  transform: translateX(1px);
}
.cpc-calc-reasons-hrs {
  font-size: 16px;
  font-weight: 800;
  color: var(--cpc-plum, #482757);
  text-align: right;
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.cpc-calc-reasons-row[data-band="ltd"] .cpc-calc-reasons-hrs {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6A5370;
}
.cpc-calc-reasons-row.is-match .cpc-calc-reasons-hrs {
  color: var(--cpc-fuchsia, #7E2C65);
  font-size: 18px;
}
.cpc-calc-reasons-row.is-match[data-band="ltd"] .cpc-calc-reasons-hrs {
  color: var(--cpc-fuchsia, #7E2C65);
  font-size: 12px;
}
.cpc-calc-reasons-desc {
  font-size: 14px;
  color: #2D2226;
  line-height: 1.45;
}
.cpc-calc-reasons-row.is-match .cpc-calc-reasons-desc {
  color: #1A1014;
  font-weight: 500;
}

@media (max-width: 700px) {
  .cpc-calc-reasons-body {
    grid-template-columns: 14px 1fr;
    padding: 4px 10px 10px 8px;
  }
  .cpc-calc-reasons-gradient {
    width: 8px;
  }
  .cpc-calc-reasons-marker {
    left: 9px;
    border-width: 5px 0 5px 7px;
  }
  .cpc-calc-reasons-list {
    padding-left: 4px;
  }
  .cpc-calc-reasons-row {
    grid-template-columns: 60px 1fr;
    gap: 10px;
    padding: 8px 8px 8px 10px;
  }
  .cpc-calc-reasons-hrs {
    font-size: 15px;
  }
  .cpc-calc-reasons-row.is-match .cpc-calc-reasons-hrs {
    font-size: 16px;
  }
  .cpc-calc-reasons-desc {
    font-size: 13px;
    line-height: 1.4;
  }
  .cpc-calc-reasons-live {
    font-size: 11px;
    padding: 3px 8px;
  }
}

/* ── Care Calculator: Unified combined look (S52b) ── */
/* Remove gap and flatten individual card chrome; the outer layout becomes ONE card */
.cpc-calc-layout-stack.cpc-calc-unified {
  gap: 0;
  background: #FFF;
  border: 1px solid #D8CCDD;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 14px rgba(72, 39, 87, 0.09);
}
.cpc-calc-unified .cpc-calc-box {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

/* Thin dividers between top-level sections inside the unified card */
.cpc-calc-unified > * + * {
  border-top: 1px solid #E8E0EC;
}

/* Intro help text at top — flush, no card chrome */
.cpc-calc-unified > .cpc-gov-form-help {
  margin: 0;
  padding: 14px 18px 2px;
  font-size: 15px;
  color: #4A3D50;
  background: #FFF;
}

/* Cost/Typical Care row — side-by-side with a vertical divider, no gap */
.cpc-calc-unified .cpc-calc-cost-row {
  gap: 0;
  align-items: stretch;
}
.cpc-calc-unified .cpc-calc-cost-row > .cpc-calc-box + .cpc-calc-box {
  border-left: 1px solid #E8E0EC;
}

/* Overnight / Live-In row — same treatment */
.cpc-calc-unified > .cpc-calc-row-2 {
  gap: 0;
  align-items: stretch;
}
.cpc-calc-unified > .cpc-calc-row-2 > .cpc-calc-box + .cpc-calc-box {
  border-left: 1px solid #E8E0EC;
}

/* Cost Estimate box inside unified: keep the lime tint on body, drop its own border */
.cpc-calc-unified .cpc-calc-results-box {
  border: none !important;
  border-width: 0 !important;
  background: #F7FAE8;
}
.cpc-calc-unified .cpc-calc-results-box .cpc-calc-box-header {
  background: var(--cpc-plum, #482757) !important;
  color: #FFF !important;
  border-bottom: none;
}
.cpc-calc-unified .cpc-calc-results-box .cpc-calc-box-header span,
.cpc-calc-unified .cpc-calc-results-box .cpc-calc-box-header summary {
  color: #FFF !important;
}
.cpc-calc-unified .cpc-calc-results-body {
  padding: 14px 16px;
  background: transparent;
}
.cpc-calc-unified .cpc-calc-breakdown {
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid #D8E396;
  border-radius: 8px;
  padding: 10px 14px;
}

/* Rates section inside unified — no extra top border since the divider is handled */
.cpc-calc-unified .cpc-calc-rates-box {
  background: #FBFAFC;
}
.cpc-calc-unified .cpc-calc-rates-box .cpc-calc-rates-grid {
  padding: 12px 16px 16px;
}

/* Mobile: stack side-by-side rows vertically, swap vertical divider for horizontal */
@media (max-width: 768px) {
  .cpc-calc-unified .cpc-calc-cost-row > .cpc-calc-box + .cpc-calc-box,
  .cpc-calc-unified > .cpc-calc-row-2 > .cpc-calc-box + .cpc-calc-box {
    border-left: none;
    border-top: 1px solid #E8E0EC;
  }
}

/* ── Weekly Schedule header: Reset on left, About on right (S52c) ── */
.cpc-calc-sched-hdr-left {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.cpc-calc-unified .cpc-calc-box-header-flex {
  flex-wrap: nowrap;
}
@media (max-width: 540px) {
  .cpc-calc-unified .cpc-calc-box-header-flex {
    flex-wrap: wrap;
    gap: 8px;
  }
  .cpc-calc-sched-hdr-left {
    gap: 10px;
  }
}

/* ── Example Care Costs card (S52c) ── */
.cpc-calc-examples-card {
  background: #FFF;
  border: 1px solid #D8CCDD;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 14px rgba(72, 39, 87, 0.09);
  margin-top: 20px;
}
.cpc-calc-examples-card > .cpc-calc-box-header {
  background: var(--cpc-plum, #482757);
  color: #FFF;
  padding: 11px 16px;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cpc-calc-examples-subtitle {
  margin: 0;
  padding: 11px 18px;
  background: #F5EAEE;
  color: #4A2A3D;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  border-bottom: 1px solid #E8D9DD;
}
.cpc-calc-examples-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.cpc-calc-examples-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  table-layout: auto;
}
.cpc-calc-examples-table thead th {
  background: var(--cpc-plum, #482757);
  color: #FFF;
  text-align: left;
  padding: 10px 14px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.cpc-calc-examples-table thead th.cpc-calc-ex-col-hrs,
.cpc-calc-examples-table thead th.cpc-calc-ex-col-amt {
  text-align: right;
}
.cpc-calc-examples-table tbody td {
  padding: 11px 14px;
  border-bottom: 1px solid #F0ECF1;
  color: #2D2226;
  vertical-align: middle;
  line-height: 1.4;
}
.cpc-calc-examples-table tbody tr:last-child td {
  border-bottom: none;
}
.cpc-calc-examples-table tbody tr:nth-child(even) td {
  background: #FBF9FC;
}
.cpc-calc-ex-sched {
  font-weight: 600;
  color: var(--cpc-plum, #482757);
  min-width: 220px;
}
.cpc-calc-ex-hrs {
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: #6A5370;
  font-weight: 500;
  white-space: nowrap;
}
.cpc-calc-ex-amt {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--cpc-fuchsia, #7E2C65);
  white-space: nowrap;
}
.cpc-calc-ex-amt-month {
  color: var(--cpc-plum, #482757);
}
.cpc-calc-ex-use {
  color: #4A3D50;
  font-style: italic;
  min-width: 240px;
}
.cpc-calc-examples-note {
  margin: 0;
  padding: 11px 18px 14px;
  font-size: 12px;
  color: #6A5370;
  line-height: 1.5;
  background: #FDFBFD;
  border-top: 1px solid #F0ECF1;
}

@media (max-width: 700px) {
  .cpc-calc-examples-table {
    font-size: 13px;
  }
  .cpc-calc-examples-table thead th,
  .cpc-calc-examples-table tbody td {
    padding: 9px 10px;
  }
  .cpc-calc-ex-sched { min-width: 160px; }
  .cpc-calc-ex-use { min-width: 180px; font-size: 12px; }
  .cpc-calc-examples-subtitle,
  .cpc-calc-examples-note {
    padding-left: 12px;
    padding-right: 12px;
    font-size: 13px;
  }
}

/* ── Overnight / Live-In: compact horizontal pills (S52e) ── */
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-grid-help {
  padding: 8px 14px 0;
  font-size: 13px;
  font-weight: 500;
  color: #6B4E8B;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 14px 14px;
  align-items: center;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-opt {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 13px;
  background: #FFF;
  border: 1.5px solid #E8E0EC;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.2s ease;
  flex: 0 0 auto;
  margin: 0;
  min-height: 38px;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-opt:hover {
  border-color: var(--cpc-fuchsia, #7E2C65);
  background: #FDFBFD;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-opt:has(input:checked) {
  background: #FBF7E8;
  border-color: var(--cpc-fuchsia, #7E2C65);
  box-shadow: 0 0 0 2px rgba(126, 44, 101, 0.12);
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-opt input[type="radio"] {
  margin: 0;
  flex-shrink: 0;
  accent-color: var(--cpc-fuchsia, #7E2C65);
  width: 14px;
  height: 14px;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-info strong {
  font-size: 13px;
  font-weight: 700;
  color: #2D2226;
  line-height: 1.2;
  white-space: nowrap;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-info small {
  display: none;
  font-size: 11.5px;
  color: #6B4E8B;
  line-height: 1.3;
  font-weight: 500;
  margin-top: 2px;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-opt:has(input:checked) .cpc-calc-on-info small {
  display: block;
  white-space: normal;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-freq {
  display: none;
  width: 46px;
  padding: 3px 6px;
  font-size: 13px;
  font-weight: 600;
  border: 1px solid #C4D17A;
  border-radius: 5px;
  background: #FFF;
  color: var(--cpc-plum, #482757);
  text-align: center;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-freq-label {
  display: none;
  font-size: 11px;
  color: #6B4E8B;
  font-weight: 600;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-opt:has(input:checked) .cpc-calc-on-freq {
  display: inline-block;
}
.cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-opt:has(input:checked) .cpc-calc-on-freq-label {
  display: inline;
}

@media (max-width: 540px) {
  .cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-group {
    padding: 8px 10px 12px;
    gap: 6px;
  }
  .cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-opt {
    padding: 6px 10px;
    min-height: 34px;
  }
  .cpc-calc-unified .cpc-calc-on-box .cpc-calc-on-info strong {
    font-size: 12.5px;
  }
}


/* ════════════════════════════════════════════════════════════════════════
   S56 — BC CALCULATORS (wage-theft + true-pay)
   Scoped under .bc-calc-wagetheft and .bc-calc-truepay wrapper classes.
   Originally /assets/css/bc-calculators.css — folded into resource-guides.css
   when those calculators were refactored to use the data-attribute trigger
   pattern (data-bc-wage-theft, data-bc-true-pay) like all other calculators.
   ════════════════════════════════════════════════════════════════════════ */

/*
 * BC Calculators — Shared stylesheet
 * Scoped to .bc-calc-wagetheft and .bc-calc-truepay wrapper classes.
 * Auto-generated from standalone HTML via transform-site-pattern.py
 */

/* ═══ BC Wage Theft Calculator ═══════════════════════════════════════ */

  .bc-calc-wagetheft {
    --plum: #482757;
    --plum-light: #6B4E8B;
    --plum-pale: #F5EFF2;
    --fuchsia: #7E2C65;
    --fuchsia-pale: #FDFAFC;
    --lime-pale: #FBF7E8;
    --lime-medium: #C4D17A;
    --bg: #FFFFFF;
    --card: #FFFFFF;
    --ink: #2D2226;
    --ink-soft: #5A5261;
    --ink-mute: #6B4E8B;
    --border: #E4D5DF;
    --border-soft: #F0ECF1;
    --good: #6B8E1E;
    --bad: #7E2C65;
    --warn: #7E2C65;
  }
  .bc-calc-wagetheft * { box-sizing: border-box; }
  .bc-calc-wagetheft {
    margin: 0;
    font-family: 'foco', 'DM Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--bg);
    color: var(--ink);
    line-height: 1.55;
  }
  .bc-calc-wagetheft .wrap { max-width: 1200px; margin: 0 auto; padding: 24px 20px 80px; }
  .bc-calc-wagetheft h1 {
    font-size: clamp(1.6rem, 4vw, 2.2rem);
    color: var(--plum);
    margin: 0 0 8px;
    line-height: 1.2;
  }
  .bc-calc-wagetheft .about-row {
    display: flex;
    justify-content: flex-end;
    margin: 0 0 12px;
  }
  .bc-calc-wagetheft .info-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px 7px 10px;
    background: #eef3d2;
    border: 1px solid #c5d92d;
    border-radius: 22px;
    color: #5d6f1c;
    font: inherit;
    font-size: 0.92rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
  }
  .bc-calc-wagetheft .info-btn:hover { background: #e6ecc2; border-color: #a8ba20; }
  .bc-calc-wagetheft .info-btn:focus-visible { outline: 2px solid #6d8020; outline-offset: 2px; }
  .bc-calc-wagetheft .info-btn svg { flex: 0 0 auto; }

  .bc-calc-wagetheft .about-dialog {
    max-width: 640px;
    width: calc(100% - 32px);
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--card);
    color: var(--ink);
    box-shadow: 0 20px 60px rgba(72, 39, 87, 0.25);
  }
  .bc-calc-wagetheft .about-dialog::backdrop {
    background: rgba(42, 42, 42, 0.45);
    backdrop-filter: blur(2px);
  }
  .bc-calc-wagetheft .about-dialog .dialog-body { padding: 26px 28px 22px; }
  .bc-calc-wagetheft .about-dialog h2 {
    margin: 0 0 14px;
    color: var(--plum);
    font-size: 1.25rem;
    padding-right: 32px;
  }
  .bc-calc-wagetheft .about-dialog h3 {
    margin: 16px 0 6px;
    color: var(--plum-light);
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .bc-calc-wagetheft .about-dialog p {
    margin: 0 0 10px;
    color: var(--ink-soft);
    font-size: 0.92rem;
    line-height: 1.55;
  }
  .bc-calc-wagetheft .about-dialog a { color: var(--plum); }
  .bc-calc-wagetheft .about-dialog .close-btn {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    font-size: 20px;
    line-height: 1;
    background: transparent;
    border: none;
    border-radius: 50%;
    color: var(--ink-soft);
    cursor: pointer;
  }
  .bc-calc-wagetheft .about-dialog .close-btn:hover { background: var(--border-soft); color: var(--ink); }
  .bc-calc-wagetheft .about-dialog .intro {
    background: var(--plum-pale);
    border-left: 4px solid var(--plum);
    padding: 12px 14px;
    border-radius: 4px;
    margin-bottom: 14px;
    color: var(--ink-soft);
    font-size: 0.92rem;
  }
  .bc-calc-wagetheft .about-dialog .intro strong { color: var(--plum); }
  /* Two-panel layout */
  .bc-calc-wagetheft .layout {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 24px;
    align-items: start;
  }
  @media (max-width: 980px) {
    .bc-calc-wagetheft .layout { grid-template-columns: 1fr; }
  }

  /* Input panel */
  .bc-calc-wagetheft .inputs {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 20px;
    position: sticky;
    top: 20px;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
  }
  @media (max-width: 980px) {
    .bc-calc-wagetheft .inputs { position: static; max-height: none; }
  }
  .bc-calc-wagetheft .inputs h2 {
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--plum);
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-soft);
  }
  .bc-calc-wagetheft .field { margin-bottom: 14px; }
  .bc-calc-wagetheft .field label {
    display: block;
    font-size: 0.86rem;
    color: var(--ink-soft);
    margin-bottom: 4px;
    font-weight: 500;
  }
  .bc-calc-wagetheft .field-row {
    display: flex;
    gap: 10px;
    align-items: center;
  }
  .bc-calc-wagetheft .field-row input[type="range"] { flex: 1; accent-color: var(--plum); min-width: 0; }
  .bc-calc-wagetheft .field-row .num {
    width: 80px;
    padding: 6px 8px;
    border: 1px solid var(--border);
    border-radius: 5px;
    font: inherit;
    font-size: 0.92rem;
    text-align: right;
  }
  .bc-calc-wagetheft .field-row .num:focus { outline: 2px solid var(--plum); outline-offset: -1px; }
  .bc-calc-wagetheft .field-row .suffix {
    color: var(--ink-mute);
    font-size: 0.85rem;
    min-width: 24px;
  }
  .bc-calc-wagetheft .help {
    font-size: 0.78rem;
    color: var(--ink-mute);
    margin-top: 3px;
    line-height: 1.4;
  }
  .bc-calc-wagetheft .section-break {
    margin: 18px 0 12px;
    padding-top: 14px;
    border-top: 1px solid var(--border-soft);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--plum-light);
    font-weight: 600;
  }

  /* Wage-pair row: employer wage & contractor wage side by side */
  .bc-calc-wagetheft .wage-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .bc-calc-wagetheft .wage-pair .wage-col {
    padding: 10px;
    border-radius: 6px;
  }
  .bc-calc-wagetheft .wage-pair .wage-col.emp {
    background: var(--lime-pale);
    border: 1px solid #bee4dc;
  }
  .bc-calc-wagetheft .wage-pair .wage-col.con {
    background: var(--fuchsia-pale);
    border: 1px solid #f4bcab;
  }
  .bc-calc-wagetheft .wage-pair .wage-col label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
    margin-bottom: 4px;
  }
  .bc-calc-wagetheft .wage-pair .wage-col.emp label { color: var(--plum); }
  .bc-calc-wagetheft .wage-pair .wage-col.con label { color: var(--bad); }
  .bc-calc-wagetheft .wage-pair input[type="number"] {
    width: 100%;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: 4px;
    font: inherit;
    font-size: 1.1rem;
    font-weight: 600;
    text-align: center;
    background: white;
  }

  /* TD1 select */
  .bc-calc-wagetheft .td1-select {
    width: 100%;
    padding: 7px 8px;
    border: 1px solid var(--border);
    border-radius: 5px;
    font: inherit;
    font-size: 0.9rem;
    background: white;
    margin-bottom: 4px;
  }

  /* CP preset buttons */
  .bc-calc-wagetheft .preset-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 6px;
    margin-top: 4px;
  }
  .bc-calc-wagetheft .preset-btn {
    padding: 8px 10px;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--plum);
    background: white;
    border: 1px solid var(--plum-light);
    border-radius: 5px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
  }
  .bc-calc-wagetheft .preset-btn:hover {
    background: var(--plum-pale);
    color: var(--plum);
  }
  .bc-calc-wagetheft .preset-btn.active {
    background: var(--plum);
    color: white;
    border-color: var(--plum);
  }
  .bc-calc-wagetheft .preset-btn.active:hover {
    background: var(--plum);
    color: white;
  }

  /* Results area */
  .bc-calc-wagetheft .results { min-width: 0; }

  /* Big headline cards */
  .bc-calc-wagetheft .loss-card {
    background: linear-gradient(135deg, #fff8f6 0%, #fef1ec 100%);
    border: 1px solid var(--fuchsia);
    border-radius: 12px;
    padding: 22px 24px;
    margin-bottom: 14px;
  }
  .bc-calc-wagetheft .loss-card .eyebrow {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--bad);
    font-weight: 600;
    margin-bottom: 6px;
  }
  .bc-calc-wagetheft .loss-card h3 {
    margin: 0 0 8px;
    font-size: clamp(1.15rem, 2.8vw, 1.35rem);
    color: var(--plum);
    line-height: 1.3;
  }
  .bc-calc-wagetheft .loss-card .big-number {
    font-size: clamp(1.9rem, 5vw, 2.6rem);
    font-weight: 700;
    color: var(--bad);
    line-height: 1.1;
    margin: 8px 0 4px;
    font-variant-numeric: tabular-nums;
  }
  .bc-calc-wagetheft .loss-card .loss-sub {
    color: var(--ink-soft);
    font-size: 0.95rem;
  }

  .bc-calc-wagetheft .equiv-card {
    background: linear-gradient(135deg, var(--lime-pale) 0%, #E4ECD4 100%);
    border: 1px solid var(--plum);
    border-radius: 12px;
    padding: 22px 24px;
    margin-bottom: 22px;
  }
  .bc-calc-wagetheft .equiv-card .eyebrow {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--good);
    font-weight: 600;
    margin-bottom: 6px;
  }
  .bc-calc-wagetheft .equiv-card h3 {
    margin: 0 0 8px;
    font-size: clamp(1.1rem, 2.6vw, 1.25rem);
    color: var(--plum);
    line-height: 1.3;
  }
  .bc-calc-wagetheft .equiv-card .big-number {
    font-size: clamp(1.9rem, 5vw, 2.6rem);
    font-weight: 700;
    color: var(--good);
    line-height: 1.1;
    margin: 8px 0 4px;
    font-variant-numeric: tabular-nums;
  }
  .bc-calc-wagetheft .equiv-card .equiv-sub {
    color: var(--ink-soft);
    font-size: 0.95rem;
  }
  /* S56c — secondary "reverse direction" line within the equiv-card. Visually
     subordinate (smaller, top-bordered) so it reads as supporting info to the
     primary break-even-rate result. */
  .bc-calc-wagetheft .equiv-card .equiv-reverse {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px dashed var(--border);
  }
  .bc-calc-wagetheft .equiv-card .equiv-reverse-line {
    color: var(--ink-soft);
    font-size: 0.88rem;
    line-height: 1.45;
  }
  .bc-calc-wagetheft .equiv-card .equiv-reverse-line strong {
    color: var(--ink);
    font-variant-numeric: tabular-nums;
  }

  /* 2-column scenario grid */
  .bc-calc-wagetheft .grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 18px;
  }
  @media (max-width: 600px) { .bc-calc-wagetheft .grid { grid-template-columns: 1fr; } }

  .bc-calc-wagetheft .scenario {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 18px;
    display: flex;
    flex-direction: column;
    min-width: 0;
  }
  .bc-calc-wagetheft .scenario.employee { border-top: 3px solid var(--plum); }
  .bc-calc-wagetheft .scenario.contractor { border-top: 3px solid var(--fuchsia); background: #fffbf9; }
  .bc-calc-wagetheft .scenario .stype {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    margin-bottom: 4px;
  }
  .bc-calc-wagetheft .scenario.employee .stype { color: var(--plum); }
  .bc-calc-wagetheft .scenario.contractor .stype { color: var(--fuchsia); }
  .bc-calc-wagetheft .scenario h4 {
    margin: 0 0 2px;
    font-size: 1.1rem;
    color: var(--plum);
  }
  .bc-calc-wagetheft .scenario .tagline {
    font-size: 0.82rem;
    color: var(--ink-mute);
    margin-bottom: 14px;
    min-height: 1.5em;
    line-height: 1.35;
  }
  .bc-calc-wagetheft .metric {
    padding: 8px 0;
    border-bottom: 1px dashed var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
  }
  .bc-calc-wagetheft .metric:last-child { border-bottom: none; }
  .bc-calc-wagetheft .metric .lbl { font-size: 0.85rem; color: var(--ink-soft); }
  .bc-calc-wagetheft .metric .val {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--ink);
    text-align: right;
    font-size: 0.95rem;
  }
  .bc-calc-wagetheft .metric.primary { padding: 12px 0; }
  .bc-calc-wagetheft .metric.primary .lbl { color: var(--plum); font-weight: 600; font-size: 0.9rem; }
  .bc-calc-wagetheft .metric.primary .val { font-size: 1.35rem; color: var(--plum); }
  .bc-calc-wagetheft .scenario.contractor .metric.primary .val { color: var(--bad); }

  .bc-calc-wagetheft .retirement-note {
    margin: -6px 0 10px;
    padding: 6px 0 10px;
    font-size: 0.82rem;
    color: var(--ink-soft);
    border-bottom: 1px dashed var(--border-soft);
    display: flex;
    align-items: baseline;
    gap: 6px;
  }
  .bc-calc-wagetheft .retirement-note .ret-val {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
  }

  /* S260915-B2 — mirrors the true-pay treatment: every net figure carries its
     gross counterpart in smaller grey type beneath it, plus a total-value row. */
  .bc-calc-wagetheft .metric .valwrap {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    min-width: 0;
  }
  .bc-calc-wagetheft .metric .sub {
    font-size: 0.72rem;
    font-weight: 400;
    color: var(--ink-soft);
    opacity: 0.8;
    text-align: right;
    line-height: 1.25;
    font-variant-numeric: tabular-nums;
  }
  .bc-calc-wagetheft .metric.primary .sub,
  .bc-calc-wagetheft .metric.total-value .sub { font-size: 0.74rem; opacity: 0.85; }
  .bc-calc-wagetheft .metric.total-value { background: var(--lime-pale); margin: 4px -18px; padding: 10px 18px; }
  .bc-calc-wagetheft .metric.total-value .lbl { color: var(--good); font-weight: 700; font-size: 0.92rem; }
  .bc-calc-wagetheft .metric.total-value .val { font-size: 1.2rem; color: var(--good); font-weight: 700; }
  .bc-calc-wagetheft .scenario.contractor .metric.total-value { background: #f8f1ee; }
  .bc-calc-wagetheft .scenario.contractor .metric.total-value .lbl,
  .bc-calc-wagetheft .scenario.contractor .metric.total-value .val { color: var(--bad); }
  .bc-calc-wagetheft .scenario.employee .retirement-note .ret-val { color: var(--good); }
  .bc-calc-wagetheft .scenario.contractor .retirement-note .ret-val { color: var(--bad); }

  .bc-calc-wagetheft .breakdown {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
    font-size: 0.85rem;
  }
  .bc-calc-wagetheft .breakdown-title {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-mute);
    font-weight: 600;
    margin-bottom: 6px;
  }
  .bc-calc-wagetheft .bd-row {
    display: flex;
    justify-content: space-between;
    padding: 2px 0;
    color: var(--ink-soft);
    font-variant-numeric: tabular-nums;
  }
  .bc-calc-wagetheft .bd-row.total {
    font-weight: 600;
    color: var(--ink);
    border-top: 1px solid var(--border-soft);
    margin-top: 4px;
    padding-top: 6px;
  }

  .bc-calc-wagetheft .benefit-list {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
    font-size: 0.85rem;
  }
  .bc-calc-wagetheft .bl-row { padding: 3px 0; color: var(--ink-soft); }
  .bc-calc-wagetheft .bl-row.yes::before { content: "✓ "; color: var(--good); font-weight: 700; }
  .bc-calc-wagetheft .bl-row.no::before { content: "✗ "; color: var(--bad); font-weight: 700; }
  .bc-calc-wagetheft .bl-row.no { color: var(--ink-mute); text-decoration: line-through; text-decoration-color: #ddd; }

  /* Deep-dive table */
  .bc-calc-wagetheft .deep-dive {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 22px;
    margin-top: 24px;
  }
  .bc-calc-wagetheft .deep-dive h3 {
    margin: 0 0 14px;
    color: var(--plum);
    font-size: 1.15rem;
  }
  .bc-calc-wagetheft .lose-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
  }
  .bc-calc-wagetheft .lose-table th, .bc-calc-wagetheft .lose-table td {
    padding: 8px 10px;
    text-align: left;
    border-bottom: 1px solid var(--border-soft);
    vertical-align: top;
  }
  .bc-calc-wagetheft .lose-table th {
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-mute);
    font-weight: 600;
  }
  .bc-calc-wagetheft .lose-table td.money {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    text-align: right;
    color: var(--bad);
    white-space: nowrap;
  }
  .bc-calc-wagetheft .lose-table tr.total td {
    border-top: 2px solid var(--plum);
    border-bottom: none;
    padding-top: 10px;
    font-size: 1rem;
  }
  .bc-calc-wagetheft .lose-table tr.total td.money {
    font-size: 1.1rem;
    color: var(--bad);
  }



/* ═══ BC True Pay Comparison ══════════════════════════════════════════ */

  .bc-calc-truepay {
    --plum: #482757;
    --plum-light: #6B4E8B;
    --plum-pale: #F5EFF2;
    --fuchsia: #7E2C65;
    --fuchsia-pale: #FDFAFC;
    --lime-pale: #FBF7E8;
    --lime-medium: #C4D17A;
    --bg: #FFFFFF;
    --card: #FFFFFF;
    --ink: #2D2226;
    --ink-soft: #5A5261;
    --ink-mute: #6B4E8B;
    --border: #E4D5DF;
    --border-soft: #F0ECF1;
    --good: #6B8E1E;
    --bad: #7E2C65;
  }
  .bc-calc-truepay * { box-sizing: border-box; }
  .bc-calc-truepay {
    margin: 0;
    font-family: 'foco', 'DM Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--bg);
    color: var(--ink);
    line-height: 1.55;
  }
  .bc-calc-truepay .wrap { max-width: 1180px; margin: 0 auto; padding: 24px 20px 80px; }
  .bc-calc-truepay .about-row {
    display: flex;
    justify-content: flex-end;
    margin: 0 0 12px;
  }
  .bc-calc-truepay .info-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px 7px 10px;
    background: #eef3d2;
    border: 1px solid #c5d92d;
    border-radius: 22px;
    color: #5d6f1c;
    font: inherit;
    font-size: 0.92rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
  }
  .bc-calc-truepay .info-btn:hover { background: #e6ecc2; border-color: #a8ba20; }
  .bc-calc-truepay .info-btn:focus-visible { outline: 2px solid #6d8020; outline-offset: 2px; }
  .bc-calc-truepay .info-btn svg { flex: 0 0 auto; }

  /* About dialog */
  .bc-calc-truepay .about-dialog {
    max-width: 640px;
    width: calc(100% - 32px);
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--card);
    color: var(--ink);
    box-shadow: 0 20px 60px rgba(72, 39, 87, 0.25);
  }
  .bc-calc-truepay .about-dialog::backdrop { background: rgba(42, 42, 42, 0.45); backdrop-filter: blur(2px); }
  .bc-calc-truepay .about-dialog .dialog-body { padding: 26px 28px 22px; }
  .bc-calc-truepay .about-dialog h2 { margin: 0 0 14px; color: var(--plum); font-size: 1.25rem; padding-right: 32px; }
  .bc-calc-truepay .about-dialog h3 {
    margin: 16px 0 6px; color: var(--plum-light); font-size: 0.9rem;
    text-transform: uppercase; letter-spacing: 0.04em;
  }
  .bc-calc-truepay .about-dialog p { margin: 0 0 10px; color: var(--ink-soft); font-size: 0.92rem; line-height: 1.55; }
  .bc-calc-truepay .about-dialog a { color: var(--plum); }
  .bc-calc-truepay .about-dialog .close-btn {
    position: absolute; top: 14px; right: 14px; width: 32px; height: 32px;
    font-size: 20px; line-height: 1; background: transparent; border: none;
    border-radius: 50%; color: var(--ink-soft); cursor: pointer;
  }
  .bc-calc-truepay .about-dialog .close-btn:hover { background: var(--border-soft); color: var(--ink); }
  .bc-calc-truepay .about-dialog .intro {
    background: var(--plum-pale); border-left: 4px solid var(--plum);
    padding: 12px 14px; border-radius: 4px; margin-bottom: 14px;
    color: var(--ink-soft); font-size: 0.92rem;
  }
  .bc-calc-truepay .about-dialog .intro strong { color: var(--plum); }

  /* Inputs area — full width on top */
  .bc-calc-truepay .inputs-top {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 22px;
  }
  .bc-calc-truepay .inputs-top h2 {
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--plum);
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-soft);
  }

  .bc-calc-truepay .shared-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 14px;
    margin-bottom: 18px;
  }
  @media (max-width: 720px) { .bc-calc-truepay .shared-row { grid-template-columns: 1fr; } }

  .bc-calc-truepay .employer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }
  @media (max-width: 800px) { .bc-calc-truepay .employer-grid { grid-template-columns: 1fr; } }

  .bc-calc-truepay .employer-block {
    padding: 16px;
    border-radius: 8px;
  }
  .bc-calc-truepay .employer-block.a { background: var(--plum-pale); border: 1px solid var(--border); }
  .bc-calc-truepay .employer-block.b { background: var(--fuchsia-pale); border: 1px solid var(--border); }
  .bc-calc-truepay .employer-block h3 {
    margin: 0 0 10px;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
  }
  .bc-calc-truepay .employer-block.a h3 { color: var(--plum); }
  .bc-calc-truepay .employer-block.b h3 { color: var(--fuchsia); }
  .bc-calc-truepay .name-input {
    width: 100%;
    padding: 6px 8px;
    border: 1px solid var(--border);
    border-radius: 5px;
    font: inherit;
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 10px;
    background: white;
  }
  .bc-calc-truepay .wage-field { margin-bottom: 14px; }
  .bc-calc-truepay .wage-field .field-row {
    background: white;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 6px 10px;
    gap: 6px;
  }
  .bc-calc-truepay .wage-field .field-row .suffix {
    color: var(--ink-mute);
    font-size: 1rem;
    font-weight: 500;
  }
  .bc-calc-truepay .wage-field input[type="number"] {
    flex: 1;
    border: none !important;
    background: transparent;
    padding: 4px 0;
    font: inherit;
    font-size: 1.55rem !important;
    font-weight: 700 !important;
    text-align: center;
    color: var(--plum);
    width: auto !important;
  }
  .bc-calc-truepay .wage-field input[type="number"]:focus { outline: none; }
  .bc-calc-truepay .wage-field .field-row:focus-within { border-color: var(--plum); box-shadow: 0 0 0 2px var(--plum-pale); }

  .bc-calc-truepay .field { margin-bottom: 10px; }
  .bc-calc-truepay .field label {
    display: block;
    font-size: 0.82rem;
    color: var(--ink-soft);
    margin-bottom: 3px;
    font-weight: 500;
  }
  .bc-calc-truepay .field-row { display: flex; gap: 8px; align-items: center; }
  .bc-calc-truepay .field-row input[type="range"] { flex: 1; accent-color: var(--plum); min-width: 0; }
  .bc-calc-truepay .field-row .num {
    width: 70px;
    padding: 5px 7px;
    border: 1px solid var(--border);
    border-radius: 4px;
    font: inherit;
    font-size: 0.9rem;
    text-align: right;
  }
  .bc-calc-truepay .field-row .num:focus { outline: 2px solid var(--plum); outline-offset: -1px; }
  .bc-calc-truepay .field-row .suffix {
    color: var(--ink-mute);
    font-size: 0.82rem;
    min-width: 20px;
  }
  .bc-calc-truepay .help {
    font-size: 0.76rem;
    color: var(--ink-mute);
    margin-top: 2px;
    line-height: 1.4;
  }

  .bc-calc-truepay .preset-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 4px;
    margin-bottom: 10px;
  }
  .bc-calc-truepay .preset-btn {
    padding: 6px 8px;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--plum);
    background: white;
    border: 1px solid var(--plum-light);
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
  }
  .bc-calc-truepay .preset-btn:hover { background: var(--plum-pale); color: var(--plum); }
  .bc-calc-truepay .preset-btn.active { background: var(--plum); color: white; border-color: var(--plum); }
  .bc-calc-truepay .preset-btn.active:hover { background: var(--plum); color: white; }

  .bc-calc-truepay .td1-select {
    width: 100%;
    padding: 7px 8px;
    border: 1px solid var(--border);
    border-radius: 5px;
    font: inherit;
    font-size: 0.9rem;
    background: white;
  }

  .bc-calc-truepay .section-break {
    margin: 14px 0 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border-soft);
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--plum-light);
    font-weight: 600;
  }

  /* Results */
  .bc-calc-truepay .winner-card {
    background: linear-gradient(135deg, var(--plum-pale) 0%, #e9def2 100%);
    border: 1px solid var(--plum);
    border-radius: 12px;
    padding: 22px 24px;
    margin-bottom: 22px;
  }
  .bc-calc-truepay .winner-card .eyebrow {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--plum);
    font-weight: 600;
    margin-bottom: 6px;
  }
  .bc-calc-truepay .winner-card h3 {
    margin: 0 0 8px;
    font-size: clamp(1.15rem, 2.8vw, 1.35rem);
    color: var(--plum);
    line-height: 1.3;
  }
  .bc-calc-truepay .winner-card .big-number {
    font-size: clamp(1.9rem, 5vw, 2.6rem);
    font-weight: 700;
    color: var(--plum);
    line-height: 1.1;
    margin: 8px 0 4px;
    font-variant-numeric: tabular-nums;
  }
  /* S57b/c — secondary gap lines (take-home, retirement savings, health
     benefits). Visually subordinate to the primary big-number (total comp)
     but emphasised enough to stand on their own — same plum colour family,
     smaller scale, each labeled with a colored pill prefix. */
  .bc-calc-truepay .winner-card .winner-takehome,
  .bc-calc-truepay .winner-card .winner-retirement,
  .bc-calc-truepay .winner-card .winner-ehp {
    font-size: 1rem;
    color: var(--plum);
    margin: 4px 0;
    font-variant-numeric: tabular-nums;
    line-height: 1.45;
  }
  .bc-calc-truepay .winner-card .winner-ehp {
    margin-bottom: 12px;  /* small gap before the sub explainer */
  }
  .bc-calc-truepay .winner-card .th-label {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--plum);
    background: rgba(72, 39, 87, 0.08);
    padding: 2px 7px;
    border-radius: 4px;
    margin-right: 8px;
    vertical-align: 1px;
    min-width: 130px;
    text-align: center;
  }
  @media (max-width: 540px) {
    .bc-calc-truepay .winner-card .th-label {
      min-width: 0;
      display: inline-block;
    }
  }
  .bc-calc-truepay .winner-card .winner-sub {
    color: var(--ink-soft);
    font-size: 0.95rem;
  }

  .bc-calc-truepay .grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 18px;
  }
  @media (max-width: 600px) { .bc-calc-truepay .grid { grid-template-columns: 1fr; } }

  .bc-calc-truepay .scenario {
    background: var(--card);
    border: 1px solid var(--border);
    border-top: 3px solid var(--good);
    border-radius: 10px;
    padding: 18px;
    min-width: 0;
  }
  /* S56b — both scenario cards use brand green border-top to match the rest
     of the site's "positive outcome" accent color. A/B differentiation lives
     in the .stype label color (still plum/fuchsia) and the user-set names. */
  .bc-calc-truepay .scenario.a .stype { color: var(--plum); }
  .bc-calc-truepay .scenario.b .stype { color: var(--fuchsia); }
  .bc-calc-truepay .scenario .stype {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    margin-bottom: 4px;
  }
  .bc-calc-truepay .scenario h4 {
    margin: 0 0 2px;
    font-size: 1.1rem;
    color: var(--plum);
  }
  .bc-calc-truepay .scenario .tagline {
    font-size: 0.82rem;
    color: var(--ink-mute);
    margin-bottom: 14px;
    min-height: 1.5em;
    line-height: 1.35;
  }
  .bc-calc-truepay .metric {
    padding: 8px 0;
    border-bottom: 1px dashed var(--border-soft);
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
  }
  .bc-calc-truepay .metric:last-child { border-bottom: none; }
  .bc-calc-truepay .metric .lbl { font-size: 0.85rem; color: var(--ink-soft); }
  .bc-calc-truepay .metric .val {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--ink);
    text-align: right;
    font-size: 0.95rem;
  }
  .bc-calc-truepay .metric.primary { padding: 12px 0; }
  .bc-calc-truepay .metric.primary .lbl { color: var(--plum); font-weight: 600; font-size: 0.9rem; }
  .bc-calc-truepay .metric.primary .val { font-size: 1.35rem; color: var(--plum); }
  /* S56b — total-value highlight uses brand green to echo the green border-top
     and signal "this is the bottom-line number." Replaces previous plum-pale. */
  .bc-calc-truepay .metric.total-value { padding: 10px 0; background: var(--lime-pale); margin: 4px -18px; padding: 10px 18px; }
  .bc-calc-truepay .metric.total-value .lbl { color: var(--good); font-weight: 700; font-size: 0.92rem; }
  .bc-calc-truepay .metric.total-value .val { font-size: 1.2rem; color: var(--good); font-weight: 700; }

  .bc-calc-truepay .retirement-note {
    margin: -6px 0 10px;
    padding: 6px 0 10px;
    font-size: 0.82rem;
    color: var(--ink-soft);
    border-bottom: 1px dashed var(--border-soft);
    display: flex;
    align-items: baseline;
    gap: 6px;
  }
  .bc-calc-truepay .retirement-note .ret-val {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--good);
  }

  /* S260915 — every net figure carries its gross counterpart in smaller grey
     type directly beneath it, so "per hour (net)" can never be read against the
     base wage without the gross number in view. */
  .bc-calc-truepay .metric .valwrap {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    min-width: 0;
  }
  .bc-calc-truepay .metric .sub {
    font-size: 0.72rem;
    font-weight: 400;
    color: var(--ink-soft);
    opacity: 0.8;
    text-align: right;
    line-height: 1.25;
    font-variant-numeric: tabular-nums;
  }
  .bc-calc-truepay .metric.primary .sub,
  .bc-calc-truepay .metric.total-value .sub { font-size: 0.74rem; opacity: 0.85; }

  .bc-calc-truepay .breakdown {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
    font-size: 0.85rem;
  }
  .bc-calc-truepay .breakdown-title {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-mute);
    font-weight: 600;
    margin-bottom: 6px;
  }
  .bc-calc-truepay .bd-row {
    display: flex;
    justify-content: space-between;
    padding: 2px 0;
    color: var(--ink-soft);
    font-variant-numeric: tabular-nums;
  }
  .bc-calc-truepay .bd-row.total {
    font-weight: 600;
    color: var(--ink);
    border-top: 1px solid var(--border-soft);
    margin-top: 4px;
    padding-top: 6px;
  }

  /* Comparison table */
  .bc-calc-truepay .compare {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 22px;
    margin-top: 24px;
  }
  .bc-calc-truepay .compare h3 {
    margin: 0 0 14px;
    color: var(--plum);
    font-size: 1.15rem;
  }
  .bc-calc-truepay .cmp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
  }
  .bc-calc-truepay .cmp-table th, .bc-calc-truepay .cmp-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--border-soft);
  }
  .bc-calc-truepay .cmp-table th {
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-mute);
    font-weight: 600;
    text-align: left;
  }
  .bc-calc-truepay .cmp-table th.num, .bc-calc-truepay .cmp-table td.num {
    text-align: right;
    font-variant-numeric: tabular-nums;
  }
  .bc-calc-truepay .cmp-table td.diff-pos { color: var(--good); font-weight: 600; }
  .bc-calc-truepay .cmp-table td.diff-neg { color: var(--bad); font-weight: 600; }
  .bc-calc-truepay .cmp-table tr.total td {
    border-top: 2px solid var(--plum);
    border-bottom: none;
    padding-top: 10px;
    font-size: 1rem;
  }
  .bc-calc-truepay .cmp-table tr.total td.num { font-size: 1.1rem; }


  /* S56b — Shared disclaimer block shown at the bottom of both bc-* calculators.
     Uses lime-pale background and forest-green left border to align with the
     "positive accent" color elsewhere in the calculator without competing with
     the primary plum/fuchsia chrome. */
  .bc-calc-wagetheft .bc-calc-disclaimer,
  .bc-calc-truepay .bc-calc-disclaimer {
    margin: 16px 0 0;
    padding: 10px 14px;
    background: var(--lime-pale);
    border-left: 3px solid var(--good);
    border-radius: 4px;
    color: var(--ink-soft);
    font-size: 0.82rem;
    line-height: 1.4;
  }

/* ═══ S260806 — Calc revamp: title-row About, sticky outcomes, mobile ═══
   Applies to the two BC calculators (wage-theft + true-pay). The
   .cpc-calc-titlebar rules are intentionally unscoped to .bc-calc-* because
   resource-guides.js relocates the About button into the article header,
   outside the calculator wrappers. */

  .cpc-calc-titlebar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin: 1.3rem 0 0.9rem;
  }
  .cpc-calc-titlebar h1 { margin: 0; flex: 1 1 auto; min-width: 0; }
  .cpc-calc-titlebar .info-btn {
    flex: 0 0 auto;
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px 7px 10px;
    background: #eef3d2;
    border: 1px solid #c5d92d;
    border-radius: 22px;
    color: #5d6f1c;
    font: inherit;
    font-size: 0.92rem;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
  }
  .cpc-calc-titlebar .info-btn:hover { background: #e6ecc2; border-color: #a8ba20; }
  .cpc-calc-titlebar .info-btn:focus-visible { outline: 2px solid #6d8020; outline-offset: 2px; }
  .cpc-calc-titlebar .info-btn svg { flex: 0 0 auto; }
  @media (max-width: 540px) {
    .cpc-calc-titlebar .info-btn { font-size: 0.8rem; padding: 5px 11px 5px 8px; gap: 6px; }
    .cpc-calc-titlebar .info-btn svg { width: 16px; height: 16px; }
  }

  /* Sticky outcome bar — pinned just below the sticky site header while the
     visitor scrolls and adjusts inputs; values update live from render(). */
  .bc-calc-wagetheft .calc-stickybar,
  .bc-calc-truepay .calc-stickybar {
    position: sticky;
    top: calc(var(--cpc-header-height, 72px) + 8px);
    z-index: 120;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 22px;
    background: rgba(255, 255, 255, 0.97);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 9px 16px;
    margin: 0 0 16px;
    box-shadow: 0 6px 18px rgba(72, 39, 87, 0.12);
  }
  .bc-calc-wagetheft .sb-item,
  .bc-calc-truepay .sb-item {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }
  .bc-calc-wagetheft .sb-lbl,
  .bc-calc-truepay .sb-lbl {
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
    color: var(--ink-mute);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 230px;
  }
  .bc-calc-wagetheft .sb-val,
  .bc-calc-truepay .sb-val {
    font-size: 1.08rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
    color: var(--plum);
    white-space: nowrap;
  }
  .bc-calc-wagetheft .sb-val.sb-bad { color: var(--bad); }
  .bc-calc-wagetheft .sb-val.sb-good { color: var(--good); }
  .bc-calc-truepay .sb-lbl.sb-a { color: var(--plum); }
  .bc-calc-truepay .sb-lbl.sb-b { color: var(--fuchsia); }
  @media (max-width: 640px) {
    .bc-calc-wagetheft .calc-stickybar,
    .bc-calc-truepay .calc-stickybar {
      gap: 4px 16px;
      padding: 7px 12px;
      border-radius: 8px;
    }
    .bc-calc-wagetheft .sb-val,
    .bc-calc-truepay .sb-val { font-size: 0.98rem; }
    .bc-calc-wagetheft .sb-lbl,
    .bc-calc-truepay .sb-lbl { font-size: 0.6rem; max-width: 160px; }
  }

  /* Wage-theft inputs sidebar — clear the sticky site header AND the sticky
     outcome bar (bar height mirrored into --cpc-sbh by resource-guides.js).
     Previously top: 20px, which slid under the sticky #site-header. */
  .bc-calc-wagetheft .inputs {
    top: calc(var(--cpc-header-height, 72px) + var(--cpc-sbh, 58px) + 22px);
    max-height: calc(100vh - var(--cpc-header-height, 72px) - var(--cpc-sbh, 58px) - 42px);
  }
  @media (max-width: 980px) {
    .bc-calc-wagetheft .inputs { top: auto; max-height: none; }
  }

  /* Wide tables scroll sideways on small screens instead of crushing. */
  .bc-calc-wagetheft .table-scroll,
  .bc-calc-truepay .table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  @media (max-width: 640px) {
    .bc-calc-wagetheft .lose-table { min-width: 520px; }
    .bc-calc-truepay .cmp-table { min-width: 540px; }
  }

  /* Mobile compatibility pass */
  @media (max-width: 640px) {
    .bc-calc-wagetheft .wrap,
    .bc-calc-truepay .wrap { padding: 12px 12px 56px; }
    .bc-calc-wagetheft .inputs { padding: 14px; }
    .bc-calc-truepay .inputs-top { padding: 14px; }
    .bc-calc-truepay .employer-block { padding: 12px; }
    .bc-calc-wagetheft .loss-card,
    .bc-calc-wagetheft .equiv-card,
    .bc-calc-truepay .winner-card { padding: 16px; }
    .bc-calc-wagetheft .deep-dive,
    .bc-calc-truepay .compare { padding: 14px; }
    .bc-calc-wagetheft .scenario,
    .bc-calc-truepay .scenario { padding: 14px; }
    .bc-calc-truepay .metric.total-value { margin: 4px -14px; padding: 10px 14px; }
  }

  /* iOS zoom-on-focus prevention: form controls at 16px on touch widths. */
  @media (max-width: 800px) {
    .bc-calc-wagetheft .field-row .num,
    .bc-calc-truepay .field-row .num,
    .bc-calc-wagetheft .td1-select,
    .bc-calc-truepay .td1-select,
    .bc-calc-truepay .name-input,
    .bc-calc-wagetheft .wage-pair input[type="number"] { font-size: 16px; }
    .bc-calc-wagetheft .field-row .num { width: 86px; }
    .bc-calc-truepay .field-row .num { width: 78px; }
    .bc-calc-wagetheft .field-row input[type="range"],
    .bc-calc-truepay .field-row input[type="range"] { min-height: 30px; }
  }

  /* Dialog never taller than the viewport */
  .bc-calc-wagetheft .about-dialog,
  .bc-calc-truepay .about-dialog {
    max-height: min(85vh, 720px);
    overflow-y: auto;
  }


/* ════════════════════════════════════════════════════════════════════════
   S57 — Care Schedule subsections
   The Home Care Cost Calculator's Weekly Schedule, Overnight Care, and
   Live-In Care sections used to each be a full .cpc-calc-box with its own
   plum header band, visually separating them. They now render as
   subsections inside a single "Care Schedule" .cpc-calc-box so they read
   as one collective scheduling card rather than three competing cards.
   The single outer .cpc-calc-box-header keeps the plum chrome; the
   internal .cpc-calc-subhead is a lighter inline label.
   ════════════════════════════════════════════════════════════════════════ */

.cpc-calc-care-schedule .cpc-calc-subsection {
  padding: 14px 16px 4px;
  border-top: 1px solid #ECE3EF;
}
.cpc-calc-care-schedule .cpc-calc-subsection:first-of-type {
  /* Subsection right under the careHeader doesn't need an additional
     separator — the box header already provides the visual break. */
  border-top: none;
}
.cpc-calc-care-schedule .cpc-calc-subhead {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--cpc-plum, #482757);
  margin: 0 0 4px;
}

/* Subsection-flavour reset of the .cpc-calc-on-box overrides — the .on-box
   styling that previously assumed a full box context still applies to the
   options/help inside, so we just need to undo any padding/margin that
   double-stacks now that the subsection wrapper provides its own padding. */
.cpc-calc-unified .cpc-calc-care-schedule .cpc-calc-subsection.cpc-calc-on-box {
  padding-bottom: 12px;
}
.cpc-calc-unified .cpc-calc-care-schedule .cpc-calc-subsection .cpc-calc-grid-help {
  padding: 0 0 6px 0;
}
.cpc-calc-unified .cpc-calc-care-schedule .cpc-calc-subsection .cpc-calc-on-group {
  padding: 0;
}

/* Weekly Schedule subsection has slightly different inner padding
   because the grid + grey-note already had their own spacing. */
.cpc-calc-care-schedule .cpc-calc-subsection-weekly {
  padding-bottom: 12px;
}

@media (max-width: 540px) {
  .cpc-calc-care-schedule .cpc-calc-subsection {
    padding: 12px 12px 4px;
  }
}

/* S260804-DIR: keep the first column readable while wide guide tables scroll */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-scroll .crg-table td:first-child {
  position: sticky; left: 0; z-index: 2;
  background: #fff;
  box-shadow: 2px 0 4px -2px rgba(0, 0, 0, 0.12);
}
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-scroll .crg-table thead th:first-child {
  position: sticky; left: 0; z-index: 3;
  background: var(--cpc-plum);
  box-shadow: 2px 0 4px -2px rgba(0, 0, 0, 0.18);
}

/* ── S260807 — Care Cost Calculator: Typical Care panel internal scroll ──
   The list of care levels scrolls inside its own panel; renderReasons()
   slides it to the matched level on band change. Marker + gradient scroll
   with the content (both are laid out in the panel's content box). */
.cpc-calc-reasons-body {
  max-height: 380px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(72, 39, 87, 0.35) transparent;
}
@media (max-width: 700px) {
  .cpc-calc-reasons-body {
    max-height: 320px;
  }
}

/* ── S260807-2 — Cost Estimate totals table: stop grid blowout ──
   .cpc-calc-row-2 grid items default to min-width:auto, so the nowrap
   totals table forced the column wider than the box and the Typical Care
   panel painted over the Avg/hr column. Let the boxes shrink, let the
   header + row labels wrap, keep the dollar cells nowrap, and fall back
   to a horizontal scroll inside .cpc-calc-totals at extreme squeezes. */
.cpc-calc-cost-row > .cpc-calc-box {
  min-width: 0;
}
.cpc-calc-totals {
  overflow-x: auto;
}
.cpc-calc-disc-table th {
  white-space: normal;
  padding: 8px 6px;
}
.cpc-calc-disc-table tbody th[scope="row"] {
  white-space: normal;
}
.cpc-calc-disc-table td {
  padding: 8px 6px;
}

/* ── S260807-3 — BC calcs: About pill beside title + high-contrast sticky ──
   Overrides the S260806 defaults later in the cascade (same specificity,
   later wins). Titlebar: the pill now sits directly next to the title
   instead of hugging the far right margin. Sticky bar: solid plum
   gradient with white figures so the live result is unmissable; first
   item (the headline outcome) is enlarged; pension subline explains the
   Ahead-by figure on the True Pay comparison. */
.cpc-calc-titlebar {
  justify-content: flex-start;
}
.cpc-calc-titlebar h1 {
  flex: 0 1 auto;
}
.cpc-calc-titlebar .info-btn {
  margin-left: 0;
}

.bc-calc-wagetheft .calc-stickybar,
.bc-calc-truepay .calc-stickybar {
  background: linear-gradient(135deg, var(--plum, #482757) 0%, var(--fuchsia, #7E2C65) 100%);
  border: none;
  border-bottom: 3px solid #C5D92D;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: 0 8px 22px rgba(72, 39, 87, 0.35);
  padding: 11px 18px;
  gap: 6px 26px;
}
.bc-calc-wagetheft .sb-lbl,
.bc-calc-truepay .sb-lbl {
  color: rgba(255, 255, 255, 0.78);
}
.bc-calc-wagetheft .sb-val,
.bc-calc-truepay .sb-val {
  color: #FFF;
}
.bc-calc-wagetheft .sb-item:first-child .sb-val,
.bc-calc-truepay .sb-item:first-child .sb-val {
  font-size: 1.35rem;
  line-height: 1.15;
}
.bc-calc-wagetheft .sb-val.sb-bad { color: #FFB4AB; }
.bc-calc-wagetheft .sb-val.sb-good { color: #D3E763; }
.bc-calc-truepay .sb-lbl.sb-a { color: #E4D3F0; }
.bc-calc-truepay .sb-lbl.sb-b { color: #F6C6E4; }
.bc-calc-truepay .sb-sub {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  white-space: nowrap;
}
@media (max-width: 640px) {
  .bc-calc-wagetheft .sb-item:first-child .sb-val,
  .bc-calc-truepay .sb-item:first-child .sb-val { font-size: 1.15rem; }
  .bc-calc-truepay .sb-sub { white-space: normal; }
}

/* ── S260807-4 — sticky bar labels: never ellipsize ──
   'CommunityPlus 1-Year Employee ahead by' exceeded the 230px label cap
   and truncated to 'AHEA…'. Labels now show in full; the bar's
   flex-wrap absorbs extreme lengths by wrapping items. */
.bc-calc-wagetheft .sb-lbl,
.bc-calc-truepay .sb-lbl {
  max-width: none;
  overflow: visible;
  text-overflow: clip;
}
@media (max-width: 640px) {
  .bc-calc-wagetheft .sb-lbl,
  .bc-calc-truepay .sb-lbl { max-width: none; }
}

/* ── S260807-5 — sticky bar: take-home basis sublines on both calcs ── */
.bc-calc-wagetheft .sb-sub {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  white-space: nowrap;
}
@media (max-width: 640px) {
  .bc-calc-wagetheft .sb-sub,
  .bc-calc-truepay .sb-sub { white-space: normal; }
}

/* ── S260807-MAP R6 — filtered tag columns show only the matching chip ──
   When a filter highlights a chip (crg-tag-active), its non-matching
   siblings in the same cell are hidden. Clearing the filter restores all. */
.crg-tags:has(.crg-tag-active) > span:not(.crg-tag-active) { display: none; }

/* S260807-MAP R7 — renderer-stamped variant of the chip filter (no :has dependency) */
.crg-tags.crg-has-active > span:not(.crg-tag-active) { display: none; }

/* ── S260807-MAP R11 ─ modal table fit pack + stats subrow + gov panel order ── */
.article-modal h2.crg-guide-title { display: none; }
.article-modal .crg-table { width: auto; min-width: 0; font-size: 12.5px; }
.article-modal .crg-table th { padding: 8px 8px; font-size: 10.5px; line-height: 1.25; white-space: normal; }
.article-modal .crg-table td { padding: 8px 8px; }
.article-modal .crg-svc { width: 54px; min-width: 54px; }
.article-modal .crg-tag, .article-modal .crg-tag-green { font-size: 11px; padding: 2px 8px; }
.article-modal .crg-tags { max-width: 200px; }
.article-modal .crg-pn { font-size: 12.5px; }
.crg-subrow > td { padding: 0 8px 10px !important; border-top: none !important; }
.crg-subgrid { display: flex; flex-wrap: wrap; gap: 6px 18px; padding: 6px 10px 8px; background: var(--cpc-bg-soft, #f7f4f8); border-radius: 8px; }
.crg-sub-cell { display: inline-flex; flex-direction: column; min-width: 86px; }
.crg-sub-label { font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: var(--cpc-text-light, #7a7185); }
.crg-sub-val { font-size: 13px; font-weight: 700; color: var(--cpc-plum, #7B3F61); }
.crg-stats-toggle { margin-left: 4px; }
/* gov panel ordering moved into the post content (R12) */

/* ── S260807-MAP R12 ─ provider-name wrap + tighter modal squeeze ── */
.article-modal .crg-table { font-size: 12px; }
.article-modal .crg-table th { font-size: 10px; padding: 7px 6px; }
.article-modal .crg-table td { padding: 7px 6px; }
.article-modal .crg-table td:first-child { max-width: 150px; }
.article-modal .crg-pn { display: block; white-space: normal; line-height: 1.3; }
.article-modal .crg-svc { width: 46px; min-width: 46px; }
.article-modal .crg-tag, .article-modal .crg-tag-green { font-size: 10.5px; padding: 2px 7px; }
.article-modal .crg-tags { max-width: 170px; gap: 3px; }

/* ── S260807-MAP R13 ─ fixed-layout tables (cannot overflow) + stats-pair borders ── */
.article-modal .crg-table { table-layout: fixed; width: 100%; }
.article-modal .crg-table th, .article-modal .crg-table td { overflow-wrap: break-word; }
.article-modal .crg-table th:first-child { width: 128px; }
.article-modal .crg-table td:first-child { max-width: none; }
.article-modal .crg-tags { max-width: none; }
.article-modal .crg-svc { width: 46px; }
.crg-table tbody tr:has(+ .crg-subrow) td { border-bottom: none; }
.crg-subrow > td { border-bottom: 3px solid var(--cpc-plum, #7B3F61) !important; padding-bottom: 12px !important; }

/* ── S260807-MAP R14 ─ chips constrained to their cells; boolean headers centered ── */
.article-modal .crg-tags { max-width: 100%; min-width: 0; }
.article-modal .crg-table td { vertical-align: top; }
.crg-sc-h { text-align: center; }

/* ── S260807-MAP R15 ─ fit system promoted to ALL guide surfaces (pages + modal).
   :is() carries ID specificity, so these outrank every earlier scoped rule. ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table { table-layout: fixed; width: 100%; font-size: 12px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table th { font-size: 10px; padding: 7px 6px; line-height: 1.25; white-space: normal; overflow-wrap: break-word; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table td { padding: 7px 6px; vertical-align: top; overflow-wrap: break-word; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table th:first-child { width: 128px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-svc { width: 46px; min-width: 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-pn { display: block; white-space: normal; line-height: 1.3; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tags { max-width: 100%; min-width: 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tag,
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-tag-green { font-size: 10.5px; padding: 2px 7px; }

/* ── S260807-MAP R16 ─ final override at base-rule specificity (element+class under ID scope) ── */
:is(#cpc-resource-guide, .cpc-resource-guide) table.crg-table {
  table-layout: fixed;
  width: 100%;
  min-width: 0;
}

/* ── S260807-MAP R17 ─ zero the base th min-width floors (first:190, nth2:140, svc:78-88) ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th { min-width: 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th:first-child { min-width: 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th:nth-child(2) { min-width: 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table th.crg-col-id + th { min-width: 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th.crg-svc { width: 46px; min-width: 0; }

/* ── S260807-MAP R18 ─ grouped headers one-line, click-to-read info bubbles, mini table ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th { white-space: nowrap; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th.crg-svc { width: 66px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th.crg-th-group { text-align: center; border-bottom: 1px solid rgba(255,255,255,.35); }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th.crg-th-sub { font-size: 9.5px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead tr + tr th { top: 30px; }
details.cpc-info-bubble { background: var(--cpc-bg-soft, #f7f4f8); border: 1px solid var(--cpc-border, #e3dbe8); border-radius: 12px; padding: 0; margin: 12px 0; }
details.cpc-info-bubble > summary { cursor: pointer; list-style: none; font-family: "foco", -apple-system, sans-serif; font-weight: 700; color: var(--cpc-plum, #7B3F61); padding: 12px 16px; }
details.cpc-info-bubble > summary::-webkit-details-marker { display: none; }
details.cpc-info-bubble > summary::before { content: "\24D8"; margin-right: 8px; }
details.cpc-info-bubble > summary::after { content: " \2013 click to read"; font-weight: 400; font-size: 12px; color: var(--cpc-text-light, #7a7185); }
details.cpc-info-bubble[open] > summary::after { content: ""; }
details.cpc-info-bubble > :not(summary) { margin: 0 16px 12px; }
.cpc-mini-table { border-collapse: collapse; }
.cpc-mini-table td { padding: 4px 10px 4px 0; border-bottom: 1px solid var(--cpc-border, #e3dbe8); }

/* ── S260807-MAP R19 ─ info pills row (site fc-about pattern, popover bodies) ── */
.cpc-info-row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 6px auto 16px; max-width: 900px; }
.cpc-info-row .cpc-fc-about { margin: 0; position: relative; max-width: none; }
.cpc-info-row .cpc-fc-about[open] summary { margin-bottom: 0; }
.cpc-info-row .cpc-fc-about-body { position: absolute; top: calc(100% + 6px); left: 0; width: min(560px, 90vw); z-index: 20; box-shadow: 0 8px 24px rgba(72,39,87,0.18); border: 1px solid #C4D17A; }
.cpc-info-row .cpc-fc-about:last-child .cpc-fc-about-body { left: auto; right: 0; }

/* ── S260807-MAP R20 ─ header titles: one line, no exceptions ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th {
  white-space: nowrap !important;
  text-transform: none;
  letter-spacing: 0;
  font-size: 10.5px;
}
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th.crg-svc { width: 76px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th.crg-th-sub { font-size: 10px; }

/* ── S260807-MAP R21 ─ pills hard-inline, header balance, left intros, readable stats ── */
.cpc-info-row { display: flex !important; flex-wrap: wrap; align-items: flex-start; }
.cpc-info-row > details.cpc-fc-about { flex: 0 1 auto; width: auto !important; display: block; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th { font-size: 11px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th.crg-svc { width: 74px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th.crg-th-sub { font-size: 10.5px; }
.article-modal .article-modal-content > p { text-align: left !important; }
.article-modal .article-modal-content > p[style*="center"] { text-align: left !important; }
.crg-subgrid { gap: 8px 22px; padding: 8px 12px 10px; }
.crg-sub-cell { min-width: 96px; }
.crg-sub-label { font-size: 10.5px; color: #5c5266; letter-spacing: .03em; }
.crg-sub-val { font-size: 14px; }

/* ── S260807-MAP R22 ─ content-fit tables (no stretch), base header type restored, inline meta ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th {
  font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em;
}
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th.crg-th-sub { font-size: 11px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-table thead th.crg-svc { width: 104px; }
:is(#cpc-resource-guide, .cpc-resource-guide) table.crg-table.crg-fit { width: auto; min-width: 0; }
.cpc-info-row .crg-meta-right { margin-left: auto; align-self: center; text-align: right; }
.cpc-info-row .crg-meta-right .crg-count { font-weight: 700; color: var(--cpc-plum, #482757); }

/* ── S260807-MAP R23 ─ stats subrow: single row, labels one line ── */
.crg-subgrid { flex-wrap: nowrap; gap: 6px 12px; justify-content: space-between; }
.crg-sub-cell { flex: 1 1 0; min-width: 0; }
.crg-sub-label { white-space: nowrap; font-size: 10px; }
.crg-sub-val { white-space: nowrap; }

/* S260812-A2: standalone article pages - break the directory out of the narrow
   article column into a centered light card, wider than the column but never
   edge-to-edge, so filters and table stay on a light surface. */
.single-post-content #cpc-resource-guide{
  width:min(1200px,calc(100vw - 48px));
  position:relative;left:50%;transform:translateX(-50%);
  background:#FDF9F5;border-radius:12px;
  padding:18px 22px;margin-top:10px;margin-bottom:18px;
  box-shadow:0 2px 14px rgba(74,25,66,0.10);
  box-sizing:border-box;
}
.single-post-content #cpc-resource-guide .crg-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
@media (max-width:700px){.single-post-content #cpc-resource-guide{width:calc(100vw - 16px);padding:10px 8px;}}

/* ── S260904-C: stat range filters (Assisted Housing "Show statistics") ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters { margin: -6px 0 20px; padding: 14px 16px 12px; background: var(--cpc-bg-soft, #f7f4f8); border: 1.5px solid var(--cpc-border, #e3dbe6); border-radius: 8px; box-sizing: border-box; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: -14px -16px 10px; padding: 14px 16px 0; cursor: pointer; user-select: none; -webkit-user-select: none; border-radius: 8px 8px 0 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-head:hover { background: rgba(126,44,101,.05); }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-head .crg-stats-sort-ctl { cursor: default; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-head .crg-stat-sort-sel.crg-stats-sort-ctl, :is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-head .crg-stat-sort-dir.crg-stats-sort-ctl { cursor: pointer; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-title::before { content: '\25BE'; display: inline-block; margin-right: 6px; transition: transform .15s; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-collapsed .crg-stats-filters-title::before { transform: rotate(-90deg); }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-title { font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--cpc-fuchsia, #7E2C65); margin: 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-sort { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-sort label { font-size: 12.5px !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: .03em; color: #5c5266; margin: 0 !important; padding: 0 !important; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-sort-sel { height: 36px !important; margin: 0 !important; padding: 0 30px 0 10px !important; border: 1.5px solid var(--cpc-border, #e3dbe6) !important; border-radius: 6px !important; background-color: #FFF !important; font-family: 'foco', 'DM Sans', sans-serif !important; font-size: 13px !important; font-weight: 600 !important; line-height: 34px !important; color: var(--cpc-text, #2b2431) !important; box-sizing: border-box !important; box-shadow: none !important; cursor: pointer; min-width: 170px; max-width: 240px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-sort-dir { height: 36px !important; margin: 0 !important; padding: 0 12px !important; border: 1.5px solid var(--cpc-fuchsia, #7E2C65) !important; border-radius: 6px !important; background: #FFF !important; font-family: 'foco', 'DM Sans', sans-serif !important; font-size: 13px !important; font-weight: 700 !important; line-height: 34px !important; color: var(--cpc-fuchsia, #7E2C65) !important; cursor: pointer; box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; white-space: nowrap; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-sort-dir:hover:not(:disabled) { background: var(--cpc-fuchsia, #7E2C65) !important; color: #FFF !important; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-sort-dir:disabled { opacity: .45; cursor: default; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px 28px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range { min-width: 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range label { font-size: 12.5px !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: .03em; color: #5c5266; display: block; margin: 0 0 4px !important; padding: 0 !important; line-height: 1.3 !important; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range.crg-range-active label { color: var(--cpc-fuchsia, #7E2C65); }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-row { display: flex; align-items: center; gap: 8px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-field { display: inline-flex; align-items: center; gap: 2px; flex: 0 0 auto; font-size: 13px; font-weight: 600; color: var(--cpc-text, #2b2431); }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-num { width: 60px !important; height: 32px !important; margin: 0 !important; padding: 0 4px !important; border: 1.5px solid var(--cpc-border, #e3dbe6) !important; border-radius: 6px !important; background: #FFF !important; font-family: 'foco', 'DM Sans', sans-serif !important; font-size: 13px !important; font-weight: 600 !important; line-height: 30px !important; color: var(--cpc-text, #2b2431) !important; text-align: center; box-sizing: border-box !important; box-shadow: none !important; -moz-appearance: textfield; appearance: textfield; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-num:focus { outline: none; border-color: var(--cpc-fuchsia, #7E2C65) !important; box-shadow: 0 0 0 3px rgba(126,44,101,.12) !important; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-num::-webkit-outer-spin-button, :is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-num::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-track { position: relative; flex: 1 1 auto; min-width: 90px; height: 32px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-track::before { content: ''; position: absolute; left: 0; right: 0; top: 14px; height: 4px; border-radius: 2px; background: #d9d0dd; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-fill { position: absolute; top: 14px; height: 4px; border-radius: 2px; background: var(--cpc-fuchsia, #7E2C65); }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-track input[type="range"] { position: absolute; left: 0; top: 0; width: 100%; height: 32px; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; -webkit-appearance: none; appearance: none; pointer-events: none; outline: none; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-track input[type="range"]::-webkit-slider-runnable-track { background: transparent; height: 32px; border: 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-track input[type="range"]::-moz-range-track { background: transparent; height: 32px; border: 0; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-track input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 20px; height: 20px; margin-top: 6px; border-radius: 50%; background: #FFF; border: 2px solid var(--cpc-fuchsia, #7E2C65); box-shadow: 0 1px 4px rgba(0,0,0,.22); cursor: pointer; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range-track input[type="range"]::-moz-range-thumb { pointer-events: auto; width: 16px; height: 16px; border-radius: 50%; background: #FFF; border: 2px solid var(--cpc-fuchsia, #7E2C65); box-shadow: 0 1px 4px rgba(0,0,0,.22); cursor: pointer; }
@media (max-width: 700px) { :is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-grid { grid-template-columns: 1fr; } }

/* ── S260904-C4: sorted-metric shading + hide-filters mode ── */
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-sub-cell.crg-sub-sorted { background: #efe2ec; border-radius: 6px; padding: 3px 7px; margin: -3px -7px; box-shadow: inset 0 0 0 1.5px var(--cpc-fuchsia, #7E2C65); }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-sub-cell.crg-sub-sorted .crg-sub-label { color: var(--cpc-fuchsia, #7E2C65); }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range.crg-range-sorted { background: #efe2ec; border-radius: 8px; padding: 8px 10px; margin: -8px -10px; box-shadow: inset 0 0 0 1.5px var(--cpc-fuchsia, #7E2C65); }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-range.crg-range-sorted label { color: var(--cpc-fuchsia, #7E2C65); }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-hide { height: 36px !important; margin: 0 !important; padding: 0 12px !important; border: 1.5px solid var(--cpc-border, #e3dbe6) !important; border-radius: 6px !important; background: #FFF !important; font-family: 'foco', 'DM Sans', sans-serif !important; font-size: 13px !important; font-weight: 600 !important; line-height: 34px !important; color: #5c5266 !important; cursor: pointer; box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; white-space: nowrap; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stat-hide:hover { border-color: var(--cpc-fuchsia, #7E2C65) !important; color: var(--cpc-fuchsia, #7E2C65) !important; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-collapsed .crg-stats-filters-head { margin-bottom: 0; padding-bottom: 2px; border-radius: 8px; }
:is(#cpc-resource-guide, .cpc-resource-guide) .crg-stats-filters-collapsed .crg-stats-filters-grid { margin-top: 10px; grid-template-columns: minmax(280px, 560px); }

/* ═══════════ HOME SUPPORT FEE MODEL (S260909-B) ═══════════ */
.cpc-fm-wrap { background: #FFF; }
.cpc-fm-results { border: none !important; border-radius: 0 !important; box-shadow: none !important; background: #FBF7E8; border-bottom: 2px solid #C4D17A !important; }
.cpc-fm-form { padding-bottom: 12px !important; }
.cpc-fm-header { border-radius: 0; }
.cpc-fm-hero .cpc-gov-result-card { padding: 16px 20px; transition: opacity .2s; }
.cpc-fm-hero .cpc-gov-card-header { margin: -16px -20px 12px; padding: 10px 20px; min-height: 46px; display: flex; align-items: center; font-size: 13px; line-height: 1.25; }
.cpc-fm-hero .cpc-fm-today .cpc-gov-card-header { background: #EAE5ED; color: #3F3346; }
.cpc-fm-hero .cpc-fm-camp .cpc-gov-card-header { background: #FBE3E1; color: #9E2620; }
.cpc-fm-hero .cpc-fm-rec .cpc-gov-card-header { background: #F1DDEA; color: var(--cpc-fuchsia, #7E2C65); }
.cpc-fm-hero .cpc-fm-rec { background: #F5EED4; }
/* plan focus (Try a plan version): highlight the chosen plan, soften the other two */
.cpc-fm-focus-today .cpc-fm-hero .cpc-fm-today, .cpc-fm-focus-camp .cpc-fm-hero .cpc-fm-camp, .cpc-fm-focus-rec .cpc-fm-hero .cpc-fm-rec { box-shadow: inset 0 0 0 3px var(--cpc-plum, #482757); }
.cpc-fm-focus-today td.cpc-fm-t, .cpc-fm-focus-today th.cpc-fm-t { background: #EAE5ED; }
.cpc-fm-focus-camp td.cpc-fm-c, .cpc-fm-focus-camp th.cpc-fm-c { background: #FBE3E1; }
.cpc-fm-focus-rec td.cpc-fm-r, .cpc-fm-focus-rec th.cpc-fm-r { background: #F1DDEA; }
.cpc-fm-focus-today th.cpc-fm-t, .cpc-fm-focus-camp th.cpc-fm-c, .cpc-fm-focus-rec th.cpc-fm-r { background: #FFF; }
.cpc-fm-focus-today th.cpc-fm-t, .cpc-fm-focus-camp th.cpc-fm-c, .cpc-fm-focus-rec th.cpc-fm-r { color: var(--cpc-plum, #482757); box-shadow: inset 0 -3px 0 var(--cpc-plum, #482757); }
.cpc-fm-dials-wrap { margin: 0 0 12px; }
.cpc-fm-dials-wrap .cpc-fm-dials-plan { margin-top: 10px; }
.cpc-fm-reset-row { grid-column: 1 / -1; align-items: flex-start; }
.cpc-fm-reset { background: #FFF; border: 1.5px solid var(--cpc-plum, #482757); color: var(--cpc-plum, #482757); border-radius: 6px; padding: 8px 14px; font-size: 13px; font-weight: 600; cursor: pointer; }
.cpc-fm-reset:hover { background: #F8F4FA; }
.cpc-fm-amount { font-size: 26px; font-weight: 700; color: var(--cpc-plum, #482757); font-variant-numeric: tabular-nums; line-height: 1.15; margin: 6px 0 4px; }
.cpc-fm-hero .cpc-gov-card-note { font-size: 13px; line-height: 1.4; }
.cpc-fm-scenario-box { background: #FBF7E8; border-top: 1px solid #C4D17A; border-bottom: 1px solid #C4D17A; padding: 12px 20px; }
.cpc-fm-scenario { margin: 0; font-size: 15px; line-height: 1.55; color: #3F3346; }
.cpc-fm-hint { margin-left: auto; font-size: 11px; font-weight: 600; letter-spacing: 0.03em; text-transform: none; opacity: 0.85; }
.cpc-fm-hero .cpc-gov-result-card { cursor: pointer; }
.cpc-fm-hero .cpc-gov-result-card:focus-visible { outline: 3px solid var(--cpc-fuchsia, #7E2C65); outline-offset: -3px; }
.cpc-fm-advanced { border-top: 1px solid #E0D6E6; }
/* Key point callout in article body (S260913-B16) */
.cpc-key-point { margin: 14px 0 18px; padding: 12px 16px; background: #FBF7E8; border-left: 4px solid var(--cpc-fuchsia, #7E2C65); border-radius: 0 8px 8px 0; font-weight: 700; font-size: 17px; line-height: 1.5; color: var(--cpc-plum, #482757); }
/* MLA call to action (S260913-B29) */
.cpc-mla-cta { background: var(--cpc-plum, #482757); color: #FFF; border-radius: 10px; padding: 18px 20px 20px; margin: 8px 0 24px; font-size: 16px; line-height: 1.55; }
.cpc-mla-cta p { margin: 0 0 12px; color: #FFF; }
.cpc-mla-cta a { display: inline-block; background: var(--cpc-lime, #C5D92D); color: #2C3208; font-weight: 700; padding: 10px 18px; border-radius: 8px; text-decoration: none; }
.cpc-mla-cta a:hover { background: #D6E85A; }
/* Supplemental accordion in article body (S260913-B20) */
.cpc-supplement { border: 1px solid #E0D6E6; border-radius: 10px; background: #FFF; margin: 8px 0 24px; }
.cpc-supplement > summary { padding: 12px 16px; cursor: pointer; font-weight: 700; font-size: 16px; color: var(--cpc-plum, #482757); list-style: none; }
.cpc-supplement > summary::-webkit-details-marker { display: none; }
.cpc-supplement > summary::before { content: '+'; display: inline-block; width: 20px; color: var(--cpc-fuchsia, #7E2C65); font-weight: 800; }
.cpc-supplement[open] > summary::before { content: '\2212'; }
.cpc-supplement-body { padding: 0 16px 4px; border-top: 1px solid #F0ECF1; }
.cpc-supplement-body > p:first-child { margin-top: 14px; }
/* How the rule works: three-step strip (S260913-B15) */
.cpc-rule-strip { background: #FFF; border: 1px solid #E8E0EC; border-radius: 10px; padding: 14px 16px; margin: 8px 0 18px; }
.cpc-rule-steps { display: grid; grid-template-columns: 1fr 28px 1fr 28px 1fr; gap: 8px; align-items: stretch; }
.cpc-rule-step { display: flex; flex-direction: column; background: #F8F4FA; border: 1px solid #E0D6E6; border-radius: 10px; padding: 12px 14px; min-width: 0; }
.cpc-rule-step-pay { background: #FBF7E8; border-color: #C4D17A; }
.cpc-rule-label { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: #6B4E8B; }
.cpc-rule-step strong { display: block; font-size: 15px; color: var(--cpc-plum, #482757); margin: 4px 0 2px; }
.cpc-rule-step > span:last-child { font-size: 13px; color: #4A3D52; line-height: 1.4; }
.cpc-rule-arrow { display: flex; align-items: center; justify-content: center; font-size: 20px; color: #9C8AA3; }
.cpc-rule-example { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 10px; font-size: 13px; color: #4A3D52; }
.cpc-rule-example > div { padding: 8px 14px; }
.cpc-rule-example em { font-style: normal; color: #6B4E8B; margin-right: 4px; }
.cpc-rule-example strong { color: var(--cpc-plum, #482757); }
.cpc-rule-note { margin-top: 10px; padding: 9px 14px; background: #EAE5ED; border-radius: 8px; font-size: 13px; color: #3F3346; }
@media (max-width: 640px) {
  .cpc-rule-steps, .cpc-rule-example { grid-template-columns: 1fr; }
  .cpc-rule-arrow { transform: rotate(90deg); }
}
/* Continuity evidence: stat row (S260913-B15) */
.cpc-stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 10px; margin: 6px 0 18px; }
.cpc-stat { display: flex; flex-direction: column; background: #F8F4FA; border: 1px solid #E0D6E6; border-radius: 10px; padding: 12px; min-width: 0; }
.cpc-stat-hi { background: #FBF7E8; border-color: #C4D17A; }
.cpc-stat strong { font-size: 22px; font-weight: 700; color: var(--cpc-fuchsia, #7E2C65); line-height: 1.1; }
.cpc-stat span { font-size: 12.5px; color: #4A3D52; line-height: 1.4; margin-top: 6px; }
.cpc-stat em { font-style: normal; font-size: 11px; color: #6B4E8B; margin-top: auto; padding-top: 6px; }
.cpc-fm-form { border: none !important; border-radius: 0 !important; margin-bottom: 0 !important; padding: 16px 20px 8px !important; }
.cpc-fm-section { margin: 0 0 14px; }
.cpc-fm-section-title { font-size: 13px; font-weight: 700; color: var(--cpc-plum, #482757); text-transform: uppercase; letter-spacing: 0.04em; margin: 0 0 8px; }
.cpc-fm-dials { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px 14px; }
.cpc-fm-dials .cpc-fm-section-title { grid-column: 1 / -1; }
.cpc-fm-dials-plan { padding: 12px 14px; background: #F8F4FA; border: 1px solid #E0D6E6; border-radius: 8px; }
.cpc-fm-field { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cpc-fm-field .cpc-gov-fam-label { font-size: 12.5px; line-height: 1.3; color: #5E5364; white-space: normal; }
.cpc-fm-field .cpc-gov-input, .cpc-fm-field .cpc-gov-select { width: 100%; max-width: none; }
.cpc-fm-field .cpc-gov-input { height: 42px; padding: 0 12px; border: 1.5px solid #E0D6E6; border-radius: 6px; font-size: 15px; color: var(--cpc-plum, #482757); font-variant-numeric: tabular-nums; }
.cpc-fm-field-check { flex-direction: row; align-items: center; gap: 10px; }
.cpc-fm-field-check input { width: 18px; height: 18px; accent-color: var(--cpc-fuchsia, #7E2C65); order: -1; flex: none; }
.cpc-fm-presets .cpc-gov-select { max-width: 320px; }
.cpc-fm-preset-note { margin: 8px 0 0; font-size: 13.5px; line-height: 1.45; color: #4A3D52; max-width: 70ch; }
.cpc-fm-more { margin: 4px 0 8px; }
.cpc-fm-more .cpc-fm-section { margin-top: 12px; }
.cpc-fm-charts { display: grid; grid-template-columns: 1fr; gap: 14px; padding: 16px 20px; background: #FBF9FC; border-top: 1px solid #E0D6E6; }
.cpc-fm-chart { background: #FFF; border: 1px solid #E8E0EC; border-radius: 10px; padding: 14px 16px 12px; min-width: 0; }
.cpc-fm-chart h3, .cpc-fm-tablecard h3 { font-size: 16px; font-weight: 700; color: var(--cpc-plum, #482757); margin: 0 0 10px; }
.cpc-fm-chart-body { width: 100%; }
.cpc-fm-svg { display: block; width: 100%; height: auto; }
.cpc-fm-grid { stroke: #EFE9F1; stroke-width: 1; }
.cpc-fm-axis { stroke: #B9A6C0; stroke-width: 1.5; }
.cpc-fm-mark { stroke: #B9A6C0; stroke-width: 1; stroke-dasharray: 4 4; }
.cpc-fm-ytick, .cpc-fm-xtick { font-size: 13px; fill: #4A3D52; font-family: 'DM Sans', -apple-system, sans-serif; }
.cpc-fm-marklabel { font-size: 12px; fill: #6B4E8B; font-weight: 600; font-family: 'DM Sans', -apple-system, sans-serif; }
.cpc-fm-legend { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 10px 0 0; font-size: 14px; color: #24172A; }
.cpc-fm-legend-item { display: inline-flex; align-items: center; gap: 8px; }
.cpc-fm-swatch { display: inline-block; width: 28px; height: 0; }
.cpc-fm-plans { margin: 0 0 20px; }
.cpc-fm-plans .cpc-fm-chart { padding: 14px 16px 12px; }
.cpc-fm-gov { margin: 8px 0 24px; }
.cpc-fm-gov .cpc-fm-tablecard:first-child { margin-top: 0; }
.cpc-fm-cap { margin: 10px 0 0; font-size: 14px; line-height: 1.5; color: #5E5364; }
.cpc-fm-tables { padding: 4px 20px 20px; background: #FBF9FC; }
.cpc-fm-tablecard { margin-top: 16px; }
.cpc-fm-tablecard .cpc-ssr-table-wrap { overflow-x: auto; margin: 10px 0 8px; border: 2px solid var(--cpc-plum, #482757); border-radius: 12px; background: #FFF; }
.cpc-fm-table { width: 100%; border-collapse: collapse; font-size: 14px; background: #FFF; }
.cpc-fm-table th { text-align: left; padding: 9px 10px; background: var(--cpc-plum, #482757); color: #FFF; font-weight: 700; font-size: 12px; letter-spacing: 0.02em; text-transform: uppercase; line-height: 1.25; vertical-align: bottom; }
.cpc-fm-table td { padding: 9px 10px; border-bottom: 1px solid #F0ECF1; color: #2D2226; vertical-align: middle; line-height: 1.3; }
.cpc-fm-table tr:last-child td { border-bottom: none; }
.cpc-fm-table tbody tr:nth-child(even) td { background: #FBF9FC; }
.cpc-fm-table td:first-child, .cpc-fm-table th:first-child { padding-left: 14px; }
.cpc-fm-table td:last-child, .cpc-fm-table th:last-child { padding-right: 14px; }
.cpc-fm-table td.num, .cpc-fm-table th.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cpc-fm-table td.cpc-fm-t { color: #6B6470; }
.cpc-fm-table td.cpc-fm-c { color: #B52D26; }
.cpc-fm-table td.cpc-fm-r { color: var(--cpc-fuchsia, #7E2C65); font-weight: 600; }
.cpc-fm-table tr.cpc-fm-total td { font-weight: 700; border-top: 2px solid #C4D17A; }
.cpc-fm-note { margin: 8px 0 0; font-size: 12.5px; line-height: 1.45; color: #5E5364; }
@media (max-width: 768px) {
  .cpc-fm-charts { padding: 12px; }
  .cpc-fm-ytick, .cpc-fm-xtick { font-size: 12px; }
  .cpc-fm-legend { font-size: 13px; gap: 4px 14px; }
  .cpc-fm-form { padding: 12px !important; }
  .cpc-fm-tables { padding: 4px 12px 16px; }
  .cpc-fm-amount { font-size: 22px; }
}
