/*
  Eds Estate public pages (home, services, landlords, stays, about, contact, privacy, terms).
  Loaded after eds.css by templates/eds/public/page.html; uses its tokens (--ink, --paper, --green …).
  Layout and spacing follow EdsEstate/design/project/{Main,Services,Landlords,Stays,About,Contact}.dc.html.

  Contrast: body text is ink or slate on paper/white/mist; green (#1e7a55) text only on paper or
  white, green-deep on mist; mint and mist text only on ink. Targets are at least 44 px.

  Sections: shared pieces · home · services · landlords · enquiry forms · sample statement ·
  stays · about · contact · legal.
*/

/* ---------- shared pieces ---------- */
.ps-wrap { box-sizing: border-box; width: 100%; max-width: 1280px; margin-inline: auto; padding-inline: clamp(16px, 4vw, 40px); }
/* The designs' pattern: a 1200 px content column with its side gutter outside it. */
.ps-wrap--1200 { max-width: calc(1200px + 2 * clamp(16px, 3vw, 24px)); padding-inline: clamp(16px, 3vw, 24px); }
.ps-wrap--about { max-width: 1200px; padding-inline: clamp(16px, 4vw, 24px); }

.ps-band { padding-block: clamp(72px, 8vw, 120px); }
.ps-band--eduard { padding-block: clamp(72px, 8vw, 112px); }
.ps-band--md { padding-block: clamp(56px, 7vw, 96px); }
.ps-band--sm { padding-block: clamp(56px, 6vw, 88px); }
.ps-band--intro { padding-block: clamp(56px, 7vw, 96px) clamp(56px, 6vw, 80px); }
.ps-band--talk { padding-block: clamp(56px, 7vw, 88px); }
.ps-band--about { padding-block: clamp(64px, 7vw, 104px); }
.ps-band--about-top { padding-block: clamp(48px, 6vw, 88px) clamp(64px, 7vw, 104px); }
.ps-band--ll-intro { padding-block: clamp(48px, 6vw, 88px) clamp(56px, 6vw, 88px); }
.ps-band--contact-top { padding-block: clamp(48px, 6vw, 80px) clamp(56px, 7vw, 96px); }
.ps-band--reach { padding-block: clamp(48px, 6vw, 72px); }
.ps-band--stay { padding-block: clamp(56px, 7vw, 88px); }
.ps-band--stay-flat { padding-block: clamp(56px, 7vw, 96px) clamp(48px, 6vw, 80px); }

.ps-paper { background: var(--paper); }
.ps-white { background: var(--white); }
.ps-mist { background: var(--mist); }
.ps-ink { background: var(--ink); color: var(--paper); }
.ps-rule-t { border-top: 1px solid var(--hairline); }
.ps-rule-b { border-bottom: 1px solid var(--hairline); }
.ps-rule-y { border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.ps-anchor { scroll-margin-top: 16px; }

.ps-split { display: flex; flex-wrap: wrap; align-items: center; gap: 48px clamp(32px, 5vw, 72px); }
.ps-split--top { align-items: flex-start; }
.ps-split > * { min-width: 0; }

.ps-title {
  font-family: var(--font-display); font-weight: 600; font-size: clamp(38px, 3.9vw, 56px); line-height: 1.1;
  letter-spacing: -0.01em; font-variation-settings: 'opsz' 144, 'SOFT' 0, 'WONK' 0; color: var(--ink); text-wrap: balance;
}
.ps-title--wide { max-width: 860px; font-size: clamp(38px, 4.6vw, 56px); text-wrap: wrap; } /* Services.dc.html: not balanced */
.ps-h2 {
  font-family: var(--font-display); font-weight: 600; font-size: clamp(28px, 2.6vw, 36px); line-height: 1.2;
  font-variation-settings: 'opsz' 72, 'SOFT' 0, 'WONK' 0; text-wrap: balance;
}
.ps-h2--tight { font-size: clamp(28px, 4vw, 36px); line-height: 1.15; }
.ps-lead { font-size: clamp(17px, 1.25vw, 18px); line-height: 1.55; }
.ps-lead--lg { font-size: clamp(18px, 1.5vw, 20px); line-height: 1.5; }
.ps-body { font-size: clamp(17px, 1.3vw, 18px); line-height: 1.55; }
.ps-small { font-size: 16px; line-height: 1.5; }
.ps-measure { max-width: 34em; }
.ps-measure-36 { max-width: 36em; }
.ps-muted { color: var(--slate); }
.ps-green { color: var(--green); }
.ps-green-deep { color: var(--green-deep); }
.ps-mint { color: var(--mint); }
.ps-mist-text { color: var(--mist); }
.ps-ink-text { color: var(--ink); }
.ps-break { overflow-wrap: anywhere; }
.ps-green svg, svg.ps-green { color: var(--green); }

.ps-eyebrow-gap { margin-bottom: 14px; }
.ps-eyebrow-gap-12 { margin-bottom: 12px; }
.ps-eyebrow-gap-16 { margin-bottom: 16px; }
.ps-eyebrow-gap-20 { margin-bottom: 20px; }
.ps-eyebrow-gap-lg { margin-bottom: 18px; }
.ps-mt-8 { margin-top: 8px; } .ps-mt-12 { margin-top: 12px; } .ps-mt-14 { margin-top: 14px; } .ps-mt-16 { margin-top: 16px; }
.ps-mt-18 { margin-top: 18px; } .ps-mt-20 { margin-top: 20px; } .ps-mt-22 { margin-top: 22px; } .ps-mt-24 { margin-top: 24px; }
.ps-mt-28 { margin-top: 28px; } .ps-mt-32 { margin-top: 32px; } .ps-mt-36 { margin-top: 36px; }

.ps-photo { display: block; width: 100%; height: auto; object-fit: cover; border-radius: var(--radius-card); background: var(--mist); }
.ps-photo--portrait { aspect-ratio: 4 / 5; }
/* A photo's <picture> (its WebP sources) makes no box of its own: the <img> inside is laid out, sized
   and positioned exactly as it was without the wrapper. Its <source> would otherwise become a grid or
   flex item of its own (browsers still read it to choose the file). */
.ps-pic { display: contents; }
.ps-pic source { display: none; }

/* Actions: one quiet primary per page, text links beside it. */
.ps-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
.ps-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px;
  border: 0; border-radius: var(--radius-control); background: var(--green); color: var(--white);
  font-size: 17px; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer;
}
.ps-btn:hover { background: var(--green-deep); color: var(--white); }
.ps-btn--md { min-height: 48px; padding: 0 24px; }
.ps-btn[disabled] { opacity: 0.75; cursor: wait; }
.ps-btn-outline {
  display: inline-flex; align-items: center; min-height: 48px; padding: 0 20px; border: 1px solid var(--ink); border-radius: var(--radius-control);
  background: transparent; color: var(--ink); font-size: 16px; font-weight: 500; text-decoration: none;
}
.ps-btn-outline:hover { background: var(--paper); color: var(--ink); }
.ps-btn-plain {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--slate); border-radius: var(--radius-control);
  background: var(--white); color: var(--ink); font-size: 16px; font-weight: 500; text-decoration: none;
}
.ps-btn-plain:hover { background: var(--paper); color: var(--ink); }
.ps-btn-on-ink {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 24px;
  border: 1.5px solid var(--paper); border-radius: var(--radius-control); color: var(--paper); font-size: 17px; font-weight: 600; text-decoration: none;
}
.ps-btn-on-ink:hover { background: var(--ink-raised); color: var(--paper); }
.ps-link-arrow { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--green); font-size: 16px; font-weight: 600; text-decoration: none; }
.ps-link-arrow:hover { color: var(--green-deep); text-decoration: underline; text-underline-offset: 4px; }
.ps-link-arrow--lg { font-size: 17px; }
.ps-text-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0; color: var(--green); font-size: 17px; font-weight: 500; line-height: 1.5; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.ps-text-link:hover { color: var(--green-deep); }
.ps-text-link--600 { font-weight: 600; }
.home-hero__actions .ps-text-link { display: inline-block; padding: 10px 0; }
.ps-inline-icon { display: inline-block; margin-left: 8px; vertical-align: -3px; }
.ps-strong-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.ps-strong-link:hover { color: var(--green-deep); }
.ps-strong-link--500 { font-weight: 500; }
.ps-inline-link { color: var(--green); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.ps-inline-link:hover { color: var(--green-deep); }
.ps-inline-link--600 { font-weight: 600; }
.ps-target { display: inline-flex; align-items: center; min-height: 44px; }
.ps-quiet-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.ps-quiet-link:hover { color: var(--ink); }
.ps-display-link {
  display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); text-decoration: none;
  font-family: var(--font-display); font-weight: 600; font-size: 26px; line-height: 1.2; font-variation-settings: 'opsz' 72, 'SOFT' 0, 'WONK' 0;
}
.ps-display-link:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.ps-small-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--green-deep); font-size: 16px; font-weight: 500; text-decoration: underline; text-underline-offset: 4px; }
.ps-small-link:hover { color: var(--ink); }

