/* Bennett Phillips brochure — landscape A4, brand colours */

:root {
  --bro-green: #008b3c;
  --bro-green-dark: #00702f;
  --bro-lime: #b2ed23;
  --bro-cream: #f4f1ea;
  --bro-ink: #1b1b1b;
  --bro-charcoal: #3b3b3b;
  --bro-body: #4b4b4b;
  --bro-muted: #717171;
  --bro-line: rgba(59, 59, 59, 0.18);
  --bro-white: #fff;
  --bro-w: 297mm;
  --bro-h: 210mm;
  --bro-pad-x: 14mm;
  --bro-pad-y: 9mm;
  --bro-radius: 3mm;
}

* { box-sizing: border-box; }

body.bro {
  margin: 0;
  padding: 0 0 24px;
  background: #d9d6cf;
  font-family: Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 10.5pt;
  line-height: 1.45;
  color: var(--bro-body);
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* --- Screen toolbar ------------------------------------------------------- */
.bro-bar {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 20px;
  background: var(--bro-ink);
  color: var(--bro-white);
}
.bro-bar-start { display: flex; align-items: center; gap: 14px; min-width: 0; }
.bro-bar-brand { display: flex; align-items: center; line-height: 0; }
.bro-bar-brand img { display: block; height: 32px; width: auto; }
.bro-bar-back {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px 7px 10px;
  border: 1px solid rgba(255,255,255,0.28);
  border-radius: 999px;
  background: rgba(255,255,255,0.06);
  color: var(--bro-white);
  text-decoration: none;
  font-size: 13px; font-weight: 500; white-space: nowrap;
}
.bro-bar-back:hover { background: rgba(255,255,255,0.14); border-color: #fff; color: #fff; }
.bro-bar-back-ico { width: 16px; height: 16px; }
.bro-bar-actions { display: flex; gap: 8px; }
.bro-btn {
  padding: 9px 18px;
  border: 1px solid var(--bro-green);
  border-radius: 999px;
  background: var(--bro-green);
  color: var(--bro-white);
  font: inherit; font-size: 14px; font-weight: 500; cursor: pointer;
}
.bro-btn:hover { background: var(--bro-green-dark); border-color: var(--bro-green-dark); }
.bro-btn--ghost {
  background: transparent;
  border-color: rgba(255,255,255,0.4);
  color: var(--bro-white);
}
.bro-btn--ghost:hover { background: rgba(255,255,255,0.12); border-color: #fff; }
.bro-hint {
  max-width: var(--bro-w);
  margin: 14px auto 0;
  padding: 0 4px;
  font-size: 13px;
  color: #4b4b4b;
  text-align: center;
}

/* --- Sheet ---------------------------------------------------------------- */
.bro-page {
  position: relative;
  width: var(--bro-w);
  height: var(--bro-h);
  margin: 18px auto;
  padding: var(--bro-pad-y) var(--bro-pad-x);
  background: var(--bro-cream);
  color: var(--bro-body);
  overflow: hidden;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.18);
  display: flex;
  flex-direction: column;
}

.bro-page--cover {
  padding: 0;
  background: var(--bro-cream);
}

/* --- Shared header / footer ---------------------------------------------- */
.bro-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 3mm;
  margin-bottom: 4mm;
  border-bottom: 1px solid var(--bro-line);
  flex: none;
}
.bro-logo { height: 12mm; width: auto; display: block; }
.bro-head-section {
  margin: 0;
  font-size: 8.5pt;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bro-green);
  white-space: nowrap;
}

.bro-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 3.5mm;
  padding-top: 3mm;
  border-top: 1px solid var(--bro-line);
  flex: none;
  font-size: 7.5pt;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.bro-foot-addr { color: var(--bro-muted); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bro-foot-brand { color: var(--bro-muted); white-space: nowrap; }
.bro-foot-brand span { color: var(--bro-green); font-weight: 600; }

/* --- Type ----------------------------------------------------------------- */
.bro-eyebrow {
  margin: 0 0 2mm;
  font-size: 9pt;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bro-green);
}
.bro-h1 {
  margin: 0 0 3.5mm;
  font-size: 20pt;
  font-weight: 700;
  line-height: 1.2;
  color: var(--bro-ink);
  max-width: 160mm;
}
.bro-h2 {
  margin: 4.5mm 0 2mm;
  font-size: 11pt;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bro-green);
}
.bro-sub {
  margin: -2mm 0 5mm;
  font-size: 12pt;
  font-weight: 500;
  color: var(--bro-green);
}

