/* Buy-to-let town briefings. Rules are scoped under .rp8-town except the page background. */


    .rp8-town, .rp8-town * { box-sizing: border-box; }
    .rp8-town {
      --rp-teal: #1a5f4a;
      --rp-teal-dark: #0d3d2e;
      --rp-accent: #c9a227;
      --rp-ink: #1c1c1c;
      --rp-muted: #5c6570;
      --rp-paper: #fffdf8;
      --rp-line: #e4ddd0;
      --rp-soft: #eef5f1;
      color: var(--rp-ink);
      font-family: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
      font-size: 1.05rem;
      line-height: 1.65;
      max-width: 1080px;
      margin: 0 auto;
      background: var(--rp-paper);
      box-shadow: 0 0 0 1px var(--rp-line);
    }
    .rp8-town a { color: #0d4f3c; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
    .rp8-town a:hover { color: var(--rp-teal-dark); }
    .rp8-town h1, .rp8-town h2, .rp8-town h3 { font-weight: 700; line-height: 1.25; color: var(--rp-teal-dark); }
    .rp8-town h1 { font-size: clamp(1.7rem, 3vw, 2.35rem); margin: 0 0 0.6rem; color: #fff; }
    .rp8-town h2 { font-size: 1.45rem; margin: 0 0 0.75rem; padding-bottom: 0.35rem; border-bottom: 2px solid var(--rp-accent); display: inline-block; }
    .rp8-town h3 { font-size: 1.12rem; margin: 1.1rem 0 0.4rem; }
    .rp8-town p { margin: 0 0 0.9rem; }
    .rp8-town .hero {
      background: linear-gradient(135deg, rgba(26,95,74,.96), rgba(13,61,46,.98));
      color: #fff;
      padding: 2.2rem 1.4rem 1.8rem;
    }
    .rp8-town .hero p { color: #e7f0eb; margin-bottom: 0.7rem; }
    .rp8-town .kicker {
      display: inline-block;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-size: 0.72rem;
      font-weight: 700;
      color: var(--rp-accent);
      margin-bottom: 0.55rem;
    }
    .rp8-town .meta-line { font-size: 0.9rem; color: #c9d7d0; }
    .rp8-town .wrap { padding: 1.5rem 1.4rem 2rem; }
    .rp8-town .lede { font-size: 1.12rem; }
    .rp8-town .disclaimer {
      background: #fff6d8;
      border-left: 4px solid var(--rp-accent);
      padding: 0.75rem 1rem;
      margin: 1rem 0 1.4rem;
      font-size: 0.95rem;
    }
    .rp8-town .stats {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
      gap: 0.75rem;
      margin: 1rem 0 1.3rem;
    }
    .rp8-town .stat {
      background: var(--rp-soft);
      border: 1px solid #d7e6de;
      border-radius: 8px;
      padding: 0.85rem 0.9rem;
    }
    .rp8-town .stat strong {
      display: block;
      font-size: 1.28rem;
      color: var(--rp-teal-dark);
      letter-spacing: -0.02em;
    }
    .rp8-town .stat span { display: block; font-size: 0.82rem; color: var(--rp-muted); }
    .rp8-town .table-wrap { overflow-x: auto; margin: 0.6rem 0 0.8rem; }
    .rp8-town table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.95rem;
      min-width: 560px;
    }
    .rp8-town th, .rp8-town td {
      text-align: left;
      padding: 0.55rem 0.65rem;
      border-bottom: 1px solid var(--rp-line);
      vertical-align: top;
    }
    .rp8-town thead th {
      background: var(--rp-teal);
      color: #fff;
      font-weight: 600;
      font-size: 0.82rem;
      letter-spacing: 0.03em;
      text-transform: uppercase;
    }
    .rp8-town tbody tr:nth-child(even) { background: #f7faf8; }
    .rp8-town td.num, .rp8-town th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
    .rp8-town .source, .rp8-town figcaption, .rp8-town .note {
      font-size: 0.86rem;
      color: var(--rp-muted);
      margin: 0 0 1.1rem;
    }
    .rp8-town .areas {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
      gap: 0.85rem;
      margin: 0.8rem 0 1.2rem;
    }
    .rp8-town .area {
      border: 1px solid var(--rp-line);
      border-radius: 8px;
      padding: 0.9rem 1rem 0.7rem;
      background: #fff;
    }
    .rp8-town .area h3 { margin-top: 0; }
    .rp8-town .area ul { margin: 0.25rem 0 0.5rem; padding-left: 1.1rem; }
    .rp8-town .area li { margin: 0.2rem 0; }
    .rp8-town .cta {
      display: grid;
      grid-template-columns: 1.4fr 1fr;
      gap: 1rem;
      margin: 1.3rem 0;
    }
    .rp8-town .cta-box {
      border-radius: 10px;
      padding: 1.15rem 1.2rem;
    }
    .rp8-town .cta-mail {
      background: var(--rp-teal);
      color: #fff;
    }
    .rp8-town .cta-mail h2, .rp8-town .cta-calc h2 { color: inherit; border: 0; padding: 0; display: block; }
    .rp8-town .cta-mail p { color: #e7f0eb; }
    .rp8-town label { display: block; font-size: 0.85rem; font-weight: 600; margin: 0.45rem 0 0.2rem; }
    .rp8-town input[type="text"],
    .rp8-town input[type="email"] {
      width: 100%;
      padding: 0.55rem 0.65rem;
      border: 1px solid #8fb3a5;
      border-radius: 6px;
      font: inherit;
    }
    .rp8-town button, .rp8-town .btn {
      display: inline-block;
      margin-top: 0.75rem;
      background: var(--rp-accent);
      color: #1a1a1a;
      font-weight: 700;
      border: 0;
      border-radius: 6px;
      padding: 0.65rem 1.05rem;
      cursor: pointer;
      text-decoration: none;
      font-size: 1rem;
    }
    .rp8-town button:hover, .rp8-town .btn:hover { filter: brightness(0.96); color: #111; }
    .rp8-town .cta-calc {
      background: var(--rp-soft);
      border: 1px solid #d7e6de;
      color: var(--rp-teal-dark);
    }
    .rp8-town details {
      border-bottom: 1px solid var(--rp-line);
      padding: 0.55rem 0;
    }
    .rp8-town summary { cursor: pointer; font-weight: 700; color: var(--rp-teal-dark); }
    .rp8-town details p { margin: 0.5rem 0 0.3rem; }
    .rp8-town .links { display: flex; flex-wrap: wrap; gap: 0.5rem 0.85rem; margin: 0.4rem 0 1rem; }
    .rp8-town footer.page-foot {
      background: #f3efe6;
      padding: 1.1rem 1.4rem 1.6rem;
      font-size: 0.86rem;
      color: var(--rp-muted);
    }
    .rp8-town .neg { color: #8a1c1c; }
    .rp8-town .pos { color: #145a32; }
    @media (max-width: 720px) {
      .rp8-town .cta { grid-template-columns: 1fr; }
      .rp8-town .hero, .rp8-town .wrap, .rp8-town footer.page-foot { padding-left: 1rem; padding-right: 1rem; }
      .rp8-town table { min-width: 500px; }
    }

    /* Page chrome. Does not reset body margin; the site layout still controls that. */
    body.rp8-town-body { background: #f4f1ea; }
    .rp8-town .cta-mail a { color: #fff; }
    .rp8-town .cta-mail .form-status { background: #fff6d8; color: #1c1c1c; border-radius: 6px; padding: 0.65rem 0.75rem; margin: 0 0 0.75rem; }
    .rp8-town .cta-mail .form-status a { color: #0d4f3c; }
    .rp8-town .field-validation-error { color: #ffe08a; font-size: 0.85rem; display: block; margin-top: 0.25rem; }
    .rp8-town .rp8-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