.ps-ticks { list-style: none; display: flex; flex-direction: column; gap: 12px; }
.ps-ticks li { display: flex; align-items: flex-start; gap: 12px; font-size: 17px; line-height: 1.5; }
.ps-ticks svg { flex: 0 0 20px; margin-top: 3px; }
.ps-dash-list { list-style: none; display: grid; gap: 10px; }
.ps-dash-list li { position: relative; padding-left: 22px; font-size: clamp(17px, 1.3vw, 18px); line-height: 1.55; }
.ps-dash-list li::before { content: ''; position: absolute; left: 0; top: 13px; width: 10px; height: 2px; background: var(--green); }

/* ---------- home (Main.dc.html) ---------- */
.home-hero { position: relative; display: flex; flex-wrap: wrap; align-items: center; padding: 0 clamp(16px, 5vw, 72px); background: var(--paper); }
.home-hero__img { position: absolute; top: 0; left: 0; width: 100%; height: clamp(440px, 50vw, 760px); object-fit: cover; object-position: 30% 18%; }
@media (min-width: 768px) { .home-hero__img { object-position: 15% 22%; } }
.home-hero__spacer { position: relative; flex: 1 1 480px; height: clamp(440px, 50vw, 760px); }
.home-hero__panel { position: relative; flex: 0 1 560px; min-width: 0; margin: 24px 0; padding: clamp(20px, 3vw, 44px); background: rgba(247, 245, 240, 0.95); border-radius: var(--radius-card); }
.home-hero__eyebrow { margin-bottom: 18px; }
.home-hero__lede { margin-top: 22px; max-width: 34em; }
.home-hero__actions { margin-top: 32px; }
/* Phones: the headline and "Talk to us" first, the photo after them. Laid under the panel, the 440 px
   photo filled the first screen below the wrapped header and the h1 started out of view. */
@media (max-width: 767.98px) {
  .home-hero { flex-direction: column; align-items: stretch; padding: 0; }
  .home-hero__panel { order: -1; flex: none; margin: 0; padding: 32px clamp(16px, 4vw, 40px) 40px; background: none; border-radius: 0; }
  .home-hero__spacer { display: none; }
  .home-hero picture { display: block; }
  .home-hero__img { position: static; display: block; }
}

.ps-intro { max-width: 720px; }
.home-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 48px; }
@media (max-width: 767.98px) { .home-services { grid-template-columns: minmax(0, 1fr); } }
.home-service { min-width: 0; display: flex; flex-direction: column; padding: 36px 32px 28px; background: var(--white); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
@media (max-width: 479.98px) { .home-service { padding: 28px 22px 22px; } }
.home-service__eyebrow { margin: 28px 0 8px; }
.home-service__title { font-size: 22px; line-height: 1.3; font-weight: 600; }
.home-service__text { margin-top: 14px; font-size: 17px; line-height: 1.55; }
.home-service__note { margin-top: 14px; font-size: 16px; line-height: 1.5; color: var(--slate); }
.home-service__link { margin-top: auto; padding-top: 20px; }

.home-steps { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; gap: 48px 32px; }
@media (max-width: 1023.98px) { .home-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767.98px) { .home-steps { grid-template-columns: minmax(0, 1fr); } }
.home-steps__title { font-size: clamp(28px, 2.5vw, 36px); } /* Main.dc.html: a touch smaller than other h2s, so it fits its column in three lines */
.home-step { min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.home-step__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-card); background: var(--mist); }
.home-step__text { margin-top: auto; min-height: 224px; padding-top: 20px; border-top: 1px solid var(--hairline); font-size: 17px; line-height: 1.55; }
@media (max-width: 767.98px) { .home-step__text { min-height: 0; } }
/* Every step's text starts on one line even when one of them runs longer (Main.dc.html): the image row
   and the text row are shared across the four columns. */