.bro-prose { font-size: 10.5pt; line-height: 1.5; color: var(--bro-body); }
.bro-prose p { margin: 0 0 3mm; }
.bro-prose p:last-child { margin-bottom: 0; }
.bro-prose--tight { font-size: 11pt; }
.bro-prose ul { margin: 0; padding-left: 4mm; }

.bro-checks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 2mm;
}
.bro-checks li {
  display: flex;
  align-items: flex-start;
  gap: 2.5mm;
  font-size: 10.5pt;
  color: var(--bro-ink);
}
.bro-check {
  display: inline-grid;
  place-items: center;
  width: 5mm;
  height: 5mm;
  margin-top: 0.5mm;
  border-radius: 50%;
  background: var(--bro-green);
  color: var(--bro-white);
  font-size: 7pt;
  font-weight: 700;
  flex: none;
}

/* Green accent rule sections */
.bro-ruled { margin: 5mm 0 0; padding-left: 3mm; border-left: 1.2mm solid var(--bro-green); }
.bro-ruled-title {
  margin: 0 0 1.5mm;
  font-size: 11.5pt;
  font-weight: 700;
  color: var(--bro-ink);
}
/* .bro-ruled-value {
  margin: 0;
  font-size: 12.5pt;
  font-weight: 700;
  color: var(--bro-green);
} */

.bro-table { width: 100%; border-collapse: collapse; font-size: 10.5pt; }
.bro-table th { text-align: left; font-weight: 500; color: var(--bro-body); padding: 1.5mm 2mm 1.5mm 0; }
.bro-table td { text-align: right; padding: 1.5mm 0; color: var(--bro-ink); }
.bro-table td span { color: var(--bro-muted); font-weight: 400; }
.bro-table-total th,
.bro-table-total td {
  background: rgba(0, 139, 60, 0.12);
  padding: 2mm 2.5mm;
}
.bro-table-total th { border-radius: 2mm 0 0 2mm; }
.bro-table-total td { border-radius: 0 2mm 2mm 0; }

/* --- Cover page ----------------------------------------------------------- */
.bro-cover-top {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8mm;
  padding: 7mm var(--bro-pad-x) 5mm;
  flex: none;
}
.bro-cover-contact {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: center;
	font-size: 8pt;
	font-weight: 600;
	color: var(--bro-charcoal);
	line-height: 1.55;
}
.bro-cover-contact li {
  display: inline-flex;
  align-items: center;
  gap: 1.8mm;
  white-space: nowrap;
}
.bro-contact-ico {
  width: 3.2mm;
  height: 3.2mm;
  flex: none;
  fill: currentColor;
  color: var(--bro-green);
}
.bro-cover-contact--light .bro-contact-ico { color: var(--bro-lime); }
.bro-qr {
  width: 16mm;
  height: 16mm;
  display: block;
  background: #fff;
}

.bro-hero {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  /* margin: 0 var(--bro-pad-x); */
  overflow: hidden;
  background: #d7d3cb;
}
.bro-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.bro-hero-img--empty { min-height: 90mm; }
.bro-hero-deal {
  position: absolute;
  left: 14mm;
  bottom: 6mm;
  padding: 2.2mm 5mm;
  border-radius: 1.5mm;
  background: rgba(27, 27, 27, 0.78);
  color: #fff;
  font-size: 8pt;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.bro-cover-band {
  padding: 6mm var(--bro-pad-x) 7mm;
  background: var(--bro-green);
  color: #fff;
  flex: none;
}
.bro-cover-band-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 6mm;
  margin-bottom: 5mm;
}
.bro-cover-title {
  margin: 0;
  font-size: 18pt;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.15;
  color: #fff;
}
.bro-cover-meta {
  margin: 2mm 0 0;
  font-size: 8.5pt;
  color: rgba(255,255,255,0.85);
}
.bro-status-pill {
  flex: none;
  display: inline-block;
  padding: 2mm 5mm;
  border-radius: 999px;
  background: var(--bro-white);
  color: var(--bro-ink);
  font-size: 8pt;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.bro-status-pill--live { background: var(--bro-lime); color: var(--bro-ink); }

.bro-cover-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm 8mm;
  margin: 0;
}
.bro-cover-grid dt {
  margin: 0 0 1mm;
  font-size: 7pt;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
}
.bro-cover-grid dd {
  margin: 0;
  font-size: 12pt;
  font-weight: 700;
  color: #fff;
  line-height: 1.25;
}
.bro-cover-grid dd span {
  font-size: 8pt;
  font-weight: 500;
  color: rgba(255,255,255,0.8);
}

