.rp8-calc {
  --rp-ink: #1c1c1c;
  --rp-muted: #5c6570;
  color: var(--rp-ink);
}

.rp8-calc h1 {
  color: var(--rp-teal-dark);
  font-weight: 700;
}

.rp8-calc .kicker {
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--rp-teal);
  margin-bottom: 0.35rem;
}

.rp8-calc .disclaimer {
  background: #fff6d8;
  border-left: 4px solid var(--rp-accent);
  padding: 0.75rem 1rem;
  margin: 0 0 1.25rem;
}

.rp8-calc .rates {
  font-size: 0.92rem;
  color: var(--rp-muted);
}

.rp8-calc .town-banner {
  background: var(--rp-teal);
  color: #fff;
  border-radius: 8px;
  padding: 0.7rem 0.9rem;
  margin-bottom: 1rem;
}

.rp8-calc .town-banner a {
  color: #fff;
  font-weight: 700;
}

.rp8-calc .panel {
  background: #fff;
  border: 1px solid #e4ddd0;
  border-radius: 10px;
  padding: 1rem 1rem 0.4rem;
  margin-bottom: 1rem;
}

.rp8-calc .panel h2 {
  font-size: 1rem;
  color: var(--rp-teal-dark);
  border-bottom: 2px solid var(--rp-accent);
  display: inline-block;
  padding-bottom: 0.15rem;
  margin-bottom: 0.8rem;
}

.rp8-calc .results {
  display: grid;
  gap: 0.85rem;
}

@media (min-width: 992px) {
  .rp8-calc .results-col {
    position: sticky;
    top: 1rem;
    align-self: start;
  }
}

.rp8-calc-card {
  background: #fffdf8;
  border: 1px solid #e4ddd0;
  border-radius: 10px;
  padding: 0.9rem 1rem 0.7rem;
  box-shadow: 0 1px 0 rgba(13, 61, 46, 0.04);
}

.rp8-calc-card h2 {
  font-size: 1.05rem;
  color: var(--rp-teal-dark);
  margin: 0 0 0.6rem;
}

.rp8-calc-card dl {
  display: grid;
  grid-template-columns: 1.4fr 0.8fr;
  gap: 0.35rem 0.75rem;
  margin: 0;
}

.rp8-calc-card dt {
  margin: 0;
  color: var(--rp-muted);
  font-size: 0.92rem;
}

.rp8-calc-card dd {
  margin: 0;
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

.rp8-calc-card dd.total {
  color: var(--rp-teal-dark);
  font-size: 1.05rem;
}

.rp8-calc-card dd.neg {
  color: #8a1c1c;
}

.rp8-calc-card dd.pos {
  color: #145a32;
}

.rp8-calc-card .note {
  margin: 0.7rem 0 0.2rem;
  font-size: 0.82rem;
  color: var(--rp-muted);
}

.rp8-calc .form-control,
.rp8-calc .form-select {
  font-size: 1rem;
}

@media (max-width: 575.98px) {
  .rp8-calc-card dl {
    grid-template-columns: 1fr;
    gap: 0.1rem;
  }

  .rp8-calc-card dd {
    text-align: left;
    margin-bottom: 0.45rem;
  }
}