@supports (grid-template-rows: subgrid) {
  .home-step { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 28px; }
  .home-step__text { margin-top: 0; }
}
.home-step__text .eyebrow { margin-bottom: 8px; }
.home-step__title { font-size: 20px; line-height: 1.3; font-weight: 600; margin-bottom: 10px; }

.home-landlords__text { flex: 1 1 380px; }
.home-landlords__figure { flex: 1.4 1 460px; }
.ps-rule-list { list-style: none; display: flex; flex-direction: column; margin-top: 32px; }
.home-point { display: flex; gap: 18px; padding: 20px 0; border-top: 1px solid var(--hairline); font-size: 17px; line-height: 1.55; }
.home-point:last-child { border-bottom: 1px solid var(--hairline); }
.home-point__icon { flex: 0 0 auto; margin-top: 2px; }
.home-point__title { font-size: 19px; line-height: 1.35; font-weight: 600; margin-bottom: 6px; }

.home-stay { gap: 48px clamp(32px, 5vw, 80px); }
.home-stay__figure { flex: 1 1 340px; max-width: 500px; }
.home-stay__text { flex: 1.3 1 400px; }
.home-stay .ps-h2 { color: var(--paper); }
.home-stay__facts { list-style: none; display: flex; flex-wrap: wrap; column-gap: 32px; max-width: 560px; margin-top: 32px; }
.home-stay__facts li { flex: 1 1 220px; display: flex; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid #2a3b4d; font-size: 17px; color: var(--paper); }
.home-stay__facts li:nth-child(n + 3) { border-bottom: 1px solid #2a3b4d; }
@media (max-width: 559.98px) { .home-stay__facts li:nth-child(3) { border-bottom: 0; } }
.home-stay__facts svg { flex: 0 0 auto; }
.home-stay .ps-btn-on-ink { margin-top: 28px; }

.home-eduard { justify-content: space-between; gap: 48px clamp(32px, 5vw, 80px); }
.home-eduard__text { flex: 1.3 1 400px; max-width: 620px; }
.home-eduard__ways { display: flex; flex-wrap: wrap; gap: 24px 48px; margin-top: 32px; }
.home-eduard__way { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.home-eduard__figure { flex: 1 1 300px; max-width: 420px; }
.home-eduard__crop { position: relative; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--radius-card); background: #e9ede9; }
.home-eduard__crop img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 0%; transform: scale(1.35); transform-origin: 50% 6%; }

/* ---------- services (Services.dc.html) ---------- */
.svc-intro-text { max-width: 700px; }
.svc-number { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: 22px; line-height: 1; color: var(--green); font-variant-numeric: lining-nums; }
.svc-overview { list-style: none; margin-top: clamp(40px, 5vw, 64px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 40px; }
@media (max-width: 640px) { .svc-overview { grid-template-columns: minmax(0, 1fr); } }
.svc-overview__item { border-top: 1px solid var(--ink); padding: 20px 0 24px; }
.svc-overview__item .svc-number { margin-bottom: 10px; }
.svc-overview__name { margin-bottom: 6px; font-size: 19px; font-weight: 600; line-height: 1.35; }
.svc-overview__text { font-size: 16px; line-height: 1.55; color: var(--slate); }
.svc-section__inner { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 48px 64px; }
.svc-section__aside { flex: 1 1 320px; max-width: 400px; min-width: 0; }
@media (max-width: 767.98px) { .svc-section__aside { max-width: none; } }
.svc-section__eyebrow { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.svc-plain { margin-top: 32px; padding: 24px 28px; border-radius: var(--radius-card); background: var(--mist); }
.svc-plain .eyebrow { margin-bottom: 10px; }
.svc-plain .ps-body { font-size: 17px; }
.svc-section__img { display: block; width: 100%; height: clamp(240px, 22vw, 300px); margin-top: 32px; object-fit: cover; border-radius: var(--radius-card); }
.svc-blocks { flex: 1 1 520px; min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
@media (max-width: 640px) { .svc-blocks { grid-template-columns: minmax(0, 1fr); } }
.svc-block { border-top: 1px solid var(--hairline); padding-top: 20px; min-width: 0; }
.svc-block__title { margin-bottom: 12px; font-size: clamp(20px, 1.6vw, 22px); font-weight: 600; line-height: 1.3; }
.svc-block .ps-body + .ps-body { margin-top: 12px; }
.svc-included-intro { max-width: 640px; }
.svc-included { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 32px 64px; }
.svc-included__list { flex: 1 1 420px; min-width: 0; list-style: none; border-top: 1px solid var(--ink); }
.svc-included__list li { display: flex; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--hairline); font-size: clamp(17px, 1.3vw, 18px); line-height: 1.5; }
.svc-included__list svg { flex: none; margin-top: 3px; }
.svc-look { gap: 48px 64px; }
.svc-look__text { flex: 1 1 480px; }
.svc-look__intro { max-width: 560px; }
.svc-look__grid { margin-top: 36px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 40px; }
@media (max-width: 640px) { .svc-look__grid { grid-template-columns: minmax(0, 1fr); } }
.svc-look__item { border-top: 1px solid var(--hairline); padding-top: 18px; font-size: 17px; line-height: 1.55; }
.svc-look__item .svc-block__title { margin-bottom: 8px; }
.svc-look__figure { flex: 1 1 420px; }
.svc-look__img { display: block; width: 100%; height: clamp(280px, 36vw, 520px); object-fit: cover; object-position: 45% 50%; border-radius: var(--radius-card); }
.svc-talk { gap: 40px 72px; }
.svc-talk__figure { flex: 0 1 320px; }
.svc-talk__img { display: block; width: 100%; max-width: 320px; height: clamp(360px, 30vw, 426px); object-fit: cover; object-position: 50% 30%; border-radius: var(--radius-card); }
.svc-talk__text { flex: 1 1 420px; max-width: 620px; }
.svc-talk .ps-actions { gap: 16px 24px; }

/* ---------- landlords (Landlords.dc.html) ---------- */
.ll-text { font-size: 18px; line-height: 1.6; }
.ll-h3 { font-size: 20px; font-weight: 600; line-height: 1.3; }
.ll-intro { gap: 48px 64px; }
.ll-intro__text { flex: 1 1 460px; display: flex; flex-direction: column; gap: 24px; }
.ll-intro__text .ps-title { font-size: clamp(38px, 4.4vw, 56px); }
.ll-intro__text .ll-text { max-width: 34em; }
.ll-intro__actions { gap: 12px 24px; padding-top: 8px; }
.ll-intro__figure { flex: 1 1 440px; }
.ll-intro__img { display: block; width: 100%; height: clamp(300px, 36vw, 500px); object-fit: cover; object-position: 35% 50%; border-radius: var(--radius-card); }
.ll-look { gap: 48px 64px; }
.ll-look__figure { flex: 1 1 400px; }
.ll-look__img { display: block; width: 100%; height: clamp(280px, 34vw, 480px); object-fit: cover; border-radius: var(--radius-card); }
.ll-look__text { flex: 1 1 520px; display: flex; flex-direction: column; gap: 20px; }
.ll-look__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; padding-top: 12px; }
@media (max-width: 640px) { .ll-look__grid { grid-template-columns: minmax(0, 1fr); } }
.ll-look__item { display: flex; flex-direction: column; gap: 8px; padding-top: 20px; border-top: 1px solid var(--hairline); font-size: 17px; line-height: 1.55; }
.ll-stack { display: flex; flex-direction: column; gap: 40px; }
.ll-head { display: flex; flex-direction: column; gap: 20px; max-width: 760px; }
.ll-arrangements { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1000px) { .ll-arrangements { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ll-arrangements { grid-template-columns: minmax(0, 1fr); } }
.ll-arrangement { display: flex; flex-direction: column; gap: 16px; min-width: 0; padding: clamp(24px, 2.6vw, 36px); background: var(--white); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.ll-arrangement__title { font-family: var(--font-display); font-weight: 600; font-size: 28px; line-height: 1.2; font-variation-settings: 'opsz' 72, 'SOFT' 0, 'WONK' 0; }
.ll-arrangement__text { font-size: 17px; line-height: 1.6; }
.ll-arrangement__note { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--hairline); font-size: 16px; line-height: 1.5; color: var(--slate); }
.ll-steps { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 48px 72px; }
.ll-steps__intro { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.ll-steps__photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 12px; }
.ll-steps__photos img { display: block; width: 100%; height: clamp(160px, 21vw, 300px); object-fit: cover; border-radius: var(--radius-card); }
.ll-steps__list { flex: 2 1 520px; min-width: 0; }
.ll-step-list { list-style: none; }
.ll-step { display: flex; align-items: baseline; gap: clamp(16px, 2vw, 32px); padding: 26px 0; border-top: 1px solid var(--hairline); }
.ll-step:last-child { border-bottom: 1px solid var(--hairline); }
.ll-step__number { flex: 0 0 48px; font-family: var(--font-display); font-weight: 600; font-size: 28px; line-height: 1; color: var(--green); font-variant-numeric: lining-nums; }
.ll-step__body { min-width: 0; display: flex; flex-direction: column; gap: 6px; font-size: 17px; line-height: 1.6; }
.ll-step__title { font-size: 21px; font-weight: 600; line-height: 1.3; }
.ll-steps__end { margin-top: 24px; padding-left: clamp(64px, calc(48px + 2vw), 80px); font-size: 17px; line-height: 1.6; }
@media (max-width: 479.98px) { .ll-steps__end { padding-left: 0; } }
.ll-steps__end strong { font-weight: 600; }
.ll-compliance { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1000px) { .ll-compliance { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ll-compliance { grid-template-columns: minmax(0, 1fr); } }
.ll-compliance__item { display: flex; flex-direction: column; gap: 10px; padding: 28px; background: var(--white); border-radius: var(--radius-card); font-size: 17px; line-height: 1.55; }
.ll-small-print { max-width: 760px; font-size: 16px; line-height: 1.55; color: var(--slate); }
.ll-portal { gap: 48px 64px; }
.ll-portal__text { flex: 1 1 440px; display: flex; flex-direction: column; gap: 20px; }
.ll-faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 64px; }
@media (max-width: 640px) { .ll-faq { grid-template-columns: minmax(0, 1fr); } }
.ll-faq__item { display: flex; flex-direction: column; gap: 10px; padding: 24px 0 28px; border-top: 1px solid var(--hairline); font-size: 17px; line-height: 1.6; }
.ll-faq__item .ll-h3 { line-height: 1.35; }
.ll-enquiry { gap: 48px 64px; }
.ll-enquiry__aside { flex: 1 1 360px; display: flex; flex-direction: column; gap: 20px; }
.ll-enquiry__img { display: block; width: 100%; height: clamp(320px, 32vw, 460px); margin-top: 8px; object-fit: cover; object-position: 50% 12%; border-radius: var(--radius-card); }
.ll-enquiry__ways { list-style: none; display: flex; flex-direction: column; }
.ll-enquiry__ways li { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 10px 0; border-bottom: 1px solid var(--hairline); font-size: 17px; }
.ll-enquiry__ways li:last-child { border-bottom: 0; }
.ll-enquiry__ways svg { flex: 0 0 20px; }
.ll-enquiry__form { flex: 1.4 1 520px; }

/* ---------- enquiry forms (Landlords and Contact) ---------- */
.enquiry-card { box-sizing: border-box; background: var(--white); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.enquiry-form { position: relative; display: flex; flex-direction: column; gap: 22px; }
.enquiry-form.enquiry-card { padding: clamp(20px, 3vw, 44px); }
.enquiry-form__head { display: flex; flex-direction: column; gap: 6px; }
.enquiry-form__title, .enquiry-thanks__title {
  font-family: var(--font-display); font-weight: 600; font-size: 26px; line-height: 1.2; font-variation-settings: 'opsz' 72, 'SOFT' 0, 'WONK' 0;
}
.enquiry-thanks__title { font-size: clamp(28px, 2.6vw, 34px); }
.enquiry-form__hint { font-size: 16px; line-height: 1.5; color: var(--slate); }
.enquiry-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.enquiry-label { display: block; font-size: 16px; font-weight: 500; color: var(--ink); }
.enquiry-label .optional { font-weight: 400; color: var(--slate); }
.enquiry-input {
  display: block; box-sizing: border-box; width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--slate);
  border-radius: var(--radius-control); background: var(--white); color: var(--ink); font-size: 17px; line-height: 1.4;
}
.enquiry-input:focus { border-color: var(--green); outline: 2px solid var(--green); outline-offset: 0; }
.enquiry-input[aria-invalid='true'] { border: 2px solid var(--red); }
.enquiry-input--upper { text-transform: uppercase; }
.enquiry-select {
  appearance: none; padding-right: 42px; background-repeat: no-repeat; background-position: right 14px center;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%234F5F6B' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.enquiry-textarea { min-height: 120px; resize: vertical; line-height: 1.5; }
.enquiry-hint { font-size: 15px; line-height: 1.5; color: var(--slate); }
.enquiry-error { font-size: 15px; font-weight: 500; line-height: 1.45; color: var(--red); }
.enquiry-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 20px; }
@media (max-width: 640px) { .enquiry-pair { grid-template-columns: minmax(0, 1fr); } }
.enquiry-pair__hint { grid-column: 1 / -1; margin-top: -10px; }
.enquiry-fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.enquiry-legend { margin-bottom: 10px; padding: 0; }
.enquiry-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 640px) { .enquiry-cards { grid-template-columns: minmax(0, 1fr); } }
.enquiry-card-option {
  display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 12px 14px; border: 1px solid var(--slate);
  border-radius: var(--radius-control); background: var(--white); font-size: 16px; color: var(--ink); cursor: pointer;
}
.enquiry-card-option input { flex: 0 0 20px; width: 20px; height: 20px; margin: 0; accent-color: var(--green); }
.enquiry-card-option:has(:checked) { border-color: var(--green); background: var(--green-tint); }
.enquiry-consent { display: flex; flex-direction: column; gap: 10px; padding-top: 4px; }
.enquiry-consent--ruled { gap: 6px; border-top: 1px solid var(--hairline); }
.enquiry-consent--ruled .enquiry-consent__row { padding-top: 16px; }
.enquiry-consent__row { display: flex; align-items: flex-start; gap: 12px; }
.enquiry-consent__row input { flex: 0 0 22px; width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--green); }
.enquiry-consent__row input[aria-invalid='true'] { outline: 2px solid var(--red); outline-offset: 2px; }
.enquiry-consent__row label { font-size: 16px; line-height: 1.5; color: var(--ink); cursor: pointer; padding-bottom: 4px; }
.enquiry-consent__note { margin-left: 34px; font-size: 16px; line-height: 1.5; color: var(--slate); }
.enquiry-consent__note--sm { font-size: 15px; }
.enquiry-consent__error { margin-left: 34px; }
.enquiry-form__alert { padding: 12px 14px; border-radius: var(--radius-control); background: var(--red-tint); color: var(--red); font-size: 16px; line-height: 1.5; }
.enquiry-form__alert:focus { outline: 2px solid var(--red); outline-offset: 2px; }
.enquiry-form__alert--icon { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; }
.enquiry-form__alert--icon svg { flex: none; margin-top: 2px; }
.enquiry-submit { gap: 12px 20px; }
.enquiry-recaptcha { font-size: 14px; line-height: 1.5; color: var(--slate); }
.grecaptcha-badge { visibility: hidden; }

.enquiry-thanks { display: flex; flex-direction: column; gap: 18px; padding: clamp(24px, 3vw, 48px); }
.enquiry-thanks:focus, .contact-thanks:focus { outline: none; }
.enquiry-thanks__tick { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 999px; background: var(--green-tint); color: var(--green); }
.enquiry-thanks__text { font-size: 18px; line-height: 1.6; }
.enquiry-thanks__sent { padding: 16px 18px; border-radius: var(--radius-control); background: var(--paper); font-size: 17px; line-height: 1.5; }
.enquiry-thanks__sent .eyebrow { margin-bottom: 4px; }

/* Contact form: two-column grid and pills. */
.enquiry-form--contact { gap: 28px; }
.enquiry-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
@media (max-width: 960px) { .enquiry-grid { grid-template-columns: minmax(0, 1fr); } }
.enquiry-form--contact .enquiry-input { min-height: 48px; }
.enquiry-grid__hint { margin-top: -14px; }
.enquiry-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.enquiry-pill {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border: 1px solid var(--slate); border-radius: var(--radius-control);
  background: var(--white); color: var(--ink); font-size: 16px; font-weight: 500; line-height: 1.3; text-align: left; cursor: pointer;
}
.enquiry-pill--short { min-width: 56px; justify-content: center; }
.enquiry-pill__tick { display: none; flex: none; }
.enquiry-pill:has(:checked) { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.enquiry-pill:has(:checked) .enquiry-pill__tick { display: block; }
.enquiry-pill:has(:focus-visible) { outline: 2px solid var(--green); outline-offset: 2px; }
.enquiry-pill:hover { border-color: var(--ink); }

.contact-thanks { display: flex; flex-direction: column; gap: 18px; }
.contact-thanks__rule { margin-top: 12px; width: 64px; height: 2px; background: var(--green); box-shadow: 0 5px 0 var(--green); }
.contact-thanks__text { margin-top: 6px; max-width: 560px; font-size: 17px; line-height: 1.6; }
.contact-thanks__summary { margin-top: 8px; border-top: 1px solid var(--hairline); }
.contact-thanks__summary div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 24px; padding: 14px 0; border-bottom: 1px solid var(--hairline); font-size: 16px; }
.contact-thanks__summary dt { color: var(--slate); }
.contact-thanks__summary dd { font-weight: 500; overflow-wrap: anywhere; }
.contact-thanks__actions { margin-top: 6px; }

/* ---------- sample statement (Landlords: "What a statement shows") ---------- */
.sample-statement { flex: 1 1 460px; min-width: 0; box-sizing: border-box; padding: clamp(20px, 2.8vw, 40px); background: var(--white); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.sample-statement__top { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; }
.sample-statement__brand { position: relative; display: inline-block; padding-bottom: 7px; font-family: var(--font-display); font-weight: 600; font-size: 20px; line-height: 1; }
.sample-statement__rule { position: absolute; right: 0; bottom: 0; width: 26px; height: 5px; box-sizing: border-box; border-top: 1.5px solid var(--green); border-bottom: 1.5px solid var(--green); }
.sample-statement__chip { display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 999px; background: var(--mist); font-size: 13px; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }
.sample-statement__period { margin: 28px 0 6px; }
.sample-statement__title { font-family: var(--font-display); font-weight: 600; font-size: 26px; line-height: 1.2; }
.sample-statement__who { margin-top: 6px; font-size: 16px; color: var(--slate); }
.sample-statement__locked { margin-top: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 14px; line-height: 1.4; color: var(--slate); }
.sample-statement__section { margin-top: 24px; }
.sample-statement__head { padding: 18px 0 10px; border-bottom: 1px solid var(--hairline); }
.sample-statement__head--first { padding-top: 10px; }
.sample-statement__row, .sample-statement__paid-row, .sample-statement__doc { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; font-size: 15px; }
.sample-statement__row { padding: 12px 0; border-bottom: 1px solid var(--hairline); }
.sample-statement__row--last { border-bottom: 0; }
.sample-statement__row > span:first-child { min-width: 0; }
.sample-statement__bar { display: inline-block; flex-shrink: 0; width: 72px; height: 10px; border-radius: 5px; background: var(--mist); }
.sample-statement__receipt-line { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.sample-statement__receipt { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--slate); }
.sample-statement__total { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 16px; padding: 16px 0 12px; border-top: 1px solid var(--ink); font-size: 16px; font-weight: 600; }
.sample-statement__basis { font-size: 15px; line-height: 1.5; color: var(--slate); }
.sample-statement__paid { margin-top: 24px; padding: 16px 18px; border-radius: var(--radius-control); background: var(--paper); display: flex; flex-direction: column; gap: 8px; }
.sample-statement__docs { margin-top: 20px; }
.sample-statement__doc { flex-wrap: wrap; gap: 4px 16px; padding: 12px 0; border-bottom: 1px solid var(--hairline); }
.sample-statement__doc--last { border-bottom: 0; }

/* ---------- stays (Stays.dc.html) ---------- */
.stay-top { padding-top: clamp(24px, 4vw, 48px); }
.stay-top__inner { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 32px 40px; }
.stay-top__gallery { flex: 7 1 460px; min-width: 0; }
.stay-top__text { flex: 4 1 360px; min-width: 0; }
.stay-top__title { margin-top: 14px; font-family: var(--font-display); font-weight: 600; font-size: clamp(38px, 3.6vw, 52px); line-height: 1.1; letter-spacing: -0.01em; font-variation-settings: 'opsz' 144, 'SOFT' 0, 'WONK' 0; }
.stay-top__description { margin-top: 16px; }
.stay-top__reviews { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--hairline); font-size: 16px; line-height: 1.5; color: var(--slate); }
.stay-top__panel { margin-top: 28px; }
.stay-book { margin-top: 28px; display: flex; flex-direction: column; gap: 10px; padding: clamp(20px, 2.2vw, 28px); background: var(--white); border: 1px solid var(--hairline); border-radius: var(--radius-card); font-size: 16px; line-height: 1.5; }
.stay-book__title { font-family: var(--font-display); font-weight: 600; font-size: 28px; line-height: 1.15; }
/* Stacked (below 908 px: 460 + 40 + 360 px plus the 24 px gutters): the name and rating first, then the
   photos, then the description and the booking card. Gallery first, the h1 started below the first screen. */
@media (max-width: 907.98px) {
  .stay-top__inner { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0; }
  .stay-top__text { display: contents; }
  .stay-top__gallery { order: 1; flex: none; margin-top: 24px; }
  .stay-top__description, .stay-top__panel, .stay-book { order: 2; }
  .stay-top__description { margin-top: 24px; }
}

.stay-gallery__main { position: relative; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; border-radius: var(--radius-card); background: var(--mist); }
.stay-gallery__main img { display: block; width: 100%; height: 100%; object-fit: cover; }
.stay-gallery__nav {
  position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--hairline); border-radius: 22px; background: var(--paper); color: var(--ink); text-decoration: none;
}
.stay-gallery__nav:hover { background: var(--white); color: var(--ink); }
.stay-gallery__nav--prev { left: 14px; }
.stay-gallery__nav--next { right: 14px; }
.stay-gallery__thumbs { list-style: none; margin-top: 10px; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.stay-gallery__thumb { display: block; width: 100%; aspect-ratio: 4 / 5; min-height: 44px; overflow: hidden; border: 2px solid transparent; border-radius: var(--radius-control); background: var(--mist); }
.stay-gallery__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0.8; }
.stay-gallery__thumb[aria-current='true'] { border-color: var(--ink); }
.stay-gallery__thumb[aria-current='true'] img, .stay-gallery__thumb:hover img { opacity: 1; }
.stay-gallery__count { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 44px; border-radius: var(--radius-control); background: var(--mist); color: var(--ink); text-align: center; }
.stay-gallery__count-number { font-family: var(--font-display); font-weight: 600; font-size: 22px; line-height: 1; font-variation-settings: 'opsz' 72; font-variant-numeric: lining-nums; }
.stay-gallery__count-of { margin-top: 4px; font-size: 13px; line-height: 1.2; color: var(--slate); }

.stay-flat { gap: 48px 64px; }
.stay-flat__text { flex: 1 1 420px; max-width: 640px; }
.stay-flat__facts { flex: 1 1 380px; }
.stay-facts { margin-top: 10px; border-top: 1px solid var(--ink); }
.stay-facts div { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 24px; padding: 14px 0; border-bottom: 1px solid var(--hairline); }
.stay-facts dt { font-size: 16px; color: var(--slate); }
.stay-facts dd { font-size: 17px; font-weight: 500; text-align: right; }
.stay-measure { max-width: 640px; }
.stay-amenities { list-style: none; margin-top: 32px; display: flex; flex-wrap: wrap; gap: 12px; }
.stay-amenities li { box-sizing: border-box; flex: 1 1 170px; display: flex; flex-direction: column; gap: 14px; min-height: 112px; padding: 20px; border-radius: var(--radius-card); background: var(--white); font-size: 16px; font-weight: 500; line-height: 1.4; }
.stay-area { gap: 40px 64px; }
.stay-area__figure { flex: 1 1 320px; max-width: 500px; }
.stay-area__text { flex: 1 1 420px; }
.stay-area__intro { max-width: 620px; }
.stay-places { list-style: none; margin-top: 24px; border-top: 1px solid var(--ink); }
.stay-places li { display: flex; align-items: flex-start; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--hairline); }
.stay-places svg, .stay-rules svg { flex: 0 0 auto; margin-top: 2px; }
.stay-item__title { display: block; font-size: 18px; font-weight: 600; line-height: 1.35; }
.stay-item__text { display: block; margin-top: 2px; font-size: 16px; line-height: 1.5; color: var(--slate); }
.stay-rules { list-style: none; margin-top: 32px; display: flex; flex-wrap: wrap; gap: 0 40px; }
.stay-rules li { flex: 1 1 320px; display: flex; align-items: flex-start; gap: 16px; padding: 20px 0; border-top: 1px solid var(--hairline); }
.stay-rules .stay-item__text { margin-top: 4px; }