/* --- Two-column content pages -------------------------------------------- */
.bro-split {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  grid-template-rows: minmax(0, 1fr);
  gap: 8mm;
  flex: 1 1 auto;
  min-height: 0;
}
.bro-split-main { min-width: 0; overflow: hidden; }
.bro-split-side {
  display: flex;
  flex-direction: column;
  gap: 3mm;
  min-width: 0;
  min-height: 0;
}
.bro-split-side--stack { gap: 3mm; }

.bro-stat-card {
  padding: 5mm 5mm 4.5mm;
  border-radius: var(--bro-radius);
  background: var(--bro-green);
  color: #fff;
  text-align: left;
  flex: none;
}
.bro-stat-kicker {
  margin: 0;
  font-size: 8pt;
  font-weight: 600;
  letter-spacing: 0.12em;
  opacity: 0.85;
}
.bro-stat-value {
  margin: 1mm 0 0;
  font-size: 28pt;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
.bro-stat-value--sm { font-size: 20pt; }
.bro-stat-unit {
  margin: 2mm 0 0;
  font-size: 8.5pt;
  font-weight: 600;
  letter-spacing: 0.06em;
  opacity: 0.9;
}

.bro-side-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5mm;
  flex: 1 1 auto;
  min-height: 0;
}
.bro-side-photos--solo { grid-template-columns: 1fr; }
.bro-side-photo {
  overflow: hidden;
  border-radius: var(--bro-radius);
  background: #ddd9d1;
  min-height: 28mm;
}
.bro-side-photo--wide { grid-column: 1 / -1; min-height: 42mm; }
.bro-side-photo img,
.bro-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.bro-portrait {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  border-radius: var(--bro-radius);
  background: #ddd9d1;
}

/* --- Commercial terms ---------------------------------------------------- */
.bro-terms {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr;
  /* Clamp the row to the space the page actually has — an auto row would grow
     to the tallest column and get silently clipped by the fixed page height. */
  grid-template-rows: minmax(0, 1fr);
  gap: 8mm;
  flex: 1 1 auto;
  min-height: 0;
  margin-top: 2mm;
}
.bro-terms-main .bro-ruled:first-child { margin-top: 0; }
.bro-price-card {
  padding: 6mm 5mm;
  border-radius: var(--bro-radius);
  background: var(--bro-green);
  color: #fff;
  text-align: center;
  margin-bottom: 4mm;
}
.bro-price-card-kicker {
  margin: 0;
  font-size: 8pt;
  font-weight: 700;
  letter-spacing: 0.14em;
  opacity: 0.85;
}
.bro-price-card-value {
  margin: 2mm 0 0;
  font-size: 23pt;
  font-weight: 700;
  line-height: 1.1;
  color: #fff;
}
.bro-price-card-note {
  margin: 2.5mm 0 0;
  font-size: 9.5pt;
  color: rgba(255,255,255,0.9);
}

.bro-epc {
  margin-top: 4mm;
  padding: 4mm;
  border-radius: var(--bro-radius);
  background: var(--bro-white);
  border: 1px solid var(--bro-line);
}
.bro-epc .bro-ruled-title {
  margin: 0 0 2mm;
  padding-left: 3mm;
  border-left: 1.2mm solid var(--bro-green);
}
.bro-epc-body { font-size: 10pt; color: var(--bro-body); }
.bro-epc-body p { margin: 0 0 1.5mm; display: flex; justify-content: space-between; gap: 4mm; }
.bro-epc-body span { color: var(--bro-muted); }
.bro-epc-rating strong {
  display: inline-grid;
  place-items: center;
  min-width: 8mm;
  padding: 1mm 2.5mm;
  border-radius: 1.5mm;
  background: var(--bro-green);
  color: #fff;
  font-size: 11pt;
}

