/*
 * DEVELOPING SOUTHERN THORNLANDS
 * Shared website stylesheet
 *
 * This file contains only styles used by the shared template, JavaScript,
 * error page, and reusable helpers in short.php. Page-specific modules can add
 * their own clearly labelled sections here as the site grows.
 */


/* ========================================================================== 
   1. SITE VARIABLES
   Change common dimensions and colours here instead of hunting through rules.
   ========================================================================== */

:root {
  --content-width: 1024px;
  --page-gutter: 24px;
  --header-height: 96px;

  --colour-dark: #020301;
  --colour-white: #ffffff;
  --colour-text: #20242a;
  --colour-muted: #aeb6c2;
  --colour-green: #54813e;
  --colour-green-dark: #3f652f;
  --colour-border-dark: rgb(255 255 255 / 16%);

  --focus-light: #ffffff;
  --radius-small: 4px;
  --transition: 220ms ease;
}


/* ========================================================================== 
   2. RESET AND BASIC ELEMENTS
   ========================================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  margin: 0;
  display: flex;
  flex-direction: column;
  color: var(--colour-text);
  background: var(--colour-white);
  font-family:
    Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

/* The hidden attribute controls the expandable menu and mobile search panel. */
[hidden] {
  display: none !important;
}

img,
svg {
  max-width: 100%;
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

h1,
h2,
h3 {
  margin-top: 0;
  line-height: 1.2;
}

p {
  margin-top: 0;
}

a,
a:visited {
  color: var(--colour-green);
  text-decoration: none;
}

a:hover,
a:active {
  color: #333333;
}


/* ========================================================================== 
   3. ACCESSIBILITY AND SHARED LAYOUT
   ========================================================================== */

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--colour-green);
  outline-offset: 3px;
}

/* White focus rings remain visible on the dark header and footer. */
.site-header button:focus-visible,
.site-header a:focus-visible,
.site-header input:focus-visible,
.site-footer a:focus-visible {
  outline-color: var(--focus-light);
}

.site-container {
  width: min(
    calc(100% - (var(--page-gutter) * 2)),
    var(--content-width)
  );
  margin-inline: auto;
}

/* Accessible text that should be read but not displayed visually. */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Hidden until a keyboard user tabs into the page. */
.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 100;
  padding: 10px 16px;
  color: var(--colour-dark);
  background: var(--colour-white);
  border-radius: var(--radius-small);
  transform: translateY(-150%);
  transition: transform var(--transition);
}

.skip-link:focus {
  color: var(--colour-dark);
  transform: translateY(0);
}


/* ========================================================================== 
   4. HEADER AND LOGO
   ========================================================================== */

.site-header {
  position: relative;
  z-index: 10;
  color: var(--colour-white);
  background:
    url("../images/hfbg.jpg?v=d") top center / cover no-repeat,
    var(--colour-dark);
}

.header-content {
  min-height: var(--header-height);
  display: grid;
  grid-template-columns:
    minmax(300px, 3fr)
    minmax(200px, 440px)
    minmax(50px, 1fr);
  align-items: center;
  gap: 28px;
}

.site-logo,
.footer-logo {
  width: fit-content;
  display: inline-flex;
  align-items: center;
}

.site-logo img {
  width: 250px;
  height: auto;
  display: block;
}


/* ========================================================================== 
   5. SEARCH FORMS AND HEADER BUTTONS
   ========================================================================== */

.desktop-search {
  width: 100%;
}

.search-form {
  width: 100%;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 35%);
  border-radius: var(--radius-small);
  background: rgb(255 255 255 / 11%);
  backdrop-filter: blur(8px);
}

.search-form:focus-within {
  border-color: rgb(255 255 255 / 90%);
  box-shadow: 0 0 0 3px rgb(255 255 255 / 13%);
}

.search-form input {
  min-width: 0;
  height: 46px;
  padding: 0 6px 0 20px;
  flex: 1;
  color: var(--colour-white);
  border: 0;
  outline: 0;
  background: transparent;
}

.search-form input::placeholder {
  color: rgb(255 255 255 / 70%);
}

.search-form input::-webkit-search-cancel-button {
  filter: invert(1);
}

.search-form button,
.search-toggle,
.menu-toggle {
  color: var(--colour-white);
  border: 0;
  background: transparent;
  cursor: pointer;
}

.search-form button {
  width: 52px;
  display: grid;
  place-items: center;
}

.search-form button:hover,
.search-toggle:hover,
.menu-toggle:hover {
  background: rgb(255 255 255 / 10%);
}

.search-form svg,
.search-toggle svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentcolor;
  stroke-width: 2;
  stroke-linecap: round;
}

.header-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* The search toggle is only shown when the desktop search bar is hidden. */
.search-toggle {
  width: 46px;
  height: 46px;
  display: none;
  place-items: center;
  border-radius: var(--radius-small);
}

.menu-toggle {
  width: 46px;
  height: 46px;
  padding: 11px;
  display: grid;
  align-content: center;
  gap: 5px;
  border-radius: var(--radius-small);
}

.menu-toggle span {
  width: 24px;
  height: 2px;
  display: block;
  border-radius: var(--radius-small);
  background: currentcolor;
  transition:
    transform var(--transition),
    opacity var(--transition);
}

/* Turn the three menu bars into a close icon while the menu is open. */
.menu-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}


/* ========================================================================== 
   6. EXPANDING SEARCH AND NAVIGATION PANELS
   ========================================================================== */

.mobile-search-panel,
.expanded-menu {
  overflow: hidden;
  border-top: 1px solid var(--colour-border-dark);
  background: rgb(0 0 0 / 60%);
  animation: panel-open var(--transition) both;
}

.mobile-search-panel {
  padding-block: 16px;
}

.mobile-search-form {
  max-width: 620px;
  margin-inline: auto;
}

.expanded-menu {
  padding-block: 30px 36px;
}

.menu-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px;
}

.menu-group {
  display: grid;
  align-content: start;
  gap: 4px;
}

.menu-heading {
  margin: 0 0 10px;
  color: var(--colour-green);
  font-weight: 600;
  text-transform: uppercase;
}

.menu-group a,
.menu-group a:visited {
  padding-block: 9px;
  color: var(--colour-white);
  font-size: 1rem;
  line-height: 1.3;
}

.menu-group a:hover,
.menu-group .menu-heading a,
.menu-group .menu-heading a:visited {
  color: var(--colour-green);
}