/* ---------- about (About.dc.html) ---------- */
.about-text { font-size: 18px; line-height: 1.6; }
.about-text--loose { line-height: 1.65; }
.about-h2 { letter-spacing: -0.005em; font-size: clamp(28px, calc(1.2vw + 18px), 36px); }
.about-h3 { font-size: 22px; font-weight: 600; line-height: 1.3; }
.about-intro { gap: 48px 72px; }
.about-intro__text { flex: 1 1 460px; }
.about-intro__title { max-width: 620px; font-family: var(--font-display); font-weight: 600; font-size: clamp(38px, calc(2.8vw + 16px), 56px); line-height: 1.1; letter-spacing: -0.01em; font-variation-settings: 'opsz' 144, 'SOFT' 0, 'WONK' 0; text-wrap: balance; }
.about-intro__title span { display: block; }
.about-intro__lead { margin-top: 28px; max-width: 600px; font-size: 21px; line-height: 1.5; }
.about-intro__text .about-text { max-width: 600px; }
.about-intro__figure { flex: 1 1 360px; max-width: 500px; }
.about-why { padding-bottom: clamp(64px, 7vw, 104px); }
.about-why__inner { display: flex; flex-wrap: wrap; gap: 32px 72px; padding-top: clamp(48px, 5vw, 72px); border-top: 1px solid var(--hairline); }
.about-why__head { flex: 1 1 300px; max-width: 420px; min-width: 0; }
.about-why__body { flex: 1 1 480px; max-width: 660px; min-width: 0; font-size: 18px; line-height: 1.65; }
.about-why__body p + p { margin-top: 20px; }
.about-how__title { max-width: 760px; }
.about-how__intro { max-width: 680px; }
.about-how { margin-top: clamp(40px, 4vw, 56px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 64px; }
@media (max-width: 640px) { .about-how { grid-template-columns: minmax(0, 1fr); } }
.about-how__item { min-width: 0; padding-top: 28px; border-top: 1px solid var(--hairline); }
.about-how__item .about-h3 { margin-top: 16px; }
.about-how__item .about-text { margin-top: 10px; max-width: 500px; }
.about-mk { gap: 40px 72px; }
.about-mk__figure { flex: 1 1 480px; }
.about-mk__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-card); background: #c9d5d2; }
.about-mk__text { flex: 1 1 420px; }
.about-visitors { margin-top: clamp(48px, 5vw, 72px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 48px; }
@media (max-width: 640px) { .about-visitors { grid-template-columns: minmax(0, 1fr); } }
.about-visitor { min-width: 0; }
.about-visitor__rule { width: 32px; height: 2px; border-top: 2px solid var(--green-deep); border-bottom: 2px solid var(--green-deep); box-sizing: content-box; }
.about-visitor .about-h3 { margin-top: 20px; }
.about-visitor .about-text { margin-top: 10px; }
.about-mk__close { margin-top: clamp(48px, 5vw, 64px); padding-top: 28px; border-top: 1px solid #b9c7c4; max-width: 820px; font-size: 18px; line-height: 1.65; }
.about-contact { gap: 40px 72px; }
.about-contact__text { flex: 1 1 440px; }
.about-contact__lead, .about-contact__stay { max-width: 560px; }
.about-contact__text .ps-btn { display: inline-flex; }
.about-contact__card { flex: 1 1 360px; max-width: 480px; }
.about-ways { list-style: none; padding: 4px 28px; background: var(--white); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
@media (max-width: 479.98px) { .about-ways { padding: 4px 18px; } }
.about-ways li { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--hairline); }
.about-ways li:last-child { border-bottom: 0; }
.about-ways li > div { min-width: 0; }
.about-ways svg { flex: none; }
.about-ways__link { display: inline-flex; align-items: center; min-height: 44px; font-size: 18px; font-weight: 600; color: var(--green); text-underline-offset: 3px; }
.about-ways__link:hover { color: var(--green-deep); }
.about-ways__place { display: flex; align-items: center; min-height: 44px; font-size: 18px; font-weight: 600; line-height: 1.4; }

/* ---------- contact (Contact.dc.html) ---------- */
.contact-intro { gap: 48px 64px; }
.contact-intro__text { flex: 7 1 560px; }
.contact-intro__text .ps-title { font-size: clamp(38px, 4.2vw, 56px); }
.contact-lead { margin-top: 20px; max-width: 600px; font-size: clamp(17px, 1.3vw, 19px); line-height: 1.6; }
.contact-routes { margin-top: 40px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 960px) { .contact-routes { grid-template-columns: minmax(0, 1fr); } }
.contact-route { display: flex; flex-direction: column; gap: 10px; padding: 28px; background: var(--white); border: 1px solid var(--hairline); border-radius: var(--radius-card); font-size: 17px; line-height: 1.55; }
@media (max-width: 479.98px) { .contact-route { padding: 22px; } }
.contact-route__eyebrow { margin-top: 8px; }
.contact-route__title { font-family: var(--font-display); font-weight: 600; font-size: 26px; line-height: 1.2; font-variation-settings: 'SOFT' 0, 'WONK' 0; }
.contact-route__link { margin-top: auto; padding-top: 8px; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 17px; font-weight: 600; color: var(--green); text-decoration: underline; text-underline-offset: 4px; }
.contact-intro__figure { flex: 5 1 340px; }
.contact-intro__crop { overflow: hidden; border-radius: var(--radius-card); background: var(--mist); aspect-ratio: 4 / 5; }
.contact-intro__crop img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; transform: scale(1.28); transform-origin: 50% 20%; }
.contact-reach__head { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px 24px; }
.contact-reach__icon { flex: none; margin-top: 6px; }
.contact-reach__intro { flex: 1 1 480px; min-width: 0; }
.contact-reach__intro .ps-body { max-width: 640px; font-size: 17px; line-height: 1.6; }
.contact-reach { margin-top: 40px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
@media (max-width: 960px) { .contact-reach { grid-template-columns: minmax(0, 1fr); } }
.contact-reach__item { min-width: 0; padding-top: 20px; border-top: 2px solid var(--ink); }
.contact-reach__label { display: flex; align-items: center; gap: 8px; }
.contact-reach__value { display: inline-flex; align-items: center; min-height: 44px; margin-top: 6px; font-family: var(--font-display); font-weight: 600; font-size: clamp(24px, 2.2vw, 30px); line-height: 1.2; color: var(--ink); text-decoration: none; font-variation-settings: 'SOFT' 0, 'WONK' 0; }
.contact-reach__value:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.contact-reach__value--email { font-size: clamp(22px, 2.1vw, 28px); }
.contact-reach__item .ps-small { margin-top: 6px; }
.contact-enquiry { gap: 56px 72px; }
.contact-enquiry__main { flex: 7 1 560px; }
.contact-enquiry__intro { max-width: 600px; font-size: 17px; line-height: 1.6; }
.contact-enquiry__card { margin-top: 32px; padding: clamp(24px, 3vw, 40px); }
@media (max-width: 479.98px) { .contact-enquiry__card { padding: 20px 16px; } }
.contact-enquiry__aside { flex: 5 1 340px; }
.contact-next__title { margin-bottom: 8px; font-family: var(--font-display); font-weight: 600; font-size: clamp(24px, 2.2vw, 30px); line-height: 1.25; font-variation-settings: 'SOFT' 0, 'WONK' 0; }
.contact-next { list-style: none; margin-top: 24px; }
.contact-next__step { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 16px; padding: 24px 0; border-top: 1px solid var(--hairline); font-size: 17px; line-height: 1.55; }
.contact-next__step:last-child { border-bottom: 1px solid var(--hairline); }
.contact-next__number { font-family: var(--font-display); font-weight: 600; font-size: 34px; line-height: 1; color: var(--green); font-variant-numeric: lining-nums; }
.contact-next__step-title { margin-bottom: 8px; font-size: clamp(19px, 1.5vw, 21px); font-weight: 600; line-height: 1.3; }
.contact-area { gap: 48px 72px; }
.contact-area__text { flex: 5 1 340px; }
.contact-area__text .ps-body { font-size: 17px; line-height: 1.6; }
.contact-area__map { flex: 7 1 520px; }
.area-map { padding: clamp(12px, 2vw, 20px); background: var(--paper); border: 1px solid var(--hairline); border-radius: var(--radius-card); }
.area-map__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.area-map__north { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--slate); }
.area-map__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: minmax(84px, auto); gap: 8px; padding: 8px; background: var(--hairline); border-radius: var(--radius-control); }
.area-map__tile { display: flex; align-items: flex-end; padding: clamp(8px, 1.2vw, 14px); border-radius: 4px; background: var(--green-tint); font-size: clamp(13px, 1.1vw, 15px); font-weight: 500; line-height: 1.3; color: var(--ink); overflow-wrap: break-word; hyphens: manual; }
.area-map__tile--beyond { background: var(--paper); }
.area-map__centre { grid-column: span 2; display: flex; flex-direction: column; justify-content: space-between; gap: 14px; min-height: 132px; padding: clamp(12px, 1.6vw, 20px); border-radius: 4px; background: var(--ink); }
.area-map__code { display: block; font-size: 13px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--mint); }
.area-map__name { display: block; margin-top: 4px; font-family: var(--font-display); font-weight: 600; font-size: clamp(19px, 1.8vw, 24px); line-height: 1.2; color: var(--paper); }
.area-map__places { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; font-size: clamp(13px, 1.1vw, 15px); line-height: 1.35; color: var(--mist); }
.area-map__places > span { display: inline-flex; align-items: center; gap: 8px; }
.area-map__dot { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--mint); }
.area-map__key { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 16px; font-size: 15px; line-height: 1.4; }
.area-map__key > span { display: inline-flex; align-items: center; gap: 8px; }
.area-map__swatch { flex: none; width: 14px; height: 14px; border-radius: 3px; box-sizing: border-box; }
.area-map__swatch--centre { background: var(--ink); }
.area-map__swatch--near { background: var(--green-tint); border: 1px solid var(--slate); }
.area-map__swatch--beyond { background: var(--paper); border: 1px solid var(--slate); }