/* --- Location & contact -------------------------------------------------- */
.bro-contact-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  grid-template-rows: minmax(0, 1fr);
  gap: 6mm;
  flex: 1 1 auto;
  min-height: 0;
  margin-top: 2mm;
}
.bro-contact-grid > * { min-height: 0; }
.bro-map-wrap {
  position: relative;
  border-radius: var(--bro-radius);
  overflow: hidden;
  background: #ddd9d1;
  min-height: 0;
}
.bro-map-img,
.bro-map {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  min-height: 95mm;
}
.bro-map-tag {
  position: absolute;
  top: 4mm;
  left: 4mm;
  padding: 1.5mm 3.5mm;
  border-radius: 999px;
  background: #fff;
  color: var(--bro-green);
  font-size: 7.5pt;
  font-weight: 700;
  letter-spacing: 0.04em;
  box-shadow: 0 1px 4px rgba(0,0,0,0.12);
}
.bro-map-fallback {
  display: grid;
  place-content: center;
  min-height: 95mm;
  padding: 8mm;
  text-align: center;
  color: var(--bro-charcoal);
  font-weight: 600;
}
.bro-contact-card {
  padding: 5mm 5mm;
  border-radius: var(--bro-radius);
  background: var(--bro-green);
  color: #fff;
  text-align: center;
}
.bro-contact-card-kicker {
  margin: 0;
  font-size: 7.5pt;
  font-weight: 700;
  letter-spacing: 0.12em;
  opacity: 0.85;
}
.bro-contact-card-phone {
  margin: 2.5mm 0 0;
  font-size: 16pt;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.02em;
}
.bro-contact-card-mail,
.bro-contact-card-web {
  margin: 2.5mm 0 0;
  font-size: 9.5pt;
  color: rgba(255,255,255,0.92);
}
.bro-contact-card-mail a { color: inherit; text-decoration: none; }
.bro-disclaimer {
  font-size: 8.5pt;
  line-height: 1.45;
  color: var(--bro-muted);
  text-align: justify;
}
.bro-disclaimer p { margin: 0; }

/* --- Accreditation ------------------------------------------------------- */
.bro-accred-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3mm;
  padding: 8mm;
  margin: 0 0 5mm;
  border-radius: var(--bro-radius);
  background: var(--bro-white);
  border: 1px solid var(--bro-line);
  text-align: center;
  min-height: 42mm;
	height: 35%;
}
.bro-accred-kicker {
  margin: 0;
  font-size: 8pt;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--bro-green);
}
.bro-ombudsman { display: block; height: 16mm; width: auto; }
.bro-accred-note { margin: 0; font-size: 8pt; color: var(--bro-muted); }

.bro-compliance {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr;
  gap: 6mm;
  flex: 1 1 auto;
  min-height: 0;
}
.bro-gdpr-card {
  padding: 6mm;
  border-radius: var(--bro-radius);
  background: var(--bro-green);
  color: #fff;
}
.bro-compliance-aside {
  padding: 6mm;
  border-radius: var(--bro-radius);
  background: #dadada57;
}
.bro-gdpr-card h3 {
  margin: 0 0 3mm;
  font-size: 13pt;
  font-weight: 700;
  color: #fff;
}
.bro-gdpr-card p {
  margin: 0 0 2.5mm;
  font-size: 10pt;
  line-height: 1.45;
  color: rgba(255,255,255,0.92);
}
.bro-gdpr-card p:last-child { margin-bottom: 0; }
.bro-compliance-roles {
  margin: 0 0 3mm;
  font-size: 10pt;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--bro-ink);
  line-height: 1.4;
}
.bro-compliance-cta {
  margin: 0 0 4mm;
  font-size: 10.5pt;
  color: var(--bro-body);
}
.bro-compliance-reg {
  margin: 0;
  font-size: 10pt;
  line-height: 1.45;
  color: var(--bro-muted);
}

/* --- Legacy dark legal back page ----------------------------------------- */
.bro-page--dark {
  background: var(--bro-charcoal);
  color: rgba(255, 255, 255, 0.88);
}
.bro-head--dark {
  border-bottom-color: rgba(255, 255, 255, 0.2);
}
.bro-logo--lg { height: 18mm; }
.bro-cover-contact--light { color: rgba(255, 255, 255, 0.92); text-align: right; }

.bro-watermark {
  position: absolute;
  right: -8mm;
  bottom: 18mm;
  width: 90mm;
  height: auto;
  opacity: 0.06;
  pointer-events: none;
  z-index: 0;
}
.bro-watermark--dark { opacity: 0.08; filter: brightness(10); }

/* Faint headed-paper style brand mark in the bottom-right of light pages.
   Sits behind content (z-index 0), so it only shows through where the page
   is empty. */