@keyframes panel-open {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* ========================================================================== 
   7. MAIN CONTENT
   ========================================================================== */

.site-main {
  flex: 1;
  background: var(--colour-white);
}

.main-content {
  min-height: 620px;
  padding-block: 48px;
}

/* A quiet page trail generated from the same items as the JSON-LD. */
.breadcrumbs {
  margin-bottom: 24px;
  color: #70776f;
  font-size: 0.86rem;
  line-height: 1.5;
}

.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumbs li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.breadcrumbs a {
  color: #566055;
}

.breadcrumbs a:hover {
  color: var(--colour-green);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.breadcrumbs [aria-current="page"] {
  color: #2f352f;
}

.breadcrumb-separator {
  color: #a0a79f;
  font-size: 1.05em;
}


/* ========================================================================== 
   8. STANDARD CONTENT PAGES
   Used by Privacy, Terms and future static pages, articles and guides.
   ========================================================================== */

.content-page {
  max-width: none;
  margin-inline: auto;
}

.content-page-header {
  margin-bottom: 32px;
  padding-bottom: 30px;
  border-bottom: 1px solid #dfe3dc;
}

.eyebrow {
  margin-bottom: 8px;
  color: var(--colour-green);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.content-page-header h1 {
  margin-bottom: 16px;
  font-size: clamp(2.25rem, 7vw, 3.75rem);
  letter-spacing: -0.035em;
}

.page-intro {
  max-width: 700px;
  margin-bottom: 18px;
  color: #485047;
  font-size: 1.18rem;
  line-height: 1.7;
}

.last-updated {
  margin-bottom: 0;
  color: #6b736a;
  font-size: 0.92rem;
}

/* A compact table of contents makes long static pages easier to scan. */
.page-contents {
  margin-bottom: 42px;
  padding: 22px 24px;
  border: 1px solid #dfe5da;
  border-radius: var(--radius-small);
  background: #f4f7f2;
}

.page-contents-title {
  margin-bottom: 12px;
  font-weight: 700;
}

.page-contents ul {
  margin: 0;
  padding-left: 20px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 30px;
}

.page-contents a,
.content-section a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.content-section {
  margin-top: 42px;
  scroll-margin-top: 24px;
}

.content-section h2 {
  margin-bottom: 16px;
  font-size: clamp(1.45rem, 4vw, 1.85rem);
}

.content-section p,
.content-section li {
  max-width: 74ch;
}

.content-section ul,
.content-section ol {
  margin-block: 0 20px;
  padding-left: 24px;
}

.content-section li + li {
  margin-top: 8px;
}

.content-section p:last-child,
.content-note p:last-child {
  margin-bottom: 0;
}

/* Highlight important context without giving it the severity of a warning. */
.content-note {
  margin-block: 24px;
  padding: 18px 20px;
  border-left: 4px solid var(--colour-green);
  background: #f4f7f2;
}


/* ========================================================================== 
   8B. RESIDENTIAL DEVELOPMENT CATALOGUE
   Dynamic project records, current versions, areas and applications.
   ========================================================================== */

.residential-page {
  --residential-ink: #152016;
  --residential-soft: #eef3eb;
  --residential-warm: #f5f1e8;
  --residential-line: #d9e1d5;
}

.residential-page-header {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(290px, 0.75fr);
  gap: clamp(30px, 5vw, 64px);
  align-items: stretch;
}

.residential-page-summary {
  padding: clamp(24px, 4vw, 36px);
  color: #eff5ec;
  background:
    linear-gradient(135deg, rgb(2 3 1 / 86%), rgb(52 83 38 / 78%)),
    url("../images/hfbg.jpg?v=d") center / cover no-repeat,
    var(--residential-ink);
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: 4px;
}

.residential-page-summary .eyebrow {
  color: #a9c599;
}

.residential-page-summary h2 {
  margin-bottom: 12px;
  color: #ffffff;
  font-size: clamp(1.45rem, 3vw, 1.9rem);
}

.residential-page-summary > p:not(.eyebrow) {
  margin-bottom: 0;
  color: #d9e3d4;
  font-size: 0.9rem;
}

.residential-page-quick-links {
  margin-top: 26px;
  padding: 16px;
  border: 1px solid var(--residential-line);
  border-left: 3px solid var(--colour-green);
  border-radius: 4px;
  background: #f4f7f2;
}

.residential-page-quick-links .eyebrow {
  margin-bottom: 11px;
}

.residential-page-quick-link-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.residential-page-quick-link-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.residential-page-quick-link-grid a,
.residential-page-quick-link-grid a:visited {
  min-width: 0;
  min-height: 76px;
  padding: 11px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  align-items: start;
  gap: 7px 9px;
  color: #344331;
  border: 1px solid #d9e3d4;
  border-radius: 4px;
  background: #ffffff;
  font-size: 0.79rem;
  font-weight: 750;
  line-height: 1.35;
  transition:
    color var(--transition),
    border-color var(--transition),
    background var(--transition);
}

.residential-page-quick-link-grid a:hover,
.residential-page-quick-link-grid a:focus-visible {
  color: var(--residential-ink);
  border-color: #9eb293;
  background: #f9fbf8;
}

.residential-page-quick-link-grid a > i:first-child {
  color: var(--colour-green-dark);
  font-size: 0.95rem;
}

.residential-page-quick-link-grid a > i:last-child {
  grid-column: 1;
  align-self: end;
  color: #7c9570;
  font-size: 0.7rem;
}

.residential-page-quick-link-grid a > span {
  grid-column: 2;
  grid-row: 1 / span 2;
}

.residential-list-heading h2 {
  margin-bottom: 12px;
  font-size: clamp(1.65rem, 4vw, 2.35rem);
}

.residential-list-heading p:last-child {
  margin-bottom: 0;
  color: #596258;
}

.residential-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid #cfdacb;
  border-radius: 4px;
  overflow: hidden;
  background: #ffffff;
}

.residential-summary-grid div {
  min-height: 118px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  row-gap: 8px;
}

.residential-summary-grid div:nth-child(odd) {
  border-right: 1px solid #dce4d8;
}

.residential-summary-grid div:nth-child(-n + 2) {
  border-bottom: 1px solid #dce4d8;
}

.residential-summary-grid-compact div:nth-child(-n + 2) {
  border-bottom: 0;
}

.residential-summary-grid strong {
  color: var(--residential-ink);
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1;
}

.residential-summary-grid span {
  margin-top: 0;
  color: #636c62;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.residential-page-summary .residential-summary-grid {
  margin-top: 20px;
  border-color: #6f9161;
  background: var(--colour-green-dark);
}

.residential-page-summary .residential-summary-grid div {
  min-height: 100px;
  padding: 16px;
  justify-content: flex-start;
}

.residential-page-summary .residential-summary-grid div:nth-child(odd) {
  border-right-color: rgb(255 255 255 / 18%);
}

.residential-page-summary .residential-summary-grid strong {
  color: #ffffff;
  font-size: clamp(1.8rem, 4vw, 2.45rem);
}

.residential-page-summary .residential-summary-grid span {
  color: #e3ecde;
  font-size: 0.75rem;
}

.residential-map-section {
  margin-block: 0 50px;
  padding: clamp(24px, 4vw, 36px);
  scroll-margin-top: 24px;
  background: #ffffff;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
  box-shadow: 0 14px 42px rgb(29 48 26 / 7%);
}

.residential-map-heading {
  margin-bottom: 22px;
}

.residential-map-heading h2 {
  margin-bottom: 0;
  font-size: clamp(1.65rem, 4vw, 2.35rem);
}

.residential-map-instruction {
  margin: 0 0 14px;
  padding: 13px 15px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  color: #435041;
  background: #f4f7f2;
  border-left: 3px solid var(--colour-green);
  font-size: 0.88rem;
}

.residential-map-instruction i {
  margin-top: 4px;
  color: var(--colour-green-dark);
}

.residential-map-frame-shell {
  overflow: hidden;
  background: #dfe3da;
  border: 1px solid #cad4c5;
  border-radius: 4px;
}

.residential-map-frame {
  width: 100%;
  height: min(72vh, 720px);
  min-height: 540px;
  display: block;
  border: 0;
}

.residential-map-caption {
  margin: 11px 0 0;
  color: #5c665a;
  font-size: 0.8rem;
  font-weight: 700;
}

.residential-map-caveat {
  margin-top: 16px;
  padding: 15px 17px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  color: #554d3f;
  background: var(--residential-warm);
  border-left: 4px solid #b7945d;
}

.residential-map-caveat i {
  margin-top: 4px;
  color: #8e6c38;
}

.residential-map-caveat p,
.residential-map-unavailable {
  margin: 0;
}

.residential-map-unavailable {
  margin-bottom: 14px;
  padding: 13px 15px;
  color: #596258;
  background: #f4f7f2;
  border-left: 3px solid var(--colour-green);
}

.residential-projects {
  padding-top: 12px;
  scroll-margin-top: 24px;
}

.residential-overview-updates {
  scroll-margin-top: 24px;
}

.residential-list-heading {
  max-width: 720px;
  margin-bottom: 24px;
}

.residential-project-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.residential-project-link {
  min-height: 265px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  color: var(--residential-ink);
  background: #ffffff;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
  box-shadow: 0 10px 30px rgb(29 48 26 / 6%);
  transition: border-color var(--transition), box-shadow var(--transition);
}

.residential-project-link:visited {
  color: var(--residential-ink);
}

.residential-project-link:hover {
  color: var(--residential-ink);
  border-color: #9eb293;
  box-shadow: 0 16px 40px rgb(29 48 26 / 11%);
}

.residential-project-link-top {
  margin-bottom: 18px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: #697268;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.residential-project-link-name {
  margin-bottom: 12px;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.25;
}

.residential-project-link-copy {
  color: #596158;
  font-size: 0.94rem;
}

.residential-project-location {
  margin-bottom: 10px;
  display: flex;
  gap: 7px;
  align-items: flex-start;
  color: #687168;
  font-size: 0.82rem;
}

.residential-project-location i {
  margin-top: 4px;
  color: var(--colour-green);
}

.residential-project-developer {
  margin-bottom: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 5px 8px;
  align-items: baseline;
  color: #596558;
  font-size: 0.82rem;
}

.residential-project-developer > span {
  color: #747d73;
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.residential-project-developer strong {
  color: var(--residential-ink);
  font-weight: 800;
}

.residential-project-link-meta {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.residential-project-link-meta span {
  padding: 4px 7px;
  color: #596558;
  background: var(--residential-soft);
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 750;
}

.residential-project-link-action {
  margin-top: auto;
  padding-top: 20px;
  color: var(--colour-green-dark);
  font-weight: 800;
}

.residential-project-link-action i {
  margin-left: 6px;
  font-size: 0.8em;
}

.development-status {
  padding: 5px 9px;
  display: inline-flex;
  align-items: center;
  border-radius: 4px;
  color: #31422e;
  background: #e7efe2;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.3;
  text-transform: uppercase;
}

.development-status-on_hold,
.development-status-cancelled {
  color: #744b1d;
  background: #f6e8d4;
}

.development-status-partially_complete,
.development-status-construction,
.development-status-site_preparation {
  color: #26536b;
  background: #e2f0f6;
}

.development-status-complete {
  color: #23593c;
  background: #dff0e6;
}

.residential-reading-note {
  margin-block: 42px 54px;
  padding: 24px 28px;
  display: flex;
  gap: 20px;
  align-items: flex-start;
  color: #4b473d;
  background: var(--residential-warm);
  border-left: 4px solid #b7945d;
}

.residential-reading-note > i {
  margin-top: 5px;
  color: #8e6c38;
  font-size: 1.25rem;
}

.residential-reading-note h2 {
  margin-bottom: 8px;
  font-size: 1.25rem;
}

.residential-reading-note p {
  max-width: 78ch;
  margin-bottom: 0;
}

.residential-development-list {
  display: grid;
  gap: 54px;
}

.residential-development {
  padding: clamp(28px, 5vw, 50px);
  scroll-margin-top: 20px;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
  box-shadow: 0 14px 46px rgb(26 40 24 / 7%);
}

.residential-development-header {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(290px, 0.75fr);
  gap: clamp(30px, 5vw, 64px);
  align-items: stretch;
}

.residential-development-kicker {
  margin-bottom: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  color: #647064;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.residential-development-title h1,
.residential-development-title h2 {
  margin-bottom: 14px;
  color: var(--residential-ink);
  font-size: clamp(2rem, 5vw, 3.2rem);
  letter-spacing: -0.035em;
}

.development-detail-header {
  margin-bottom: 32px;
}

.development-detail-summary {
  align-self: stretch;
}

.development-detail-quick-links {
  margin-top: 26px;
}

#current-plan,
#key-figures,
#development-areas,
#significant-applications,
#development-updates {
  scroll-margin-top: 24px;
}

.development-detail-summary small {
  margin-top: 10px;
  display: block;
  color: #cbdac4;
}

.residential-page-summary .development-detail-summary-grid strong {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  white-space: nowrap;
}

.development-detail-summary-grid {
  grid-template-columns: 1fr;
}

.residential-page-summary .development-detail-summary-grid div {
  min-height: 92px;
  padding: 14px 16px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  row-gap: 8px;
}

.residential-page-summary .development-detail-summary-grid div:nth-child(odd) {
  border-right: 0;
}

.residential-page-summary .development-detail-summary-grid div:first-child {
  border-bottom: 1px solid rgb(255 255 255 / 18%);
}

.development-detail-summary-grid span {
  min-width: 0;
  line-height: 1.4;
}

.residential-page-summary .residential-plan-summary-grid div:not(:last-child) {
  border-bottom: 1px solid rgb(255 255 255 / 18%);
}

.residential-page-summary .residential-plan-summary-grid div:last-child {
  border-bottom: 0;
}

.residential-development-lead {
  max-width: 720px;
  margin-bottom: 0;
  color: #4d584d;
  font-size: 1.08rem;
  line-height: 1.7;
}

.residential-status-explainer {
  padding: 20px 22px;
  background: var(--residential-soft);
  border-radius: 4px;
}

.residential-status-explainer p:not(.eyebrow) {
  margin-bottom: 10px;
  font-size: 0.94rem;
}

.residential-status-explainer small {
  color: #657064;
}

.residential-development-description {
  max-width: 82ch;
  margin-block: 28px 0;
  font-size: 1.02rem;
}

.residential-development-meta {
  margin: 30px 0 0;
  padding: 20px 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 0;
  border-block: 1px solid var(--residential-line);
}

.residential-development-meta div {
  padding: 4px 20px;
  border-left: 1px solid var(--residential-line);
}

.residential-development-meta div:first-child {
  padding-left: 0;
  border-left: 0;
}

.residential-development-meta dt {
  margin-bottom: 4px;
  color: #6b746a;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.residential-development-meta dd {
  margin: 0;
  color: #313831;
}

.residential-development-developer-feature {
  margin: 10px 0 18px;
  padding: 12px 15px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  align-items: baseline;
  width: fit-content;
  color: #536052;
  background: var(--residential-soft);
  border-left: 4px solid var(--colour-green);
  border-radius: 0 4px 4px 0;
}

.residential-development-developer-feature > span {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.residential-development-developer-feature a,
.residential-development-developer-feature strong {
  color: var(--colour-green-dark);
  font-size: 1.05rem;
  font-weight: 800;
}

.residential-development-developer-feature a:hover {
  color: var(--colour-green);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.residential-development-developer-feature i {
  margin-left: 3px;
  font-size: 0.75em;
}

.residential-developer-separator {
  color: #8a9589;
}

/* --------------------------------------------------------------------------
   VERIFIED SERVICE-PROVIDER PROFILES
   -------------------------------------------------------------------------- */

.service-provider-profile {
  padding: 28px 0 72px;
}

.service-provider-header {
  max-width: 900px;
  margin-bottom: 34px;
}

.service-provider-header h1 {
  margin: 7px 0 14px;
  font-size: clamp(2.2rem, 5vw, 4.5rem);
  line-height: 1.02;
  overflow-wrap: anywhere;
}

.service-provider-lead {
  max-width: 760px;
  margin: 0;
  color: #536052;
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  line-height: 1.65;
}

.service-provider-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

.service-provider-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 46px;
  padding: 10px 16px;
  border: 1px solid #d8ded5;
  border-radius: 4px;
  color: var(--colour-text);
  font-weight: 700;
  text-decoration: none;
}

.service-provider-action:hover {
  border-color: var(--colour-green);
  color: var(--colour-green-dark);
}

.service-provider-action-primary {
  border-color: var(--colour-green);
  background: var(--colour-green);
  color: #fff;
}

.service-provider-action-primary:hover {
  background: var(--colour-green-dark);
  color: #fff;
}

.service-provider-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
  gap: 34px;
  align-items: start;
}

.service-provider-main,
.service-provider-aside {
  display: grid;
  gap: 22px;
}

.service-provider-section,
.service-provider-editorial-note {
  padding: 24px;
  border: 1px solid #d8ded5;
  border-radius: 4px;
  background: #fff;
}

.service-provider-section h2 {
  margin: 0 0 12px;
  font-size: 1.35rem;
}

.service-provider-section p {
  margin: 0;
  line-height: 1.72;
}

.service-provider-category-list,
.service-provider-location-list,
.service-provider-development-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.service-provider-category-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.service-provider-category-list li {
  padding: 7px 11px;
  border-radius: 4px;
  background: #edf3e9;
  font-size: .9rem;
  font-weight: 700;
}

.service-provider-development-list {
  display: grid;
  gap: 10px;
}

.service-provider-development-list a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 14px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid #d8ded5;
  color: var(--colour-text);
  text-decoration: none;
}

.service-provider-development-list li:last-child a {
  border-bottom: 0;
}

.service-provider-development-list strong,
.service-provider-development-list span {
  min-width: 0;
}

.service-provider-development-list span {
  grid-column: 1;
  color: #667064;
  font-size: .9rem;
}

.service-provider-development-list i {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: var(--colour-green);
}

.service-provider-development-list a:hover strong {
  color: var(--colour-green-dark);
}

.service-provider-location-list {
  display: grid;
  gap: 12px;
}

.service-provider-location-list li,
.service-provider-editorial-note {
  display: flex;
  gap: 12px;
}

.service-provider-location-list li {
  flex-direction: column;
}

.service-provider-editorial-note i {
  margin-top: 3px;
  color: var(--colour-green);
}

.service-provider-editorial-note strong,
.service-provider-editorial-note p {
  display: block;
}

.service-provider-editorial-note p {
  margin: 6px 0 0;
  color: #667064;
  font-size: .92rem;
  line-height: 1.6;
}

@media (max-width: 760px) {
  .service-provider-layout {
    grid-template-columns: 1fr;
  }

  .service-provider-aside {
    grid-row: 2;
  }
}

.residential-version {
  margin-top: 32px;
  padding: 26px;
  background: var(--residential-ink);
  border-radius: 4px;
  color: #dce6d8;
}

.residential-version .eyebrow {
  color: #a9c599;
}

.residential-version h2,
.residential-version h3 {
  margin-bottom: 12px;
  color: #ffffff;
  font-size: clamp(1.35rem, 3vw, 1.8rem);
}

.residential-version > p {
  max-width: 82ch;
  margin-bottom: 0;
}

.residential-version-meta {
  margin-bottom: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.residential-version-meta span {
  padding: 5px 9px;
  color: #e8f0e5;
  background: rgb(255 255 255 / 10%);
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 4px;
  font-size: 0.78rem;
  font-weight: 700;
}

.residential-development-section {
  margin-top: 38px;
}

.residential-section-heading {
  max-width: 760px;
  margin-bottom: 18px;
}

.residential-section-heading h2,
.residential-section-heading h3 {
  margin-bottom: 0;
  color: var(--residential-ink);
  font-size: clamp(1.35rem, 3vw, 1.75rem);
}

/* The current-version heading sits inside the shared section-heading wrapper.
   Keep its text light on the dark version panel despite the later shared rule. */
.residential-version .residential-section-heading h2,
.residential-version .residential-section-heading h3 {
  color: #ffffff;
}

.residential-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.residential-stat-card {
  min-width: 0;
  min-height: 112px;
  display: grid;
  grid-template-columns: minmax(128px, 0.72fr) minmax(0, 1.28fr);
  background: #ffffff;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
  overflow: hidden;
}

.residential-stat-label {
  min-width: 0;
  padding: 16px 18px;
  display: flex;
  align-items: center;
  color: #42513f;
  background: #eef3eb;
  border-right: 1px solid var(--residential-line);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.45;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.residential-stat-detail {
  min-width: 0;
  padding: 15px 18px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 9px;
}

.residential-stat-card strong {
  min-width: 0;
  color: var(--residential-ink);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.residential-stat-card small {
  padding: 4px 8px;
  color: #55704d;
  background: #f3f7f1;
  border: 1px solid #d7e1d3;
  border-radius: 4px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.residential-area-list,
.residential-application-list {
  display: grid;
  gap: 12px;
}

.residential-area-card,
.residential-application-card {
  padding: 20px 22px;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
}

.residential-area-card {
  display: grid;
  grid-template-columns: minmax(220px, 0.65fr) minmax(0, 1.35fr);
  gap: 30px;
  scroll-margin-top: 24px;
  background: #ffffff;
}

.residential-area-card h3,
.residential-area-card h4,
.residential-application-card h3,
.residential-application-card h4,
.residential-media-card h3,
.residential-media-card h4 {
  margin-bottom: 6px;
  color: var(--residential-ink);
  font-size: 1.08rem;
}

.development-detail-page > .site-banner:not(:first-of-type) {
  margin-top: 42px;
}

.development-detail-page > .site-banner + .residential-development-section {
  margin-top: 0;
}

.residential-area-card > p,
.residential-application-copy > p:last-child {
  margin-bottom: 0;
}

.residential-inline-meta {
  margin-bottom: 0;
  color: #6a7469;
  font-size: 0.83rem;
  font-weight: 700;
}

.residential-application-card {
  display: grid;
  grid-template-columns: minmax(130px, 0.25fr) minmax(0, 1.75fr);
  gap: 24px;
  background: #fbfcfa;
}

.residential-application-number {
  color: var(--colour-green-dark);
  font-size: 0.86rem;
  font-weight: 850;
  overflow-wrap: anywhere;
}

.residential-application-copy > p:not(.residential-inline-meta) {
  margin-block: 12px 0;
}

.residential-application-decision {
  padding: 12px 14px;
  background: var(--residential-soft);
  border-radius: 4px;
}

.residential-update-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.residential-update-card {
  min-width: 0;
  padding: 22px;
  display: flex;
  flex-direction: column;
  background: #fbfcfa;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
}

.residential-update-card h3 {
  margin: 10px 0 8px;
  color: var(--residential-ink);
  font-size: 1.08rem;
  line-height: 1.35;
}

.residential-update-title-link,
.residential-update-title-link:visited {
  color: inherit;
}

.residential-update-title-link:hover,
.residential-update-title-link:focus-visible {
  color: var(--colour-green-dark);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.residential-update-card > p {
  margin-bottom: 0;
  color: #596158;
}

.residential-overview-updates {
  margin-top: 62px;
}

.residential-updates-archive-link {
  margin-top: 20px;
  padding: 12px 17px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #ffffff;
  background: var(--colour-green-dark);
  border-radius: 4px;
  font-size: 0.9rem;
  font-weight: 800;
}

.residential-updates-archive-link:visited {
  color: #ffffff;
}

.residential-updates-archive-link:hover,
.residential-updates-archive-link:focus-visible {
  color: #ffffff;
  background: #304e27;
}

.residential-updates-archive-link i {
  font-size: 0.8em;
}

.residential-overview-update-card {
  display: flex;
  flex-direction: column;
}

.residential-update-project {
  margin-bottom: 10px;
  display: inline-block;
  color: var(--colour-green-dark);
  font-size: 0.82rem;
  font-weight: 800;
}

a.residential-update-project:hover {
  color: var(--colour-green);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.residential-update-action {
  margin-top: auto;
  padding-top: 18px;
  color: var(--colour-green-dark);
  font-size: 0.86rem;
  font-weight: 800;
}

.residential-update-action i {
  margin-left: 5px;
  font-size: 0.8em;
}

.residential-update-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  color: #687168;
  font-size: 0.73rem;
  font-weight: 750;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.residential-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
}

.residential-media-card {
  margin: 0;
  min-height: 138px;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
  background: #ffffff;
}

.residential-media-thumbnail,
.residential-media-placeholder {
  min-width: 0;
  min-height: 100%;
  display: grid;
  place-items: center;
  background: #e9eee6;
  border-right: 1px solid var(--residential-line);
}

.residential-media-card img {
  width: 100%;
  height: 100%;
  min-height: 138px;
  object-fit: cover;
}

.residential-media-placeholder i {
  color: #7b8d74;
  font-size: 1.7rem;
}

.residential-media-placeholder {
  padding-left: 22px;
  place-items: center start;
}

.residential-media-card figcaption {
  min-width: 0;
  padding: 18px 20px;
}

.residential-media-card figcaption > p:not(.eyebrow) {
  color: #596158;
}

.residential-media-card small {
  color: #6c746b;
}

.residential-sources ul {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px;
  list-style: none;
}

.residential-sources li {
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
}

.residential-sources a {
  font-weight: 750;
}

.residential-sources li span {
  margin-top: 3px;
  color: #70786f;
  font-size: 0.78rem;
}

.residential-back-link {
  margin-top: 38px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.residential-empty {
  padding: 24px;
  color: #596158;
  background: var(--residential-soft);
  border: 1px solid var(--residential-line);
  border-radius: 4px;
}

.residential-independent-note {
  margin-top: 54px;
  padding: clamp(26px, 5vw, 42px);
  color: #e7eee3;
  background: #263128;
  border-radius: 4px;
}

.residential-independent-note .eyebrow {
  color: #aac399;
}

.residential-independent-note h2 {
  margin-bottom: 12px;
  color: #ffffff;
  font-size: clamp(1.5rem, 4vw, 2.1rem);
}

.residential-independent-note p:last-child {
  max-width: 80ch;
  margin-bottom: 0;
}

/* ========================================================================== 
   SHOPPING CENTRES OVERVIEW
   Planned centre records reuse the Residential hierarchy while keeping mapped
   areas, point-only locations and actual development proposals distinct.
   ========================================================================== */

.shopping-centres-page .residential-page-quick-link-grid-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.shopping-centre-records {
  margin-block: 56px;
  scroll-margin-top: 24px;
}

.shopping-centre-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.shopping-centre-card {
  min-width: 0;
  padding: clamp(22px, 3vw, 30px);
  scroll-margin-top: 24px;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0 12px 32px rgb(29 48 26 / 6%);
}

.shopping-centre-card-top {
  margin-bottom: 18px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 12px;
}

.shopping-centre-hierarchy,
.shopping-centre-map-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.shopping-centre-hierarchy {
  padding: 6px 9px;
  color: #35542d;
  border: 1px solid #c7d8c0;
  border-radius: 4px;
  background: #edf4e9;
}

.shopping-centre-map-status {
  color: #657163;
}

.shopping-centre-map-status i {
  color: var(--colour-green-dark);
}

.shopping-centre-card h3 {
  margin-bottom: 12px;
  color: var(--residential-ink);
  font-size: clamp(1.35rem, 3vw, 1.75rem);
}

.shopping-centre-title-link,
.shopping-centre-title-link:visited {
  color: inherit;
  text-decoration: none;
}

.shopping-centre-title-link:hover,
.shopping-centre-title-link:focus-visible {
  color: var(--colour-green-dark);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}

.shopping-centre-name-note,
.shopping-centre-location {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: #626c61;
  font-size: 0.84rem;
}

.shopping-centre-name-note i,
.shopping-centre-location i {
  margin-top: 0.22em;
  color: #739268;
}

.shopping-centre-role {
  margin-top: 20px;
  padding: 16px 18px;
  border-left: 3px solid #719564;
  background: #f2f6f0;
}

.shopping-centre-role > span,
.shopping-centre-source > span {
  display: block;
  color: #687466;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.shopping-centre-role p {
  margin: 5px 0 0;
}

.shopping-centre-capacity {
  margin-top: 22px;
}

.shopping-centre-capacity .eyebrow {
  margin-bottom: 10px;
}

.shopping-centre-capacity dl {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid #d8e2d4;
  border-radius: 4px;
  overflow: hidden;
}

.shopping-centre-capacity dl > div {
  min-width: 0;
  padding: 13px;
  border-right: 1px solid #d8e2d4;
  background: #fafcf9;
}

.shopping-centre-capacity dl > div:last-child {
  border-right: 0;
}

.shopping-centre-capacity dt {
  color: #697268;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1.35;
  text-transform: uppercase;
}

.shopping-centre-capacity dd {
  margin: 7px 0 0;
  color: #4f5a4e;
  font-size: 0.76rem;
  line-height: 1.35;
}

.shopping-centre-capacity dd strong {
  display: block;
  color: var(--residential-ink);
  font-size: 0.96rem;
}

.shopping-centre-card-meta {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid #dce4d8;
  border-radius: 4px;
  background: #dce4d8;
}

.shopping-centre-card-meta span {
  min-width: 0;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  color: #566054;
  background: #ffffff;
  font-size: 0.78rem;
}

.shopping-centre-card-meta strong {
  color: #6b7469;
  font-size: 0.66rem;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.shopping-centre-source {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #e1e7de;
}

.shopping-centre-source a,
.shopping-centre-source p {
  margin: 5px 0 0;
  display: inline-block;
  font-size: 0.84rem;
  font-weight: 750;
}

.shopping-centre-source a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.shopping-centre-record-link,
.shopping-centre-record-link:visited {
  margin-top: 18px;
  padding: 11px 14px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #ffffff;
  background: var(--colour-green-dark);
  border: 1px solid var(--colour-green-dark);
  border-radius: 4px;
  font-size: 0.84rem;
  font-weight: 800;
  transition: background-color var(--transition), border-color var(--transition), box-shadow var(--transition);
}

.shopping-centre-record-link:hover,
.shopping-centre-record-link:focus-visible {
  color: #ffffff;
  background: #304e27;
  border-color: #87a27c;
  box-shadow: 0 0 0 4px rgb(111 145 99 / 15%);
}

.shopping-centre-developments {
  scroll-margin-top: 24px;
}

.shopping-centre-empty-state {
  padding: clamp(22px, 4vw, 30px);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 18px;
  color: #4f5a4e;
  border: 1px solid #d6e1d2;
  border-radius: 4px;
  background: #f4f7f2;
}

.shopping-centre-empty-state > i {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  color: #567c49;
  border-radius: 50%;
  background: #e2eddc;
  font-size: 1.15rem;
}

.shopping-centre-empty-state h3 {
  margin-bottom: 7px;
  color: var(--residential-ink);
  font-size: 1.14rem;
}

.shopping-centre-empty-state p {
  margin-bottom: 0;
}

.shopping-centre-development-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.shopping-centre-development-card,
.shopping-centre-development-card:visited {
  min-width: 0;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  color: inherit;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgb(29 48 26 / 5%);
  transition: border-color var(--transition), box-shadow var(--transition);
}

.shopping-centre-development-card:hover,
.shopping-centre-development-card:focus-visible {
  border-color: #91aa87;
  box-shadow: 0 14px 34px rgb(29 48 26 / 11%);
}

.shopping-centre-development-top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 12px;
  color: #697267;
  font-size: 0.75rem;
  font-weight: 750;
}

.shopping-centre-development-name {
  color: var(--residential-ink);
  font-size: 1.25rem;
}

.shopping-centre-development-relationship {
  color: #5f7658;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

#shopping-centre-updates {
  scroll-margin-top: 24px;
}

/* ========================================================================== 
   PDA PLAN AND DEVELOPMENTS LANDING PAGES
   The paired layouts make the boundary between planning records and actual
   project records visible before visitors enter either catalogue.
   ========================================================================== */

.catalogue-landing-page {
  --catalogue-ink: #152016;
  --catalogue-line: #d8e1d4;
  --catalogue-soft: #f2f6f0;
}

.catalogue-landing-header {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(330px, 0.85fr);
  gap: clamp(30px, 5vw, 64px);
  align-items: stretch;
}

.catalogue-landing-intro {
  align-self: center;
}

.catalogue-boundary-card {
  padding: clamp(25px, 4vw, 38px);
  border-radius: 4px;
}

.catalogue-boundary-card-dark {
  color: #e7eee3;
  border: 1px solid rgb(255 255 255 / 10%);
  background:
    linear-gradient(135deg, rgb(2 3 1 / 88%), rgb(52 83 38 / 80%)),
    url("../images/hfbg.jpg?v=d") center / cover no-repeat,
    #152016;
}

.catalogue-boundary-card .eyebrow {
  color: #aac89b;
}

.catalogue-boundary-card h2 {
  margin-bottom: 13px;
  color: #ffffff;
  font-size: clamp(1.45rem, 3vw, 1.95rem);
}

.catalogue-boundary-card > p:last-of-type {
  margin-bottom: 0;
  color: #d9e3d4;
}

.catalogue-boundary-card .development-landing-summary-grid {
  margin-top: 22px;
  border-color: #6f9161;
  background: #365f2c;
}

.catalogue-boundary-card .development-landing-summary-grid > div {
  min-height: 96px;
  padding: 16px;
  justify-content: flex-start;
}

.catalogue-boundary-card .development-landing-summary-grid > div:nth-child(odd) {
  border-right-color: rgb(255 255 255 / 18%);
}

.catalogue-boundary-card .development-landing-summary-grid strong {
  color: #ffffff;
  font-size: clamp(1.85rem, 4vw, 2.45rem);
}

.catalogue-boundary-card .development-landing-summary-grid span {
  color: #e4edde;
  font-size: 0.72rem;
}

.catalogue-crosslink {
  margin-block: 42px 56px;
  padding: clamp(22px, 4vw, 32px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px 34px;
  border: 1px solid #cfdcc9;
  border-left: 5px solid var(--colour-green-dark);
  border-radius: 4px;
  background: var(--catalogue-soft, #f2f6f0);
}

.catalogue-crosslink h2 {
  margin-bottom: 8px;
  color: var(--catalogue-ink, #152016);
  font-size: clamp(1.35rem, 3vw, 1.85rem);
}

.catalogue-crosslink p:last-child {
  max-width: 72ch;
  margin-bottom: 0;
  color: #566054;
}

.catalogue-crosslink > a,
.catalogue-crosslink > a:visited {
  min-width: max-content;
  padding: 12px 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: #ffffff;
  border: 1px solid var(--colour-green-dark);
  border-radius: 4px;
  background: var(--colour-green-dark);
  font-size: 0.86rem;
  font-weight: 800;
  transition: border-color var(--transition), background-color var(--transition), box-shadow var(--transition);
}

.catalogue-crosslink > a:hover,
.catalogue-crosslink > a:focus-visible {
  color: #ffffff;
  border-color: #87a27c;
  background: #304e27;
  box-shadow: 0 0 0 4px rgb(111 145 99 / 15%);
}

.catalogue-landing-section {
  margin-block: 54px;
  scroll-margin-top: 24px;
}

.catalogue-link-grid,
.catalogue-subject-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.catalogue-link-grid-five > :first-child {
  grid-column: 1 / -1;
}

.catalogue-link-card,
.catalogue-link-card:visited,
.catalogue-subject-card,
.catalogue-subject-card:visited {
  min-width: 0;
  min-height: 112px;
  padding: 20px 22px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  color: #263226;
  border: 1px solid var(--catalogue-line);
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgb(29 48 26 / 5%);
  transition: border-color var(--transition), box-shadow var(--transition), background-color var(--transition);
}

.catalogue-link-card:hover,
.catalogue-link-card:focus-visible,
.catalogue-subject-card:hover,
.catalogue-subject-card:focus-visible {
  color: #263226;
  border-color: #91aa87;
  background: #fbfdfb;
  box-shadow: 0 14px 34px rgb(29 48 26 / 11%);
}

.catalogue-link-card > i:first-child,
.catalogue-subject-card > i:first-child {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  color: #466b3c;
  border-radius: 50%;
  background: #e8f0e4;
  font-size: 1.05rem;
}

.catalogue-link-card > i:last-child,
.catalogue-subject-card > i:last-child {
  color: #719066;
  font-size: 0.82rem;
}

.catalogue-link-card span,
.catalogue-subject-card span {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.catalogue-link-card strong,
.catalogue-subject-card strong {
  color: var(--catalogue-ink);
  font-size: 1.05rem;
}

.catalogue-link-card small,
.catalogue-subject-card small {
  color: #687166;
  font-size: 0.82rem;
  line-height: 1.5;
}

.catalogue-subject-card-pending {
  box-shadow: none;
  background: #f5f7f3;
}

.catalogue-subject-card-pending > i:first-child {
  color: #768074;
  background: #e8ece5;
}

.development-category-empty-state {
  margin-block: 42px;
}

.development-category-empty-state h2 {
  margin-bottom: 7px;
  color: var(--catalogue-ink);
  font-size: 1.2rem;
}

.shopping-centre-developments-page .catalogue-crosslink {
  margin-top: 0;
}

.shopping-centre-developments-page .catalogue-landing-section {
  margin-bottom: 0;
}

/* Individual centre records use the established development-detail rhythm,
   while keeping planning designations visually distinct from proposals. */
.shopping-centre-detail-page #centre-map,
.shopping-centre-detail-page #current-designation,
.shopping-centre-detail-page #linked-developments,
.shopping-centre-detail-page #centre-updates {
  scroll-margin-top: 24px;
}

.shopping-centre-detail-name-note {
  margin: -4px 0 14px;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: #627060;
  font-size: 0.86rem;
  font-weight: 700;
}

.shopping-centre-detail-name-note i {
  margin-top: 0.22em;
  color: #719564;
}

.shopping-centre-detail-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
  align-items: start;
  gap: 24px;
}

.shopping-centre-detail-facts {
  margin: 0;
  overflow: hidden;
  border: 1px solid #dce4d8;
  border-radius: 4px;
  background: #dce4d8;
}

.shopping-centre-detail-facts > div {
  padding: 12px 15px;
  display: grid;
  grid-template-columns: minmax(125px, 0.8fr) minmax(0, 1.2fr);
  gap: 14px;
  background: #ffffff;
  border-bottom: 1px solid #dce4d8;
}

.shopping-centre-detail-facts > div:last-child {
  border-bottom: 0;
}

.shopping-centre-detail-facts dt {
  color: #6b7469;
  font-size: 0.69rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.shopping-centre-detail-facts dd {
  margin: 0;
  color: #465244;
  font-size: 0.86rem;
  font-weight: 700;
}

.shopping-centre-detail-instrument {
  margin-top: 22px;
  padding: 18px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-left: 3px solid #719564;
  background: #f2f6f0;
}

.shopping-centre-detail-instrument div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.shopping-centre-detail-instrument span,
.shopping-centre-detail-instrument small {
  color: #687466;
  font-size: 0.72rem;
}

.shopping-centre-detail-instrument span {
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.shopping-centre-detail-instrument a {
  flex: 0 0 auto;
  font-size: 0.84rem;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.shopping-centre-detail-capacity .residential-stat-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.shopping-centre-detail-capacity .residential-stat-grid > div {
  min-width: 0;
  min-height: 112px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
  background: #ffffff;
}

.shopping-centre-detail-capacity strong {
  color: var(--residential-ink);
  font-size: clamp(1.2rem, 3vw, 1.55rem);
}

.shopping-centre-detail-capacity span {
  color: #657063;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  line-height: 1.4;
  text-transform: uppercase;
}

.shopping-centre-allocation-list {
  display: grid;
  gap: 8px;
}

.shopping-centre-allocation-row {
  padding: 15px 18px;
  display: grid;
  grid-template-columns: minmax(150px, 0.85fr) repeat(2, minmax(0, 1fr));
  gap: 14px;
  border: 1px solid #dce4d8;
  border-radius: 4px;
  background: #ffffff;
}

.shopping-centre-allocation-row span {
  color: #5d685b;
  font-size: 0.82rem;
}

.shopping-centre-point-context {
  padding: clamp(22px, 4vw, 30px);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 18px;
  border: 1px solid #d6e1d2;
  border-radius: 4px;
  background: #f4f7f2;
}

.shopping-centre-point-context > i {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  color: #567c49;
  border-radius: 50%;
  background: #e2eddc;
}

.shopping-centre-point-context h3 {
  margin-bottom: 7px;
  color: var(--residential-ink);
  font-size: 1.14rem;
}

.shopping-centre-point-context p {
  margin-bottom: 0;
}

/* Industry and Enterprise is one current planning record represented by two
   separate mapped areas. The figures explain its parcel-based construction
   without presenting parcel allocations as projects. */
.industry-enterprise-page #industry-enterprise-map,
.industry-enterprise-page #current-designation,
.industry-enterprise-page #mapping-context,
.industry-enterprise-page #linked-developments,
.industry-enterprise-page #industry-updates {
  scroll-margin-top: 24px;
}

.industry-allocation-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.industry-allocation-grid > div {
  min-width: 0;
  min-height: 176px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border: 1px solid var(--residential-line);
  border-radius: 4px;
  background: #ffffff;
}

.industry-allocation-grid strong {
  color: var(--residential-ink);
  font-size: clamp(1.75rem, 4vw, 2.35rem);
  line-height: 1;
}

.industry-allocation-grid span {
  margin-top: 10px;
  color: #58704f;
  font-size: 0.73rem;
  font-weight: 850;
  letter-spacing: 0.055em;
  line-height: 1.4;
  text-transform: uppercase;
}

.industry-allocation-grid p {
  margin: 12px 0 0;
  color: #687266;
  font-size: 0.84rem;
  line-height: 1.55;
}

.industry-parcel-note {
  margin-top: 20px;
}

.industry-parcel-note h3 {
  margin-bottom: 6px;
  color: var(--residential-ink);
  font-size: 1.08rem;
}

.industry-parcel-note p {
  margin-bottom: 0;
}

/* The legal landing page can grow as new policies and disclosures are added. */
.legal-index-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}

.legal-index-card {
  padding: 26px;
  border: 1px solid #dfe5da;
  border-radius: var(--radius-small);
  background: #f8faf7;
}

.legal-index-card h2 {
  margin-bottom: 10px;
  font-size: 1.35rem;
}

.legal-index-card p:last-child {
  margin-bottom: 0;
}

.legal-index-card a {
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}


/* ========================================================================== 
   8A. PROPERTY GUIDES
   Reusable editorial patterns for detailed property guidance pages.
   ========================================================================== */

.property-guide-header {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  align-items: stretch;
  gap: clamp(28px, 5vw, 58px);
}

.property-guide-header .page-intro {
  max-width: 720px;
}

.property-guide-hero-note {
  padding: clamp(26px, 4vw, 38px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: var(--colour-white);
  border-radius: var(--radius-small);
  background:
    linear-gradient(145deg, rgb(2 3 1 / 10%), rgb(2 3 1 / 30%)),
    var(--colour-green);
}

.property-guide-hero-label {
  margin-bottom: 12px;
  color: rgb(255 255 255 / 78%);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.property-guide-hero-note h2 {
  margin-bottom: 16px;
  font-size: clamp(1.45rem, 3vw, 1.9rem);
}

.property-guide-hero-note p:last-child {
  margin-bottom: 0;
  color: rgb(255 255 255 / 88%);
}

.property-primary-service {
  margin-top: clamp(30px, 5vw, 48px);
  padding: clamp(24px, 4vw, 34px);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(20px, 3vw, 30px);
  color: var(--colour-white);
  border-radius: var(--radius-small);
  background:
    linear-gradient(120deg, rgb(255 255 255 / 5%), transparent 55%),
    #202a20;
}

.property-primary-service-icon {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  color: #b5d7a4;
  border: 1px solid rgb(255 255 255 / 18%);
  border-radius: 50%;
  background: rgb(255 255 255 / 7%);
  font-size: 1.65rem;
}

.property-primary-service .eyebrow {
  margin-bottom: 7px;
  color: #b5d7a4;
}

.property-primary-service h2 {
  margin-bottom: 9px;
  color: var(--colour-white);
  font-size: clamp(1.35rem, 3vw, 1.75rem);
}

.property-primary-service p:last-child {
  max-width: 720px;
  margin-bottom: 0;
  color: rgb(255 255 255 / 76%);
}

.property-primary-service-button,
.property-primary-service-button:visited {
  min-height: 52px;
  padding: 14px 19px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #172016;
  border-radius: var(--radius-small);
  background: #b5d7a4;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  transition:
    background var(--transition),
    transform var(--transition);
}

.property-primary-service-button:hover {
  color: #172016;
  background: #c7e3b9;
  transform: translateY(-2px);
}

.property-directory-sample {
  padding-top: 24px;
  grid-column: 1 / -1;
  border-top: 1px solid rgb(255 255 255 / 14%);
}

.property-directory-sample-heading p {
  margin-bottom: 22px;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

.property-directory-sample-heading strong {
  color: var(--colour-white);
  font-size: 1.05rem;
}

.property-directory-sample-heading span {
  color: rgb(255 255 255 / 58%);
  font-size: 0.8rem;
}

.property-directory-agent-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.property-directory-agent {
  min-width: 0;
  padding: 18px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 14px;
  border: 1px solid rgb(255 255 255 / 15%);
  border-radius: var(--radius-small);
  background: rgb(255 255 255 / 6%);
}

.property-directory-agent > i {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: #b5d7a4;
  border-radius: 50%;
  background: rgb(181 215 164 / 10%);
}

.property-directory-agent h3 {
  margin-bottom: 5px;
  color: var(--colour-white);
  font-size: 1rem;
}

.property-directory-agent p {
  margin-bottom: 0;
  color: rgb(255 255 255 / 70%);
  font-size: 0.88rem;
}

.property-directory-neutrality {
  max-width: none !important;
  margin: 13px 0 0 !important;
  color: rgb(255 255 255 / 55%) !important;
  font-size: 0.76rem;
}

.property-portal-link {
  margin-top: 16px;
  padding: clamp(20px, 3vw, 26px);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(16px, 3vw, 24px);
  border: 1px solid #dce4d8;
  border-radius: var(--radius-small);
  background: #f4f7f2;
}

.property-portal-link-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  color: var(--colour-white);
  border-radius: 50%;
  background: var(--colour-green);
  font-size: 1.15rem;
}

.property-portal-link .eyebrow {
  margin-bottom: 5px;
}

.property-portal-link h2 {
  margin-bottom: 7px;
  font-size: clamp(1.25rem, 3vw, 1.55rem);
}

.property-portal-link p:last-child {
  max-width: 760px;
  margin-bottom: 0;
  color: #515a50;
}

.property-portal-link-button,
.property-portal-link-button:visited {
  min-height: 50px;
  padding: 13px 17px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  color: var(--colour-white);
  border-radius: var(--radius-small);
  background: var(--colour-green);
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  transition:
    background var(--transition),
    transform var(--transition);
}

.property-portal-link-button:hover {
  color: var(--colour-white);
  background: var(--colour-green-dark);
  transform: translateY(-2px);
}

.property-guide-opening {
  margin-top: 0;
}

.property-guide-principle {
  max-width: 820px;
  margin-top: 28px;
  padding: 24px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 18px;
  border: 1px solid #dce4d8;
  border-radius: var(--radius-small);
  background: #f4f7f2;
}

.property-guide-principle > i {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  color: var(--colour-white);
  border-radius: 50%;
  background: var(--colour-green);
}

.property-guide-principle h3 {
  margin-bottom: 7px;
  font-size: 1.12rem;
}

.property-guide-principle p {
  margin-bottom: 0;
}

.property-check-grid,
.planning-claim-grid,
.service-link-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.property-check-card {
  padding: 25px;
  border: 1px solid #dfe5da;
  border-radius: var(--radius-small);
  background: #fbfcfa;
}

.property-check-card > span {
  margin-bottom: 22px;
  display: block;
  color: var(--colour-green);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.property-check-card h3,
.planning-claim-grid h3 {
  margin-bottom: 10px;
  font-size: 1.18rem;
}

.property-check-card p,
.planning-claim-grid p {
  margin-bottom: 0;
}

.property-search-prompt {
  max-width: none !important;
  margin-top: 22px;
  padding: 16px 18px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border-radius: var(--radius-small);
  color: #3f473e;
  background: #eef3eb;
}

.property-search-prompt i {
  margin-top: 5px;
  color: var(--colour-green);
}

.property-search-prompt a {
  font-weight: 700;
}

.property-guide-crosslink {
  max-width: 820px !important;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid #dfe5da;
  color: #596158;
}

.property-guide-crosslink a {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.transaction-section {
  padding-top: 10px;
}

.transaction-section-heading {
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.transaction-section-heading .eyebrow,
.transaction-section-heading h2 {
  margin-bottom: 0;
}

.transaction-icon {
  width: 54px;
  height: 54px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  color: var(--colour-white);
  border-radius: 50%;
  background: var(--colour-green);
  font-size: 1.2rem;
}

.guide-steps {
  max-width: 850px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: property-step;
}

.guide-steps li {
  position: relative;
  min-height: 48px;
  padding-left: 72px;
  counter-increment: property-step;
}

.guide-steps li + li {
  margin-top: 26px;
}

.guide-steps li::before {
  content: counter(property-step);
  position: absolute;
  top: 0;
  left: 0;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  color: var(--colour-green-dark);
  border: 1px solid #cbd8c5;
  border-radius: 50%;
  background: #f4f7f2;
  font-weight: 800;
}

.guide-steps h3 {
  margin-bottom: 7px;
  font-size: 1.12rem;
}

.guide-steps p {
  margin-bottom: 0;
}

.planning-claim-grid article {
  padding: 24px;
  border-left: 4px solid var(--colour-green);
  background: #f4f7f2;
}

.seller-question-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.seller-question-grid article {
  padding: 24px;
  border: 1px solid #dfe5da;
  border-radius: var(--radius-small);
  background: #fbfcfa;
}

.seller-question-grid i {
  margin-bottom: 18px;
  color: var(--colour-green);
  font-size: 1.25rem;
}

.seller-question-grid h3 {
  margin-bottom: 8px;
  font-size: 1.15rem;
}

.seller-question-grid p {
  margin-bottom: 0;
}

.planning-claim-grid a {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.professional-help-section {
  padding: clamp(26px, 4vw, 38px);
  border-radius: var(--radius-small);
  background: #202a20;
  color: var(--colour-white);
}

.professional-help-section > p:not(.eyebrow) {
  color: rgb(255 255 255 / 78%);
}

.service-link-card,
.service-link-card:visited {
  min-height: 118px;
  padding: 20px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  color: var(--colour-white);
  border: 1px solid rgb(255 255 255 / 18%);
  border-radius: var(--radius-small);
  background: rgb(255 255 255 / 7%);
  transition:
    border-color var(--transition),
    background var(--transition);
}

.service-link-card:hover {
  color: var(--colour-white);
  border-color: rgb(255 255 255 / 48%);
  background: rgb(255 255 255 / 12%);
  transform: translateY(-2px);
}

.service-link-card > i:first-child {
  width: 38px;
  color: #9ac086;
  font-size: 1.3rem;
  text-align: center;
}

.service-link-card > i:last-child {
  color: #9ac086;
}

.service-link-card strong {
  display: block;
  color: var(--colour-white);
}

.service-link-card span {
  color: rgb(255 255 255 / 72%);
  font-size: 0.92rem;
}

.service-link-grid > .service-link-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.official-source-list {
  max-width: 850px;
  margin: 24px 0 0;
  padding: 0 !important;
  list-style: none;
}

.official-source-list li + li {
  margin-top: 10px;
}

.official-source-list a,
.official-source-list a:visited {
  padding: 16px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  color: var(--colour-text);
  border: 1px solid #dfe5da;
  border-radius: var(--radius-small);
  text-decoration: none;
}

.official-source-list a:hover {
  color: var(--colour-green-dark);
  border-color: #aebca8;
  background: #f8faf7;
}

.official-source-list strong {
  display: block;
}

.official-source-list span {
  color: #596158;
}

.official-source-list i {
  flex: 0 0 auto;
  color: var(--colour-green);
}

.property-guide-disclaimer {
  max-width: 900px;
  padding: 24px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  border: 1px solid #d5dcd1;
  border-radius: var(--radius-small);
  background: #f4f7f2;
}

.property-guide-disclaimer > i {
  margin-top: 5px;
  color: var(--colour-green);
  font-size: 1.3rem;
}

.property-guide-disclaimer h2 {
  margin-bottom: 12px;
  font-size: 1.35rem;
}

.property-guide-disclaimer p:last-child {
  margin-bottom: 0;
}

.property-guide-disclaimer a {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* ========================================================================== 
   9. RESPONSIVE BANNER ADVERTISING
   Used selectively on content pages, with additional placements on long pages.
   ========================================================================== */

.site-banner {
  margin: 0 0 40px;
}

.site-banner-label {
  margin-bottom: 7px;
  display: block;
  color: #6b736a;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
}

.site-banner-link {
  width: min(100%, 970px);
  margin-inline: auto;
  display: block;
  overflow: hidden;
  border: 1px solid #dfe3dc;
  border-radius: var(--radius-small);
  background: #f4f7f2;
  transition:
    border-color var(--transition),
    opacity var(--transition);
}

.site-banner-link:hover {
  border-color: #aeb8a9;
  opacity: 0.94;
}

.site-banner-link picture,
.site-banner-image {
  width: 100%;
  display: block;
}

.site-banner-image {
  height: auto;
}

@media (max-width: 600px) {
  .site-banner-link {
    width: min(100%, 320px);
  }
}


/* ========================================================================== 
   10. CONTACT PAGE AND FORM
   ========================================================================== */

.contact-layout {
  display: grid;
  grid-template-columns: minmax(250px, 0.8fr) minmax(0, 1.35fr);
  align-items: start;
  gap: clamp(32px, 6vw, 72px);
}

.contact-sidebar {
  display: grid;
  gap: 20px;
}

.contact-panel {
  padding: 24px;
  border: 1px solid #dfe5da;
  border-radius: var(--radius-small);
}

.contact-panel-muted {
  background: #f4f7f2;
}

.contact-panel h2,
.contact-form-heading h2 {
  margin-bottom: 12px;
  font-size: 1.35rem;
}

.contact-panel p:last-child,
.contact-form-heading p:last-child {
  margin-bottom: 0;
}

.contact-reasons {
  margin: 0;
  padding-left: 20px;
}

.contact-reasons li + li {
  margin-top: 8px;
}

.contact-form-section {
  min-width: 0;
}

.contact-form-heading {
  margin-bottom: 24px;
}

.contact-form-heading p {
  color: #6b736a;
}

.contact-form {
  display: grid;
  gap: 22px;
}

.form-field {
  min-width: 0;
}

.form-field > label {
  margin-bottom: 7px;
  display: block;
  font-weight: 700;
}

.form-field input[type="text"],
.form-field input[type="email"],
.form-field select,
.form-field textarea {
  width: 100%;
  color: var(--colour-text);
  border: 1px solid #bfc6bc;
  border-radius: var(--radius-small);
  background: var(--colour-white);
}

.form-field input[type="text"],
.form-field input[type="email"],
.form-field select {
  min-height: 48px;
  padding: 10px 12px;
}

.form-field textarea {
  min-height: 180px;
  padding: 12px;
  resize: vertical;
  line-height: 1.55;
}

.form-field input:hover,
.form-field select:hover,
.form-field textarea:hover {
  border-color: #8e978a;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  border-color: var(--colour-green);
}

.form-field.has-error input,
.form-field.has-error select,
.form-field.has-error textarea {
  border-color: #a93636;
}

.field-help,
.field-error {
  margin: 7px 0 0;
  font-size: 0.9rem;
}

.field-help {
  color: #6b736a;
}

.field-error {
  color: #8a2424;
  font-weight: 600;
}

.form-field-checkbox label {
  margin-bottom: 0;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-weight: 400;
  cursor: pointer;
}

.form-field-checkbox input {
  width: 20px;
  height: 20px;
  margin: 3px 0 0;
  flex: 0 0 auto;
  accent-color: var(--colour-green);
}

.form-field-checkbox a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.contact-submit {
  width: fit-content;
  min-height: 48px;
  padding: 11px 22px;
  color: var(--colour-white);
  border: 0;
  border-radius: var(--radius-small);
  background: var(--colour-green);
  font-weight: 700;
  cursor: pointer;
  transition: background var(--transition);
}

.contact-submit:hover {
  background: var(--colour-green-dark);
}

.form-alert {
  margin-bottom: 24px;
  padding: 16px 18px;
  border: 1px solid #d8a0a0;
  border-radius: var(--radius-small);
  color: #5f1d1d;
  background: #faeded;
}

.form-alert p {
  margin-bottom: 6px;
}

.form-alert ul {
  margin: 0;
  padding-left: 22px;
}

/* Intentionally off-screen rather than display:none so simple form bots see it. */
.contact-trap {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}


/* ========================================================================== 
   10A. ADVERTISE PAGE
   ========================================================================== */

.advertise-page-header {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.75fr);
  align-items: stretch;
  gap: clamp(28px, 5vw, 58px);
}

.advertise-page-header .page-intro {
  max-width: 760px;
}

.advertise-header-actions {
  margin-top: 26px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.advertise-button,
.advertise-button:visited {
  min-height: 48px;
  padding: 11px 19px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--colour-green);
  border-radius: var(--radius-small);
  font-weight: 750;
  transition:
    color var(--transition),
    border-color var(--transition),
    background var(--transition);
}

.advertise-button-primary,
.advertise-button-primary:visited {
  color: var(--colour-white);
  background: var(--colour-green);
}

.advertise-button-primary:hover {
  color: var(--colour-white);
  border-color: var(--colour-green-dark);
  background: var(--colour-green-dark);
}

.advertise-button-secondary,
.advertise-button-secondary:visited {
  color: var(--colour-green-dark);
  background: var(--colour-white);
}

.advertise-button-secondary:hover {
  color: var(--colour-white);
  background: var(--colour-green-dark);
}

.advertise-hero-card {
  min-height: 100%;
  padding: clamp(24px, 4vw, 34px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: var(--colour-white);
  border-radius: var(--radius-small);
  background:
    linear-gradient(135deg, rgb(2 3 1 / 82%), rgb(52 83 38 / 78%)),
    url("../images/hfbg.jpg?v=d") center / cover no-repeat,
    var(--colour-dark);
}

.advertise-hero-card p:last-child {
  margin-bottom: 0;
  color: #e4e9e0;
}

.advertise-hero-label {
  margin-bottom: 12px;
  color: #b9d0ac;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.advertise-hero-number {
  margin-bottom: 14px;
  font-size: clamp(1.6rem, 4vw, 2.25rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.05;
}

.advertise-trust-strip {
  margin-block: 6px 58px;
  padding: 20px 22px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  border: 1px solid #dfe5da;
  border-radius: var(--radius-small);
  background: #f8faf7;
}

.advertise-trust-strip > div {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 11px;
}

.advertise-trust-strip i {
  width: 24px;
  margin-top: 4px;
  flex: 0 0 auto;
  color: var(--colour-green);
  text-align: center;
}

.advertise-trust-strip span {
  color: #626a60;
  font-size: 0.83rem;
  line-height: 1.45;
}

.advertise-trust-strip strong {
  display: block;
  color: var(--colour-text);
  font-size: 0.9rem;
}

.advertise-section {
  margin-top: 64px;
  scroll-margin-top: 24px;
}

.advertise-section-heading {
  max-width: 720px;
  margin-bottom: 28px;
}

.advertise-section-heading h2,
.advertising-enquiry-intro h2 {
  margin-bottom: 13px;
  font-size: clamp(1.8rem, 5vw, 2.55rem);
  letter-spacing: -0.025em;
}

.advertise-section-heading p:last-child {
  margin-bottom: 0;
  color: #596158;
  font-size: 1.03rem;
}

.advertise-product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.advertise-product-card {
  min-width: 0;
  padding: clamp(24px, 4vw, 34px);
  display: flex;
  flex-direction: column;
  border: 1px solid #dce2d8;
  border-radius: var(--radius-small);
  background: #fafbf9;
}

.advertise-product-featured {
  border-top: 4px solid var(--colour-green);
  background: #f4f7f2;
}

.advertise-product-icon {
  width: 50px;
  height: 50px;
  margin-bottom: 22px;
  display: grid;
  place-items: center;
  color: var(--colour-white);
  border-radius: 50%;
  background: var(--colour-green);
  font-size: 1.2rem;
}

.advertise-product-label {
  margin-bottom: 6px;
  color: var(--colour-green-dark);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.advertise-product-card h3 {
  margin-bottom: 14px;
  font-size: clamp(1.45rem, 4vw, 1.9rem);
}

.advertise-product-card > p:not(.advertise-product-label) {
  color: #596158;
}

.advertise-feature-list {
  margin: 8px 0 24px;
  padding: 0;
  list-style: none;
}

.advertise-feature-list li {
  position: relative;
  padding-left: 26px;
}

.advertise-feature-list li + li {
  margin-top: 9px;
}

.advertise-feature-list li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  color: var(--colour-green);
  font-weight: 800;
}

.advertise-artwork-guide {
  margin-top: auto;
  padding: 15px 17px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  border: 1px solid #d5dfd0;
  border-radius: var(--radius-small);
  background: var(--colour-white);
  font-size: 0.9rem;
}

.advertise-artwork-guide span {
  display: grid;
}

.advertise-artwork-guide strong {
  color: #687066;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.sponsorship-levels {
  margin-block: 10px 24px;
  display: grid;
  gap: 13px;
}

.sponsorship-levels > div {
  padding: 17px 18px;
  border-left: 3px solid var(--colour-green);
  background: var(--colour-white);
}

.sponsorship-levels h4 {
  margin: 7px 0 5px;
  font-size: 1.05rem;
}

.sponsorship-levels p {
  margin: 0;
  color: #626a60;
  font-size: 0.92rem;
}

.sponsorship-badge {
  color: var(--colour-green-dark);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.advertise-card-link {
  margin-top: auto;
  padding-top: 22px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-weight: 800;
}

.advertise-card-link:hover i {
  transform: translateX(3px);
}

.advertise-card-link i {
  transition: transform var(--transition);
}

.advertise-editorial-note {
  margin-top: 22px;
  padding: 20px 22px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  border: 1px solid #dce4d8;
  border-radius: var(--radius-small);
}

.advertise-editorial-note i {
  margin-top: 4px;
  flex: 0 0 auto;
  color: var(--colour-green);
}

.advertise-editorial-note p {
  margin: 0;
  color: #596158;
}

.availability-section {
  padding: clamp(26px, 5vw, 42px);
  border-radius: var(--radius-small);
  background: #f1f5ee;
}

.availability-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.availability-updated {
  margin: 3px 0 0;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #626a60;
  font-size: 0.82rem;
  white-space: nowrap;
}

.availability-updated span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--colour-green);
  box-shadow: 0 0 0 4px rgb(84 129 62 / 13%);
}

.availability-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.availability-card {
  min-width: 0;
  padding: 21px;
  border: 1px solid #d8e0d3;
  border-radius: var(--radius-small);
  background: var(--colour-white);
}

.availability-card-heading {
  margin-bottom: 17px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.availability-card-heading h3 {
  margin: 0;
  font-size: 1.1rem;
}

.availability-state {
  padding: 4px 8px;
  color: var(--colour-green-dark);
  border-radius: 4px;
  background: #e5edde;
  font-size: 0.68rem;
  font-weight: 800;
  white-space: nowrap;
  text-transform: uppercase;
}

.availability-limited .availability-state {
  color: #72510f;
  background: #f7ebd2;
}

.availability-full .availability-state {
  color: #7b2c2c;
  background: #f4dfdf;
}

.availability-list {
  margin: 0;
  display: grid;
  gap: 11px;
}

.availability-list > div {
  padding-top: 11px;
  border-top: 1px solid #e5e9e2;
}

.availability-list dt {
  color: #687066;
  font-size: 0.75rem;
}

.availability-list dd {
  margin: 1px 0 0;
  font-size: 0.93rem;
  font-weight: 750;
}

.availability-disclaimer {
  margin: 18px 0 0;
  color: #687066;
  font-size: 0.83rem;
}

.advertise-process-list {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  list-style: none;
}

.advertise-process-list li {
  min-width: 0;
}

.advertise-process-list li > span {
  width: 36px;
  height: 36px;
  margin-bottom: 15px;
  display: grid;
  place-items: center;
  color: var(--colour-white);
  border-radius: 50%;
  background: var(--colour-green);
  font-weight: 800;
}

.advertise-process-list h3 {
  margin-bottom: 7px;
  font-size: 1rem;
}

.advertise-process-list p {
  margin: 0;
  color: #626a60;
  font-size: 0.9rem;
}

.advertising-enquiry-section {
  padding: clamp(26px, 5vw, 42px);
  display: grid;
  grid-template-columns: minmax(240px, 0.72fr) minmax(0, 1.45fr);
  align-items: start;
  gap: clamp(32px, 6vw, 68px);
  color: var(--colour-white);
  border-radius: var(--radius-small);
  background:
    linear-gradient(135deg, rgb(2 3 1 / 96%), rgb(28 43 22 / 94%)),
    url("../images/hfbg.jpg?v=d") center / cover no-repeat,
    var(--colour-dark);
}

.advertising-enquiry-intro {
  position: sticky;
  top: 28px;
}

.advertising-enquiry-intro > p:not(.eyebrow) {
  color: #d5ddd1;
}

.advertising-enquiry-assurance {
  margin-top: 28px;
  padding: 17px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border: 1px solid rgb(255 255 255 / 16%);
  background: rgb(255 255 255 / 5%);
}

.advertising-enquiry-assurance i {
  margin-top: 5px;
  color: #a9c79b;
}

.advertising-enquiry-assurance p {
  margin: 0;
  color: #d5ddd1;
  font-size: 0.9rem;
}

.advertising-enquiry-assurance strong {
  display: block;
  color: var(--colour-white);
}

.advertising-enquiry-form-wrap {
  min-width: 0;
  padding: clamp(22px, 4vw, 32px);
  color: var(--colour-text);
  border-radius: var(--radius-small);
  background: var(--colour-white);
}

.advertising-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.advertising-form-wide {
  grid-column: 1 / -1;
}

.optional-label {
  margin-left: 5px;
  color: #747c72;
  font-size: 0.74rem;
  font-weight: 500;
}

.advertising-enquiry-form .contact-submit {
  margin-top: 2px;
}


/* ========================================================================== 
   10B. SUBSCRIBE PAGE AND PREFERENCE FORMS
   ========================================================================== */

.subscribe-principle {
  margin-bottom: 42px;
  padding: 22px 24px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 18px;
  border: 1px solid #cddbc7;
  border-left: 4px solid var(--colour-green);
  border-radius: var(--radius-small);
  background: #f4f7f2;
}

.subscribe-principle > i {
  margin-top: 3px;
  color: var(--colour-green);
  font-size: 1.45rem;
}

.subscribe-principle h2 {
  margin-bottom: 8px;
  font-size: 1.25rem;
}

.subscribe-principle p {
  max-width: 78ch;
  margin-bottom: 0;
}

.subscribe-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(250px, 0.8fr);
  align-items: start;
  gap: clamp(32px, 6vw, 72px);
}

.subscribe-sidebar {
  display: grid;
  gap: 20px;
}

.subscription-scope-fieldset,
.subscription-topics {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.subscription-scope-fieldset > legend,
.subscription-topics > legend {
  margin-bottom: 10px;
  padding: 0;
  font-weight: 700;
}

.subscription-scope-fieldset {
  display: grid;
  gap: 12px;
}

.subscription-scope-card {
  min-width: 0;
  padding: 16px 18px;
  display: flex;
  align-items: flex-start;
  gap: 13px;
  border: 1px solid #cbd1c8;
  border-radius: var(--radius-small);
  background: var(--colour-white);
  cursor: pointer;
  transition:
    border-color var(--transition),
    background var(--transition);
}

.subscription-scope-card:hover,
.subscription-scope-card:has(input:checked) {
  border-color: var(--colour-green);
  background: #f4f7f2;
}

.subscription-scope-card input,
.subscription-topic input {
  width: 20px;
  height: 20px;
  margin: 3px 0 0;
  flex: 0 0 auto;
  accent-color: var(--colour-green);
}

.subscription-scope-card span,
.subscription-topic span {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.subscription-scope-card small,
.subscription-topic small {
  color: #656e63;
  font-size: 0.9rem;
  line-height: 1.45;
}

.subscription-topics {
  padding: 18px;
  border: 1px solid #dfe5da;
  border-radius: var(--radius-small);
  background: #fafbf9;
}

.subscription-topic-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 18px;
}

.subscription-topic {
  min-width: 0;
  padding: 8px 0;
  display: flex;
  align-items: flex-start;
  gap: 11px;
  cursor: pointer;
}

.subscription-fine-print {
  max-width: 68ch;
  margin: -4px 0 0;
  color: #6b736a;
  font-size: 0.88rem;
}

.unsubscribe-panel {
  border-color: #e0c4c4;
  background: #fffafa;
}

.unsubscribe-button {
  min-height: 44px;
  padding: 9px 15px;
  color: #7b2323;
  border: 1px solid #c88e8e;
  border-radius: var(--radius-small);
  background: #ffffff;
  font-weight: 700;
  cursor: pointer;
}

.unsubscribe-button:hover {
  color: #ffffff;
  border-color: #8a2424;
  background: #8a2424;
}

.unsubscribe-button-prominent {
  margin-bottom: 22px;
}

.subscription-result-page {
  max-width: 720px;
  margin-inline: auto;
}

.subscription-result-icon {
  margin-bottom: 16px;
  color: var(--colour-green);
  font-size: 2.5rem;
  line-height: 1;
}

.subscription-result-icon .fa-circle-xmark {
  color: #8a2424;
}

.subscription-result-body {
  font-size: 1.05rem;
}

.subscription-result-body p {
  max-width: 66ch;
}

.subscription-result-body .button-link {
  margin-top: 8px;
}


/* ========================================================================== 
   11. ONE-TIME SESSION MESSAGES
   index.php creates these after a redirect and script.js dismisses them.
   ========================================================================== */

.messageouter {
  position: relative;
  z-index: 5;
  padding: 12px var(--page-gutter) 0;
  background: var(--colour-white);
}

.messagebox {
  width: min(100%, var(--content-width));
  margin-inline: auto;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #1f2a1d;
  border: 1px solid #a6c39a;
  border-radius: var(--radius-small);
  background: #edf5e9;
  transition:
    opacity var(--transition),
    transform var(--transition);
}

.message-error {
  color: #5f1d1d;
  border-color: #d8a0a0;
  background: #faeded;
}

.message-warning {
  color: #614313;
  border-color: #d8bd84;
  background: #fff7e6;
}

.message-icon {
  flex: 0 0 auto;
  font-weight: 700;
}

.messagebox.is-dismissing {
  opacity: 0;
  transform: translateY(-8px);
}


/* ========================================================================== 
   12. ERROR PAGE
   ========================================================================== */

.error-page {
  max-width: 640px;
  margin-inline: auto;
  text-align: center;
}

.error-code {
  margin: 0;
  color: var(--colour-green);
  font-size: clamp(4rem, 15vw, 8rem);
  font-weight: 800;
  line-height: 1;
}

.error-page h1 {
  margin-top: 12px;
}

.button-link,
.button-link:visited {
  margin-top: 12px;
  padding: 12px 18px;
  display: inline-block;
  color: var(--colour-white);
  border-radius: var(--radius-small);
  background: var(--colour-green);
}

.button-link:hover {
  color: var(--colour-white);
  background: var(--colour-green-dark);
}


/* ========================================================================== 
   13. REUSABLE BREADCRUMB AND PAGINATION OUTPUT
   These classes are produced by helper functions in addons/short.php.
   ========================================================================== */

.onelinetext {
  white-space: nowrap;
}

.inlineonly {
  display: inline;
}

.bcdiv {
  margin-inline: 8px;
  color: #777777;
}

.paginatediv {
  margin-block: 32px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.paginate,
.paginateactive {
  min-width: 40px;
  min-height: 40px;
  padding: 7px 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d5d8d2;
}

.paginate {
  color: var(--colour-green);
  background: var(--colour-white);
}

.paginate:hover {
  color: var(--colour-white);
  border-color: var(--colour-green);
  background: var(--colour-green);
}

.paginateactive {
  color: var(--colour-white);
  border-color: var(--colour-green);
  background: var(--colour-green);
  font-weight: 700;
}

.inline {
  display: inline-flex;
}

.rounded {
  border-radius: var(--radius-small);
}


/* ========================================================================== 
   14. FOOTER
   ========================================================================== */

.site-footer {
  color: var(--colour-white);
  background:
    linear-gradient(rgb(0 0 0 / 13%), rgb(0 0 0 / 13%)),
    url("../images/hfbg.jpg?v=d") top center / cover no-repeat,
    var(--colour-dark);
}

.footer-content {
  min-height: 286px;
  padding-block: 44px 40px;
  display: grid;
  grid-template-columns:
    minmax(300px, 1.45fr)
    minmax(150px, 0.65fr)
    minmax(310px, 1.25fr);
  align-items: start;
  gap: 42px;
}

.footer-logo img {
  width: 184px;
  height: auto;
  display: block;
}

.footer-description {
  max-width: 370px;
  margin: 20px 0 22px;
  color: #d5d9de;
  font-size: 0.875rem;
  line-height: 1.65;
}

.footer-heading {
  margin: 0 0 16px;
  color: var(--colour-white);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.footer-heading::after {
  width: 28px;
  height: 2px;
  margin-top: 9px;
  display: block;
  border-radius: 4px;
  background: #6c9c53;
  content: "";
}

.footer-meta,
.footer-legal,
.footer-legal a,
.footer-legal a:visited {
  color: var(--colour-muted);
}

.footer-meta {
  display: grid;
  gap: 7px;
  font-size: 0.75rem;
}

.footer-legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.footer-legal a {
  position: relative;
}

.footer-legal a:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: -7px;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: rgb(255 255 255 / 38%);
  content: "";
}

.footer-follow-copy {
  margin: 0 0 15px;
  color: var(--colour-muted);
  font-size: 0.8125rem;
}

.footer-social-links {
  display: flex;
  align-items: center;
  gap: 9px;
}

.footer-social-link,
.footer-social-link:visited {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  color: var(--colour-white);
  border: 1px solid var(--colour-border-dark);
  border-radius: 4px;
  background: rgb(255 255 255 / 6%);
  transition:
    border-color var(--transition),
    background var(--transition);
}

.footer-social-link:hover {
  color: var(--colour-white);
  border-color: rgb(255 255 255 / 28%);
  background: rgb(255 255 255 / 11%);
}

.footer-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.footer-link,
.footer-link:visited {
  min-height: 50px;
  padding: 9px 11px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  color: #f3f5f6;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 4px;
  background: rgb(255 255 255 / 6%);
  font-size: 0.8125rem;
  font-weight: 600;
  transition:
    border-color var(--transition),
    background var(--transition);
}

.footer-link:hover {
  color: var(--colour-white);
  border-color: rgb(108 156 83 / 62%);
  background: rgb(255 255 255 / 11%);
}

.footer-link-icon {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: #b7d4a8;
  border-radius: 4px;
  background: rgb(108 156 83 / 17%);
  font-size: 0.875rem;
}

.footer-link-arrow {
  color: rgb(255 255 255 / 42%);
  font-size: 0.6875rem;
  transition: color var(--transition);
}

.footer-link:hover .footer-link-arrow {
  color: var(--colour-white);
}

.footer-project-bar {
  min-height: 64px;
  display: grid;
  place-items: center;
  border-top: 1px solid var(--colour-border-dark);
  background: rgb(0 0 0 / 58%);
  backdrop-filter: blur(5px);
}

.footer-project-credit,
.footer-project-credit:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #c5cad0;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.footer-project-credit img {
  width: 86px;
  height: 30px;
  display: block;
  object-fit: contain;
}

.footer-project-credit:hover,
.footer-legal a:hover {
  color: var(--colour-white);
}


/* ========================================================================== 
   15. SMALL UTILITIES USED BY THE SHARED TEMPLATE
   Only the three utilities below currently appear in the HTML.
   ========================================================================== */

.space10 {
  height: 10px;
  display: block;
}

.space20 {
  height: 20px;
  display: block;
}

.mr10 {
  margin-inline-end: 10px;
}


/* ========================================================================== 
   16. RESPONSIVE LAYOUT
   The 760px breakpoint is also used by script.js when closing mobile search.
   ========================================================================== */

/* Let the footer step down gracefully before the site's mobile breakpoint. */
@media (max-width: 900px) {
  .residential-project-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-content {
    grid-template-columns:
      minmax(170px, 0.65fr)
      minmax(0, 1.35fr);
    gap: 34px 42px;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }

  .footer-brand,
  .footer-follow,
  .footer-links {
    width: 100%;
  }
}

@media (max-width: 760px) {
  :root {
    --page-gutter: 18px;
    --header-height: 78px;
  }

  .header-content {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
  }

  .site-logo img {
    width: 180px;
  }

  .desktop-search {
    display: none;
  }

  .search-toggle {
    display: grid;
  }

  .menu-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
  }

  .page-contents ul {
    grid-template-columns: 1fr;
  }

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

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

  .advertise-page-header,
  .advertising-enquiry-section,
  .property-guide-header,
  .property-primary-service,
  .property-portal-link,
  .catalogue-landing-header,
  .catalogue-crosslink,
  .residential-page-header,
  .residential-map-heading,
  .residential-development-header,
  .residential-area-card,
  .residential-application-card {
    grid-template-columns: 1fr;
  }

  .residential-project-grid {
    grid-template-columns: 1fr;
  }

  .shopping-centre-grid,
  .shopping-centre-development-grid,
  .catalogue-link-grid,
  .catalogue-subject-grid {
    grid-template-columns: 1fr;
  }

  .catalogue-link-grid-five > :first-child {
    grid-column: auto;
  }

  .catalogue-crosslink > a {
    min-width: 0;
    justify-self: start;
  }

  .shopping-centre-detail-overview-grid,
  .shopping-centre-detail-capacity .residential-stat-grid {
    grid-template-columns: 1fr;
  }

  .industry-allocation-grid {
    grid-template-columns: 1fr;
  }

  .industry-allocation-grid > div {
    min-height: 0;
  }

  .shopping-centre-detail-instrument {
    align-items: flex-start;
    flex-direction: column;
  }

  .shopping-centre-allocation-row {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .residential-page-quick-links {
    display: none;
  }

  .residential-stat-grid {
    grid-template-columns: 1fr;
  }

  .residential-project-link {
    min-height: 0;
  }

  .residential-development-meta div {
    padding: 12px 0;
    border-top: 1px solid var(--residential-line);
    border-left: 0;
  }

  .residential-development-meta div:first-child {
    padding-top: 4px;
    border-top: 0;
  }

  .property-primary-service-icon {
    width: 58px;
    height: 58px;
  }

  .property-primary-service-button {
    justify-self: start;
  }

  .property-portal-link-button {
    justify-self: start;
  }

  .property-directory-agent-grid {
    grid-template-columns: 1fr;
  }

  .advertise-hero-card {
    min-height: 280px;
  }

  .advertise-trust-strip,
  .advertise-product-grid,
  .availability-grid,
  .advertise-process-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .advertising-enquiry-intro {
    position: static;
  }

  .subscription-topic-grid {
    grid-template-columns: 1fr;
  }

  .property-check-grid,
  .planning-claim-grid,
  .seller-question-grid,
  .service-link-grid {
    grid-template-columns: 1fr;
  }

  .service-link-grid > .service-link-card:last-child:nth-child(odd) {
    grid-column: auto;
  }

  .footer-content {
    min-height: 250px;
    grid-template-columns: 1fr;
    justify-items: start;
    gap: 30px;
  }

  .footer-brand,
  .footer-follow,
  .footer-links {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .header-content {
    gap: 8px;
  }

  .site-logo img {
    width: 155px;
  }

  .header-actions {
    gap: 4px;
  }

  .search-toggle,
  .menu-toggle {
    width: 42px;
    height: 42px;
  }

  .menu-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .footer-link-grid {
    grid-template-columns: 1fr;
  }

  .footer-project-credit img {
    width: 80px;
    height: 28px;
  }

  .advertise-trust-strip,
  .advertise-product-grid,
  .availability-grid,
  .advertise-process-list,
  .advertising-form-grid,
  .advertise-artwork-guide {
    grid-template-columns: 1fr;
  }

  .advertising-form-wide {
    grid-column: auto;
  }

  .property-guide-principle,
  .property-guide-disclaimer {
    grid-template-columns: 1fr;
  }

  .residential-summary-grid {
    grid-template-columns: 1fr;
  }

  .residential-summary-grid div:nth-child(odd),
  .residential-summary-grid div:nth-child(-n + 2) {
    border-right: 0;
    border-bottom: 1px solid #dce4d8;
  }

  .residential-summary-grid div:last-child {
    border-bottom: 0;
  }

  .residential-page-summary .residential-summary-grid div:nth-child(odd),
  .residential-page-summary .residential-summary-grid div:nth-child(-n + 2) {
    border-bottom-color: rgb(255 255 255 / 18%);
  }

  .residential-reading-note {
    display: block;
  }

  .residential-reading-note > i {
    margin: 0 0 14px;
  }

  .residential-map-section {
    padding: 18px;
  }

  .residential-map-frame {
    height: 520px;
    min-height: 520px;
  }

  .residential-map-caveat {
    display: block;
  }

  .residential-map-caveat i {
    margin: 0 0 8px;
  }

  .shopping-centre-capacity dl,
  .shopping-centre-card-meta {
    grid-template-columns: 1fr;
  }

  .shopping-centre-capacity dl > div {
    border-right: 0;
    border-bottom: 1px solid #d8e2d4;
  }

  .shopping-centre-capacity dl > div:last-child {
    border-bottom: 0;
  }

  .shopping-centre-empty-state {
    grid-template-columns: 1fr;
  }

  .shopping-centre-point-context {
    grid-template-columns: 1fr;
  }

  .property-primary-service-button,
  .property-portal-link-button {
    width: 100%;
  }

  .property-directory-sample-heading p {
    display: block;
  }

  .property-directory-sample-heading span {
    margin-top: 3px;
    display: block;
  }

  .guide-steps li {
    padding-left: 58px;
  }

  .availability-heading {
    display: block;
  }

  .availability-updated {
    margin-bottom: 20px;
  }

  .expanded-menu {
    padding-block: 24px 28px;
  }

  .main-content {
    min-height: 520px;
    padding-block: 32px;
  }
}


/* ========================================================================== 
   17. REDUCED MOTION
   Respect visitors who have asked their device to minimise animation.
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Website R50: refined inline topic subscription panel with subtle desktop envelope watermark. */
.development-inline-subscribe {
  position: relative;
  overflow: hidden;
  margin-top: clamp(46px, 7vw, 72px);
  padding: clamp(24px, 4vw, 38px);
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(340px, 1.1fr);
  align-items: start;
  gap: clamp(26px, 5vw, 54px);
  border: 1px solid #cfdcc9;
  border-radius: 4px;
  background: #f4f7f2;
}

.development-inline-subscribe::before {
  content: "";
  position: absolute;
  left: clamp(-118px, -6vw, -30px);
  bottom: clamp(-126px, -7vw, -42px);
  width: clamp(330px, 39vw, 500px);
  height: clamp(230px, 29vw, 350px);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 420'%3E%3Cg fill='none' stroke='%235f8350' stroke-width='18' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath fill='%23dfe9da' d='M72 144h456v228H72z'/%3E%3Cpath d='M72 144l228 156 228-156'/%3E%3Cpath d='M72 372l154-146'/%3E%3Cpath d='M528 372L374 226'/%3E%3Cpath d='M72 144l164-116h128l164 116'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: 0.12;
  transform: rotate(-8deg);
  transform-origin: center;
  pointer-events: none;
  z-index: 0;
}

.development-inline-subscribe-intro,
.development-inline-subscribe-form {
  position: relative;
  z-index: 1;
}

.development-inline-subscribe-intro {
  padding-top: 4px;
}

.development-inline-subscribe-intro h2 {
  margin-bottom: 12px;
  color: var(--catalogue-ink, #152016);
  font-size: clamp(1.45rem, 3vw, 2rem);
}

.development-inline-subscribe-intro p:last-child {
  max-width: 58ch;
  margin-bottom: 0;
  color: #566054;
}

.development-inline-subscribe-form {
  padding: clamp(20px, 3vw, 28px);
  gap: 18px;
  border: 1px solid #d5dfd0;
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0 12px 30px rgb(29 48 26 / 6%);
}

.development-inline-subscribe-form .subscription-scope-fieldset {
  gap: 9px;
}

.development-inline-subscribe-form .subscription-scope-card {
  padding: 13px 15px;
}

.development-inline-subscribe-form .contact-submit {
  width: 100%;
  justify-content: center;
}

.development-inline-subscribe-fallback {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.development-inline-subscribe-fallback .button-link {
  margin: 0;
  white-space: nowrap;
}

.industry-enterprise-developments-page .catalogue-landing-section {
  margin-bottom: 0;
}

@media (max-width: 760px) {
  .development-inline-subscribe,
  .development-inline-subscribe-fallback {
    grid-template-columns: minmax(0, 1fr);
  }

  .development-inline-subscribe::before {
    width: clamp(240px, 66vw, 360px);
    height: clamp(165px, 46vw, 250px);
    left: clamp(-108px, -16vw, -34px);
    bottom: clamp(-108px, -16vw, -34px);
    opacity: 0.08;
  }

  .development-inline-subscribe-fallback .button-link {
    width: 100%;
    white-space: normal;
  }
}

/* Website R59: Roads & Transport planning page. */
.roads-transport-plan-page #roads-transport-map,
.roads-transport-plan-page #future-road-network,
.roads-transport-plan-page #intersections-upgrades,
.roads-transport-plan-page #walking-cycling {
  scroll-margin-top: 110px;
}

.roads-plan-summary-grid > div {
  min-width: 0;
}

.roads-plan-summary-grid span {
  text-wrap: balance;
}

.transport-layer-controls {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
}

.transport-layer-toggle {
  display: inline-flex;
  align-items: center;
  align-self: end;
  gap: 9px;
  padding: 9px 12px;
  border: 1px solid #cbd8c5;
  border-radius: 4px;
  background: #f7faf5;
  color: #2f3d2c;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  user-select: none;
}

.transport-layer-toggle input {
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: #4f7341;
}

.transport-layer-toggle span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.transport-layer-toggle-active {
  border-color: #e0c1a7;
  background: #fff8f2;
  color: #8a4c21;
}

.transport-layer-toggle-active input {
  accent-color: #c57435;
}

.transport-copy-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
  gap: clamp(24px, 5vw, 52px);
  align-items: start;
}

.transport-copy-grid > div > p:first-child {
  margin-top: 0;
}

.transport-definition-card,
.transport-route-stat {
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid #d5dfd0;
  border-radius: 4px;
  background: #f5f8f3;
}

.transport-definition-card {
  display: grid;
  gap: 5px;
}

.transport-definition-card .eyebrow {
  margin-bottom: 7px;
}

.transport-definition-card strong {
  margin-top: 8px;
  color: #1d2a1d;
}

.transport-definition-card span {
  color: #5d675a;
  font-size: 0.94rem;
}

.transport-profile-block {
  margin-top: clamp(28px, 5vw, 48px);
}

.transport-profile-block > h3 {
  margin-bottom: 8px;
}

.transport-profile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 20px;
}

.transport-profile-grid article {
  padding: 18px 20px;
  border: 1px solid #d7e0d3;
  border-radius: 4px;
  background: #fff;
}

.transport-profile-grid article .eyebrow {
  margin-bottom: 5px;
}

.transport-profile-grid h3 {
  margin: 0 0 8px;
  font-size: 1rem;
}

.transport-profile-grid p:last-child {
  margin-bottom: 0;
  color: #5d675a;
  font-size: 0.9rem;
}

.transport-road-schematic-scroll {
  margin: 15px 0 7px;
  overflow-x: auto;
  padding-bottom: 3px;
  scrollbar-width: thin;
}

.transport-road-schematic {
  display: flex;
  align-items: stretch;
  min-width: 720px;
  min-height: 104px;
  overflow: hidden;
  border: 1px solid #cdd7c8;
  border-radius: 4px;
  background: #eef3eb;
}

.transport-schematic-segment {
  flex: var(--segment-flex, 1) 1 0;
  min-width: 54px;
  display: grid;
  grid-template-rows: 24px auto auto;
  align-content: center;
  justify-items: center;
  gap: 3px;
  padding: 10px 5px;
  border-right: 1px solid rgb(20 34 18 / 13%);
  color: #243022;
  text-align: center;
}

.transport-schematic-segment:last-child {
  border-right: 0;
}

.transport-schematic-segment i {
  font-size: 0.92rem;
}

.transport-schematic-segment strong {
  font-size: 0.67rem;
  line-height: 1.1;
}

.transport-schematic-segment small {
  color: inherit;
  font-size: 0.64rem;
  font-weight: 800;
  opacity: 0.82;
}

.transport-schematic-lane {
  background: #505650;
  color: #fff;
}

.transport-schematic-parking {
  background: #a7aaa5;
  color: #fff;
}

.transport-schematic-cycle {
  background: #cfe1c8;
  color: #2f5928;
}

.transport-schematic-footpath {
  background: #e6e7e2;
  color: #4c554a;
}

.transport-schematic-planting {
  background: #dbe8d4;
  color: #4f7048;
}

.transport-schematic-median {
  background: #d3ddcd;
  color: #486240;
}

.transport-schematic-note {
  display: block;
  margin-bottom: 12px;
  color: #7a8276;
  font-size: 0.76rem;
}

.transport-profile-facts {
  margin: 8px 0 0;
  color: #4e594b;
  font-size: 0.9rem;
  font-weight: 700;
}

.transport-profile-features {
  display: grid;
  gap: 7px;
  margin-top: 12px;
}

.transport-profile-features span {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: #5d675a;
  font-size: 0.86rem;
  line-height: 1.4;
}

.transport-profile-features i {
  width: 16px;
  margin-top: 2px;
  color: #58784d;
  text-align: center;
}

.transport-profile-features .fa-person-biking {
  color: #b8662e;
}

.transport-profile-reference {
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px solid #edf0eb;
  color: #7a8276 !important;
  font-size: 0.77rem !important;
  font-weight: 700;
}

.transport-profile-source {
  margin: 18px 0 0;
  font-size: 0.9rem;
  font-weight: 800;
}

.transport-intersection-details {
  margin-top: 22px;
  border: 1px solid #d5dfd0;
  border-radius: 4px;
  background: #fff;
  overflow: hidden;
}

.transport-intersection-details summary {
  padding: 16px 18px;
  color: #263723;
  font-weight: 800;
  cursor: pointer;
}

.transport-intersection-details[open] summary {
  border-bottom: 1px solid #e1e7de;
}

.transport-intersection-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.transport-intersection-list li {
  display: grid;
  gap: 3px;
  padding: 14px 18px;
  border-bottom: 1px solid #edf0eb;
}

.transport-intersection-list li:nth-child(odd) {
  border-right: 1px solid #edf0eb;
}

.transport-intersection-list strong {
  color: #263723;
}

.transport-intersection-list span,
.transport-intersection-list small {
  color: #647061;
}

.transport-intersection-list span {
  font-size: 0.87rem;
  font-weight: 700;
}

.transport-intersection-list small {
  font-size: 0.84rem;
}

.transport-upgrade-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 22px;
}

.transport-upgrade-card {
  padding: 20px;
  border: 1px solid #d7e0d3;
  border-radius: 4px;
  background: #fff;
}

.transport-upgrade-card h3 {
  margin: 4px 0 8px;
}

.transport-upgrade-card span {
  display: block;
  margin: 10px 0;
  color: #5a6657;
  font-weight: 700;
}

.transport-upgrade-card a {
  font-weight: 800;
}

.transport-empty-state {
  margin-top: 22px;
}

.transport-route-stat {
  text-align: left;
}

.transport-route-stat > strong {
  display: block;
  color: #355b2d;
  font-size: clamp(2.3rem, 5vw, 4rem);
  line-height: 0.95;
}

.transport-route-stat > span {
  display: block;
  margin-top: 10px;
  color: #263723;
  font-weight: 800;
}

.transport-route-stat p {
  margin: 12px 0 0;
  color: #657063;
  font-size: 0.9rem;
}

.transport-delivery-note {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  padding: clamp(20px, 4vw, 30px);
  border: 1px solid #d1ddcb;
  border-radius: 4px;
  background: #f3f7f1;
}

.transport-delivery-note > i {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #dbe8d5;
  color: #426638;
}

.transport-delivery-note p:first-child {
  margin-top: 0;
}

.transport-delivery-note p:last-child {
  margin-bottom: 0;
}

@media (max-width: 760px) {
  .roads-transport-plan-page .residential-map-heading {
    align-items: flex-start;
  }

  .transport-layer-controls {
    width: 100%;
    justify-content: flex-start;
  }

  .transport-layer-toggle {
    align-self: flex-start;
  }

  .transport-copy-grid,
  .transport-profile-grid,
  .transport-intersection-list,
  .transport-upgrade-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .transport-intersection-list li:nth-child(odd) {
    border-right: 0;
  }

  .transport-delivery-note {
    grid-template-columns: minmax(0, 1fr);
  }

  .transport-road-schematic {
    min-width: 650px;
  }
}

/* Website R61: actual Roads & Transport delivery-project catalogue. */
.roads-transport-developments-page .catalogue-crosslink {
  margin-top: 0;
}

.roads-transport-developments-page .catalogue-landing-section {
  margin-bottom: 0;
}

.road-infrastructure-project-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.road-infrastructure-project-card {
  min-width: 0;
  padding: clamp(21px, 3vw, 28px);
  display: flex;
  flex-direction: column;
  gap: 13px;
  border: 1px solid var(--residential-line, #d7e0d3);
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgb(29 48 26 / 5%);
}

.road-infrastructure-project-top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 9px 14px;
  color: #677164;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.road-infrastructure-project-card h3 {
  margin: 0;
  color: var(--residential-ink, #152016);
  font-size: clamp(1.2rem, 2.6vw, 1.45rem);
}

.road-infrastructure-project-card > p {
  margin: 0;
  color: #556054;
}

.road-infrastructure-project-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  color: #5d685b;
  font-size: 0.82rem;
}

.road-infrastructure-project-meta span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.road-infrastructure-project-meta i {
  color: #65845a;
}

.road-infrastructure-project-timing {
  padding: 13px 15px;
  display: grid;
  gap: 4px;
  border-radius: 4px;
  background: #f3f7f1;
}

.road-infrastructure-project-timing strong,
.road-infrastructure-project-sources > strong {
  color: #394a36;
  font-size: 0.75rem;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.road-infrastructure-project-timing span {
  color: #596557;
  font-size: 0.86rem;
  line-height: 1.55;
}

.road-infrastructure-project-sources {
  padding-top: 4px;
  display: grid;
  gap: 9px;
}

.road-infrastructure-project-sources > a,
.road-infrastructure-project-sources > a:visited {
  padding: 10px 12px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  color: #35552d;
  border: 1px solid #d6e1d2;
  border-radius: 4px;
  background: #f8faf7;
  font-size: 0.82rem;
  font-weight: 750;
}

.road-infrastructure-project-sources > a:hover,
.road-infrastructure-project-sources > a:focus-visible {
  color: #263f20;
  border-color: #9ab291;
  background: #f2f7ef;
}

.road-infrastructure-project-sources a i {
  margin-top: 0.25em;
  color: #65845a;
  font-size: 0.72rem;
}

.road-infrastructure-project-sources a span {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.road-infrastructure-project-sources a small {
  color: #707a6e;
  font-weight: 600;
}

@media (max-width: 760px) {
  .road-infrastructure-project-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Website R62: Sewer & Water Treatment planning page. */
.sewer-water-treatment-plan-page #sewer-network-map,
.sewer-water-treatment-plan-page #sewer-rollout,
.sewer-water-treatment-plan-page #planned-sewer-infrastructure,
.sewer-water-treatment-plan-page #sewer-projects {
  scroll-margin-top: 110px;
}

.sewer-plan-summary-grid > div {
  min-width: 0;
}

.sewer-layer-controls {
  max-width: 620px;
}

.sewer-layer-toggle-catchment {
  border-color: #bfd3dc;
  background: #f2f8fa;
  color: #365f70;
}

.sewer-layer-toggle-catchment input,
.sewer-layer-toggle-mains input {
  accent-color: #39768d;
}

.sewer-layer-toggle-mains {
  border-color: #bcd1db;
  background: #f3f8fa;
  color: #2f667b;
}

.sewer-layer-toggle-pumps {
  border-color: #cdc4de;
  background: #f8f6fb;
  color: #5d4b82;
}

.sewer-layer-toggle-pumps input {
  accent-color: #5d4b82;
}

.sewer-layer-toggle-treatment {
  border-color: #dfc2b4;
  background: #fff7f2;
  color: #8a4b31;
}

.sewer-layer-toggle-treatment input {
  accent-color: #a85d3b;
}

.sewer-rollout-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.sewer-rollout-grid article {
  min-width: 0;
  padding: 20px;
  border: 1px solid #d3ded0;
  border-radius: 4px;
  background: #f7faf5;
}

.sewer-rollout-grid span {
  display: block;
  margin-bottom: 5px;
  color: #5c6858;
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.sewer-rollout-grid strong {
  display: block;
  margin-bottom: 7px;
  color: #1f3320;
  font-size: clamp(1.85rem, 4vw, 2.6rem);
  line-height: 1;
}

.sewer-rollout-grid p {
  margin-bottom: 0;
  color: #596556;
  font-size: 0.92rem;
}

.sewer-rollout-note {
  margin-top: 18px;
}

.sewer-catchment-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.sewer-catchment-card {
  min-width: 0;
  padding: clamp(20px, 3vw, 26px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 18px;
  row-gap: 8px;
  align-items: start;
  border: 1px solid #cfdae0;
  border-radius: 4px;
  background: #f7fafb;
}

.sewer-catchment-card h3 {
  margin: 0;
  color: #223c47;
  font-size: 1.15rem;
}

.sewer-catchment-card > strong {
  grid-row: 1 / span 2;
  grid-column: 2;
  color: #39768d;
  font-size: 2rem;
  line-height: 1;
}

.sewer-catchment-card > span,
.sewer-catchment-card > p {
  grid-column: 1 / -1;
}

.sewer-catchment-card > span {
  color: #536770;
  font-size: 0.88rem;
  font-weight: 700;
}

.sewer-catchment-card > p {
  margin: 4px 0 0;
  color: #617079;
  font-size: 0.9rem;
}

.sewer-infrastructure-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.sewer-infrastructure-grid article {
  min-width: 0;
  padding: clamp(20px, 3vw, 27px);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  border: 1px solid #d4dfd0;
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgb(29 48 26 / 4%);
}

.sewer-infrastructure-grid article > i {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #ffffff;
  background: #4d7686;
}

.sewer-infrastructure-grid article:nth-child(2) > i,
.sewer-infrastructure-grid article:nth-child(3) > i {
  background: #665889;
}

.sewer-infrastructure-grid article:nth-child(4) > i {
  background: #9c5a3d;
}

.sewer-infrastructure-grid h3 {
  margin: 0 0 7px;
  color: #1d2a1d;
  font-size: 1.05rem;
}

.sewer-infrastructure-grid p {
  margin: 0;
  color: #5b6758;
}


.sewer-treatment-connection-section {
  margin-top: clamp(36px, 6vw, 62px);
}

.sewer-treatment-context-frame-shell {
  margin-top: 22px;
}

.sewer-treatment-context-map-frame {
  min-height: 420px;
}

@media (max-width: 760px) {
  .sewer-treatment-context-map-frame {
    min-height: 340px;
  }
}

@media (max-width: 760px) {
  .sewer-water-treatment-plan-page .residential-map-heading {
    align-items: flex-start;
  }

  .sewer-layer-controls {
    width: 100%;
    justify-content: flex-start;
  }

  .sewer-rollout-grid,
  .sewer-catchment-grid,
  .sewer-infrastructure-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Website R76: Parks & Open Space planning page. */
.parks-map-actions {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.parks-map-actions button,
.parks-map-focus-button {
  appearance: none;
  border: 1px solid #9ab691;
  border-radius: 4px;
  background: #f6faf3;
  color: #31522a;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 800;
  cursor: pointer;
}

.parks-map-actions button {
  padding: 9px 14px;
}

.parks-map-actions button i,
.parks-map-focus-button i {
  margin-right: 6px;
}

.parks-map-actions button:hover,
.parks-map-actions button:focus-visible,
.parks-map-focus-button:hover,
.parks-map-focus-button:focus-visible {
  border-color: #537b45;
  background: #eaf3e5;
  outline: none;
}

.parks-major-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.parks-major-card {
  min-width: 0;
  padding: clamp(22px, 3vw, 30px);
  border: 1px solid #cad9c3;
  border-radius: 4px;
  background: #f8fbf6;
  box-shadow: 0 10px 28px rgb(29 48 26 / 4%);
}

.parks-major-card-ds01 {
  border-color: #d2ddb7;
  background: #fbfcf5;
}

.parks-major-card-top {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}

.parks-major-card-top span {
  padding: 4px 8px;
  border-radius: 4px;
  background: #385f30;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.05em;
}

.parks-major-card-top strong {
  color: #60705a;
  font-size: 0.84rem;
}

.parks-major-card h3 {
  margin: 15px 0 10px;
  color: #1d2f1d;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
}

.parks-major-area {
  margin-bottom: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: baseline;
}

.parks-major-area strong {
  color: #385f30;
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  line-height: 1;
}

.parks-major-area span {
  color: #697763;
  font-weight: 700;
}

.parks-major-card p {
  color: #596656;
}

.parks-major-meta {
  margin: 18px 0;
  color: #53604f;
  font-size: 0.9rem;
  font-weight: 700;
}

.parks-major-meta i {
  margin-right: 7px;
}

.parks-map-focus-button {
  padding: 9px 13px;
}

.parks-schedule {
  margin-top: 24px;
  overflow: hidden;
  border: 1px solid #d3ddd0;
  border-radius: 4px;
  background: #fff;
}

.parks-schedule-head,
.parks-schedule-row {
  display: grid;
  grid-template-columns: minmax(80px, 0.7fr) minmax(130px, 1fr) minmax(120px, 0.8fr);
  gap: 14px;
  align-items: center;
}

.parks-schedule-head {
  padding: 11px 16px;
  background: #edf4e9;
  color: #4d5c48;
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.parks-schedule-row {
  padding: 12px 16px;
  border-top: 1px solid #e4ebe1;
  color: #556252;
}

.parks-schedule-row strong {
  color: #31522a;
}

.parks-types-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.parks-types-grid article {
  padding: 20px;
  border: 1px solid #d4dfd0;
  border-radius: 4px;
  background: #fff;
}

.parks-types-grid h3 {
  margin: 0 0 12px;
  color: #284427;
  font-size: 1.05rem;
}

.parks-types-grid p {
  margin: 7px 0 0;
  color: #5b6758;
  font-size: 0.9rem;
}

.parks-linear-note {
  margin: 16px 0 0;
  padding: 14px 16px;
  border-left: 3px solid #7da16e;
  background: #f6faf4;
  color: #586554;
}

.parks-timeline {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(125px, 1fr));
  gap: 10px;
}

.parks-timeline article {
  padding: 15px;
  border: 1px solid #d7e0d3;
  border-radius: 4px;
  background: #f8faf6;
}

.parks-timeline strong,
.parks-timeline span {
  display: block;
}

.parks-timeline strong {
  color: #31522a;
  font-size: 1.3rem;
}

.parks-timeline span {
  margin-top: 5px;
  color: #667261;
  font-size: 0.86rem;
}

@media (max-width: 760px) {
  .parks-major-grid,
  .parks-types-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .parks-schedule-head,
  .parks-schedule-row {
    grid-template-columns: 0.65fr 1fr 0.8fr;
    gap: 8px;
  }

  .parks-schedule-head,
  .parks-schedule-row {
    padding-inline: 12px;
  }
}

/* Website R77: Parks & Open Space project catalogue. */
.parks-projects-planned-section {
  margin-top: clamp(44px, 7vw, 72px);
}

.parks-projects-subheading {
  margin-top: clamp(30px, 5vw, 48px);
}

.parks-projects-subheading h3 {
  margin: 0 0 8px;
  color: var(--catalogue-ink, #152016);
  font-size: clamp(1.25rem, 2.2vw, 1.65rem);
}

.parks-project-schedule .parks-schedule-head,
.parks-project-schedule .parks-schedule-row {
  grid-template-columns: minmax(76px, .65fr) minmax(190px, 1.65fr) minmax(120px, 1fr) minmax(110px, .8fr) minmax(90px, .7fr);
}

.parks-project-planned-label {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  padding: 5px 10px;
  border: 1px solid #cfdcc9;
  border-radius: 4px;
  background: #f4f7f2;
  color: #40553a;
  font-size: .78rem;
  font-weight: 700;
}

.parks-major-card .parks-map-focus-button[href] {
  text-decoration: none;
}

@media (max-width: 760px) {
  .parks-project-schedule {
    overflow-x: auto;
  }

  .parks-project-schedule .parks-schedule-head,
  .parks-project-schedule .parks-schedule-row {
    min-width: 690px;
  }
}

/* Website R78: Schools planning page. */
.schools-map-actions {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.schools-map-actions button,
.schools-map-focus-button {
  appearance: none;
  padding: 9px 14px;
  border: 1px solid #c1a47f;
  border-radius: 4px;
  background: #fbf7f1;
  color: #62451f;
  font: inherit;
  font-size: .88rem;
  font-weight: 800;
  cursor: pointer;
}

.schools-map-actions button i,
.schools-map-focus-button i {
  margin-right: 6px;
}

.schools-map-actions button:hover,
.schools-map-actions button:focus-visible,
.schools-map-focus-button:hover,
.schools-map-focus-button:focus-visible {
  border-color: #8b622e;
  background: #f5eadc;
  outline: none;
}

.school-plan-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.school-plan-card {
  min-width: 0;
  padding: clamp(20px, 3vw, 27px);
  border: 1px solid #ddd2c2;
  border-radius: 4px;
  background: #fdfbf8;
}

.school-plan-card-top {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: center;
}

.school-plan-card-top span {
  padding: 4px 8px;
  border-radius: 4px;
  background: #8b622e;
  color: #fff;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .04em;
}

.school-plan-card-top strong,
.school-plan-type {
  color: #6e6254;
  font-size: .86rem;
  font-weight: 800;
}

.school-plan-card h3 {
  margin: 15px 0 6px;
  color: #2c241c;
  font-size: clamp(1.18rem, 2vw, 1.48rem);
}

.school-plan-area {
  margin: 17px 0 14px;
}

.school-plan-area strong,
.school-plan-area span {
  display: block;
}

.school-plan-area strong {
  color: #6b4b25;
  font-size: clamp(1.65rem, 3vw, 2.15rem);
  line-height: 1;
}

.school-plan-area span {
  margin-top: 5px;
  color: #746a60;
  font-size: .82rem;
  font-weight: 700;
}

.school-plan-card p:not(.school-plan-type) {
  color: #625a51;
}

.school-certainty-list {
  margin: 16px 0 0;
  padding-left: 20px;
  color: #566054;
}

.school-certainty-list li + li {
  margin-top: 8px;
}

.school-sheldon-card {
  margin-top: 24px;
  padding: clamp(22px, 4vw, 32px);
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(210px, .55fr);
  gap: 24px;
  border: 1px solid #cfd9e1;
  border-radius: 4px;
  background: #f7fafc;
}

.school-sheldon-card p {
  color: #56616b;
}

.school-sheldon-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: stretch;
  justify-content: center;
}

.school-sheldon-actions .button-link,
.school-sheldon-actions .schools-map-focus-button {
  width: 100%;
  justify-content: center;
  text-align: center;
}

.school-sheldon-service-note {
  margin-top: 20px;
  padding: 15px 17px;
  display: flex;
  gap: 13px;
  border-left: 3px solid #477e8f;
  background: #eef6f7;
}

.school-sheldon-service-note > i {
  margin-top: 3px;
  color: #477e8f;
}

.school-sheldon-service-note strong {
  display: block;
  color: #244d58;
}

.school-sheldon-service-note p {
  margin: 5px 0 0;
  color: #52686e;
}

@media (max-width: 900px) {
  .school-plan-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  .school-sheldon-card {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* Website R79: small planning-page consistency and source-card refinements. */
.planning-intro-followup {
  margin-top: 14px;
}

/* Schools uses three summary values in a two-column compact grid at desktop.
   Keep the row divider visible between the primary-school metric and the
   final secondary-school metric. */
.residential-page-summary .schools-plan-summary-grid > div:nth-child(-n + 2) {
  border-bottom: 1px solid rgb(255 255 255 / 18%);
}

.planning-source-card-list {
  max-width: 900px;
  margin-top: 18px;
  display: grid;
  gap: 10px;
}

.planning-source-card,
.planning-source-card:visited {
  min-width: 0;
  padding: 15px 17px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  color: var(--colour-text);
  border: 1px solid #d6dfd2;
  border-radius: 4px;
  background: #ffffff;
  text-decoration: none;
}

.planning-source-card:hover,
.planning-source-card:focus-visible {
  color: var(--colour-green-dark);
  border-color: #aebca8;
  background: #f8faf7;
}

.planning-source-card > span {
  min-width: 0;
}

.planning-source-card strong,
.planning-source-card small {
  display: block;
  overflow-wrap: anywhere;
}

.planning-source-card strong {
  line-height: 1.35;
}

.planning-source-card small {
  margin-top: 3px;
  color: #6a7468;
  font-size: 0.8rem;
  line-height: 1.45;
}

.planning-source-card-icon,
.planning-source-card-external {
  color: var(--colour-green);
}

.planning-source-card-icon {
  font-size: 1.05rem;
}

.planning-source-card-external {
  align-self: start;
  margin-top: 2px;
  font-size: 0.82rem;
}

.planning-source-card-static {
  cursor: default;
}

@media (max-width: 520px) {
  .planning-source-card,
  .planning-source-card:visited {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .planning-source-card-external {
    display: none;
  }
}

/* Website R80: Schools developments catalogue. */
.schools-projects-planned-section {
  margin-top: clamp(44px, 7vw, 72px);
}

.school-project-planned-card {
  display: flex;
  flex-direction: column;
}

.school-project-planned-card .school-project-meta {
  margin-top: auto;
  padding-top: 15px;
  display: grid;
  gap: 7px;
  border-top: 1px solid #e2d8ca;
}

.school-project-meta span {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  color: #6e6254;
  font-size: .84rem;
  font-weight: 700;
}

.school-project-meta i {
  margin-top: 2px;
  color: #8b622e;
}

.school-project-planned-card .schools-map-focus-button[href] {
  margin-top: 16px;
  width: fit-content;
  text-decoration: none;
}

.schools-sheldon-project-section {
  margin-top: clamp(44px, 7vw, 72px);
}

@media (max-width: 900px) {
  .school-project-plan-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Website R82: Environment planning page. */
.environment-map-controls {
  margin: 18px 0 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.environment-map-controls label {
  padding: 9px 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #d6dfd2;
  border-radius: 4px;
  background: #fff;
  color: #435141;
  font-size: .88rem;
  font-weight: 750;
  cursor: pointer;
}

.environment-map-controls input {
  margin: 0;
  accent-color: var(--colour-green);
}

.environment-map-note {
  margin-top: 14px;
  padding: 14px 16px;
  border-left: 3px solid #6d965d;
  background: #f2f7ef;
  color: #52604f;
}

.environment-map-note strong {
  color: #365333;
}

.environment-corridor-grid,
.environment-waterway-grid,
.environment-principles-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.environment-corridor-grid article,
.environment-waterway-grid article,
.environment-principles-grid article {
  min-width: 0;
  padding: 18px;
  border: 1px solid #d8e0d4;
  border-radius: 4px;
  background: #fff;
}

.environment-corridor-grid article {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 13px;
}

.environment-corridor-grid strong {
  display: block;
  margin: 2px 0 7px;
  color: #243c22;
  font-size: 1.15rem;
}

.environment-corridor-grid p:last-child,
.environment-waterway-grid p,
.environment-principles-grid p {
  margin-bottom: 0;
  color: #5b6758;
}

.environment-corridor-mark {
  width: 10px;
  min-height: 74px;
  display: block;
  border-radius: 4px;
  background: #5f8f4d;
}

.environment-corridor-significant { width: 16px; background: #386e42; }
.environment-corridor-moderate { width: 11px; background: #5c9470; }
.environment-corridor-minor { width: 7px; background: #8ab39a; }

.environment-corridor-context {
  margin: 18px 0 0;
  max-width: 86ch;
  color: #596557;
}

.environment-waterway-grid h3 {
  margin: 4px 0 8px;
  font-size: 1rem;
}

.environment-principles-grid article {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.environment-principles-grid > article > i {
  margin-top: 2px;
  color: #5d8a4d;
  font-size: 1.15rem;
}

.environment-principles-grid h3 {
  margin: 0 0 6px;
  font-size: 1rem;
}

@media (max-width: 900px) {
  .environment-corridor-grid,
  .environment-waterway-grid,
  .environment-principles-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Website R85: Development Scheme explainer page. */
.development-scheme-page {
  --scheme-soft: #f3f6f1;
}

.development-scheme-status-card .development-scheme-status-copy p {
  color: #d9e3d4;
}

.development-scheme-status-card .development-scheme-status-copy p:last-child {
  margin-bottom: 0;
}

.development-scheme-status-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid rgb(255 255 255 / 17%);
  border-radius: 4px;
  overflow: hidden;
  background: rgb(255 255 255 / 7%);
}

.development-scheme-status-grid > div {
  min-width: 0;
  padding: 15px 13px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  border-right: 1px solid rgb(255 255 255 / 15%);
}

.development-scheme-status-grid > div:last-child {
  border-right: 0;
}

.development-scheme-status-grid strong {
  color: #ffffff;
  font-size: 0.96rem;
  line-height: 1.3;
}

.development-scheme-status-grid span {
  color: #cbdac5;
  font-size: 0.69rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.development-scheme-section {
  margin-block: clamp(48px, 7vw, 76px);
}

.development-scheme-principle-grid,
.development-scheme-reading-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.development-scheme-principle-grid article,
.development-scheme-reading-grid article {
  min-width: 0;
  padding: 23px;
  border: 1px solid #d8e1d4;
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgb(29 48 26 / 5%);
}

.development-scheme-principle-grid article > i {
  width: 44px;
  height: 44px;
  margin-bottom: 17px;
  display: grid;
  place-items: center;
  color: #466b3c;
  border-radius: 50%;
  background: #e8f0e4;
}

.development-scheme-principle-grid h3 {
  margin-bottom: 9px;
  color: #152016;
  font-size: 1.08rem;
}

.development-scheme-principle-grid p,
.development-scheme-reading-grid p {
  margin-bottom: 0;
  color: #60695e;
}

.development-scheme-reading-grid article {
  background: var(--scheme-soft);
  box-shadow: none;
}

.development-scheme-reading-grid strong {
  display: block;
  margin-bottom: 8px;
  color: #25411f;
  font-size: 1rem;
}

.development-scheme-subject-grid {
  margin-top: 26px;
}

.development-scheme-project-crosslink {
  margin-block: clamp(48px, 7vw, 76px);
}

.development-scheme-explore-grid {
  margin-top: 26px;
}

.development-scheme-sources .planning-source-card-list {
  max-width: 100%;
}

@media (max-width: 900px) {
  .development-scheme-status-grid,
  .development-scheme-principle-grid,
  .development-scheme-reading-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .development-scheme-status-grid > div {
    border-right: 0;
    border-bottom: 1px solid rgb(255 255 255 / 15%);
  }

  .development-scheme-status-grid > div:last-child {
    border-bottom: 0;
  }
}

/* Website R87: richer Development Scheme subject overview. */
.development-scheme-plan-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.development-scheme-plan-card,
.development-scheme-plan-card:visited {
  min-width: 0;
  padding: clamp(22px, 3vw, 28px);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  color: #263226;
  border: 1px solid #d5dfd0;
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgb(29 48 26 / 5%);
  transition: border-color var(--transition), box-shadow var(--transition), background-color var(--transition);
}

.development-scheme-plan-card:hover,
.development-scheme-plan-card:focus-visible {
  color: #263226;
  border-color: #91aa87;
  background: #fbfdfb;
  box-shadow: 0 14px 34px rgb(29 48 26 / 11%);
}

.development-scheme-plan-card-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  color: #466b3c;
  border-radius: 50%;
  background: #e8f0e4;
  font-size: 1.08rem;
}

.development-scheme-plan-card-copy {
  min-width: 0;
}

.development-scheme-plan-card-copy > .eyebrow {
  margin-bottom: 6px;
}

.development-scheme-plan-card h3 {
  margin: 0 0 14px;
  color: #152016;
  font-size: clamp(1.18rem, 2vw, 1.42rem);
}

.development-scheme-plan-card-copy > p:not(.eyebrow) {
  margin: 15px 0 0;
  color: #5d685a;
  line-height: 1.62;
}

.development-scheme-plan-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid #dde6d8;
  border-radius: 4px;
  background: #f7faf5;
}

.development-scheme-plan-metrics > div {
  min-width: 0;
  padding: 12px 13px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.development-scheme-plan-metrics > div + div {
  border-left: 1px solid #dde6d8;
}

.development-scheme-plan-metrics strong {
  min-width: 0;
  color: #345a2d;
  font-size: 1.08rem;
  line-height: 1.25;
}

.development-scheme-plan-metrics span {
  min-width: 0;
  color: #697464;
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.4;
}

.development-scheme-plan-more {
  margin-top: 17px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: #3d6735;
  font-size: 0.86rem;
  font-weight: 900;
}

.development-scheme-plan-more i {
  font-size: 0.75rem;
}

.development-scheme-plan-all {
  margin-top: 24px;
  display: flex;
  justify-content: flex-start;
}

@media (max-width: 900px) {
  .development-scheme-plan-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 560px) {
  .development-scheme-plan-card {
    grid-template-columns: minmax(0, 1fr);
  }

  .development-scheme-plan-card-icon {
    width: 42px;
    height: 42px;
  }

  .development-scheme-plan-metrics {
    grid-template-columns: minmax(0, 1fr);
  }

  .development-scheme-plan-metrics > div + div {
    border-left: 0;
    border-top: 1px solid #dde6d8;
  }
}

/* ========================================================================== 
   WEBSITE R88 - PDA MAPS HUB
   ========================================================================== */
.maps-hub-page { --maps-ink: #172117; }
.maps-hub-header { align-items: stretch; margin-bottom: clamp(24px, 3.5vw, 40px); }
.maps-hub-summary { min-height: 100%; }
.maps-hub-summary-list { display: grid; gap: 12px; margin-top: 18px; }
.maps-hub-summary-list span { display: flex; gap: 10px; align-items: center; }
.maps-hub-summary-list i { width: 18px; text-align: center; color: #b5d19f; }

.maps-overview-section,
.maps-topic-section,
.maps-download-section,
.maps-builder-section,
.maps-official-section,
.maps-reading-section { margin-top: clamp(46px, 7vw, 78px); }

.maps-overview-layout {
  display: grid;
  grid-template-columns: minmax(230px, .32fr) minmax(0, 1fr);
  gap: clamp(20px, 3vw, 34px);
  align-items: start;
}
.maps-layer-panel {
  position: sticky;
  top: 18px;
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid #d6dfd1;
  border-radius: 4px;
  background: #f5f7f3;
}
.maps-layer-group { display: grid; gap: 8px; padding-bottom: 13px; border-bottom: 1px solid #dce4d8; }
.maps-layer-group:last-child { padding-bottom: 0; border-bottom: 0; }
.maps-layer-group > strong { margin-bottom: 2px; color: var(--maps-ink); font-size: .92rem; }
.maps-layer-group label { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: .9rem; color: #4c574b; }
.maps-layer-group input { flex: 0 0 auto; }
.maps-layer-swatch { width: 15px; height: 15px; border: 2px solid transparent; border-radius: 4px; flex: 0 0 auto; }
.maps-swatch-residential { background: rgb(139 167 113 / 45%); border-color: #55713f; }
.maps-swatch-shopping { background: rgb(128 89 154 / 45%); border-color: #69477e; }
.maps-swatch-industry { background: rgb(71 107 137 / 42%); border-color: #385f7d; }
.maps-swatch-green { background: rgb(56 139 99 / 45%); border-color: #28734f; }
.maps-swatch-road { height: 4px; border: 0; border-radius: 4px; background: #4f5554; }
.maps-swatch-sewer { height: 4px; border: 0; border-radius: 4px; background: #8f4b7f; }
.maps-swatch-parks { background: rgb(29 104 68 / 58%); border-color: #165b3a; }
.maps-swatch-schools { border-radius: 50%; background: #d5842f; border-color: #fff; box-shadow: 0 0 0 1px #bd7b2f; }
.maps-swatch-habitat { background: rgb(186 64 131 / 24%); border-color: #a73376; }
.maps-swatch-waterway { height: 4px; border: 0; border-radius: 4px; background: #6ea5ae; }
.maps-overview-map-shell { margin: 0; }

.maps-topic-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.maps-topic-grid > a {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 12px 14px;
  align-items: start;
  padding: 19px;
  border: 1px solid #d8e0d4;
  border-radius: 4px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.maps-topic-grid > a:hover { transform: translateY(-2px); border-color: #aebfa5; box-shadow: 0 12px 26px rgb(25 45 22 / 7%); }
.maps-topic-grid > a > i { grid-row: 1 / span 2; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 4px; background: #edf3e9; color: #557443; }
.maps-topic-grid span { display: grid; gap: 4px; }
.maps-topic-grid strong { color: var(--maps-ink); }
.maps-topic-grid small { color: #626d60; line-height: 1.45; }
.maps-topic-grid b { grid-column: 2; font-size: .85rem; color: #557443; }

.maps-download-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr);
  gap: clamp(24px, 4vw, 44px);
  align-items: center;
  padding: clamp(24px, 4vw, 38px);
  border: 1px solid #cddac7;
  border-radius: 4px;
  background: linear-gradient(135deg, #f3f7f0, #fff 70%);
  overflow: hidden;
}
.maps-download-card h2 { margin-bottom: 12px; }
.maps-download-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.button-link-secondary { background: #fff; color: #425d36; border: 1px solid #aebfa5; }
.maps-download-preview { min-height: 250px; border-radius: 4px; overflow: hidden; border: 1px solid #d4ded0; background: #fff; box-shadow: 0 16px 30px rgb(22 42 19 / 8%); }
.maps-download-preview img { display: block; width: 100%; height: 100%; object-fit: cover; }

.maps-builder-section {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 230px;
  gap: 32px;
  align-items: center;
  padding: clamp(26px, 4vw, 42px);
  border-radius: 4px;
  background: #172117;
  color: #eef4ea;
}
.maps-builder-section .eyebrow { color: #aec99e; }
.maps-builder-section h2 { color: #fff; }
.maps-builder-section p { color: #d1dccb; max-width: 70ch; }
.maps-builder-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.maps-builder-tags span { padding: 7px 10px; border: 1px solid rgb(255 255 255 / 18%); border-radius: 4px; font-size: .8rem; color: #e1ebdc; }
.maps-builder-visual { display: flex; align-items: center; justify-content: center; gap: 16px; font-size: 2.2rem; color: #b7d4a5; }
.maps-builder-visual .fa-plus { font-size: 1rem; opacity: .6; }

.maps-official-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.maps-official-card { display: grid; grid-template-columns: 70px 1fr; gap: 14px; align-items: center; padding: 15px 16px; border: 1px solid #d9e1d6; border-radius: 4px; background: #fff; color: inherit; }
.maps-official-number { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 5px 8px; border-radius: 4px; background: #eef3eb; color: #4d6940; font-weight: 800; font-size: .82rem; }
.maps-official-card > span:nth-child(2) { display: grid; gap: 3px; }
.maps-official-card strong { color: var(--maps-ink); }
.maps-official-card small { color: #697367; line-height: 1.35; }
.maps-official-source-action { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; margin-top: 18px; padding-top: 18px; border-top: 1px solid #dbe3d7; }
.maps-official-source-action p { margin: 0; color: #687266; font-size: .9rem; }
.maps-official-source-action .button-link { margin: 0; }

.maps-reading-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; }
.maps-reading-grid article { padding: 18px; border: 1px solid #d8e0d4; border-radius: 4px; background: #f8faf7; }
.maps-reading-grid strong { display: block; margin-bottom: 7px; color: var(--maps-ink); }
.maps-reading-grid p { margin: 0; color: #606b5f; font-size: .9rem; }

@media (max-width: 900px) {
  .maps-overview-layout { grid-template-columns: 1fr; }
  .maps-layer-panel { position: static; grid-template-columns: repeat(2, minmax(0,1fr)); }
  .maps-layer-group { border-bottom: 0; padding-bottom: 0; }
  .maps-download-card { grid-template-columns: 1fr; }
  .maps-builder-section { grid-template-columns: 1fr; }
  .maps-builder-visual { justify-content: flex-start; }
  .maps-reading-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 680px) {
  .maps-layer-panel,
  .maps-topic-grid,
  .maps-official-grid,
  .maps-reading-grid { grid-template-columns: 1fr; }
  .maps-download-actions { display: grid; }
  .maps-download-actions .button-link { width: 100%; justify-content: center; }
  .maps-builder-visual { display: none; }
}

/* Website R92: Southern Thornlands PDA Timeline. */
.pda-timeline-header {
  align-items: stretch;
}

.pda-timeline-current {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.pda-timeline-current-copy p {
  margin: 0 0 10px;
}

.pda-timeline-current-copy p:last-child {
  margin-bottom: 0;
}

.pda-timeline-current-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 20px;
}

.pda-timeline-current-metrics div {
  padding: 13px 14px;
  border: 1px solid rgb(255 255 255 / 16%);
  border-radius: 4px;
  background: rgb(255 255 255 / 7%);
}

.pda-timeline-current-metrics strong,
.pda-timeline-current-metrics span {
  display: block;
}

.pda-timeline-current-metrics strong {
  margin-bottom: 4px;
  color: #fff;
  font-size: .96rem;
}

.pda-timeline-current-metrics span {
  color: rgb(255 255 255 / 68%);
  font-size: .76rem;
}

.pda-timeline-section,
.pda-timeline-next-section,
.pda-timeline-estimate-section,
.pda-timeline-explore-section {
  margin-top: clamp(46px, 7vw, 78px);
}

.pda-timeline-track {
  position: relative;
  max-width: 980px;
  margin: 30px auto 0;
  padding-left: 38px;
}

.pda-timeline-track::before {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 11px;
  width: 2px;
  background: #d5dfd0;
}

.pda-timeline-event {
  position: relative;
  margin: 0 0 22px;
}

.pda-timeline-marker {
  position: absolute;
  top: 25px;
  left: -34px;
  width: 16px;
  height: 16px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #5f8350;
  box-shadow: 0 0 0 2px #5f8350;
}

.pda-timeline-event-development .pda-timeline-marker {
  background: #72568d;
  box-shadow: 0 0 0 2px #72568d;
}

.pda-timeline-event-infrastructure .pda-timeline-marker {
  background: #a45f34;
  box-shadow: 0 0 0 2px #a45f34;
}

.pda-timeline-event-card {
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid #d7e0d3;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 10px 30px rgb(24 39 22 / 4%);
}

.pda-timeline-event-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  margin-bottom: 10px;
}

.pda-timeline-event-meta time {
  color: #47613f;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.pda-timeline-type {
  padding: 4px 9px;
  border-radius: 4px;
  background: #eaf0e6;
  color: #47613f;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.pda-timeline-event-development .pda-timeline-type {
  background: #eee9f2;
  color: #674d7c;
}

.pda-timeline-event-infrastructure .pda-timeline-type {
  background: #f5e9e0;
  color: #8b4d29;
}

.pda-timeline-event-card h3 {
  margin: 0 0 10px;
  color: var(--catalogue-ink, #152016);
  font-size: clamp(1.18rem, 2.3vw, 1.45rem);
}

.pda-timeline-event-card > p {
  margin: 0 0 10px;
  color: #566054;
}

.pda-timeline-event-card .pda-timeline-why {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #e1e7de;
  color: #354132;
}

.timeline-source-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 4px;
  color: #4d6944;
  font-size: .82rem;
  font-weight: 800;
  text-decoration: none;
}

.timeline-source-link:hover {
  text-decoration: underline;
}

.pda-timeline-next-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 26px;
}

.pda-timeline-next-grid article {
  padding: 22px;
  border: 1px solid #d5dfd0;
  border-radius: 4px;
  background: #f5f7f3;
}

.pda-timeline-next-grid span {
  display: inline-block;
  margin-bottom: 8px;
  color: #5f8350;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.pda-timeline-next-grid h3 {
  margin: 0 0 8px;
  color: var(--catalogue-ink, #152016);
  font-size: 1.12rem;
}

.pda-timeline-next-grid p {
  margin: 0;
  color: #566054;
}

.pda-timeline-explore-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 24px;
}

.pda-timeline-explore-grid > a {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 14px;
  padding: 20px;
  border: 1px solid #d5dfd0;
  border-radius: 4px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.pda-timeline-explore-grid > a:hover {
  transform: translateY(-2px);
  border-color: #aac09f;
  box-shadow: 0 12px 26px rgb(28 46 26 / 7%);
}

.pda-timeline-explore-grid > a > i {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 4px;
  background: #edf2ea;
  color: #5f8350;
}

.pda-timeline-explore-grid span strong,
.pda-timeline-explore-grid span small,
.pda-timeline-explore-grid b {
  display: block;
}

.pda-timeline-explore-grid span strong {
  margin-bottom: 5px;
  color: var(--catalogue-ink, #152016);
}

.pda-timeline-explore-grid span small {
  color: #667064;
  font-size: .82rem;
  line-height: 1.45;
}

.pda-timeline-explore-grid b {
  grid-column: 2;
  margin-top: 8px;
  color: #4d6944;
  font-size: .8rem;
}

@media (max-width: 860px) {
  .pda-timeline-current-metrics,
  .pda-timeline-next-grid,
  .pda-timeline-explore-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .pda-timeline-track {
    padding-left: 28px;
  }

  .pda-timeline-track::before {
    left: 7px;
  }

  .pda-timeline-marker {
    left: -27px;
  }
}


/* Website R93: clearly separated forward-looking timeline estimate. */
.pda-timeline-estimate-section {
  padding: clamp(24px, 4vw, 38px);
  border: 1px dashed #b4a58f;
  border-radius: 4px;
  background: #faf7f1;
}

.pda-timeline-estimate-heading {
  max-width: 880px;
}

.pda-timeline-estimate-heading h2 {
  margin: 0 0 12px;
  color: var(--catalogue-ink, #152016);
  font-size: clamp(1.45rem, 3vw, 2rem);
}

.pda-timeline-estimate-heading > p:last-child {
  margin-bottom: 0;
  color: #625b51;
}

.pda-timeline-estimate-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin-top: 26px;
}

.pda-timeline-estimate-grid article {
  position: relative;
  padding: 20px;
  border: 1px solid #ded3c4;
  border-radius: 4px;
  background: rgb(255 255 255 / 72%);
}

.pda-timeline-estimate-grid article::before {
  content: "";
  position: absolute;
  top: -7px;
  left: 20px;
  width: 12px;
  height: 12px;
  border: 2px solid #faf7f1;
  border-radius: 50%;
  background: #9c7c57;
}

.pda-timeline-estimate-grid span {
  display: block;
  margin-bottom: 8px;
  color: #876946;
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.pda-timeline-estimate-grid h3 {
  margin: 0 0 8px;
  color: var(--catalogue-ink, #152016);
  font-size: 1rem;
  line-height: 1.3;
}

.pda-timeline-estimate-grid p {
  margin: 0;
  color: #625b51;
  font-size: .88rem;
  line-height: 1.55;
}

@media (max-width: 1100px) {
  .pda-timeline-estimate-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .pda-timeline-estimate-grid {
    grid-template-columns: 1fr;
  }
}

/* Website R95: Explore-card text should always stack cleanly. */
.residential-page-quick-link-grid a > span {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
}

.residential-page-quick-link-grid a > span > strong,
.residential-page-quick-link-grid a > span > small {
  display: block;
  width: 100%;
}

.residential-page-quick-link-grid a > span > small {
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.35;
}

/* Website R96: PDA documents library and Timeline first-ad spacing. */
.pda-timeline-header {
  margin-bottom: clamp(22px, 3vw, 34px);
}

.pda-documents-summary {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.pda-documents-summary > p:not(.eyebrow) {
  margin-bottom: 0;
}

.pda-documents-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 20px;
}

.pda-documents-summary-grid div {
  padding: 13px 14px;
  border: 1px solid rgb(255 255 255 / 16%);
  border-radius: 4px;
  background: rgb(255 255 255 / 7%);
}

.pda-documents-summary-grid strong,
.pda-documents-summary-grid span {
  display: block;
}

.pda-documents-summary-grid strong {
  margin-bottom: 4px;
  color: #fff;
  font-size: .96rem;
  line-height: 1.3;
}

.pda-documents-summary-grid span {
  color: rgb(255 255 255 / 68%);
  font-size: .76rem;
  line-height: 1.45;
}

.pda-documents-section {
  margin-top: clamp(46px, 7vw, 78px);
  scroll-margin-top: 120px;
}

.pda-document-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 28px;
}

.pda-document-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid #d4ddd0;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 12px 34px rgb(33 53 27 / 6%);
}

.pda-document-card-key {
  border-top: 4px solid #5e8a4d;
}

.pda-document-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.pda-document-card-top > div {
  min-width: 0;
}

.pda-document-card .eyebrow {
  margin-bottom: 8px;
}

.pda-document-card h3 {
  margin: 0;
  font-size: clamp(1.14rem, 2vw, 1.38rem);
  line-height: 1.25;
}

.pda-document-full-title,
.pda-document-version,
.pda-document-summary,
.pda-document-meta,
.pda-document-file-meta {
  margin-bottom: 0;
}

.pda-document-full-title {
  margin-top: 7px;
  color: #66705f;
  font-size: .85rem;
}

.pda-document-version {
  margin-top: 14px;
  color: #49613e;
  font-weight: 700;
  font-size: .86rem;
}

.pda-document-summary {
  margin-top: 13px;
  color: #374332;
}

.pda-document-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 16px;
  color: #6d7469;
  font-size: .82rem;
}

.pda-document-file-meta {
  margin-top: 9px;
  color: #66705f;
  font-size: .82rem;
}

.pda-document-file-meta i {
  margin-right: 5px;
  color: #5e8a4d;
}

.pda-document-status {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 9px;
  border: 1px solid #cbd7c6;
  border-radius: 4px;
  background: #f5f8f3;
  color: #45633a;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.pda-document-status-proposed {
  border-color: #d5c38c;
  background: #fbf6e8;
  color: #745f18;
}

.pda-document-status-current {
  border-color: #b9d4b0;
  background: #eef6eb;
  color: #315e24;
}

.pda-document-status-not-applicable,
.pda-document-status-supporting {
  border-color: #c8d2da;
  background: #f2f6f8;
  color: #465c6b;
}

.pda-document-status-superseded,
.pda-document-status-withdrawn,
.pda-document-status-archived {
  border-color: #d7d4d0;
  background: #f5f4f2;
  color: #69635d;
}

.pda-document-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: auto;
  padding-top: 20px;
}

.document-action,
.document-action:visited {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 12px;
  border: 1px solid #cbd7c6;
  border-radius: 4px;
  color: #45633a;
  background: #f7f9f5;
  font-weight: 750;
  font-size: .82rem;
  text-decoration: none;
}

.document-action:hover {
  border-color: #789d68;
  background: #eef4eb;
}

.document-action-primary,
.document-action-primary:visited {
  border-color: #4f7d3f;
  background: #548b43;
  color: #fff;
}

.document-action-primary:hover {
  background: #456f38;
}

.pda-document-status-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 26px;
}

.pda-document-status-grid article {
  padding: 20px;
  border: 1px solid #d7ded3;
  border-radius: 4px;
  background: #f8faf6;
}

.pda-document-status-grid h3 {
  margin: 14px 0 6px;
  font-size: 1rem;
}

.pda-document-status-grid p {
  margin: 0;
  color: #5e6959;
  font-size: .86rem;
}

.pda-documents-source-note {
  margin-top: clamp(38px, 6vw, 64px);
}

@media (max-width: 900px) {
  .pda-documents-summary-grid,
  .pda-document-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .pda-document-grid,
  .pda-documents-summary-grid,
  .pda-document-status-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .pda-document-card-top {
    display: block;
  }
  .pda-document-card-top .pda-document-status {
    margin-top: 12px;
  }
}

/* Website R97: separate official documents from Developing Southern Thornlands resources. */
.pda-documents-header {
  margin-bottom: clamp(24px, 3.5vw, 40px);
}

.pda-documents-official-section {
  margin-top: clamp(48px, 7vw, 76px);
}

.pda-documents-subsection {
  margin-top: 30px;
}

.pda-documents-subheading h3 {
  margin: 0 0 10px;
  font-size: clamp(1.35rem, 2.5vw, 1.8rem);
  color: var(--catalogue-ink, #152016);
}

.pda-documents-official-section > .pda-documents-section {
  margin-top: clamp(38px, 5vw, 58px);
}

.pda-documents-authority-note {
  margin-bottom: clamp(28px, 4vw, 44px);
}

.pda-site-resources-section {
  padding: clamp(24px, 4vw, 38px);
  border: 1px solid #d3dfcd;
  border-radius: 4px;
  background: #f5f8f2;
}

.pda-site-resource-grid {
  grid-template-columns: minmax(0, 1fr);
  max-width: 860px;
}

.pda-site-resource-card {
  border-top: 4px solid #426f37;
  background: #fff;
}

.pda-resource-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 9px;
  border: 1px solid #b8cfaf;
  border-radius: 4px;
  background: #edf5e9;
  color: #315e24;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.pda-site-resource-note {
  margin: 14px 0 0;
  padding: 12px 14px;
  border-left: 3px solid #8ba77f;
  background: #f7faf5;
  color: #5f695a;
  font-size: .82rem;
  line-height: 1.55;
}

.pda-site-resources-future-note {
  max-width: 820px;
  margin: 22px 0 0;
  color: #596454;
  font-size: .9rem;
  line-height: 1.65;
}

@media (max-width: 760px) {
  .pda-resource-badge {
    margin-top: 12px;
  }
}

/* ========================================================================== 
   Website R100: Southern Thornlands PDA main gateway
   ========================================================================== */
.pda-main-page {
  --pda-main-soft: #f4f7f2;
  --pda-main-line: #d7e1d3;
}

.pda-main-page > .site-banner {
  margin-top: clamp(42px, 6vw, 64px);
}

.pda-current-stage-card .pda-stage-action,
.pda-current-stage-card .pda-stage-action:visited {
  margin-top: 18px;
  padding: 12px 15px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #162016;
  border-radius: 4px;
  background: #e5efdf;
  font-size: 0.86rem;
  font-weight: 800;
}

.pda-current-stage-card .pda-stage-action:hover,
.pda-current-stage-card .pda-stage-action:focus-visible {
  color: #162016;
  background: #f1f7ed;
}

.pda-main-overview-section,
.pda-main-explainer,
.pda-main-subjects,
.pda-main-plan-vs-projects,
.pda-main-timeline-snapshot {
  margin-top: clamp(52px, 7vw, 78px);
}

.pda-main-stat-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--pda-main-line);
  border-radius: 4px;
  background: #ffffff;
}

.pda-main-stat-grid > div {
  min-width: 0;
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  text-align: center;
}

.pda-main-stat-grid > div + div {
  border-left: 1px solid var(--pda-main-line);
}

.pda-main-stat-grid strong {
  color: #2e5329;
  font-size: clamp(1.35rem, 3vw, 1.9rem);
  line-height: 1.1;
}

.pda-main-stat-grid span {
  color: #687166;
  font-size: 0.82rem;
  line-height: 1.4;
}

.pda-main-map-shell {
  margin-top: 28px;
  padding: clamp(22px, 3vw, 30px);
  display: grid;
  grid-template-columns: minmax(240px, 0.72fr) minmax(0, 1.55fr);
  gap: clamp(24px, 4vw, 40px);
  align-items: center;
  border: 1px solid var(--pda-main-line);
  border-radius: 4px;
  background: var(--pda-main-soft);
}

.pda-main-map-copy h3 {
  margin: 5px 0 12px;
  color: #182318;
  font-size: clamp(1.3rem, 2.8vw, 1.8rem);
}

.pda-main-map-copy > p:not(.eyebrow) {
  color: #5e685b;
  line-height: 1.65;
}

.pda-main-map-key {
  margin: 18px 0 22px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px 14px;
}

.pda-main-map-key span {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #4e5b4b;
  font-size: 0.78rem;
  font-weight: 700;
}

.pda-main-map-key i {
  width: 18px;
  height: 11px;
  display: inline-block;
  border-radius: 4px;
}

.pda-key-residential { background: rgb(139 167 113 / 65%); border: 1px solid #55713f; }
.pda-key-centres { background: rgb(128 89 154 / 70%); border: 1px solid #69477e; }
.pda-key-industry { background: rgb(71 107 137 / 68%); border: 1px solid #385f7d; }
.pda-key-green { background: rgb(83 141 79 / 58%); border: 1px solid #3f7742; }

.pda-main-map-frame-wrap {
  min-width: 0;
}

.pda-main-map-frame {
  min-height: 480px;
  border-radius: 4px;
  background: #ffffff;
}

.pda-main-explainer-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.pda-main-explainer-grid article {
  padding: 22px;
  border: 1px solid var(--pda-main-line);
  border-radius: 4px;
  background: #ffffff;
}

.pda-main-explainer-grid article > i {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  margin-bottom: 14px;
  color: #466b3c;
  border-radius: 50%;
  background: #e8f0e4;
}

.pda-main-explainer-grid h3 {
  margin: 0 0 8px;
  color: #1d291d;
  font-size: 1.02rem;
}

.pda-main-explainer-grid p {
  margin: 0;
  color: #667064;
  font-size: 0.86rem;
  line-height: 1.58;
}

.pda-main-subject-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.pda-main-subject-grid > a,
.pda-main-subject-grid > a:visited {
  min-width: 0;
  padding: 19px 20px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 15px;
  color: #263226;
  border: 1px solid var(--pda-main-line);
  border-radius: 4px;
  background: #ffffff;
  transition: border-color var(--transition), box-shadow var(--transition), background-color var(--transition);
}

.pda-main-subject-grid > a:hover,
.pda-main-subject-grid > a:focus-visible {
  color: #263226;
  border-color: #91aa87;
  background: #fbfdfb;
  box-shadow: 0 12px 28px rgb(29 48 26 / 9%);
}

.pda-main-subject-grid > a > i:first-child {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: #466b3c;
  border-radius: 50%;
  background: #e8f0e4;
}

.pda-main-subject-grid span {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.pda-main-subject-grid strong {
  color: #1b281b;
  font-size: 1rem;
}

.pda-main-subject-grid small {
  color: #687166;
  font-size: 0.8rem;
  line-height: 1.5;
}

.pda-main-subject-grid em {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #55744c;
  font-size: 0.74rem;
  font-style: normal;
  font-weight: 800;
  white-space: nowrap;
}

.pda-main-subject-action {
  margin-top: 24px;
  display: flex;
  justify-content: flex-end;
}

.pda-main-route-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.pda-main-route-grid > a,
.pda-main-route-grid > a:visited {
  padding: 23px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 15px;
  align-items: center;
  color: #ffffff;
  border-radius: 4px;
  background: #263d22;
}

.pda-main-route-grid > a:hover,
.pda-main-route-grid > a:focus-visible {
  color: #ffffff;
  background: #314f2b;
}

.pda-main-route-grid > a > i:first-child {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgb(255 255 255 / 10%);
}

.pda-main-route-grid span {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.pda-main-route-grid strong {
  color: #ffffff;
  font-size: 1.05rem;
}

.pda-main-route-grid small {
  color: #d6e0d2;
  font-size: 0.8rem;
  line-height: 1.48;
}

.pda-main-milestone-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--pda-main-line);
  border-radius: 4px;
  background: #ffffff;
}

.pda-main-milestone-grid > div {
  min-width: 0;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  border-right: 1px solid var(--pda-main-line);
}

.pda-main-milestone-grid > div:last-child { border-right: 0; }
.pda-main-milestone-grid > div.is-current { background: #edf4e9; }
.pda-main-milestone-grid span { color: #55744c; font-size: 0.72rem; font-weight: 900; letter-spacing: 0.06em; text-transform: uppercase; }
.pda-main-milestone-grid strong { color: #1d291d; font-size: 0.98rem; }
.pda-main-milestone-grid small { color: #697267; font-size: 0.78rem; line-height: 1.52; }

.pda-main-timeline-link,
.pda-main-timeline-link:visited {
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #45673d;
  font-weight: 800;
}

.pda-main-updates {
  margin-top: clamp(52px, 7vw, 78px);
}

.pda-main-subscribe {
  margin-top: clamp(52px, 7vw, 78px);
}

.pda-main-sources {
  margin-top: clamp(52px, 7vw, 78px);
}

@media (max-width: 980px) {
  .pda-main-map-shell,
  .pda-main-explainer-grid,
  .pda-main-milestone-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .pda-main-milestone-grid > div {
    border-right: 0;
    border-bottom: 1px solid var(--pda-main-line);
  }

  .pda-main-milestone-grid > div:last-child { border-bottom: 0; }
}

@media (max-width: 760px) {
  .pda-main-stat-grid,
  .pda-main-subject-grid,
  .pda-main-route-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .pda-main-stat-grid > div + div {
    border-left: 0;
    border-top: 1px solid var(--pda-main-line);
  }

  .pda-main-map-key {
    grid-template-columns: minmax(0, 1fr);
  }

  .pda-main-map-frame {
    min-height: 400px;
  }

  .pda-main-subject-grid > a {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .pda-main-subject-grid em {
    grid-column: 2;
  }
}

/* ========================================================================== 
   Website R101: main Developments hub + PDA gateway refinements
   ========================================================================== */
.development-hub-page > .site-banner,
.pda-main-page > .site-banner {
  margin-top: clamp(28px, 4vw, 42px);
}

.development-hub-dark-link,
.development-hub-dark-link:visited {
  margin-top: 19px;
  padding: 11px 14px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #162016;
  border-radius: 4px;
  background: #e5efdf;
  font-size: 0.84rem;
  font-weight: 800;
}

.development-hub-dark-link:hover,
.development-hub-dark-link:focus-visible {
  color: #162016;
  background: #f1f7ed;
}

.development-hub-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.development-hub-card,
.development-hub-card:visited {
  min-width: 0;
  min-height: 176px;
  padding: 22px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-rows: auto 1fr auto;
  align-items: start;
  gap: 12px 16px;
  color: #263226;
  border: 1px solid var(--catalogue-line);
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgb(29 48 26 / 5%);
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.development-hub-card-residential {
  grid-column: span 2;
  min-height: 192px;
}

.development-hub-card:hover,
.development-hub-card:focus-visible {
  color: #263226;
  border-color: #91aa87;
  box-shadow: 0 14px 34px rgb(29 48 26 / 11%);
  transform: translateY(-2px);
}

.development-hub-card > i:first-child {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  grid-row: 1 / span 2;
  color: #466b3c;
  border-radius: 50%;
  background: #e8f0e4;
}

.development-hub-card > span {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.development-hub-card > span strong {
  color: #1d291d;
  font-size: 1.08rem;
}

.development-hub-card > span small {
  color: #687166;
  font-size: 0.82rem;
  line-height: 1.5;
}

.development-hub-card > em {
  min-width: 86px;
  padding: 9px 11px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  color: #33562d;
  border-radius: 4px;
  background: #f1f6ee;
  font-size: 1.2rem;
  font-style: normal;
  font-weight: 900;
  line-height: 1.05;
  text-align: right;
}

.development-hub-card > em small {
  color: #667064;
  font-size: 0.67rem;
  font-weight: 700;
  line-height: 1.25;
}

.development-hub-card > b {
  grid-column: 2 / 4;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #4f7d41;
  font-size: 0.8rem;
  font-weight: 850;
}

.development-hub-status-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--catalogue-line);
  border-radius: 4px;
  background: #ffffff;
}

.development-hub-status-grid article {
  padding: 18px;
}

.development-hub-status-grid article + article {
  border-left: 1px solid var(--catalogue-line);
}

.development-hub-status-grid strong {
  display: block;
  margin-bottom: 7px;
  color: #2e5329;
  font-size: 0.9rem;
}

.development-hub-status-grid p {
  margin: 0;
  color: #687166;
  font-size: 0.76rem;
  line-height: 1.48;
}

.development-hub-plan-vs {
  margin-top: clamp(52px, 7vw, 72px);
}

.development-hub-updates {
  margin-top: clamp(52px, 7vw, 72px);
}

.development-hub-subscribe {
  margin-top: clamp(52px, 7vw, 72px);
  margin-bottom: 0;
}

/* The R100 PDA overview iframe had no explicit width, so the browser fell
   back to the default 300px iframe width. Give the map the space its grid
   column already provides and keep a landscape presentation. */
.pda-main-map-shell {
  grid-template-columns: minmax(250px, 0.66fr) minmax(0, 1.7fr);
  align-items: stretch;
}

.pda-main-map-frame-wrap {
  width: 100%;
  min-width: 0;
  display: flex;
}

.pda-main-map-frame {
  width: 100%;
  min-height: 0;
  height: clamp(430px, 47vw, 570px);
  display: block;
}

@media (max-width: 980px) {
  .development-hub-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .development-hub-status-grid article + article {
    border-left: 0;
    border-top: 1px solid var(--catalogue-line);
  }

  .development-hub-status-grid article:nth-child(2) {
    border-top: 0;
    border-left: 1px solid var(--catalogue-line);
  }

  .development-hub-status-grid article:nth-child(4) {
    border-left: 1px solid var(--catalogue-line);
  }
}

@media (max-width: 760px) {
  .development-hub-grid,
  .development-hub-status-grid,
  .pda-main-map-shell {
    grid-template-columns: minmax(0, 1fr);
  }

  .development-hub-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .development-hub-card-residential {
    grid-column: auto;
    min-height: 176px;
  }

  .development-hub-card > em {
    grid-column: 2;
    align-items: flex-start;
    text-align: left;
  }

  .development-hub-card > b {
    grid-column: 2;
  }

  .development-hub-status-grid article,
  .development-hub-status-grid article + article,
  .development-hub-status-grid article:nth-child(2),
  .development-hub-status-grid article:nth-child(4) {
    border-left: 0;
    border-top: 1px solid var(--catalogue-line);
  }

  .development-hub-status-grid article:first-child {
    border-top: 0;
  }

  .pda-main-map-frame {
    height: 470px;
  }
}

/* ========================================================================== 
   PROPERTY SEARCH — SOUTHERN THORNLANDS PDA ONLY
   ========================================================================== */
.property-search-page {
  --property-search-ink: #172018;
  --property-search-muted: #5b655a;
}

.property-search-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: stretch;
}

.property-search-hero-copy {
  align-self: center;
}

.property-search-hero-copy .page-intro {
  max-width: 760px;
}

.property-search-form {
  max-width: 780px;
  margin-top: 28px;
}

.property-search-form > label {
  margin-bottom: 9px;
  display: block;
  color: var(--property-search-ink);
  font-size: 0.9rem;
  font-weight: 800;
}

.property-search-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.property-search-autocomplete {
  position: relative;
  min-width: 0;
}

.property-search-autocomplete > input {
  width: 100%;
}

.property-search-suggestions {
  position: absolute;
  z-index: 40;
  top: calc(100% + 7px);
  left: 0;
  right: 0;
  overflow: hidden;
  border: 1px solid #cbd5c7;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 16px 34px rgb(30 47 27 / 16%);
}

.property-search-suggestion {
  width: 100%;
  padding: 11px 14px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  border: 0;
  border-bottom: 1px solid #e5ebe2;
  background: #fff;
  color: #283327;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.property-search-suggestion:last-child {
  border-bottom: 0;
}

.property-search-suggestion:hover,
.property-search-suggestion.is-active,
.property-search-suggestion[aria-selected="true"] {
  background: #f0f5ed;
}

.property-search-suggestion > i {
  color: var(--colour-green);
  text-align: center;
}

.property-search-suggestion > span {
  min-width: 0;
}

.property-search-suggestion strong,
.property-search-suggestion small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.property-search-suggestion strong {
  color: #283327;
  font-size: .92rem;
}

.property-search-suggestion small {
  margin-top: 2px;
  color: #6b7569;
  font-size: .76rem;
}

.property-search-control input {
  min-width: 0;
  min-height: 54px;
  padding: 0 17px;
  border: 1px solid #cbd5c7;
  border-radius: 4px;
  background: #fff;
  color: var(--property-search-ink);
  font: inherit;
}

.property-search-control input:focus {
  outline: 3px solid rgb(96 132 79 / 18%);
  border-color: #6d8e5e;
}

.property-search-control > button {
  min-height: 54px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 0;
  border-radius: 4px;
  background: var(--colour-green);
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.property-search-form > p {
  margin: 9px 0 0;
  color: var(--property-search-muted);
  font-size: 0.86rem;
}

.property-search-scope {
  padding: clamp(26px, 4vw, 38px);
  border-radius: 4px;
  background: linear-gradient(145deg, #1a2b1a, #284325);
  color: #f5f8f3;
}

.property-search-scope > i {
  margin-bottom: 28px;
  color: #9fbe8f;
  font-size: 2rem;
}

.property-search-scope .eyebrow {
  color: #a9c699;
}

.property-search-scope h2 {
  margin-bottom: 14px;
  color: #fff;
  font-size: clamp(1.35rem, 2.5vw, 1.85rem);
}

.property-search-scope p:not(.eyebrow) {
  color: #d9e2d5;
}

.property-search-scope a {
  margin-top: 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-weight: 800;
}

.property-search-ad {
  margin-top: clamp(34px, 5vw, 54px);
}

.property-search-results:empty {
  display: none;
}

.property-search-results-heading,
.property-search-message {
  margin-top: clamp(36px, 6vw, 66px);
}

.property-search-results-heading h2,
.property-search-message h2 {
  margin-bottom: 8px;
}

.property-search-results-heading p:last-child,
.property-search-message p:last-child {
  margin-bottom: 0;
}

.property-search-message {
  padding: 24px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  border: 1px solid #d7e0d3;
  border-radius: 4px;
  background: #f5f8f3;
}

.property-search-message > i {
  margin-top: 3px;
  color: var(--colour-green);
  font-size: 1.3rem;
}

.property-search-result-grid {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.property-search-result-card {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  border: 1px solid #d7dfd3;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 10px 26px rgb(35 53 31 / 5%);
}

.property-search-result-heading h3 {
  margin: 0;
  font-size: 1.3rem;
}

.property-search-result-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.property-search-result-meta span {
  min-width: 0;
  padding: 12px 14px;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 9px;
  align-items: start;
  border-radius: 4px;
  background: #f3f6f1;
  color: #465045;
  font-size: 0.9rem;
}

.property-search-result-meta span i {
  grid-row: 1 / span 2;
  margin-top: 3px;
  color: var(--colour-green);
}

.property-search-result-meta span strong {
  color: #253025;
  font-size: 0.76rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.property-search-result-plan {
  margin: 0;
  padding-top: 16px;
  border-top: 1px solid #e2e8df;
  color: #4e584d;
}

.property-search-result-action {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
}

.property-search-explainer {
  margin-top: clamp(54px, 8vw, 90px);
}

.property-search-section-heading {
  max-width: 830px;
}

.property-search-section-heading h2 {
  margin-bottom: 12px;
}

.property-search-feature-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.property-search-feature-grid article {
  padding: 24px;
  border: 1px solid #dbe3d7;
  border-radius: 4px;
  background: #f8faf7;
}

.property-search-feature-grid article > i {
  margin-bottom: 20px;
  color: var(--colour-green);
  font-size: 1.5rem;
}

.property-search-feature-grid h3 {
  margin-bottom: 9px;
}

.property-search-feature-grid p {
  margin: 0;
}

.property-search-next {
  margin-top: clamp(54px, 8vw, 90px);
  padding: clamp(28px, 5vw, 44px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.85fr);
  gap: clamp(28px, 5vw, 54px);
  border-radius: 4px;
  background: #eef3eb;
}

.property-search-next h2 {
  margin-bottom: 12px;
}

.property-search-next p:last-child {
  margin-bottom: 0;
}

.property-search-next-links {
  display: grid;
  gap: 10px;
}

.property-search-next-links a {
  padding: 17px 18px;
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: 12px;
  align-items: center;
  border: 1px solid #d2ddcd;
  border-radius: 4px;
  background: #fff;
}

.property-search-next-links strong,
.property-search-next-links span {
  display: block;
}

.property-search-next-links span {
  margin-top: 3px;
  color: #667064;
  font-size: 0.86rem;
}

.property-search-next-links i {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: var(--colour-green);
}

@media (max-width: 900px) {
  .property-search-hero,
  .property-search-next {
    grid-template-columns: minmax(0, 1fr);
  }

  .property-search-feature-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 680px) {
  .property-search-control,
  .property-search-result-grid,
  .property-search-result-meta {
    grid-template-columns: minmax(0, 1fr);
  }

  .property-search-control > button {
    width: 100%;
  }
}

/* Website R105: property search refinements and launch-level property profile. */
.property-search-suggestion:hover,
.property-search-suggestion:focus-visible,
.property-search-suggestion.is-active,
.property-search-suggestion[aria-selected="true"] {
  background: #e4eee0;
  color: #20301f;
}

.property-search-suggestion:hover i,
.property-search-suggestion:focus-visible i,
.property-search-suggestion.is-active i,
.property-search-suggestion[aria-selected="true"] i {
  color: #46643e;
}

.property-search-result-heading h3 a {
  color: #253025;
  text-decoration: none;
}

.property-search-result-heading h3 a:hover,
.property-search-result-heading h3 a:focus-visible {
  color: var(--colour-green);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.property-search-result-card:has(.property-search-result-heading a):hover {
  border-color: #b9cbb2;
  box-shadow: 0 14px 32px rgb(35 53 31 / 9%);
}

.property-search-result-action {
  width: fit-content;
  padding: 10px 14px;
  border-radius: 4px;
  background: #edf3ea;
  color: #2d4a28;
  text-decoration: none;
}

.property-search-result-action:hover,
.property-search-result-action:focus-visible {
  background: #dfeada;
  color: #213b1e;
}

.property-profile-page {
  --property-profile-ink: #273326;
  --property-profile-muted: #5d685b;
}

.property-profile-header {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.75fr);
  gap: clamp(24px, 5vw, 54px);
  align-items: stretch;
}

.property-profile-header .page-intro {
  max-width: 820px;
}

.property-profile-summary {
  padding: clamp(25px, 4vw, 36px);
  border-radius: 4px;
  background: linear-gradient(145deg, #1a2b1a, #284325);
  color: #f4f7f2;
}

.property-profile-summary .eyebrow {
  color: #a9c699;
}

.property-profile-summary h2 {
  color: #fff;
  font-size: clamp(1.25rem, 2vw, 1.6rem);
}

.property-profile-summary p:last-child {
  margin-bottom: 0;
  color: #d9e2d5;
}

.property-profile-ad {
  margin-top: clamp(34px, 5vw, 54px);
}

.property-profile-facts {
  margin-top: clamp(44px, 7vw, 76px);
}

.property-profile-fact-grid {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.property-profile-fact {
  padding: 20px;
  border: 1px solid #d7dfd3;
  border-radius: 4px;
  background: #f7f9f5;
}

.property-profile-fact i {
  margin-bottom: 16px;
  color: var(--colour-green);
  font-size: 1.25rem;
}

.property-profile-fact strong {
  display: block;
  margin-bottom: 5px;
  color: var(--property-profile-ink);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.property-profile-fact span {
  color: var(--property-profile-ink);
  font-size: 1.05rem;
  font-weight: 700;
}

.property-profile-plan {
  margin-top: 22px;
  padding: 22px;
  border-left: 4px solid var(--colour-green);
  border-radius: 0 4px 4px 0;
  background: #f2f6f0;
}

.property-profile-plan p:last-child {
  margin-bottom: 0;
}

.property-profile-links {
  margin-top: clamp(42px, 7vw, 72px);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.property-profile-links a {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  border: 1px solid #d7dfd3;
  border-radius: 4px;
  color: var(--property-profile-ink);
  text-decoration: none;
}

.property-profile-links a:hover,
.property-profile-links a:focus-visible {
  border-color: #aebfa7;
  background: #f4f7f2;
}

.property-profile-links strong {
  font-size: 1.05rem;
}

.property-profile-links span {
  color: var(--property-profile-muted);
}

@media (max-width: 800px) {
  .property-profile-header,
  .property-profile-fact-grid,
  .property-profile-links {
    grid-template-columns: 1fr;
  }
}

/* ========================================================================== 
   PROPERTY MAP — MAP-FIRST PDA PROPERTY EXPLORATION (R106)
   ========================================================================== */
.property-map-page {
  --property-map-ink: #172018;
  --property-map-muted: #5b655a;
  --property-search-ink: #172018;
  --property-search-muted: #5b655a;
}

.property-map-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: clamp(30px, 5vw, 66px);
  align-items: end;
}

.property-map-hero .page-intro {
  max-width: 780px;
}

.property-map-hero-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.property-map-hero-stats > div {
  min-width: 0;
  padding: 20px;
  border: 1px solid #d6dfd2;
  border-radius: 4px;
  background: #f5f8f3;
}

.property-map-hero-stats strong,
.property-map-hero-stats span {
  display: block;
}

.property-map-hero-stats strong {
  color: var(--property-map-ink);
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  line-height: 1;
}

.property-map-hero-stats span {
  margin-top: 8px;
  color: var(--property-map-muted);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.35;
}

.property-map-ad-first {
  margin-top: clamp(34px, 5vw, 54px);
}

.property-map-explorer {
  margin-top: clamp(52px, 7vw, 82px);
}

.property-map-section-heading {
  max-width: 820px;
}

.property-map-section-heading h2 {
  margin-bottom: 12px;
}

.property-map-finder-form {
  max-width: 830px;
  margin-top: 24px;
  padding: 20px;
  border: 1px solid #d4ded0;
  border-radius: 4px;
  background: #f5f8f3;
}

.property-map-finder-form > label {
  margin-bottom: 9px;
  display: block;
  color: var(--property-map-ink);
  font-size: 0.9rem;
  font-weight: 800;
}

.property-map-search-control {
  grid-template-columns: minmax(0, 1fr) auto;
}

.property-map-finder-message {
  max-width: 830px;
  margin-top: 12px;
  padding: 13px 15px;
  display: flex;
  align-items: flex-start;
  gap: 11px;
  border: 1px solid #d4ded0;
  border-radius: 4px;
  background: #f7f9f5;
  color: #455044;
}

.property-map-finder-message.is-success {
  border-color: #b9cdb0;
  background: #eef5eb;
}

.property-map-finder-message.is-warning {
  border-color: #ded5bd;
  background: #faf7ef;
}

.property-map-finder-message i {
  margin-top: 4px;
  flex: 0 0 auto;
  color: var(--colour-green);
}

.property-map-finder-message p {
  margin: 0;
}

.property-map-instruction {
  margin-top: 26px;
  padding: 14px 18px;
  display: flex;
  align-items: flex-start;
  gap: 13px;
  border-left: 3px solid var(--colour-green);
  background: #f3f6f1;
}

.property-map-instruction > i {
  margin-top: 4px;
  color: var(--colour-green);
}

.property-map-instruction p {
  margin: 0;
}

.property-map-frame-shell {
  margin-top: 14px;
  overflow: hidden;
  border: 1px solid #cad5c6;
  border-radius: 4px;
  background: #eef2eb;
  box-shadow: 0 14px 36px rgb(31 49 28 / 8%);
}

.property-map-frame {
  width: 100%;
  height: clamp(600px, 68vw, 760px);
  min-height: 600px;
  display: block;
  border: 0;
  background: #eef2eb;
}

.property-map-caption {
  margin: 12px 0 0;
  color: #596357;
  font-size: 0.88rem;
  font-weight: 700;
}

.property-map-caveat {
  margin-top: 18px;
  padding: 17px 18px;
  display: flex;
  align-items: flex-start;
  gap: 13px;
  border: 1px solid #d9e1d6;
  border-radius: 4px;
  background: #f8faf7;
}

.property-map-caveat > i {
  margin-top: 4px;
  color: var(--colour-green);
}

.property-map-caveat p {
  margin: 0;
}

.property-map-ad:not(.property-map-ad-first) {
  margin-top: clamp(42px, 6vw, 68px);
}

.property-map-help {
  margin-top: clamp(52px, 8vw, 86px);
}

.property-map-help > div:first-child {
  max-width: 820px;
}

.property-map-help h2 {
  margin-bottom: 12px;
}

.property-map-help-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.property-map-help-grid a {
  padding: 22px;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 13px;
  row-gap: 5px;
  border: 1px solid #d7dfd3;
  border-radius: 4px;
  color: var(--property-map-ink);
  text-decoration: none;
  background: #fff;
}

.property-map-help-grid a:hover,
.property-map-help-grid a:focus-visible {
  border-color: #afc0a8;
  background: #f5f8f3;
}

.property-map-help-grid i {
  grid-row: 1 / span 2;
  margin-top: 3px;
  color: var(--colour-green);
  font-size: 1.2rem;
}

.property-map-help-grid strong,
.property-map-help-grid span {
  display: block;
}

.property-map-help-grid span {
  color: var(--property-map-muted);
  font-size: 0.88rem;
}

@media (max-width: 900px) {
  .property-map-hero,
  .property-map-help-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .property-map-hero-stats {
    max-width: 560px;
  }
}

@media (max-width: 680px) {
  .property-map-hero-stats,
  .property-map-search-control {
    grid-template-columns: minmax(0, 1fr);
  }

  .property-map-frame {
    height: 580px;
    min-height: 580px;
  }
}

/* ========================================================================== 
   PROPERTY DETAIL — R21 PROPERTY-SPECIFIC PDA RESEARCH PAGE (R111)
   ========================================================================== */
.property-profile-page {
  --property-profile-ink: #202b20;
  --property-profile-muted: #5c675a;
  --property-profile-line: #d7dfd3;
  --property-profile-soft: #f5f8f3;
  --property-profile-green-soft: #eef4eb;
  --property-profile-road: #9a5d28;
  --property-profile-road-soft: #fbf5ed;
}

.property-profile-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
  gap: clamp(30px, 5vw, 66px);
  align-items: stretch;
}

.property-profile-hero-copy {
  min-width: 0;
}

.property-profile-hero-copy h1 {
  margin-bottom: 16px;
  font-size: clamp(2.25rem, 7vw, 3.75rem);
  letter-spacing: -0.035em;
}

.property-profile-hero-copy .page-intro {
  max-width: 790px;
}

.property-profile-cadastral-record {
  margin-top: 28px;
  max-width: 430px;
}

.property-profile-cadastral-record > p {
  margin: 0 0 13px;
  color: #52604f;
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.property-profile-cadastral-record dl {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 13px;
}

.property-profile-cadastral-record dl > div {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
}

.property-profile-cadastral-record dt {
  color: var(--property-profile-muted);
  font-size: 0.76rem;
  font-weight: 750;
}

.property-profile-cadastral-record dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--property-profile-ink);
  font-size: 1rem;
  font-weight: 850;
  line-height: 1.3;
}

.property-profile-summary {
  min-width: 0;
  padding: clamp(25px, 4vw, 36px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-radius: 4px;
  background: linear-gradient(145deg, #172719, #284525);
  color: #f5f8f3;
  box-shadow: 0 18px 40px rgb(24 42 24 / 13%);
}

.property-profile-summary .eyebrow { color: #a9c699; }
.property-profile-summary h2 {
  margin-bottom: 14px;
  color: #fff;
  font-size: clamp(1.35rem, 2.3vw, 1.85rem);
}
.property-profile-summary p {
  margin-bottom: 18px;
  color: #dbe5d7;
}
.property-profile-summary > span {
  width: fit-content;
  padding: 7px 10px;
  border: 1px solid rgb(255 255 255 / 18%);
  border-radius: 4px;
  background: rgb(255 255 255 / 7%);
  color: #dfeadc;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.property-profile-ad {
  margin-top: clamp(34px, 5vw, 54px);
}

.property-profile-ad-secondary {
  margin-bottom: clamp(46px, 7vw, 78px);
}

.property-profile-section {
  margin-top: clamp(52px, 7vw, 84px);
}

.property-profile-section-heading {
  max-width: 830px;
}

.property-profile-section-heading h2 {
  margin-bottom: 12px;
}

.property-profile-section-heading > p:last-child {
  color: var(--property-profile-muted);
}

.property-profile-map-section {
  margin-top: clamp(54px, 7vw, 84px);
}

.property-profile-map-controls {
  margin-top: 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.property-profile-map-controls label {
  padding: 9px 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #cbd6c7;
  border-radius: 4px;
  background: #f6f9f4;
  color: #32422f;
  cursor: pointer;
  font-size: 0.84rem;
  font-weight: 800;
}

.property-profile-map-controls label:hover {
  border-color: #aebfa8;
  background: #eef4eb;
}

.property-profile-map-controls input {
  accent-color: var(--colour-green);
}

.property-profile-map-future-control {
  margin-top: 13px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid #e2c9ad;
  border-radius: 4px;
  background: #fff8ef;
}

.property-profile-map-future-control > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.property-profile-map-future-control > div strong {
  color: #6d431f;
  font-size: 0.76rem;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.property-profile-map-future-control > div span {
  color: #79614c;
  font-size: 0.8rem;
}

.property-profile-map-future-control label {
  flex: 0 0 auto;
  padding: 9px 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #d7b88f;
  border-radius: 4px;
  background: #ffffff;
  color: #593a20;
  cursor: pointer;
  font-size: 0.84rem;
  font-weight: 850;
}

.property-profile-map-future-control label:hover {
  border-color: #bd9362;
  background: #fffaf4;
}

.property-profile-map-future-control input {
  accent-color: #9a5d28;
}

.property-profile-map-shell {
  margin-top: 18px;
  overflow: hidden;
  border: 1px solid #cad5c6;
  border-radius: 4px;
  background: #edf2ea;
  box-shadow: 0 18px 42px rgb(35 53 31 / 10%);
}

.property-profile-map-frame {
  width: 100%;
  height: clamp(430px, 58vw, 650px);
  display: block;
  border: 0;
  background: #edf2ea;
}

.property-profile-map-caption {
  margin-top: 13px;
  color: var(--property-profile-muted);
  font-size: 0.83rem;
}

.property-profile-map-caveat,
.property-profile-callout,
.property-profile-future-road-warning {
  margin-top: 18px;
  padding: 17px 19px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  border-radius: 4px;
}

.property-profile-map-caveat,
.property-profile-callout {
  border: 1px solid #d8e1d4;
  background: #f4f7f2;
}

.property-profile-map-caveat i,
.property-profile-callout i {
  margin-top: 3px;
  color: var(--colour-green);
}

.property-profile-map-caveat p,
.property-profile-callout p,
.property-profile-future-road-warning p {
  margin: 0;
}

.property-profile-callout.is-magenta {
  border-color: #e5c3d6;
  background: #fbf4f8;
}
.property-profile-callout.is-magenta i { color: #a73376; }

.property-profile-fact-grid {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px;
}

.property-profile-fact {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--property-profile-line);
  border-radius: 4px;
  background: var(--property-profile-soft);
}

.property-profile-fact i {
  margin-bottom: 14px;
  color: var(--colour-green);
  font-size: 1.2rem;
}

.property-profile-fact strong {
  display: block;
  color: #52604f;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.property-profile-fact span {
  margin-top: 6px;
  display: block;
  overflow-wrap: anywhere;
  color: var(--property-profile-ink);
  font-size: 1.03rem;
  font-weight: 800;
}

.property-profile-parcel-list {
  margin-top: 16px;
  overflow: hidden;
  border: 1px solid var(--property-profile-line);
  border-radius: 4px;
  background: #fff;
}

.property-profile-parcel-row {
  padding: 14px 17px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  border-bottom: 1px solid #e5ebe2;
}

.property-profile-parcel-row:last-child { border-bottom: 0; }
.property-profile-parcel-row > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.property-profile-pill {
  padding: 4px 7px;
  border-radius: 4px;
  background: #e9f1e5;
  color: #45613e;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.property-profile-allocation-list {
  margin-top: 22px;
  overflow: hidden;
  border: 1px solid var(--property-profile-line);
  border-radius: 4px;
  background: #fff;
}

.property-profile-allocation-card {
  padding: 15px 17px;
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  border-bottom: 1px solid #e7ece4;
}

.property-profile-allocation-card:last-child { border-bottom: 0; }

.property-profile-allocation-card.is-zero {
  background: #fafbf9;
}

.property-profile-allocation-card.is-zero .property-profile-allocation-swatch {
  opacity: 0.32;
}

.property-profile-allocation-card.is-zero .property-profile-allocation-copy h3,
.property-profile-allocation-card.is-zero > strong {
  color: #758073;
}

.property-profile-allocation-card.is-zero .property-profile-allocation-copy p {
  color: #929a90;
}

.property-profile-allocation-swatch {
  width: 10px;
  align-self: stretch;
  min-height: 45px;
  border-radius: 4px;
  background: var(--allocation-colour);
}

.property-profile-allocation-copy h3,
.property-profile-allocation-copy p {
  margin: 0;
}
.property-profile-allocation-copy h3 {
  color: var(--property-profile-ink);
  font-size: 1rem;
}
.property-profile-allocation-copy p {
  margin-top: 3px;
  color: var(--property-profile-muted);
  font-size: 0.82rem;
}
.property-profile-allocation-card > strong {
  color: var(--property-profile-ink);
  font-size: clamp(1.1rem, 2.2vw, 1.45rem);
}

.property-profile-total-line {
  margin-top: 12px;
  color: var(--property-profile-muted);
  text-align: right;
  font-size: 0.84rem;
}

.property-profile-assessment-card {
  margin-top: 20px;
  padding: clamp(22px, 4vw, 30px);
  border-left: 5px solid var(--colour-green);
  border-radius: 0 4px 4px 0;
  background: var(--property-profile-green-soft);
}
.property-profile-assessment-card > p {
  margin-top: 0;
  color: #354333;
  font-size: 1.03rem;
  line-height: 1.65;
}

.property-profile-assessment-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.property-profile-assessment-meta span {
  padding: 7px 9px;
  border-radius: 4px;
  background: rgb(255 255 255 / 67%);
  color: #536250;
  font-size: 0.75rem;
  font-weight: 800;
}

.property-profile-layer-stat {
  margin-top: 22px;
  width: fit-content;
  min-width: min(100%, 260px);
  padding: 18px 20px;
  border: 1px solid var(--property-profile-line);
  border-radius: 4px;
  background: var(--property-profile-soft);
}
.property-profile-layer-stat strong,
.property-profile-layer-stat span { display: block; }
.property-profile-layer-stat strong {
  color: var(--property-profile-ink);
  font-size: 1.6rem;
}
.property-profile-layer-stat span {
  margin-top: 5px;
  color: var(--property-profile-muted);
  font-size: 0.82rem;
}

.property-profile-parcel-detail-list {
  margin: 14px 0 0;
  padding-left: 22px;
  color: var(--property-profile-muted);
}
.property-profile-parcel-detail-list li + li { margin-top: 5px; }

.property-profile-subheading {
  margin-top: 28px;
  margin-bottom: 12px;
  color: var(--property-profile-ink);
  font-size: 1rem;
}

.property-profile-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.property-profile-service-card {
  padding: 16px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  border: 1px solid var(--property-profile-line);
  border-radius: 4px;
  background: var(--property-profile-soft);
}
.property-profile-service-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e7eef5;
  color: #3c7192;
}
.property-profile-service-card h3,
.property-profile-service-card p { margin: 0; }
.property-profile-service-card h3 { font-size: 0.98rem; }
.property-profile-service-card p {
  margin-top: 4px;
  color: var(--property-profile-muted);
  font-size: 0.8rem;
}

.property-profile-asset-list {
  overflow: hidden;
  border: 1px solid var(--property-profile-line);
  border-radius: 4px;
}
.property-profile-asset-row {
  padding: 14px 16px;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 18px;
  border-bottom: 1px solid #e7ece4;
}
.property-profile-asset-row:last-child { border-bottom: 0; }
.property-profile-asset-row > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: baseline;
}
.property-profile-asset-row strong { color: var(--property-profile-ink); }
.property-profile-asset-row span {
  color: #796270;
  font-size: 0.73rem;
  font-weight: 800;
}
.property-profile-asset-row p {
  margin: 0;
  color: var(--property-profile-muted);
  font-size: 0.82rem;
}

.property-profile-park-grid {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.property-profile-park-card {
  padding: 20px;
  border: 1px solid #cedbd0;
  border-radius: 4px;
  background: #f4f8f3;
}
.property-profile-park-card.is-ds01 {
  border-color: #b8d2c2;
  background: #eef6f1;
}
.property-profile-park-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}
.property-profile-park-heading > span {
  padding: 7px 9px;
  border-radius: 4px;
  background: #2f714b;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 900;
}
.property-profile-park-heading h3,
.property-profile-park-heading p { margin: 0; }
.property-profile-park-heading p {
  margin-top: 2px;
  color: var(--property-profile-muted);
  font-size: 0.77rem;
}
.property-profile-park-card > p {
  margin-top: 15px;
  color: #4f5d4d;
  font-size: 0.88rem;
}

.property-profile-relationship-grid {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.property-profile-relationship-card {
  padding: 17px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 13px;
  border: 1px solid var(--property-profile-line);
  border-radius: 4px;
  background: var(--property-profile-soft);
}
.property-profile-relationship-card > i {
  width: 37px;
  height: 37px;
  display: grid;
  place-items: center;
  border-radius: 4px;
  background: #e9f0e6;
  color: var(--colour-green);
}
.property-profile-relationship-card h3,
.property-profile-relationship-card p { margin: 0; }
.property-profile-relationship-card p {
  margin-top: 4px;
  color: var(--property-profile-muted);
  font-size: 0.8rem;
}

.property-profile-future-road-section {
  padding: clamp(24px, 4.5vw, 38px);
  border: 1px solid #e2c9ad;
  border-radius: 4px;
  background: var(--property-profile-road-soft);
}

.property-profile-future-road-copy {
  max-width: 900px;
}

.property-profile-future-road-copy .eyebrow { color: #8a5528; }

.property-profile-future-road-copy h2 {
  color: #49311f;
  font-size: clamp(1.55rem, 3vw, 2.15rem);
}

.property-profile-future-road-lead {
  max-width: 78ch;
  color: #644b37;
  font-size: 1rem;
}

.property-profile-future-road-list {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.property-profile-future-road-list li {
  padding: 12px 0;
  border-bottom: 1px solid #ead9c5;
}

.property-profile-future-road-list li:last-child { border-bottom: 0; }

.property-profile-future-road-list strong { color: #49311f; }

.property-profile-future-road-list small {
  margin-top: 4px;
  display: block;
  color: #79614c;
}

.property-profile-future-road-warning {
  border: 1px solid #dfc09e;
  background: #fff8ef;
}

.property-profile-future-road-warning i {
  margin-top: 3px;
  color: var(--property-profile-road);
}

.property-profile-future-road-action {
  margin-top: 18px;
  min-height: 44px;
  padding: 10px 15px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: 1px solid #bd9362;
  border-radius: 4px;
  background: #ffffff;
  color: #5f3c20;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}

.property-profile-future-road-action:hover,
.property-profile-future-road-action:focus-visible {
  border-color: #956534;
  background: #fffaf4;
  color: #49311f;
}

.property-profile-development-grid {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.property-profile-development-card {
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid var(--property-profile-line);
  border-radius: 4px;
  color: var(--property-profile-ink);
  text-decoration: none;
}
.property-profile-development-card:hover,
.property-profile-development-card:focus-visible {
  border-color: #aec0a7;
  background: #f6f9f4;
  box-shadow: 0 14px 30px rgb(35 53 31 / 8%);
}
.property-profile-development-card h3,
.property-profile-development-card p { margin-top: 0; }
.property-profile-development-card > span {
  color: var(--colour-green);
  font-size: 0.82rem;
  font-weight: 900;
}

.property-profile-update-list {
  margin-top: 20px;
  display: grid;
  gap: 12px;
}
.property-profile-update-card {
  padding: 18px 20px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  border: 1px solid var(--property-profile-line);
  border-radius: 4px;
}
.property-profile-update-card span {
  color: var(--property-profile-muted);
  font-size: 0.73rem;
  font-weight: 800;
}
.property-profile-update-card h3 {
  margin: 4px 0 6px;
  font-size: 1.04rem;
}
.property-profile-update-card h3 a {
  color: var(--property-profile-ink);
  text-decoration: none;
}
.property-profile-update-card h3 a:hover,
.property-profile-update-card h3 a:focus-visible {
  color: var(--colour-green);
  text-decoration: underline;
}
.property-profile-update-card p {
  margin: 0;
  color: var(--property-profile-muted);
  font-size: 0.85rem;
}
.property-profile-update-action {
  white-space: nowrap;
  color: var(--colour-green);
  font-size: 0.82rem;
  font-weight: 900;
  text-decoration: none;
}

.property-profile-sources > ul {
  margin: 20px 0 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--property-profile-line);
  border-radius: 4px;
  list-style: none;
}
.property-profile-sources li {
  padding: 14px 16px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  border-bottom: 1px solid #e6ebe3;
}
.property-profile-sources li:last-child { border-bottom: 0; }
.property-profile-sources strong,
.property-profile-sources span { display: block; }
.property-profile-sources span {
  margin-top: 3px;
  color: var(--property-profile-muted);
  font-size: 0.75rem;
}
.property-profile-sources a {
  color: var(--colour-green);
  font-size: 0.8rem;
  font-weight: 900;
  text-decoration: none;
}

.property-profile-links {
  margin-top: clamp(48px, 7vw, 76px);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.property-profile-links a {
  padding: 19px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  border: 1px solid var(--property-profile-line);
  border-radius: 4px;
  color: var(--property-profile-ink);
  text-decoration: none;
}
.property-profile-links a:hover,
.property-profile-links a:focus-visible {
  border-color: #aec0a7;
  background: #f5f8f3;
}
.property-profile-links span {
  color: var(--property-profile-muted);
  font-size: 0.82rem;
}

.property-profile-empty {
  margin-top: 18px;
  color: var(--property-profile-muted);
}

@media (max-width: 980px) {
  .property-profile-hero {
    grid-template-columns: minmax(0, 1fr);
  }

  .property-profile-summary {
    min-height: 0;
  }

  .property-profile-park-grid,
  .property-profile-development-grid {
    grid-template-columns: minmax(0, 1fr);
  }

}

@media (max-width: 760px) {
  .property-profile-fact-grid,
  .property-profile-service-grid,
  .property-profile-relationship-grid,
  .property-profile-links {
    grid-template-columns: minmax(0, 1fr);
  }

  .property-profile-asset-row,
  .property-profile-update-card,
  .property-profile-sources li {
    grid-template-columns: minmax(0, 1fr);
  }

  .property-profile-update-action,
  .property-profile-sources a {
    white-space: normal;
  }

  .property-profile-map-frame {
    height: 480px;
  }
}

@media (max-width: 520px) {
  .property-profile-allocation-card {
    grid-template-columns: 8px minmax(0, 1fr);
  }
  .property-profile-allocation-card > strong {
    grid-column: 2;
  }

  .property-profile-map-controls label {
    flex: 1 1 calc(50% - 8px);
    border-radius: 4px;
  }

  .property-profile-map-future-control {
    align-items: stretch;
    flex-direction: column;
  }

  .property-profile-map-future-control label {
    justify-content: center;
    border-radius: 4px;
  }

  .property-profile-parcel-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }
}


/* Government Land Acquisition — prevent native OL numbering from duplicating
   the designed numbered circles in the "What should I do?" steps. */
.guide-steps {
  list-style: none;
  padding-left: 0;
}


/* Government Land Acquisition — editorial advertising placements */
.property-guide-ad {
  margin-top: clamp(34px, 5vw, 54px);
}

.property-guide-ad-secondary {
  margin-bottom: clamp(12px, 2vw, 22px);
}


/* Government Land Acquisition — contextual professional-service links */
.property-guide-professional-help {
  margin-top: clamp(30px, 4vw, 44px);
  max-width: 980px;
}

.property-guide-professional-help > h3 {
  margin-bottom: 10px;
  font-size: clamp(1.3rem, 2vw, 1.6rem);
}

.property-guide-professional-help > p {
  max-width: 780px;
}

.property-guide-directory-note {
  margin: 14px 0 0;
  color: var(--colour-muted);
  font-size: 0.82rem;
}


/* Government Land Acquisition — light-background professional service cards */
.property-guide-professional-help .service-link-card,
.property-guide-professional-help .service-link-card:visited {
  color: var(--colour-text);
  border-color: #dfe5da;
  background: #fbfcfa;
  transform: none;
}

.property-guide-professional-help .service-link-card strong {
  color: var(--colour-text);
}

.property-guide-professional-help .service-link-card span {
  color: var(--colour-text);
}

.property-guide-professional-help .service-link-card:hover,
.property-guide-professional-help .service-link-card:focus-visible {
  color: var(--colour-text);
  border-color: #b8c8ad;
  background: #f5f8f2;
  transform: none;
}


/* Compensation guide */
.compensation-components {
  margin: 26px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.compensation-components li {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 13px;
  align-items: start;
  padding: 18px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fbfcfa;
}

.compensation-components li > i {
  margin-top: 2px;
  color: #6f9c59;
  font-size: 1.1rem;
}

.compensation-components strong,
.compensation-components span {
  display: block;
}

.compensation-components strong {
  color: var(--colour-text);
  line-height: 1.3;
}

.compensation-components span {
  margin-top: 5px;
  color: #50606f;
  line-height: 1.55;
}

.property-guide-related-link {
  margin-top: 24px;
}

@media (max-width: 760px) {
  .compensation-components {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* R121 — acquisition/compensation step lists.
   These two guides use div-based list semantics so native browser ordered-list
   markers cannot duplicate the designed numbered circles. */
.guide-steps-static {
  max-width: 850px;
  margin: 0;
  padding: 0;
  counter-reset: property-step;
}

.guide-steps-static > .guide-step {
  position: relative;
  min-height: 48px;
  padding-left: 72px;
  counter-increment: property-step;
}

.guide-steps-static > .guide-step + .guide-step {
  margin-top: 26px;
}

.guide-steps-static > .guide-step::before {
  content: counter(property-step);
  position: absolute;
  top: 0;
  left: 0;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  color: var(--colour-green-dark);
  border: 1px solid #cbd8c5;
  border-radius: 50%;
  background: #f4f7f2;
  font-weight: 800;
}

.guide-steps-static .guide-step h3 {
  margin-bottom: 7px;
  font-size: 1.12rem;
}

.guide-steps-static .guide-step p {
  margin-bottom: 0;
}

@media (max-width: 520px) {
  .guide-steps-static > .guide-step {
    padding-left: 58px;
  }
}


/* Property Values */
.property-value-factor-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.property-value-factor {
  min-width: 0;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 13px;
  align-items: start;
  padding: 18px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fbfcfa;
}

.property-value-factor > i {
  margin-top: 2px;
  color: #6f9c59;
  font-size: 1.08rem;
}

.property-value-factor h3 {
  margin: 0 0 6px;
  color: var(--colour-text);
  font-size: 1rem;
}

.property-value-factor p {
  margin: 0;
  color: #50606f;
  line-height: 1.55;
}

.property-value-type-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.property-value-type {
  min-width: 0;
  padding: 20px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fbfcfa;
}

.property-value-type > p:first-child {
  margin: 0 0 12px;
  color: #6f9c59;
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.08em;
}

.property-value-type h3 {
  margin: 0 0 9px;
  color: var(--colour-text);
  font-size: 1.08rem;
}

.property-value-type h3 + p {
  margin: 0;
  color: #50606f;
  line-height: 1.58;
}

.property-value-type > a {
  margin-top: 14px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: var(--colour-green-dark);
  font-weight: 800;
  text-decoration: none;
}

.property-value-type > a:hover,
.property-value-type > a:focus-visible {
  text-decoration: underline;
}

.property-values-statutory-note {
  margin-top: 20px;
}

.property-values-service-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.property-values-related-guides {
  margin-top: 24px;
}

.property-values-related-guides p {
  margin-bottom: 0;
}

/* Explicitly keep Property Values service links stationary. */
.property-values-page .service-link-card,
.property-values-page .service-link-card:hover,
.property-values-page .service-link-card:focus-visible {
  transform: none;
}

@media (max-width: 860px) {
  .property-value-type-grid,
  .property-values-service-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  .property-value-factor-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* R123 — Property Values professional links use three equal cards on desktop.
   Override the generic "odd last card spans full row" rule used elsewhere. */
.property-values-service-grid > .service-link-card:last-child:nth-child(odd) {
  grid-column: auto;
}


/* R124 — larger H1 on the main PDA landing page */
.pda-main-header .catalogue-landing-intro h1 {
  margin-bottom: 16px;
  font-size: clamp(2.25rem, 7vw, 3.75rem);
  letter-spacing: -0.035em;
}


/* R125 — Property landing hub */
.property-hub-header .catalogue-landing-intro h1 {
  margin-bottom: 16px;
  font-size: clamp(2.25rem, 7vw, 3.75rem);
  letter-spacing: -0.035em;
}

.property-hub-start-actions {
  margin-top: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  max-width: 760px;
}

.property-hub-primary-action,
.property-hub-secondary-action {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 20px;
  gap: 14px;
  align-items: center;
  padding: 17px 18px;
  border-radius: 4px;
  text-decoration: none;
  transform: none;
}

.property-hub-primary-action {
  color: #fff;
  border: 1px solid #476e37;
  background: #4f7f3f;
}

.property-hub-secondary-action {
  color: var(--colour-text);
  border: 1px solid #d9e1d4;
  background: #fbfcfa;
}

.property-hub-primary-action:hover,
.property-hub-primary-action:focus-visible,
.property-hub-secondary-action:hover,
.property-hub-secondary-action:focus-visible {
  transform: none;
}

.property-hub-primary-action:hover,
.property-hub-primary-action:focus-visible {
  background: #456f37;
}

.property-hub-secondary-action:hover,
.property-hub-secondary-action:focus-visible {
  border-color: #b8c8ad;
  background: #f5f8f2;
}

.property-hub-primary-action > i:first-child,
.property-hub-secondary-action > i:first-child {
  font-size: 1.2rem;
}

.property-hub-primary-action strong,
.property-hub-primary-action small,
.property-hub-secondary-action strong,
.property-hub-secondary-action small {
  display: block;
}

.property-hub-primary-action strong,
.property-hub-secondary-action strong {
  font-size: 1rem;
}

.property-hub-primary-action small,
.property-hub-secondary-action small {
  margin-top: 4px;
  line-height: 1.45;
}

.property-hub-primary-action small {
  color: rgba(255,255,255,.82);
}

.property-hub-secondary-action small {
  color: #50606f;
}

.property-hub-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.property-hub-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 18px;
  gap: 14px;
  align-items: center;
  padding: 20px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fbfcfa;
  color: var(--colour-text);
  text-decoration: none;
  transform: none;
}

.property-hub-card:hover,
.property-hub-card:focus-visible {
  border-color: #b8c8ad;
  background: #f5f8f2;
  transform: none;
}

.property-hub-card > i:first-child {
  color: #6f9c59;
  font-size: 1.15rem;
}

.property-hub-card strong,
.property-hub-card small {
  display: block;
}

.property-hub-card strong {
  font-size: 1rem;
}

.property-hub-card small {
  margin-top: 5px;
  color: #50606f;
  line-height: 1.5;
}

.property-hub-path-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.property-hub-path-grid > a {
  min-width: 0;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 18px;
  gap: 12px;
  align-items: start;
  padding: 18px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fff;
  color: var(--colour-text);
  text-decoration: none;
  transform: none;
}

.property-hub-path-grid > a:hover,
.property-hub-path-grid > a:focus-visible {
  border-color: #b8c8ad;
  background: #f5f8f2;
  transform: none;
}

.property-hub-path-grid > a > i:first-child {
  margin-top: 2px;
  color: #6f9c59;
}

.property-hub-path-grid strong,
.property-hub-path-grid small {
  display: block;
}

.property-hub-path-grid small {
  margin-top: 5px;
  color: #50606f;
  line-height: 1.5;
}

@media (max-width: 900px) {
  .property-hub-path-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  .property-hub-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* R126 — Property hub primary action contrast.
   Explicit descendant colours prevent generic link/strong/icon rules from
   turning text and icons green on the green Search Your Property button. */
.property-hub-primary-action,
.property-hub-primary-action:visited,
.property-hub-primary-action strong,
.property-hub-primary-action > i {
  color: #fff;
}

.property-hub-primary-action small {
  color: rgba(255, 255, 255, .9);
}

.property-hub-primary-action:hover,
.property-hub-primary-action:focus-visible,
.property-hub-primary-action:hover strong,
.property-hub-primary-action:focus-visible strong,
.property-hub-primary-action:hover > i,
.property-hub-primary-action:focus-visible > i {
  color: #fff;
}


/* R130 — About */
.about-page-header {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}

.about-page-header h1 {
  margin-bottom: 16px;
  font-size: clamp(2.25rem, 7vw, 3.75rem);
  letter-spacing: -0.035em;
}

.about-page-header > div > p:last-child {
  max-width: 760px;
  margin-bottom: 0;
}

.about-trust-card {
  padding: 24px;
  border-radius: 4px;
  background: linear-gradient(135deg, #233027 0%, #365936 100%);
  color: #fff;
}

.about-trust-card .eyebrow {
  color: #b9d6ad;
}

.about-trust-card h2 {
  margin: 0 0 12px;
  color: #fff;
  font-size: clamp(1.45rem, 2.2vw, 1.9rem);
}

.about-trust-card p:last-child {
  margin-bottom: 0;
  color: rgba(255,255,255,.84);
}

.about-principles-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.about-principles-grid article,
.about-info-panel {
  min-width: 0;
  padding: 20px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fbfcfa;
}

.about-principles-grid article > i,
.about-info-panel > i {
  color: #6f9c59;
  font-size: 1.15rem;
}

.about-principles-grid article > i {
  margin-bottom: 14px;
}

.about-principles-grid h3,
.about-info-panel h3 {
  margin: 0 0 8px;
  color: var(--colour-text);
  font-size: 1.05rem;
}

.about-principles-grid p,
.about-info-panel p {
  margin: 0;
  color: #50606f;
  line-height: 1.58;
}

.about-independence-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.about-info-panel {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.about-link-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.about-link-grid > a {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 18px;
  gap: 13px;
  align-items: center;
  padding: 18px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fff;
  color: var(--colour-text);
  text-decoration: none;
  transform: none;
}

.about-link-grid > a:hover,
.about-link-grid > a:focus-visible {
  border-color: #b8c8ad;
  background: #f5f8f2;
  transform: none;
}

.about-link-grid > a > i:first-child {
  color: #6f9c59;
}

.about-link-grid strong,
.about-link-grid small {
  display: block;
}

.about-link-grid small {
  margin-top: 4px;
  color: #50606f;
  line-height: 1.45;
}

@media (max-width: 820px) {
  .about-page-header,
  .about-principles-grid,
  .about-independence-grid,
  .about-link-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* R132 — Disclaimer */
.disclaimer-page-header {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}

.disclaimer-page-header h1 {
  margin-bottom: 16px;
  font-size: clamp(2.25rem, 7vw, 3.75rem);
  letter-spacing: -0.035em;
}

.disclaimer-government-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 16px;
  padding: 24px;
  border: 2px solid #477039;
  border-radius: 4px;
  background: #f3f8f0;
}

.disclaimer-government-card > i {
  margin-top: 4px;
  color: #477039;
  font-size: 1.4rem;
}

.disclaimer-government-card .eyebrow {
  color: #477039;
}

.disclaimer-government-card h2 {
  margin: 0 0 10px;
  color: var(--colour-text);
  font-size: clamp(1.45rem, 2.2vw, 1.9rem);
}

.disclaimer-government-card p:last-child {
  margin-bottom: 0;
  color: #42505d;
  line-height: 1.6;
}

.disclaimer-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.disclaimer-info-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 20px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fbfcfa;
}

.disclaimer-info-card > i {
  margin-top: 2px;
  color: #6f9c59;
  font-size: 1.15rem;
}

.disclaimer-info-card h3 {
  margin: 0 0 7px;
  color: var(--colour-text);
  font-size: 1.05rem;
}

.disclaimer-info-card p {
  margin: 0;
  color: #50606f;
  line-height: 1.58;
}

.disclaimer-liability {
  padding: clamp(24px, 4vw, 34px);
  border: 1px solid #d9e2d4;
  border-radius: 4px;
  background: #f7faf5;
}

.disclaimer-link-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.disclaimer-link-grid > a {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 18px;
  gap: 13px;
  align-items: center;
  padding: 18px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fff;
  color: var(--colour-text);
  text-decoration: none;
  transform: none;
}

.disclaimer-link-grid > a:hover,
.disclaimer-link-grid > a:focus-visible {
  border-color: #b8c8ad;
  background: #f5f8f2;
  transform: none;
}

.disclaimer-link-grid > a > i:first-child {
  color: #6f9c59;
}

.disclaimer-link-grid strong,
.disclaimer-link-grid small {
  display: block;
}

.disclaimer-link-grid small {
  margin-top: 4px;
  color: #50606f;
  line-height: 1.45;
}

@media (max-width: 820px) {
  .disclaimer-page-header,
  .disclaimer-grid,
  .disclaimer-link-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* R133 — Contact */
.contact-page-header {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}

.contact-page-header h1 {
  margin-bottom: 16px;
  font-size: clamp(2.25rem, 7vw, 3.75rem);
  letter-spacing: -0.035em;
}

.contact-header-card {
  padding: 24px;
  border-radius: 4px;
  background: linear-gradient(135deg, #233027 0%, #365936 100%);
  color: #fff;
}

.contact-header-card .eyebrow {
  color: #b9d6ad;
}

.contact-header-card h2 {
  margin: 0 0 12px;
  color: #fff;
  font-size: clamp(1.4rem, 2.1vw, 1.8rem);
}

.contact-header-card p:last-child {
  margin-bottom: 0;
  color: rgba(255,255,255,.84);
  line-height: 1.6;
}

.contact-panel .eyebrow,
.contact-form-heading .eyebrow {
  margin-bottom: 8px;
}

.contact-panel-muted h2 {
  color: var(--colour-text);
}

.contact-related-links {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  margin-top: 14px;
}

.contact-related-links a {
  font-weight: 750;
}

.contact-form-section {
  padding: 24px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fff;
}

@media (max-width: 820px) {
  .contact-page-header {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* R134 — Contact related-page cards */
.contact-related-section {
  margin-top: clamp(42px, 6vw, 68px);
}

.contact-link-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.contact-link-grid > a {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 18px;
  gap: 13px;
  align-items: center;
  padding: 18px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fff;
  color: var(--colour-text);
  text-decoration: none;
  transform: none;
}

.contact-link-grid > a:hover,
.contact-link-grid > a:focus-visible {
  border-color: #b8c8ad;
  background: #f5f8f2;
  transform: none;
}

.contact-link-grid > a > i:first-child {
  color: #6f9c59;
}

.contact-link-grid strong,
.contact-link-grid small {
  display: block;
}

.contact-link-grid small {
  margin-top: 4px;
  color: #50606f;
  line-height: 1.45;
}

@media (max-width: 760px) {
  .contact-link-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* R135 — shared premium header-card background.
   Reuses the existing Advertise-page image + dark-green overlay treatment. */
.about-trust-card,
.contact-header-card,
.property-hub-side-card {
  background:
    linear-gradient(135deg, rgb(2 3 1 / 82%), rgb(52 83 38 / 78%)),
    url("../images/hfbg.jpg?v=d") center / cover no-repeat,
    var(--colour-dark);
}


/* R136 — Services directory */
.services-hub-header,.services-category-header{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:clamp(28px,5vw,64px);align-items:start}
.services-hub-header h1,.services-category-header h1{margin-bottom:16px;font-size:clamp(2.25rem,7vw,3.75rem);letter-spacing:-.035em}
.services-hub-summary,.services-category-summary{padding:24px;border-radius:4px;color:#fff;background:linear-gradient(135deg,rgb(2 3 1 / 82%),rgb(52 83 38 / 78%)),url("../images/hfbg.jpg?v=d") center/cover no-repeat,var(--colour-dark)}
.services-hub-summary .eyebrow,.services-category-summary .eyebrow{color:#b9d6ad}
.services-hub-stat{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.16)}
.services-hub-stat strong,.services-hub-stat span,.services-category-count strong,.services-category-count span{display:block}
.services-hub-stat strong,.services-category-count strong{color:#fff;font-size:clamp(1.8rem,4vw,2.7rem);line-height:1}
.services-hub-stat span,.services-category-count span{margin-top:5px;color:rgba(255,255,255,.82);font-weight:700}
.services-hub-summary-note,.services-category-summary>p:last-child{margin:16px 0 0;color:rgba(255,255,255,.84);line-height:1.58}
.services-category-count{margin:12px 0 18px}
.services-directory-search{max-width:680px;margin-top:26px}.services-directory-search>label{display:block;margin-bottom:8px;font-size:.85rem;font-weight:800}.services-directory-search>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.services-directory-search input{min-width:0;height:48px;padding:0 14px;border:1px solid #cfd8ca;border-radius:4px;background:#fff;font:inherit}.services-directory-search-control>button{min-height:48px;padding:0 20px;border:0;border-radius:4px;background:var(--colour-green);color:#fff;font-weight:800;cursor:pointer}.services-directory-search-control>button:hover,.services-directory-search-control>button:focus-visible{background:var(--colour-green-dark)}
.services-section-heading{max-width:830px}.services-category-grid{margin-top:26px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.services-category-card{min-width:0;padding:20px;border:1px solid #dfe5da;border-radius:4px;background:#fff}.services-category-card-heading{display:grid;grid-template-columns:42px minmax(0,1fr);gap:13px;align-items:start}.services-category-card-heading>i{margin-top:2px;color:#6f9c59;font-size:1.15rem}.services-category-card h3{margin:0;font-size:1.08rem}.services-category-card h3 a{color:var(--colour-text);text-decoration:none}.services-category-card h3 a:hover,.services-category-card h3 a:focus-visible{color:var(--colour-green-dark);text-decoration:underline;text-underline-offset:3px}.services-category-card-heading p{margin:4px 0 0;color:#6b7569;font-size:.84rem;font-weight:700}.services-category-description{margin:14px 0 0;color:#50606f;line-height:1.55}.services-category-sample{margin-top:16px;padding-top:14px;border-top:1px solid #e4e9e1}.services-category-sample>span{display:block;margin-bottom:8px;color:#7a8478;font-size:.72rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.services-category-sample>div{display:flex;flex-wrap:wrap;gap:7px}.services-category-sample a{padding:6px 9px;border-radius:4px;background:#edf3e9;color:var(--colour-text);font-size:.83rem;font-weight:750;text-decoration:none}.services-category-sample a:hover,.services-category-sample a:focus-visible{background:#dfead9}.services-category-action{display:inline-flex;gap:8px;align-items:center;margin-top:17px;color:var(--colour-green-dark);font-weight:800;text-decoration:none}.services-category-action:hover,.services-category-action:focus-visible{text-decoration:underline;text-underline-offset:3px}
.services-provider-grid,.services-sponsored-grid{margin-top:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.services-provider-card{min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:20px;border:1px solid #dfe5da;border-radius:4px;background:#fff}.services-provider-card h3{margin:0;font-size:1.08rem}.services-provider-card h3 a,.services-sponsored-card h3 a{color:var(--colour-text);text-decoration:none}.services-provider-card h3 a:hover,.services-provider-card h3 a:focus-visible{color:var(--colour-green-dark);text-decoration:underline;text-underline-offset:3px}.services-provider-card p{margin:8px 0 0;color:#50606f;line-height:1.55}.services-provider-meta{color:#737d70!important;font-size:.85rem}.services-provider-profile-link,.services-sponsored-action{display:inline-flex;gap:8px;align-items:center;width:fit-content;color:var(--colour-green-dark);font-weight:800;text-decoration:none}.services-provider-profile-link:hover,.services-provider-profile-link:focus-visible,.services-sponsored-action:hover,.services-sponsored-action:focus-visible{text-decoration:underline;text-underline-offset:3px}.services-listing-badge,.services-sponsored-label{display:inline-block;width:fit-content;margin-bottom:9px;padding:5px 8px;border-radius:4px;background:#edf3e9;color:#476e37;font-size:.72rem;font-weight:850;letter-spacing:.035em;text-transform:uppercase}.services-sponsored-card{min-width:0;padding:20px;border:1px solid #b9cdae;border-radius:4px;background:#f5f9f2}.services-sponsored-card h3{margin:0;font-size:1.1rem}.services-sponsored-card p{color:#50606f;line-height:1.55}.services-sponsored-sponsor{border-width:2px;border-color:#739a62}.services-category-back-link{margin-top:20px}.services-category-back-link a{display:inline-flex;gap:8px;align-items:center;font-weight:750}
.services-business-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;padding:clamp(24px,4vw,34px);border:1px solid #dce5d7;border-radius:4px;background:#f6f9f4}.services-business-cta h2{margin-bottom:8px}.services-business-cta p:last-child{margin-bottom:0}.services-business-actions{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end}.services-business-actions a{display:inline-flex;align-items:center;min-height:44px;padding:9px 14px;border:1px solid #cfd8ca;border-radius:4px;color:var(--colour-text);font-weight:800;text-decoration:none}.services-business-actions a:hover,.services-business-actions a:focus-visible{border-color:#9fb294;background:#fff}.services-business-actions .services-business-action-primary{border-color:var(--colour-green);background:var(--colour-green);color:#fff}.services-business-actions .services-business-action-primary:hover,.services-business-actions .services-business-action-primary:focus-visible{background:var(--colour-green-dark);color:#fff}.services-empty-state{padding:20px;border:1px solid #dfe5da;border-radius:4px;background:#fbfcfa}
.service-provider-category-list a{color:inherit;text-decoration:none}.service-provider-category-list a:hover,.service-provider-category-list a:focus-visible{text-decoration:underline;text-underline-offset:2px}
@media(max-width:860px){.services-hub-header,.services-category-header,.services-business-cta{grid-template-columns:minmax(0,1fr)}.services-business-actions{justify-content:flex-start}}@media(max-width:760px){.services-category-grid,.services-provider-grid,.services-sponsored-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:520px){.services-directory-search>div{grid-template-columns:minmax(0,1fr)}.services-directory-search-control>button{width:100%}}


/* R137 — Services search autocomplete */
.services-directory-search-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.services-directory-autocomplete {
  position: relative;
  min-width: 0;
}

.services-directory-autocomplete > input {
  width: 100%;
}

.services-directory-suggestions {
  position: absolute;
  z-index: 40;
  top: calc(100% + 7px);
  left: 0;
  right: 0;
  overflow: hidden;
  border: 1px solid #cbd5c7;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 16px 34px rgb(30 47 27 / 16%);
}

.services-directory-suggestion {
  width: 100%;
  padding: 11px 14px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  border: 0;
  border-bottom: 1px solid #e5ebe2;
  background: #fff;
  color: #283327;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.services-directory-suggestion:last-child {
  border-bottom: 0;
}

.services-directory-suggestion:hover,
.services-directory-suggestion.is-active,
.services-directory-suggestion[aria-selected="true"] {
  background: #f0f5ed;
}

.services-directory-suggestion > i {
  color: var(--colour-green);
  text-align: center;
}

.services-directory-suggestion > span {
  min-width: 0;
}

.services-directory-suggestion strong,
.services-directory-suggestion small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.services-directory-suggestion strong {
  color: #283327;
  font-size: .92rem;
}

.services-directory-suggestion small {
  margin-top: 2px;
  color: #6b7569;
  font-size: .76rem;
}

@media (max-width: 520px) {
  .services-directory-search-control {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* R139 — Property autocomplete aligned with Services dropdown */
.property-search-suggestion:hover strong,
.property-search-suggestion:focus-visible strong,
.property-search-suggestion.is-active strong,
.property-search-suggestion[aria-selected="true"] strong {
  color: #20301f;
}

.property-search-suggestion:hover small,
.property-search-suggestion:focus-visible small,
.property-search-suggestion.is-active small,
.property-search-suggestion[aria-selected="true"] small {
  color: #586654;
}


/* R144 — Updates catalogue and articles */
.updates-header {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(330px, .88fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}

.updates-header h1,
.update-article-header h1 {
  margin-bottom: 16px;
  font-size: clamp(2.25rem, 7vw, 3.75rem);
  letter-spacing: -0.035em;
}

.updates-subscribe-card,
.update-article-side-card {
  padding: 24px;
  border-radius: 4px;
  color: #fff;
  background:
    linear-gradient(135deg, rgb(2 3 1 / 82%), rgb(52 83 38 / 78%)),
    url("../images/hfbg.jpg?v=d") center / cover no-repeat,
    var(--colour-dark);
}

.updates-subscribe-card .eyebrow,
.update-article-side-card .eyebrow {
  color: #b9d6ad;
}

.updates-subscribe-card h2,
.update-article-side-card h2 {
  margin: 0 0 10px;
  color: #fff;
  font-size: clamp(1.35rem, 2.1vw, 1.75rem);
}

.updates-subscribe-card p:not(.eyebrow),
.update-article-side-card p:not(.eyebrow) {
  color: rgba(255,255,255,.82);
  line-height: 1.58;
}

.updates-subscribe-card > a,
.update-article-side-card > a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}

.updates-subscribe-card > a:hover,
.updates-subscribe-card > a:focus-visible,
.update-article-side-card > a:hover,
.update-article-side-card > a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.updates-filter-section {
  margin-top: clamp(38px, 6vw, 62px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .7fr);
  gap: clamp(24px, 4vw, 44px);
  align-items: end;
  padding: clamp(22px, 4vw, 30px);
  border: 1px solid #dce5d7;
  border-radius: 4px;
  background: #f6f9f4;
}

.updates-filter-section h2 {
  margin-bottom: 8px;
}

.updates-filter-section p:last-child {
  margin-bottom: 0;
  color: #50606f;
}

.updates-filter-form label {
  display: block;
  margin-bottom: 8px;
  font-size: .86rem;
  font-weight: 800;
}

.updates-filter-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.updates-filter-control select {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 0 38px 0 13px;
  border: 1px solid #cbd5c7;
  border-radius: 4px;
  background: #fff;
  color: var(--colour-text);
  font: inherit;
}

.updates-filter-control > button {
  min-height: 48px;
  padding: 0 18px;
  border: 0;
  border-radius: 4px;
  background: var(--colour-green);
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.updates-filter-control > button:hover,
.updates-filter-control > button:focus-visible {
  background: var(--colour-green-dark);
}

.updates-archive-heading {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  justify-content: space-between;
}

.updates-archive-heading > div {
  max-width: 800px;
}

.updates-archive-heading h2 {
  margin-bottom: 8px;
}

.updates-archive-count {
  flex: 0 0 auto;
  min-width: 130px;
  margin: 0;
  padding: 14px 16px;
  border-radius: 4px;
  background: #eef3eb;
  text-align: center;
}

.updates-archive-count strong,
.updates-archive-count span {
  display: block;
}

.updates-archive-count strong {
  color: #2f512b;
  font-size: 1.5rem;
  line-height: 1;
}

.updates-archive-count span {
  margin-top: 5px;
  color: #647061;
  font-size: .75rem;
  font-weight: 750;
}

.updates-list {
  margin-top: 26px;
  display: grid;
  gap: 14px;
}

.updates-card {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 20px;
  padding: 20px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fff;
  transform: none;
}

.updates-card:hover {
  border-color: #b8c8ad;
  background: #fbfcfa;
  transform: none;
}

.updates-card-date {
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.updates-card-date time {
  width: 68px;
  padding: 10px 8px;
  border-radius: 4px;
  background: #eef3eb;
  text-align: center;
}

.updates-card-date time span,
.updates-card-date time strong,
.updates-card-date time small {
  display: block;
}

.updates-card-date time span {
  color: #647061;
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.updates-card-date time strong {
  margin: 2px 0;
  color: #2f512b;
  font-size: 1.55rem;
  line-height: 1;
}

.updates-card-date time small {
  color: #647061;
  font-size: .72rem;
  font-weight: 750;
}

.updates-card-date-fallback {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #eef3eb;
  color: var(--colour-green);
}

.updates-card-content {
  min-width: 0;
}

.updates-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  margin-bottom: 8px;
}

.updates-card-meta > span,
.updates-card-category {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 4px 8px;
  border-radius: 4px;
  background: #f1f4ef;
  color: #657061;
  font-size: .72rem;
  font-weight: 800;
  text-decoration: none;
}

.updates-card-category {
  background: #e5efe0;
  color: #406139;
}

.updates-card-category:hover,
.updates-card-category:focus-visible {
  background: #d8e8d1;
  color: #2d4b28;
}

.updates-card h3 {
  margin: 0 0 8px;
  font-size: clamp(1.2rem, 2.1vw, 1.5rem);
}

.updates-card h3 a {
  color: var(--colour-text);
  text-decoration: none;
}

.updates-card h3 a:hover,
.updates-card h3 a:focus-visible {
  color: var(--colour-green-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.updates-card p {
  margin: 0;
  color: #50606f;
  line-height: 1.58;
}

.updates-card-action {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin-top: 14px;
  color: var(--colour-green-dark);
  font-weight: 800;
  text-decoration: none;
}

.updates-card-action:hover,
.updates-card-action:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.updates-empty-state {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 13px;
  align-items: start;
  padding: 22px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fbfcfa;
}

.updates-empty-state > i {
  margin-top: 4px;
  color: #6f9c59;
}

.updates-empty-state h3 {
  margin: 0 0 6px;
}

.updates-empty-state p {
  margin: 0;
  color: #50606f;
}

.updates-explainer {
  display: grid;
  grid-template-columns: minmax(230px, .65fr) minmax(0, 1.35fr);
  gap: 28px;
  padding: clamp(22px, 4vw, 30px);
  border: 1px solid #dce5d7;
  border-radius: 4px;
  background: #f6f9f4;
}

.updates-explainer h2,
.updates-explainer p {
  margin-bottom: 0;
}

.update-article-header {
  max-width: 980px;
}

.update-article-back {
  margin-bottom: 24px;
}

.update-article-back a {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  font-weight: 750;
}

.update-article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
  margin-bottom: 12px;
  color: #657061;
  font-size: .82rem;
  font-weight: 750;
}

.update-article-meta > span:first-child {
  padding: 5px 9px;
  border-radius: 4px;
  background: #e5efe0;
  color: #406139;
}

.update-article-summary {
  max-width: 880px;
  margin: 0;
  color: #3e4b40;
  font-size: clamp(1.08rem, 2.2vw, 1.3rem);
  line-height: 1.62;
}

.update-article-categories {
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.update-article-categories a {
  padding: 6px 9px;
  border-radius: 4px;
  background: #f0f4ee;
  color: #486144;
  font-size: .78rem;
  font-weight: 800;
  text-decoration: none;
}

.update-article-categories a:hover,
.update-article-categories a:focus-visible {
  background: #e2ebde;
}

.update-article-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr);
  gap: clamp(34px, 6vw, 70px);
  align-items: start;
}

.update-article-main {
  min-width: 0;
}

.update-article-side-card {
  position: sticky;
  top: 24px;
}

.update-article-body {
  max-width: 840px;
  color: #354137;
  font-size: 1.02rem;
  line-height: 1.75;
}

.update-article-body p {
  margin: 0 0 1.25em;
}

.update-article-body p:last-child {
  margin-bottom: 0;
}

.update-article-section,
.update-correction-note {
  margin-top: clamp(38px, 6vw, 58px);
}

.update-article-section-heading {
  max-width: 790px;
}

.update-article-section-heading h2 {
  margin-bottom: 8px;
}

.update-article-sources ul {
  margin: 20px 0 0;
  padding: 0;
  display: grid;
  gap: 10px;
  list-style: none;
}

.update-article-sources li {
  padding: 16px 18px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fbfcfa;
}

.update-article-sources li span,
.update-article-sources li a,
.update-article-sources li small {
  display: block;
}

.update-article-sources li span {
  margin-bottom: 4px;
  color: #6d786b;
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.update-article-sources li a {
  color: var(--colour-text);
  font-weight: 800;
  text-decoration: none;
}

.update-article-sources li a:hover,
.update-article-sources li a:focus-visible {
  color: var(--colour-green-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.update-article-sources li small {
  margin-top: 5px;
  color: #657061;
}

.update-correction-note {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 14px;
  padding: 20px;
  border: 1px solid #d7cda7;
  border-radius: 4px;
  background: #fbf9ef;
}

.update-correction-note > i {
  margin-top: 5px;
  color: #8c7434;
}

.update-correction-note h2 {
  margin: 0 0 7px;
  font-size: 1.2rem;
}

.update-correction-note p:last-of-type {
  margin-bottom: 4px;
}

.update-article-footer-note {
  margin-top: 22px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  color: #5d685b;
  font-size: .86rem;
}

.update-article-footer-note > i {
  margin-top: 3px;
  color: #6f9c59;
}

.update-article-footer-note p {
  margin: 0;
}

@media (max-width: 900px) {
  .updates-header,
  .updates-filter-section,
  .updates-explainer,
  .update-article-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .update-article-side-card {
    position: static;
  }
}

@media (max-width: 680px) {
  .updates-archive-heading {
    display: block;
  }

  .updates-archive-count {
    width: fit-content;
    min-width: 120px;
    margin-top: 18px;
  }

  .updates-card {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
    padding: 17px;
  }

  .updates-card-date time {
    width: 54px;
    padding: 9px 5px;
  }

  .updates-card-date time strong {
    font-size: 1.3rem;
  }
}

@media (max-width: 520px) {
  .updates-filter-control {
    grid-template-columns: minmax(0, 1fr);
  }

  .updates-filter-control > button {
    width: 100%;
  }

  .updates-card {
    grid-template-columns: minmax(0, 1fr);
  }

  .updates-card-date {
    justify-content: flex-start;
  }

  .updates-card-date time {
    width: auto;
    display: inline-flex;
    gap: 5px;
    align-items: baseline;
    padding: 7px 10px;
  }

  .updates-card-date time span,
  .updates-card-date time strong,
  .updates-card-date time small {
    display: inline;
    font-size: .78rem;
    line-height: 1;
  }
}


/* R145 — Updates spacing and catalogue flow */
.updates-header-subscribe-link {
  margin: 18px 0 0;
}

.updates-header-subscribe-link a {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: var(--colour-green-dark);
  font-weight: 800;
  text-decoration: none;
}

.updates-header-subscribe-link a:hover,
.updates-header-subscribe-link a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* The generic header keeps its divider and 32px post-divider spacing.
   The first banner now sits directly in that position. */
.updates-page > .site-banner {
  margin-bottom: 26px;
}

/* After the banner, the selector becomes part of the catalogue rather than
   another widely separated page section. */
.updates-page > .site-banner + .updates-filter-section {
  margin-top: 0;
}

.updates-filter-section + .updates-archive {
  margin-top: 24px;
}

/* Individual update pages previously had no top margin before either ad. */
.update-article-ad {
  margin-top: 42px;
}

.update-article-ad:empty {
  display: none;
}

.update-article-ad > .site-banner {
  margin-bottom: 40px;
}

.update-article-ad-top {
  margin-top: 34px;
}

.update-article-ad-bottom {
  margin-top: 44px;
}


/* R146 — Updates catalogue bottom-ad spacing */
.updates-archive + .site-banner {
  margin-top: 42px;
}


/* R149 — Homepage */
.home-page {
  --home-ink: #172018;
  --home-muted: #536052;
}

/* R162 — full-width heading above the two-column hero content. */
.home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(390px, .98fr);
  column-gap: clamp(32px, 6vw, 76px);
  row-gap: clamp(26px, 4vw, 38px);
  align-items: start;
  padding-bottom: clamp(44px, 7vw, 72px);
  border-bottom: 1px solid #dfe3dc;
}

.home-hero-heading {
  grid-column: 1 / -1;
}

.home-hero-heading h1 {
  max-width: none;
  margin-bottom: 0;
  font-size: clamp(2.6rem, 6.8vw, 4.9rem);
  letter-spacing: -0.045em;
  line-height: .98;
}

.home-hero-heading h1 span {
  display: block;
}

.home-hero-intro {
  max-width: 720px;
  color: #3f4b41;
  font-size: clamp(1.08rem, 2.2vw, 1.32rem);
  line-height: 1.58;
}

.home-property-search {
  max-width: 760px;
  margin-top: 30px;
}

.home-property-search > label {
  display: block;
  margin-bottom: 9px;
  color: var(--home-ink);
  font-size: .9rem;
  font-weight: 850;
}

.home-property-search-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 9px;
}

.home-property-autocomplete {
  min-width: 0;
}

.home-property-search-control input {
  width: 100%;
  min-width: 0;
  min-height: 54px;
  padding: 0 16px;
  border: 1px solid #cbd5c7;
  border-radius: 4px;
  background: #fff;
  color: var(--home-ink);
  font: inherit;
}

.home-property-search-control input:focus {
  outline: 3px solid rgb(96 132 79 / 18%);
  border-color: #6d8e5e;
}

.home-property-search-control > button {
  min-height: 54px;
  padding: 0 20px;
  display: inline-flex;
  gap: 9px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 4px;
  background: var(--colour-green);
  color: #fff;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}

.home-property-search-control > button:hover,
.home-property-search-control > button:focus-visible {
  background: var(--colour-green-dark);
}

.home-property-search > p {
  margin: 8px 0 0;
  color: #687265;
  font-size: .82rem;
}

.home-property-search > p strong {
  color: #3e4c3d;
}

.home-hero-actions {
  margin-top: 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.home-action {
  min-height: 44px;
  padding: 9px 14px;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  border: 1px solid #cbd5c7;
  border-radius: 4px;
  color: var(--home-ink);
  font-weight: 800;
  text-decoration: none;
}

.home-action:hover,
.home-action:focus-visible {
  border-color: #9fb294;
  background: #f5f8f2;
}

.home-action-primary {
  border-color: var(--colour-green);
  background: var(--colour-green);
  color: #fff;
}

.home-action-primary:hover,
.home-action-primary:focus-visible {
  background: var(--colour-green-dark);
  color: #fff;
}

.home-pda-map-card {
  position: relative;
  overflow: hidden;
  display: block;
  border: 1px solid #d7dfd3;
  border-radius: 4px;
  background: #f4f7f2;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 18px 46px rgb(30 47 27 / 10%);
  transform: none;
}

.home-pda-map-card:hover,
.home-pda-map-card:focus-visible {
  border-color: #9eb492;
  transform: none;
}

.home-pda-map-card img {
  width: 100%;
  height: auto;
  display: block;
}

.home-pda-map-card > span {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  padding: 13px 15px;
  border-radius: 4px;
  background: rgb(20 33 20 / 88%);
  backdrop-filter: blur(5px);
}

.home-pda-map-card strong,
.home-pda-map-card small {
  display: block;
  color: #fff;
}

.home-pda-map-card strong {
  font-size: .95rem;
}

.home-pda-map-card small {
  margin-top: 3px;
  color: rgba(255,255,255,.78);
}

.home-introduction {
  margin-top: clamp(42px, 7vw, 68px);
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
  gap: clamp(28px, 5vw, 58px);
  align-items: start;
}

.home-introduction h2,
.home-section-heading h2,
.home-services-panel h2,
.home-trust-panel h2 {
  margin-bottom: 12px;
  font-size: clamp(1.65rem, 3.7vw, 2.35rem);
  letter-spacing: -0.025em;
}

.home-introduction > div > p:last-of-type {
  max-width: 800px;
  color: var(--home-muted);
  line-height: 1.68;
}

.home-introduction-links,
.home-trust-links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.home-introduction-links a,
.home-trust-links a {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  color: var(--colour-green-dark);
  font-weight: 800;
  text-decoration: none;
}

.home-introduction-links a:hover,
.home-introduction-links a:focus-visible,
.home-trust-links a:hover,
.home-trust-links a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.home-independent-note {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 13px;
  padding: 20px;
  border: 1px solid #dce5d7;
  border-radius: 4px;
  background: #f6f9f4;
}

.home-independent-note > i {
  margin-top: 4px;
  color: #6f9c59;
}

.home-independent-note strong {
  display: block;
  margin-bottom: 5px;
}

.home-independent-note p {
  margin: 0;
  color: #596558;
  font-size: .88rem;
  line-height: 1.55;
}

.home-independent-note a {
  display: inline-block;
  margin-top: 10px;
  color: var(--colour-green-dark);
  font-size: .84rem;
  font-weight: 800;
}

.home-site-snapshot {
  margin: clamp(32px, 5vw, 48px) 0 40px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid #dce5d7;
  border-radius: 4px;
  background: #dce5d7;
}

.home-site-snapshot > div {
  min-width: 0;
  padding: 20px 16px;
  background: #f7f9f5;
  text-align: center;
}

.home-site-snapshot strong,
.home-site-snapshot span {
  display: block;
}

.home-site-snapshot strong {
  color: #2f512b;
  font-size: clamp(1.65rem, 4vw, 2.45rem);
  line-height: 1;
}

.home-site-snapshot span {
  margin-top: 7px;
  color: #657061;
  font-size: .78rem;
  font-weight: 750;
}

.home-page > .site-banner {
  margin-top: 0;
  margin-bottom: clamp(48px, 7vw, 72px);
}

.home-section {
  margin-top: clamp(60px, 8vw, 92px);
}

.home-section-heading {
  max-width: 850px;
}

.home-section-heading > p:last-child {
  margin-bottom: 0;
  color: var(--home-muted);
  line-height: 1.62;
}

.home-feature-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.home-feature-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 14px;
  padding: 22px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fff;
  color: var(--home-ink);
  text-decoration: none;
  transform: none;
}

.home-feature-card:hover,
.home-feature-card:focus-visible {
  border-color: #b8c8ad;
  background: #f7faf5;
  transform: none;
}

.home-feature-card > i {
  margin-top: 3px;
  color: #6f9c59;
  font-size: 1.2rem;
}

.home-feature-card .eyebrow {
  margin-bottom: 5px;
}

.home-feature-card h3 {
  margin: 0 0 8px;
  color: var(--home-ink);
  font-size: 1.15rem;
}

.home-feature-card p:not(.eyebrow) {
  margin: 0;
  color: #50606f;
  line-height: 1.55;
}

.home-feature-card span {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin-top: 14px;
  color: var(--colour-green-dark);
  font-size: .85rem;
  font-weight: 800;
}

.home-section-action {
  margin: 20px 0 0;
}

.home-section-action a {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: var(--colour-green-dark);
  font-weight: 850;
  text-decoration: none;
}

.home-section-action a:hover,
.home-section-action a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.home-section-heading-split {
  max-width: none;
  display: flex;
  gap: 28px;
  align-items: flex-end;
  justify-content: space-between;
}

.home-section-heading-split > div:first-child {
  max-width: 820px;
}

.home-updates-heading-actions {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  justify-content: flex-end;
}

.home-updates-heading-actions a {
  color: var(--colour-green-dark);
  font-weight: 800;
  text-decoration: none;
}

.home-updates-heading-actions a:hover,
.home-updates-heading-actions a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.home-update-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.home-update-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 20px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fff;
}

.home-update-card-meta {
  min-height: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-bottom: 10px;
}

.home-update-card-meta time,
.home-update-card-meta a {
  padding: 5px 8px;
  border-radius: 4px;
  background: #f0f4ee;
  color: #657061;
  font-size: .7rem;
  font-weight: 800;
  text-decoration: none;
}

.home-update-card-meta a {
  background: #e5efe0;
  color: #406139;
}

.home-update-card-meta a:hover,
.home-update-card-meta a:focus-visible {
  background: #d8e8d1;
}

.home-update-card h3 {
  margin: 0 0 9px;
  font-size: 1.08rem;
  line-height: 1.35;
}

.home-update-card h3 a {
  color: var(--home-ink);
  text-decoration: none;
}

.home-update-card h3 a:hover,
.home-update-card h3 a:focus-visible {
  color: var(--colour-green-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.home-update-card p {
  margin: 0;
  color: #50606f;
  font-size: .9rem;
  line-height: 1.55;
}

.home-update-card-action {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  width: fit-content;
  margin-top: auto;
  padding-top: 16px;
  color: var(--colour-green-dark);
  font-size: .84rem;
  font-weight: 800;
  text-decoration: none;
}

.home-update-card-action:hover,
.home-update-card-action:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.home-empty-state {
  grid-column: 1 / -1;
  padding: 20px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fbfcfa;
}

.home-empty-state p {
  margin: 0;
}

.home-topic-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 11px;
}

.home-topic-grid a {
  min-width: 0;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  padding: 15px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fbfcfa;
  color: var(--home-ink);
  font-weight: 800;
  text-decoration: none;
  transform: none;
}

.home-topic-grid a:hover,
.home-topic-grid a:focus-visible {
  border-color: #b8c8ad;
  background: #f3f7f0;
  transform: none;
}

.home-topic-grid i {
  color: #6f9c59;
}

.home-explore-section + .site-banner {
  margin-top: clamp(48px, 7vw, 72px);
}

.home-bottom-grid {
  margin-top: clamp(60px, 8vw, 92px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.home-services-panel,
.home-trust-panel {
  min-width: 0;
  padding: clamp(24px, 4vw, 32px);
  border: 1px solid #dce5d7;
  border-radius: 4px;
}

.home-services-panel {
  background: #f6f9f4;
}

.home-trust-panel {
  background:
    linear-gradient(135deg, rgb(2 3 1 / 91%), rgb(52 83 38 / 87%)),
    url("../images/hfbg.jpg?v=d") center / cover no-repeat,
    var(--colour-dark);
  color: #fff;
}

.home-services-panel > p:not(.eyebrow),
.home-trust-panel > p:not(.eyebrow) {
  line-height: 1.6;
}

.home-services-panel > p:not(.eyebrow) {
  color: #536052;
}

.home-trust-panel .eyebrow {
  color: #b9d6ad;
}

.home-trust-panel h2,
.home-trust-panel > p:not(.eyebrow) {
  color: #fff;
}

.home-trust-panel > p:not(.eyebrow) {
  color: rgba(255,255,255,.82);
}

.home-service-links {
  margin: 20px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.home-service-links a {
  padding: 7px 10px;
  border-radius: 4px;
  background: #e7efe2;
  color: #334d30;
  font-size: .8rem;
  font-weight: 800;
  text-decoration: none;
}

.home-service-links a:hover,
.home-service-links a:focus-visible {
  background: #d9e7d3;
}

.home-panel-action {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: var(--colour-green-dark);
  font-weight: 850;
  text-decoration: none;
}

.home-panel-action:hover,
.home-panel-action:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.home-trust-links a {
  color: #fff;
}

@media (max-width: 980px) {
  .home-hero {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-pda-map-card {
    max-width: 720px;
  }

  .home-site-snapshot,
  .home-topic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-update-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-update-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}

@media (max-width: 820px) {
  .home-introduction,
  .home-bottom-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-section-heading-split {
    display: block;
  }

  .home-updates-heading-actions {
    margin-top: 14px;
    justify-content: flex-start;
  }
}

@media (max-width: 700px) {
  .home-feature-grid,
  .home-update-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-update-card:last-child:nth-child(odd) {
    grid-column: auto;
  }
}

@media (max-width: 560px) {
  .home-property-search-control,
  .home-site-snapshot,
  .home-topic-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-property-search-control > button {
    width: 100%;
  }

  .home-hero-heading h1 {
    font-size: clamp(2.45rem, 13vw, 3.75rem);
  }
}


/* R150 — Homepage hero CTA contrast */
.home-action-primary,
.home-action-primary:visited,
.home-action-primary:hover,
.home-action-primary:focus-visible,
.home-action-primary i,
.home-action-primary:visited i,
.home-action-primary:hover i,
.home-action-primary:focus-visible i {
  color: #fff;
}


/* R152 — requested advertising spacing */
.maps-download-section + .site-banner {
  margin-top: 42px;
}

.maps-download-section + .site-banner + .maps-builder-section {
  margin-top: 0;
}

.property-guide-page > .professional-help-section + .site-banner {
  margin-top: 42px;
}

.property-guide-page > .site-banner + .official-sources-section {
  margin-top: 0;
}


/* R152 — direct/system horizontal banner sizing.
   1024 × 140 is the recommended direct creative ratio, not a fixed height. */
.site-banner-link,
.site-banner-link:visited {
  width: 100%;
  max-width: 1024px;
}

.site-banner-link picture,
.site-banner-image {
  width: 100%;
}

.site-banner-image {
  height: auto;
}


/* Website R171 — Relevance-ranked global site search */
.site-search-header {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(330px, .88fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}

.site-search-header h1 {
  margin-bottom: 16px;
  font-size: clamp(2.25rem, 7vw, 3.75rem);
  letter-spacing: -0.035em;
}

.site-search-header-card {
  padding: 24px;
  border-radius: 4px;
  color: #fff;
  background:
    linear-gradient(135deg, rgb(2 3 1 / 82%), rgb(52 83 38 / 78%)),
    url("../images/hfbg.jpg?v=d") center / cover no-repeat,
    var(--colour-dark);
}

.site-search-header-card .eyebrow {
  color: #b9d6ad;
}

.site-search-header-card h2 {
  margin: 0 0 10px;
  color: #fff;
  font-size: clamp(1.35rem, 2.1vw, 1.75rem);
}

.site-search-header-card p:not(.eyebrow) {
  color: rgba(255,255,255,.82);
  line-height: 1.58;
}

.site-search-header-card a,
.site-search-header-card a:visited {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}

.site-search-header-card a:hover,
.site-search-header-card a:focus-visible {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-search-page-form {
  max-width: 900px;
  margin-top: 36px;
}

/* Query mode: keep the search field/results prominent and remove the landing-page hero. */
.site-search-page.has-query .site-search-header {
  display: none;
}

.site-search-page.has-query .site-search-page-form {
  margin-top: 0;
}

.site-search-page-form > label {
  display: block;
  margin-bottom: 8px;
  font-size: .88rem;
  font-weight: 850;
}

.site-search-page-form > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 9px;
}

.site-search-page-form input {
  min-width: 0;
  min-height: 54px;
  padding: 0 16px;
  border: 1px solid #cbd5c7;
  border-radius: 4px;
  background: #fff;
  color: var(--colour-text);
  font: inherit;
}

.site-search-page-form input:focus {
  outline: 3px solid rgb(96 132 79 / 18%);
  border-color: #6d8e5e;
}

.site-search-page-form > div > button {
  min-height: 54px;
  padding: 0 20px;
  display: inline-flex;
  gap: 9px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 4px;
  background: var(--colour-green);
  color: #fff;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}

.site-search-page-form > div > button:hover,
.site-search-page-form > div > button:focus-visible {
  background: var(--colour-green-dark);
}

.site-search-intro-message,
.site-search-results-summary {
  max-width: 900px;
  margin-top: 34px;
  padding: 22px;
  border: 1px solid #dce5d7;
  border-radius: 4px;
  background: #f6f9f4;
}

.site-search-intro-message {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 13px;
  align-items: start;
}

.site-search-intro-message > i {
  margin-top: 5px;
  color: #6f9c59;
}

.site-search-intro-message h2,
.site-search-results-summary h2 {
  margin: 0 0 7px;
}

.site-search-intro-message p,
.site-search-results-summary p:last-child {
  margin-bottom: 0;
  color: #50606f;
}

.site-search-results {
  max-width: 900px;
  margin-top: 24px;
}

.site-search-result-list {
  display: block;
  border-top: 1px solid #e2e7de;
}

.site-search-result {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 22px 0 24px;
  border-bottom: 1px solid #e2e7de;
}

.site-search-result-icon {
  width: 36px;
  height: 36px;
  margin-top: 2px;
  display: grid;
  place-items: center;
  border-radius: 4px;
  background: #edf3e9;
  color: #5f8750;
}

.site-search-result-type {
  margin: 0 0 4px;
  color: #667265;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .025em;
}

.site-search-result h3 {
  margin: 0;
  font-size: clamp(1.14rem, 2vw, 1.34rem);
  line-height: 1.3;
}

.site-search-result h3 a,
.site-search-result h3 a:visited {
  color: var(--colour-green-dark);
  text-decoration: none;
}

.site-search-result h3 a:hover,
.site-search-result h3 a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.site-search-result-url {
  margin: 5px 0 0;
  color: #74806f;
  font-size: .76rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.site-search-result-description {
  max-width: 760px;
  margin: 7px 0 0;
  color: #4f5c50;
  font-size: .91rem;
  line-height: 1.55;
}

.site-search-help {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.site-search-help a {
  padding: 14px 16px;
  border: 1px solid #dfe5da;
  border-radius: 4px;
  background: #fff;
  color: var(--colour-text);
  font-weight: 800;
  text-decoration: none;
}

.site-search-help a:hover,
.site-search-help a:focus-visible {
  border-color: #b8c8ad;
  background: #f5f8f2;
}

#document-proposed-southern-thornlands-pda-development-scheme-2026,
[id^="document-"] {
  scroll-margin-top: 24px;
}

@media (max-width: 820px) {
  .site-search-header {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 560px) {
  .site-search-page-form > div,
  .site-search-help {
    grid-template-columns: minmax(0, 1fr);
  }

  .site-search-page-form > div > button {
    width: 100%;
  }

  .site-search-result {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 11px;
  }

  .site-search-result-icon {
    width: 30px;
    height: 30px;
    border-radius: 4px;
    font-size: .82rem;
  }
}

/* Website R166: custom high-resolution PDA map builder. */
.maps-builder-page { --builder-panel: #f6f8f3; }
.maps-builder-header { margin-bottom: 28px; }
.maps-builder-summary { align-self: stretch; }
.maps-builder-property-context {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 28px 0 0;
  padding: 15px 18px;
  border: 1px solid rgb(63 101 47 / 18%);
  border-radius: 4px;
  background: #f3f7ef;
}
.maps-builder-property-context > i { color: var(--green-dark); font-size: 1.2rem; }
.maps-builder-property-context div { display: grid; gap: 2px; min-width: 0; flex: 1; }
.maps-builder-property-context span { color: var(--text-light); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.maps-builder-property-context strong { color: var(--text); }
.maps-builder-property-context a { color: var(--green-dark); font-weight: 750; text-decoration: none; }
.maps-builder-property-context a:hover { text-decoration: underline; }

.maps-builder-workspace {
  display: grid;
  grid-template-columns: minmax(260px, 330px) minmax(0, 1fr);
  gap: 28px;
  margin-top: 30px;
  align-items: start;
}
.maps-builder-control-column {
  overflow: hidden;
  border: 1px solid rgb(63 101 47 / 16%);
  border-radius: 4px;
  background: #fff;
}
.maps-builder-control-intro { padding: 20px 20px 17px; border-bottom: 1px solid #e5e9e2; background: #f8faf6; }
.maps-builder-control-intro h2 { margin: 3px 0 8px; }
.maps-builder-control-intro p:last-child { margin-bottom: 0; color: var(--text-light); font-size: .9rem; }
.maps-builder-control-group { padding: 16px 18px; border-bottom: 1px solid #e8ebe6; }
.maps-builder-control-group:last-child { border-bottom: 0; }
.maps-builder-control-heading { display: grid; gap: 2px; margin-bottom: 10px; }
.maps-builder-control-heading strong { color: var(--text); }
.maps-builder-control-heading span { color: var(--text-light); font-size: .78rem; }
.maps-builder-check {
  display: flex;
  align-items: center;
  min-height: 34px;
  gap: 9px;
  color: #344032;
  font-size: .9rem;
  cursor: pointer;
}
.maps-builder-check input { width: 17px; height: 17px; margin: 0; accent-color: var(--green-dark); }
.maps-builder-check > span:last-child { min-width: 0; }
.maps-builder-swatch {
  display: inline-block;
  width: 20px;
  height: 12px;
  flex: 0 0 auto;
  border-radius: 4px;
  border: 1px solid #748071;
  background: #edf0ea;
}
.maps-builder-swatch-pda { height: 4px; border: 0; border-radius: 0; background: #355e2b; }
.maps-builder-swatch-parcel { background: #eef1eb; border-color: #929b8e; }
.maps-builder-swatch-existing-road { height: 4px; border: 0; border-radius: 0; background: #7a8077; }
.maps-builder-swatch-waterway { height: 4px; border: 0; border-radius: 0; background: #4d8089; }
.maps-builder-compact-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.maps-builder-small-button,
.maps-builder-share-button {
  border: 1px solid #c8d0c4;
  border-radius: 4px;
  color: #31412e;
  background: #fff;
  font: inherit;
  font-size: .83rem;
  font-weight: 750;
  cursor: pointer;
}
.maps-builder-small-button { padding: 8px 10px; }
.maps-builder-small-button:hover,
.maps-builder-share-button:hover { border-color: #78906f; background: #f5f8f2; }

.maps-builder-preview-column { min-width: 0; }
.maps-builder-preview-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 54px;
  padding: 10px 14px;
  border: 1px solid rgb(63 101 47 / 18%);
  border-bottom: 0;
  border-radius: 4px 4px 0 0;
  background: #f7f9f5;
}
.maps-builder-preview-bar > div { display: grid; gap: 1px; }
.maps-builder-preview-bar span { color: var(--text-light); font-size: .74rem; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; }
.maps-builder-preview-bar strong { color: var(--text); font-size: .9rem; font-weight: 750; }
.maps-builder-share-button { padding: 9px 12px; white-space: nowrap; }
.maps-builder-map-shell {
  overflow: hidden;
  border: 1px solid rgb(63 101 47 / 18%);
  background: #f4f5f1;
}
.maps-builder-frame { display: block; width: 100%; aspect-ratio: 1 / 1; height: auto; min-height: 0; border: 0; }
.maps-builder-map-help { margin: 9px 3px 0; color: var(--text-light); font-size: .84rem; }
.maps-builder-map-help i { margin-right: 6px; color: var(--green-dark); }

.maps-builder-export-panel {
  margin-top: 24px;
  padding: 22px;
  border: 1px solid rgb(63 101 47 / 18%);
  border-radius: 4px;
  background: #fff;
}
.maps-builder-export-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.maps-builder-export-heading h2 { margin: 3px 0 0; }
.maps-builder-export-heading > span { min-height: 1.2em; color: var(--green-dark); font-size: .82rem; font-weight: 750; text-align: right; }
.maps-builder-export-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.maps-builder-export-fields label,
.maps-builder-export-options label { display: grid; gap: 6px; color: #435040; font-size: .78rem; font-weight: 750; }
.maps-builder-export-fields input,
.maps-builder-export-options select {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid #cbd2c7;
  border-radius: 4px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-size: .92rem;
}
.maps-builder-export-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 14px; }
.maps-builder-output-options { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 16px; padding: 13px 0 2px; border-top: 1px solid #e7eae5; }
.maps-builder-output-options label { display: inline-flex; align-items: center; gap: 7px; color: #445043; font-size: .84rem; font-weight: 650; }
.maps-builder-output-options input { width: 17px; height: 17px; margin: 0; accent-color: var(--green-dark); }
.maps-builder-export-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.maps-builder-export-button { border: 0; cursor: pointer; }
.maps-builder-export-button:disabled { opacity: .55; cursor: wait; }
.maps-builder-export-note { margin: 11px 0 0; color: var(--text-light); font-size: .8rem; }
.maps-builder-disclaimer {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  margin-top: 28px;
  padding: 18px 20px;
  border-radius: 4px;
  background: #f1f5ed;
}
.maps-builder-disclaimer > i { margin-top: 3px; color: var(--green-dark); }
.maps-builder-disclaimer h2 { margin: 0 0 5px; font-size: 1rem; }
.maps-builder-disclaimer p { margin: 0; color: var(--text-light); font-size: .88rem; }

@media (max-width: 980px) {
  .maps-builder-workspace { grid-template-columns: 1fr; }
  .maps-builder-control-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .maps-builder-control-intro { grid-column: 1 / -1; }
  .maps-builder-control-group { border-right: 1px solid #e8ebe6; }
}

@media (max-width: 680px) {
  .maps-builder-property-context { align-items: flex-start; flex-wrap: wrap; }
  .maps-builder-property-context a { width: 100%; padding-left: 34px; }
  .maps-builder-control-column { display: block; }
  .maps-builder-preview-bar { align-items: flex-start; flex-direction: column; }
  .maps-builder-share-button { width: 100%; }
  .maps-builder-export-fields,
  .maps-builder-export-options { grid-template-columns: 1fr; }
  .maps-builder-export-heading { align-items: flex-start; flex-direction: column; }
  .maps-builder-export-heading > span { text-align: left; }
  .maps-builder-export-actions { display: grid; }
  .maps-builder-export-button { width: 100%; justify-content: center; }
}
.maps-builder-launch { margin-top: 20px; }
.maps-builder-launch .button-link { display: inline-flex; }
.property-profile-map-builder-action { display: flex; justify-content: flex-end; margin-top: 12px; }
@media (max-width: 680px) { .property-profile-map-builder-action .button-link { width: 100%; justify-content: center; } }