/* ---------- legal pages (privacy, terms) ---------- */
.legal-top { padding: clamp(48px, 6vw, 80px) 0 clamp(32px, 4vw, 48px); }
.legal-lead { margin-top: 20px; max-width: 760px; font-size: clamp(17px, 1.3vw, 19px); line-height: 1.6; }
.legal-review { margin-top: 24px; max-width: 760px; display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border-radius: var(--radius-control); background: var(--amber-tint); font-size: 16px; line-height: 1.5; }
.legal-review strong { font-weight: 600; }
.legal-review__icon { flex: none; margin-top: 2px; color: var(--amber-deep); }
.legal-body { border-top: 1px solid var(--hairline); padding: clamp(40px, 5vw, 64px) 0 clamp(56px, 7vw, 96px); }
.legal-body__inner { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 40px 64px; }
.legal-contents { flex: 1 1 240px; min-width: 0; }
@media (min-width: 1024px) { .legal-contents { position: sticky; top: 24px; max-width: 300px; } }
.legal-contents .eyebrow { margin-bottom: 8px; }
.legal-contents__list { list-style: none; border-top: 1px solid var(--hairline); }
.legal-contents__list li { border-bottom: 1px solid var(--hairline); }
.legal-contents__list a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 0; font-size: 16px; color: var(--ink); text-decoration: none; }
.legal-contents__list a:hover { color: var(--green-deep); text-decoration: underline; }
.legal-contents__list a span { flex: none; width: 20px; color: var(--slate); }
.legal-sections { flex: 3 1 520px; max-width: 760px; min-width: 0; }
.legal-section { scroll-margin-top: 24px; }
.legal-section + .legal-section { margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--hairline); }
.legal-section__title { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.25; }
.legal-section__title span { margin-right: 8px; color: var(--green); }
.legal-prose { margin-top: 20px; display: flex; flex-direction: column; gap: 16px; font-size: 17px; line-height: 1.65; }
.legal-prose h3 { margin-top: 12px; font-size: 19px; line-height: 1.35; font-weight: 600; }
.legal-prose ul { list-style: disc; padding-left: 24px; }
.legal-prose li + li { margin-top: 6px; }
.legal-prose strong { font-weight: 600; }