.bro-page > :not(.bro-watermark):not(.bro-mark) { position: relative; z-index: 1; }
.bro-mark {
  position: absolute;
  right: 8mm;
  bottom: 13mm;
  width: 68mm;
  height: auto;
  opacity: 0.06;
  pointer-events: none;
  z-index: 0;
}

.bro-legal-body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 5mm;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.bro-legal-top { max-width: 120mm; }
.bro-social {
  display: flex;
  gap: 3mm;
  margin: 0 0 4mm;
  padding: 0;
  list-style: none;
}
.bro-social-ico {
  width: 5.5mm;
  height: 5.5mm;
  color: var(--bro-lime);
  fill: currentColor;
}
.bro-legal-lead {
  margin: 0 0 2mm;
  font-size: 10pt;
  font-weight: 600;
  color: #fff;
}
.bro-legal-reg {
  margin: 0 0 4mm;
  font-size: 8pt;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.75);
}
.bro-ombudsman--dark {
  height: 14mm;
  width: auto;
  display: block;
  background: #fff;
  padding: 2mm 3mm;
  border-radius: 2mm;
}
.bro-legal-block {
  padding: 4.5mm 5mm;
  border-radius: var(--bro-radius);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
}
.bro-legal-block h3 {
  margin: 0 0 2.5mm;
  font-size: 10.5pt;
  font-weight: 700;
  color: #fff;
}
.bro-legal-block p {
  margin: 0 0 2mm;
  font-size: 8pt;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.85);
}
.bro-legal-block p:last-child { margin-bottom: 0; }
.bro-legal-block ol {
  margin: 2mm 0 0;
  padding-left: 4.5mm;
  font-size: 7.5pt;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.82);
}
.bro-legal-block li { margin-bottom: 1.5mm; }
.bro-legal-block li:last-child { margin-bottom: 0; }

.bro-foot--dark {
  border-top-color: rgba(255, 255, 255, 0.2);
  position: relative;
  z-index: 1;
}
.bro-foot--dark .bro-foot-addr { color: rgba(255, 255, 255, 0.65); }
.bro-foot--dark .bro-foot-brand { color: rgba(255, 255, 255, 0.65); }
.bro-foot--dark .bro-foot-brand span { color: var(--bro-lime); }

/* --- Print ---------------------------------------------------------------- */
@page {
  size: A4 landscape;
  margin: 0;
}

@media print {
  body.bro {
    background: #fff;
    padding: 0;
  }
  .bro-bar,
  .bro-hint,
  [data-bro-bar] { display: none !important; }
  .bro-page {
    margin: 0;
    box-shadow: none;
    page-break-after: always;
    break-after: page;
  }
  .bro-page:last-child {
    page-break-after: auto;
    break-after: auto;
  }
}

@media (max-width: 640px) {
  .bro-bar { padding: 8px 12px; }
  .bro-bar-brand img { height: 26px; }
  .bro-bar-back-text {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0);
  }
  .bro-bar-back { padding: 7px; }
}

/* ---------- Detail-page fields: space stats, facts, nearby, EPC image ---------- */
.bro-space {
  display: flex;
  flex-wrap: wrap;
  gap: 2mm 5mm;
  margin: 3mm 0 0;
  padding: 2mm 3.5mm;
  border: 0.3mm solid var(--bro-line);
  border-radius: var(--bro-radius);
  list-style: none;
}
.bro-space li { display: flex; align-items: baseline; gap: 1.5mm; }
.bro-space strong { color: var(--bro-green); font-weight: 700; font-size: 11pt; }
.bro-space li span {
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 8pt;
  color: var(--bro-muted);
}

.bro-checks--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2mm 7mm; }

.bro-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2mm 7mm;
  margin: 3mm 0 0;
}
.bro-facts > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 3mm;
  border-bottom: 0.2mm solid var(--bro-line);
  padding-bottom: 1.2mm;
}
.bro-facts dt {
  font-size: 8.5pt;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bro-muted);
  white-space: nowrap;
}
.bro-facts dd {
  margin: 0;
  font-size: 10pt;
  font-weight: 600;
  color: var(--bro-ink);
  text-align: right;
}

.bro-nearby {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2mm 7mm;
  margin: 3mm 0 0;
  padding: 0;
  list-style: none;
}
.bro-nearby li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 3mm;
  font-size: 10pt;
  border-bottom: 0.2mm solid var(--bro-line);
  padding-bottom: 1.2mm;
}
.bro-nearby li span:last-child {
  color: var(--bro-muted);
  white-space: nowrap;
}
.bro-nearby-wrap { margin-top: 2mm; }

