/* Suite brand correction. Loaded after the individual public modules. */
@font-face {
  font-family: "HMH Suite Walsheim";
  src: url("../modules/hmh-navigation/assets/GT-Walsheim-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "HMH Suite Walsheim";
  src: url("../modules/hmh-navigation/assets/GT-Walsheim-Medium.woff2") format("woff2");
  font-style: normal;
  /* Medium also serves heavier labels until a licensed Bold file is supplied. */
  font-weight: 500 800;
  font-display: swap;
}
@font-face {
  font-family: "HMH Suite Clearface";
  src: url("../modules/hmh-navigation/assets/3B107E_0_0.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
:root {
  --hmh-suite-ink: #201e28;
  --hmh-suite-navy: #2e4066;
  --hmh-suite-yellow: #faeb89;
  --hmh-suite-raspberry: #db365e;
  --hmh-suite-surface: #f0f0f0;
  --hmh-suite-sans: "HMH Suite Walsheim", Arial, sans-serif;
  --hmh-suite-serif: "HMH Suite Clearface", Georgia, serif;
}

/* Page surfaces and component palettes. White remains available for cards and text. */
body.hmh-homepage {
  --ink: var(--hmh-suite-ink);
  --navy: var(--hmh-suite-navy);
  --pink: var(--hmh-suite-raspberry);
  background: var(--hmh-suite-surface);
  color: var(--hmh-suite-ink);
  font-family: var(--hmh-suite-sans);
}
body.hmh-homepage :is(h1, h2, h3),
body.hmh-homepage .dialog-bottom h2,
body.hmh-homepage .cookie-preview h2 {
  font-family: var(--hmh-suite-serif);
}
body.hmh-homepage :is(button, input, select, textarea) {
  font-family: var(--hmh-suite-sans);
}
body.hmh-homepage .home-search button,
body.hmh-homepage .cookie-preview button {
  background: var(--hmh-suite-raspberry);
}
body.hmh-homepage .home-search button:hover,
body.hmh-homepage .cookie-preview button:hover {
  background: var(--hmh-suite-navy);
}
body.hmh-homepage :is(.photo-tile, .tile-caption) {
  background: var(--hmh-suite-navy);
}
body.hmh-homepage .story-steps button[aria-pressed="true"] span {
  color: var(--hmh-suite-yellow);
}

.hmhn-header, .hmhn-footer-nav, .hmhn-footer {
  --hmhn-ink: var(--hmh-suite-ink);
  --hmhn-pink: var(--hmh-suite-raspberry);
  color: var(--hmh-suite-ink);
  font-family: var(--hmh-suite-sans);
}
.hmhn-header .hmhn-cta {
  background: var(--hmh-suite-raspberry);
}
.hmhn-header .hmhn-cta:hover {
  background: var(--hmh-suite-navy);
  transform: none;
}
.hmhn-footer-nav {
  background: var(--hmh-suite-ink);
}
.hmhn-footer-nav .hmhn-group-title,
.hmhn-footer-nav a:hover,
.hmhn-footer-nav a[aria-current="page"],
.footer.hmhn-footer .hmhn-footer-nav a:hover,
.footer.hmhn-footer .hmhn-cookie:hover {
  color: var(--hmh-suite-yellow) !important;
}
.hmhn-skip { color: var(--hmh-suite-ink); }

body.hmd-design {
  --hmd-navy: var(--hmh-suite-navy);
  --hmd-pink: var(--hmh-suite-raspberry);
  --hmd-yellow: var(--hmh-suite-yellow);
  --hmd-grey: var(--hmh-suite-surface);
  --hmd-serif: var(--hmh-suite-serif);
  --hmd-sans: var(--hmh-suite-sans);
  background: var(--hmh-suite-surface);
  color: var(--hmh-suite-ink);
}
body.hmd-design .hmd-page {
  background: var(--hmh-suite-surface);
  font-family: var(--hmh-suite-sans);
}
body.hmd-design .hmd-page :is(h1, h2, h3),
body.hmd-design .hmd-page #properties .hmd-card-price strong {
  font-family: var(--hmh-suite-serif);
  color: var(--hmh-suite-navy);
}
body.hmd-design .hmd-page :is(button, input, select, summary) {
  font-family: var(--hmh-suite-sans);
}
body.hmd-design .hmd-page .hmd-button:hover,
body.hmd-design .hmd-map-tabs button:hover,
body.hmd-design .hmd-map-tabs button[aria-pressed="true"] {
  background: var(--hmh-suite-navy);
  border-color: var(--hmh-suite-navy);
  color: #fff;
}
body.hmd-design .hmd-page #properties.hpf-enhanced .hpf-card .lower .btn:hover {
  background: var(--hmh-suite-raspberry);
  border-color: var(--hmh-suite-raspberry);
  color: #fff;
}
body.hmd-design .hmd-page .hmd-question-button:hover,
body.hmd-design .hmd-page .hmd-question-button:focus-visible {
  background: var(--hmh-suite-yellow);
  border-color: var(--hmh-suite-ink);
  color: var(--hmh-suite-ink);
  box-shadow: inset 0 0 0 2px var(--hmh-suite-ink);
}

#properties.hpf-enhanced {
  --hpf-raspberry: var(--hmh-suite-raspberry);
  --hpf-navy: var(--hmh-suite-navy);
  --hpf-ink: var(--hmh-suite-ink);
  --hpf-surface: var(--hmh-suite-surface);
  --hpf-yellow: var(--hmh-suite-yellow);
  --hpf-serif: var(--hmh-suite-serif);
  --hpf-sans: var(--hmh-suite-sans);
}
.hmh-smart-search {
  --hmh-navy: var(--hmh-suite-navy);
  --hmh-raspberry: var(--hmh-suite-raspberry);
  --hmh-yellow: var(--hmh-suite-yellow);
  --hmh-ink: var(--hmh-suite-ink);
  --hmh-surface: var(--hmh-suite-surface);
  font-family: var(--hmh-suite-sans);
}
main:has(> .hmh-smart-search),
.hmh-homes-results {
  background: var(--hmh-suite-surface);
}
.hmh-smart-search__eyebrow,
.hmh-smart-search__form .hmh-filter-toggle {
  color: var(--hmh-suite-raspberry);
}
.hmh-search-options {
  background: var(--hmh-suite-yellow);
  border-color: var(--hmh-suite-yellow);
}
.hmh-smart-search .hmh-smart-search__submit.btn {
  background: var(--hmh-suite-raspberry) !important;
  border-color: var(--hmh-suite-raspberry) !important;
  color: #fff !important;
}
.hmh-smart-search .hmh-smart-search__submit.btn:hover,
.hmh-smart-search .hmh-smart-search__submit.btn:focus-visible {
  background: var(--hmh-suite-navy) !important;
  border-color: var(--hmh-suite-navy) !important;
  color: #fff !important;
}