/* Compact variant inside the contact side column */
.bro-contact-side .bro-nearby-wrap { margin-top: 0; }
.bro-contact-side .bro-nearby { gap: 1.2mm 5mm; margin-top: 1.5mm; }
.bro-contact-side .bro-nearby li { font-size: 9pt; padding-bottom: 0.8mm; }
.bro-contact-side .bro-nearby-wrap .bro-h2 { margin: 0 0 1mm; }
.bro-contact-side .bro-contact-card { margin-top: 4mm; }

.bro-epc-img {
  display: block;
  width: 100%;
  margin-top: 2.5mm;
  border-radius: 1.5mm;
  border: 0.3mm solid var(--bro-line);
}
.bro-epc-note {
  font-size: 8.5pt;
  color: var(--bro-muted);
  margin: 2mm 0 0;
}

/* ---------- Fill fixed-height pages: distribute leftover space ---------- */
.bro-split-main { display: flex; flex-direction: column; }
.bro-split-main > * { flex: 1 0 auto; }
.bro-sec + .bro-sec { margin-top: 2.5mm; }
.bro-sec > .bro-h2:first-child { margin-top: 0; }

.bro-terms-main,
.bro-terms-side { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.bro-terms .bro-ruled { flex: 1 0 auto; }
.bro-price-card,
.bro-epc { flex: none; }

/* Measurement helper: natural (ungrown) heights while the balancer measures. */
.bro-terms--measure .bro-ruled { flex: 0 0 auto; }

/* Compact fallbacks when a property's terms run long and no column split fits. */
.bro-terms--tight .bro-ruled { margin-top: 3.5mm; }
.bro-terms--tight .bro-ruled-title { font-size: 10.5pt; margin-bottom: 1mm; }
.bro-terms--tight .bro-prose--tight { font-size: 10pt; line-height: 1.42; }
.bro-terms--tight .bro-price-card { padding: 4.5mm 5mm; margin-bottom: 3mm; }
.bro-terms--tight .bro-price-card-value { font-size: 20pt; }
.bro-terms--tight .bro-price-card-note { font-size: 9pt; }
.bro-terms--tight .bro-epc { margin-top: 3mm; padding: 3mm; }
.bro-terms--tight .bro-epc-body { font-size: 9pt; }

.bro-terms--tighter .bro-ruled { margin-top: 2.5mm; }
.bro-terms--tighter .bro-ruled-title { font-size: 10pt; margin-bottom: 0.8mm; }
.bro-terms--tighter .bro-prose--tight { font-size: 9.5pt; line-height: 1.38; }
.bro-terms--tighter .bro-price-card { padding: 4mm 5mm; margin-bottom: 2.5mm; }
.bro-terms--tighter .bro-price-card-value { font-size: 18pt; }
.bro-terms--tighter .bro-price-card-note { font-size: 8.5pt; }
.bro-terms--tighter .bro-epc { margin-top: 2.5mm; padding: 2.5mm; }
.bro-terms--tighter .bro-epc-body { font-size: 8.5pt; }
.bro-terms--tighter .bro-epc-rating strong { font-size: 10pt; }

.bro-terms--tightest .bro-ruled { margin-top: 2mm; }
.bro-terms--tightest .bro-ruled-title { font-size: 9.5pt; margin-bottom: 0.6mm; }
.bro-terms--tightest .bro-prose--tight { font-size: 9pt; line-height: 1.35; }
.bro-terms--tightest .bro-price-card { padding: 3.5mm 5mm; margin-bottom: 2mm; }
.bro-terms--tightest .bro-price-card-value { font-size: 17pt; }
.bro-terms--tightest .bro-price-card-note { font-size: 8pt; margin-top: 1.5mm; }
.bro-terms--tightest .bro-epc { margin-top: 2mm; padding: 2mm; }
.bro-terms--tightest .bro-epc-body { font-size: 8pt; }
.bro-terms--tightest .bro-epc-body p { margin-bottom: 1mm; }
.bro-terms--tightest .bro-epc-rating strong { font-size: 9.5pt; }

.bro-contact-side { display: flex; flex-direction: column; min-width: 0; }
.bro-contact-side .bro-disclaimer { margin-top: auto; padding-top: 4mm; }