:where(.hmh-help, .hmh-alerts) {
  --hmh-alert-surface: var(--hmh-suite-surface);
  --hmh-alert-serif: var(--hmh-suite-serif);
  --hmh-alert-sans: var(--hmh-suite-sans);
}
:where(.hmh-popups, .hmh-popup, .hmh-popup-modal) {
  --hmh-serif: var(--hmh-suite-serif);
  --hmh-sans: var(--hmh-suite-sans);
}
[data-hmh-about-us],
:where([data-hmh-shared-ownership], [data-hmh-staircasing], [data-hmh-ready-to-buy], [data-hmh-solicitor], [data-hmh-energy], [data-hmh-stamp-duty], [data-hmh-deposit], [data-hmh-home-options], [data-hmh-rent-to-buy], [data-hmh-contact], [data-hmh-homeowners-page]) {
  --serif: var(--hmh-suite-serif) !important;
  --sans: var(--hmh-suite-sans) !important;
}

body:is(.single-homes, .single-property).hmh-home-concept-one,
body:is(.single-homes, .single-property).hmh-home-concept-one .hmh-home-small-print {
  --hmh-suite-sans: "HMH Suite Walsheim", Arial, sans-serif;
  --hmh-suite-serif: "HMH Suite Clearface", Georgia, serif;
  color: var(--hmh-suite-ink);
}
.hmh-home-concept-one :is(.hmh-home-actions__title, .hmh-home-action-group h4, .hmh-home-incentive h4, .hmh-home-explore-card h3, .hmh-home-small-print h2) {
  color: var(--hmh-suite-navy);
}
.hmh-home-concept-one .hmh-home-incentive {
  background: var(--hmh-suite-yellow);
  border-color: var(--hmh-suite-yellow);
}
.hmh-home-concept-one :is(.hmh-home-glance, .hmh-home-cost-banner__icon, .hmh-home-action-group--guidance),
.hmh-home-concept-one .hmh-home-brochure .hmh-brochure-card > .hmh-brochure-open {
  background: var(--hmh-suite-surface);
}
.hmh-home-concept-one :is(.hmh-home-action-tile, .hmh-home-guidance-link, .hmh-home-question-dialog__close) {
  color: var(--hmh-suite-navy);
}
.hmh-home-concept-one .hmh-home-glance .hmh-features__link,
.hmh-home-concept-one .hmh-home-incentive__icon {
  color: var(--hmh-suite-raspberry);
}
.hmh-home-concept-one .hmh-home-small-print__warning {
  color: var(--hmh-suite-navy) !important;
}
.hmh-home-concept-one .hmh-home-action-tile:hover,
.hmh-home-concept-one .hmh-home-action-tile:focus-visible,
.hmh-home-concept-one .hmh-home-guidance-link:hover,
.hmh-home-concept-one .hmh-home-guidance-link:focus-visible {
  background: var(--hmh-suite-surface);
  color: var(--hmh-suite-navy);
}
.hmh-home-concept-one .hmh-home-button--header-phone:hover,
.hmh-home-concept-one .hmh-home-button--header-phone:focus-visible,
.hmh-home-concept-one .hmh-home-button--primary:hover,
.hmh-home-concept-one .hmh-home-button--primary:focus-visible {
  background: var(--hmh-suite-navy);
  border-color: var(--hmh-suite-navy);
  color: #fff;
}
.hmh-home-concept-one .hmh-home-button--question:hover,
.hmh-home-concept-one .hmh-home-button--question:focus-visible {
  background: var(--hmh-suite-yellow);
  border-color: var(--hmh-suite-ink);
  color: var(--hmh-suite-ink);
  box-shadow: inset 0 0 0 2px var(--hmh-suite-ink);
}

/* Primary and secondary actions share a pill shape. Icon, map and filter controls keep their functional shapes. */
.hmd-page .hmd-button,
body.hmd-design .hmd-page #properties.hpf-enhanced .hpf-card .lower .btn,
.hmh-home-concept-one :is(.hmh-home-button, .hmh-home-incentive__button, .hmh-home-action-tile, .hmh-home-guidance-link),
.hmh-smart-search .hmh-smart-search__submit,
#response.hmh-results-grid > .card.homes .homes-link.btn,
#properties.hpf-enhanced .hpf-card .btn,
.hmhn-header .hmhn-cta,
body.hmh-homepage .home-search button {
  border-radius: 999px !important;
  font-family: var(--hmh-suite-sans) !important;
}
.hmd-page .hmd-button,
.hmh-home-concept-one :is(.hmh-home-button, .hmh-home-incentive__button, .hmh-home-action-tile, .hmh-home-guidance-link),
#properties.hpf-enhanced .hpf-card .btn {
  min-height: 48px;
}
@media (prefers-reduced-motion: reduce) {
  .hmhn-header .hmhn-cta { transition: none; }
}
