:root {
  --dh-clean-navy: #102033;
  --dh-clean-teal: #0E5F6A;
  --dh-clean-gold: #C89B5E;
  --dh-clean-border: rgba(16, 32, 51, 0.12);
}

body.dh-clean-page .page-title-wrap,
body.dh-clean-page .breadcrumb-wrap,
body.dh-clean-page .sidebar-wrap,
body.dh-clean-page .widget-area,
body.dh-clean-page aside:not(.dh-rhb-map-preview),
body.dh-clean-page .houzez-search-form-js,
body.dh-clean-page #desktop-header-search {
  display: none !important;
}

body.dh-clean-page .main-wrap,
body.dh-clean-page .content-wrap,
body.dh-clean-page .page-template,
body.dh-clean-page #primary {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.dh-clean-home-main,
.dh-clean-search-main {
  width: 100%;
  margin: 0;
  padding: 0;
  background: #fff;
}

/* Clean homepage: header -> 100vh approved hero -> footer. */
.dh-clean-home-hero {
  min-height: 100vh;
  min-height: 100svh;
  background-color: var(--dh-clean-navy);
  background-image: url('https://dubaihome.ai/wp-content/uploads/2023/01/heaader-03.jpg');
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.dh-clean-home-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(16, 32, 51, 0.42);
  z-index: 1;
  pointer-events: none;
}

.dh-clean-home-hero-inner {
  min-height: 100vh;
  min-height: 100svh;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: clamp(28px, 6vh, 78px) clamp(18px, 4vw, 46px);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
}

.dh-clean-home-panel {
  width: 100%;
  max-width: 1060px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
}

.dh-clean-home-tabs {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0 0 0;
  position: relative;
  z-index: 4;
}

.dh-clean-home-tab {
  min-width: 116px;
  height: 48px;
  padding: 0 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px 4px 0 0;
  background: rgba(16, 61, 91, 0.92);
  color: #fff !important;
  font-size: 18px;
  line-height: 1;
  font-weight: 650;
  text-decoration: none !important;
  box-shadow: none !important;
}

.dh-clean-home-tab.is-active {
  background: rgba(0, 106, 111, 0.96);
}

.dh-clean-home-search {
  width: 100%;
  max-width: 1010px;
  position: relative;
  z-index: 3;
}

.dh-clean-home-search .dhgs-shell {
  margin: 0 auto !important;
  width: 100% !important;
  max-width: 1010px !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

.dh-clean-home-copy {
  width: 100%;
  max-width: 900px;
  margin-top: 28px;
  text-align: center;
  color: #fff;
  position: relative;
  z-index: 2;
}

.dh-clean-home-copy h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(36px, 5vw, 66px);
  line-height: 1.04;
  font-weight: 760;
  letter-spacing: -0.055em;
  text-shadow: none;
}

.dh-clean-home-copy p {
  margin: 12px 0 0;
  color: rgba(255, 255, 255, 0.94);
  font-size: clamp(17px, 2vw, 25px);
  line-height: 1.35;
  font-weight: 520;
}

/* Clean search results page. */
.dh-clean-search-band {
  width: 100%;
  padding: 0 clamp(10px, 1.5vw, 18px) 12px;
  background: #fff;
  border-bottom: 0 !important;
}

.dh-clean-search-inner {
  width: 100%;
  max-width: none;
  margin: 0 auto;
}

.dh-clean-search-inner .dhgs-shell,
.dh-clean-search-band .dhgs-shell {
  border-radius: 4px !important;
  box-shadow: none !important;
}

.dh-clean-results-shell {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 26px clamp(14px, 3vw, 34px) 46px;
  background: #fff;
}

.dh-clean-results-toolbar {
  width: 100% !important;
  max-width: 1120px !important;
  margin: 0 auto 18px !important;
  padding: 0 !important;
}

.dh-clean-results-toolbar .sort-by {
  gap: 9px;
  color: rgba(16, 32, 51, 0.50);
  font-size: 14px;
}

.dh-clean-results-sort-value {
  color: rgba(16, 32, 51, 0.45);
  font-size: 15px;
  font-weight: 500;
}

.dh-clean-results-list {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
}

.dh-clean-no-results {
  max-width: 720px;
  margin: 48px auto;
  padding: 34px;
  border: 1px solid var(--dh-clean-border);
  border-radius: 4px;
  text-align: center;
}

.dh-clean-no-results h2 {
  margin: 0 0 8px;
  color: var(--dh-clean-navy);
}

.dh-clean-no-results p {
  margin: 0;
  color: rgba(16, 32, 51, 0.62);
}

.dh-clean-pagination {
  max-width: 1120px;
  margin: 28px auto 0;
  display: flex;
  justify-content: center;
}

.dh-clean-pagination ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
}

.dh-clean-pagination a,
.dh-clean-pagination span {
  min-width: 38px;
  height: 38px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  border: 1px solid var(--dh-clean-border);
  color: var(--dh-clean-navy);
  text-decoration: none !important;
  font-weight: 650;
  background: #fff;
}

.dh-clean-pagination .current {
  background: var(--dh-clean-teal);
  color: #fff;
  border-color: var(--dh-clean-teal);
}

/* 4px design rule for normal search boxes. Full-bleed containers keep square edges. */
.dhgs-shell,
.dhgs-field,
.dhgs-choice-button,
.dhgs-toggle,
.dhgs-clear,
.dhgs-submit,
.dh-project-card,
.dh-project-card-btn,
.dh-project-card-dev-logo-wrap {
  border-radius: 4px !important;
}

.dh-project-card-image-badge {
  border-radius: 4px !important;
}

@media (max-width: 1023px) {
  .dh-clean-home-hero,
  .dh-clean-home-hero-inner {
    min-height: 100svh;
  }

  .dh-clean-home-hero-inner {
    padding: 24px 14px 34px;
    align-items: center;
  }

  .dh-clean-home-tabs {
    gap: 6px;
    width: 100%;
    max-width: 560px;
  }

  .dh-clean-home-tab {
    flex: 1 1 0;
    min-width: 0;
    height: 44px;
    padding: 0 8px;
    font-size: 15px;
  }

  .dh-clean-home-copy {
    margin-top: 22px;
  }
}

@media (max-width: 767px) {
  .dh-clean-search-band {
    padding: 0 8px 10px;
  }

  .dh-clean-results-shell {
    padding-left: 10px;
    padding-right: 10px;
  }

  .dh-clean-results-toolbar {
    display: none !important;
  }
}

/* v2.0.3 Approved Hero Restore + Sort Fix: keep header -> approved hero -> footer without layout jump. */
body.dh-clean-home-page .dh-clean-home-hero {
  --dh-clean-header-offset: var(--dh-rhb-home-hero-offset, 72px);
  height: calc(100vh - var(--dh-clean-header-offset)) !important;
  min-height: calc(100vh - var(--dh-clean-header-offset)) !important;
  max-height: calc(100vh - var(--dh-clean-header-offset)) !important;
  background-position: center center !important;
  background-size: cover !important;
}

@supports (height: 100svh) {
  body.dh-clean-home-page .dh-clean-home-hero {
    height: calc(100svh - var(--dh-clean-header-offset)) !important;
    min-height: calc(100svh - var(--dh-clean-header-offset)) !important;
    max-height: calc(100svh - var(--dh-clean-header-offset)) !important;
  }
}

body.dh-clean-home-page .dh-clean-home-hero-inner {
  height: 100% !important;
  min-height: 100% !important;
  padding-top: clamp(18px, 4vh, 46px) !important;
  padding-bottom: clamp(18px, 4vh, 46px) !important;
  align-items: center !important;
}

body.dh-clean-home-page .dh-clean-home-panel {
  transform: translateY(1vh);
}

body.dh-clean-home-page .dh-clean-home-tabs {
  margin-bottom: 0 !important;
}

body.dh-clean-home-page .dh-clean-home-search {
  max-width: 1040px !important;
}

body.dh-clean-home-page .dh-clean-home-search .dhgs-shell {
  max-width: 1040px !important;
}

body.dh-clean-home-page .dh-clean-home-copy {
  margin-top: clamp(20px, 3vh, 30px) !important;
}

body.dh-clean-home-page .dh-clean-home-copy h1,
body.dh-clean-home-page .dh-clean-home-copy p {
  color: #fff !important;
}


/* v2.1.8: Search-results search box starts directly under the global header. */
body.dh-clean-search-results-page .dh-clean-search-band,
body.dhhwb-search-results-page .dh-clean-search-band {
  padding-top: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
}

/* Search results toolbar: keep Sort by on the right and make it a real working dropdown. */
body.dh-clean-search-results-page .dh-clean-results-toolbar,
body.dhhwb-search-results-page .dh-clean-results-toolbar {
  max-width: 1120px !important;
  margin: 0 auto 18px !important;
}

body.dh-clean-search-results-page .dh-clean-results-toolbar > .d-flex,
body.dhhwb-search-results-page .dh-clean-results-toolbar > .d-flex,
body.dh-clean-search-results-page .listing-tools-wrap > .d-flex,
body.dhhwb-search-results-page .listing-tools-wrap > .d-flex {
  justify-content: flex-end !important;
  align-items: center !important;
}

.dh-clean-sort-form {
  margin-left: auto !important;
  margin-right: 0 !important;
  gap: 9px !important;
}

.dh-clean-sort-select {
  min-width: 168px;
  height: 38px;
  border: 0 !important;
  background: transparent !important;
  color: rgba(16, 32, 51, 0.46) !important;
  font: inherit;
  font-size: 15px;
  font-weight: 520;
  outline: 0 !important;
  box-shadow: none !important;
  cursor: pointer;
  padding: 0 22px 0 2px;
}

.dh-clean-sort-select:focus {
  color: #102033 !important;
}

@media (max-width: 767px) {
  body.dh-clean-home-page .dh-clean-home-hero {
    --dh-clean-header-offset: var(--dh-rhb-home-hero-offset, 64px);
  }

  body.dh-clean-home-page .dh-clean-home-panel {
    transform: none;
  }

  .dh-clean-search-band {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .dh-clean-results-shell {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .dh-clean-results-list {
    max-width: none !important;
    width: 100% !important;
  }
}

/* v2.0.4 sort selector: bordered compact select with close arrow. */
body.dh-clean-search-results-page .dh-clean-sort-form,
body.dhhwb-search-results-page .dh-clean-sort-form {
  margin-left: auto !important;
  margin-right: 0 !important;
  gap: 9px !important;
  display: inline-flex !important;
  align-items: center !important;
}

body.dh-clean-search-results-page .dh-clean-sort-select,
body.dhhwb-search-results-page .dh-clean-sort-select {
  width: auto !important;
  min-width: 154px !important;
  max-width: 220px !important;
  height: 36px !important;
  border: 1px solid rgba(16, 32, 51, 0.16) !important;
  border-radius: 4px !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23102033' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  background-size: 13px 13px !important;
  color: #102033 !important;
  font-size: 15px !important;
  font-weight: 650 !important;
  line-height: 1 !important;
  padding: 0 34px 0 12px !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer;
}

body.dh-clean-search-results-page .dh-clean-sort-select:focus,
body.dhhwb-search-results-page .dh-clean-sort-select:focus {
  border-color: rgba(14, 95, 106, 0.45) !important;
  outline: 0 !important;
}

/* v2.0.5 final badge color fix: clean-pages loads after project-cards, so enforce the agreed badge style here too. */
body.dh-clean-search-results-page .dh-project-card-image-badges,
body.dhhwb-search-results-page .dh-project-card-image-badges {
  gap: 2px !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: none !important;
}

body.dh-clean-search-results-page .dh-project-card-image-badges::-webkit-scrollbar,
body.dhhwb-search-results-page .dh-project-card-image-badges::-webkit-scrollbar {
  display: none !important;
}

body.dh-clean-search-results-page .dh-project-card-image-badge,
body.dhhwb-search-results-page .dh-project-card-image-badge,
body.dh-clean-search-results-page .dh-project-card-image-badge:not(.dh-project-card-image-badge-special),
body.dhhwb-search-results-page .dh-project-card-image-badge:not(.dh-project-card-image-badge-special) {
  border-radius: 4px !important;
  background: rgba(16, 32, 51, 0.68) !important;
  background-color: rgba(16, 32, 51, 0.68) !important;
  color: #fff !important;
  min-height: 24px !important;
  height: 24px !important;
  padding: 0 7px !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.01em !important;
  white-space: nowrap !important;
  flex: 0 0 auto !important;
}

body.dh-clean-search-results-page .dh-project-card-image-badge-special,
body.dhhwb-search-results-page .dh-project-card-image-badge-special {
  border-radius: 4px !important;
  background: #C89B5E !important;
  background-color: #C89B5E !important;
  color: #102033 !important;
}

/* v2.0.7 View Toggle + Text Weight Polish: toolbar controls only; search behavior stays unchanged. */
body.dh-clean-search-results-page .dh-clean-results-toolbar-inner,
body.dhhwb-search-results-page .dh-clean-results-toolbar-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
}

body.dh-clean-search-results-page .dh-clean-view-toggle,
body.dhhwb-search-results-page .dh-clean-view-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin: 0 4px 0 auto;
  padding: 0;
}

body.dh-clean-search-results-page .dh-clean-view-link,
body.dhhwb-search-results-page .dh-clean-view-link {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(16, 32, 51, 0.14);
  border-radius: 4px;
  background: #fff;
  color: rgba(16, 32, 51, 0.54) !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: border-color .16s ease, color .16s ease, background-color .16s ease;
}

body.dh-clean-search-results-page .dh-clean-view-link:hover,
body.dhhwb-search-results-page .dh-clean-view-link:hover,
body.dh-clean-search-results-page .dh-clean-view-link:focus,
body.dhhwb-search-results-page .dh-clean-view-link:focus {
  color: #0E5F6A !important;
  border-color: rgba(14, 95, 106, 0.34);
  background: rgba(14, 95, 106, 0.045);
  outline: 0;
}

body.dh-clean-search-results-page .dh-clean-view-link.is-active,
body.dhhwb-search-results-page .dh-clean-view-link.is-active {
  color: #0E5F6A !important;
  border-color: rgba(14, 95, 106, 0.48);
  background: rgba(14, 95, 106, 0.075);
}

body.dh-clean-search-results-page .dh-clean-view-icon,
body.dhhwb-search-results-page .dh-clean-view-icon,
body.dh-clean-search-results-page .dh-clean-view-icon svg,
body.dhhwb-search-results-page .dh-clean-view-icon svg {
  width: 18px;
  height: 18px;
  display: block;
}

body.dh-clean-search-results-page .dh-clean-view-icon svg,
body.dhhwb-search-results-page .dh-clean-view-icon svg {
  fill: currentColor;
}

body.dh-clean-search-results-page .dh-clean-sort-form,
body.dhhwb-search-results-page .dh-clean-sort-form {
  flex: 0 0 auto;
}

body.dh-clean-search-results-page .dh-clean-sort-select,
body.dhhwb-search-results-page .dh-clean-sort-select,
body.dh-clean-search-results-page .dh-clean-sort-select option,
body.dhhwb-search-results-page .dh-clean-sort-select option {
  font-weight: 400 !important;
}

@media (max-width: 1023px) {
  body.dh-clean-search-results-page .dh-clean-view-toggle,
  body.dhhwb-search-results-page .dh-clean-view-toggle {
    display: none !important;
  }
}

/* v2.0.7 final cascade: clean-pages loads last, so enforce regular/medium badge text here too. */
body.dh-clean-search-results-page .dh-project-card-image-badge,
body.dhhwb-search-results-page .dh-project-card-image-badge {
  font-weight: 400 !important;
}

/* v2.0.8 Grid Card Polish: keep view icons attached to Sort by and force regular badge/sort text in final cascade. */
body.dh-clean-search-results-page .dh-clean-results-toolbar-inner,
body.dhhwb-search-results-page .dh-clean-results-toolbar-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
}

body.dh-clean-search-results-page .dh-clean-view-toggle,
body.dhhwb-search-results-page .dh-clean-view-toggle {
  margin: 0 6px 0 0 !important;
  gap: 5px !important;
  flex: 0 0 auto !important;
}

body.dh-clean-search-results-page .dh-clean-sort-form,
body.dhhwb-search-results-page .dh-clean-sort-form {
  margin: 0 !important;
  flex: 0 0 auto !important;
}

body.dh-clean-search-results-page .dh-clean-sort-select,
body.dhhwb-search-results-page .dh-clean-sort-select,
body.dh-clean-search-results-page .dh-clean-sort-select option,
body.dhhwb-search-results-page .dh-clean-sort-select option {
  font-weight: 400 !important;
}

body.dh-clean-search-results-page .dh-project-card-image-badge,
body.dhhwb-search-results-page .dh-project-card-image-badge,
body.dh-clean-search-results-page .dh-project-card-image-badge *,
body.dhhwb-search-results-page .dh-project-card-image-badge * {
  font-weight: 400 !important;
}

/* v2.0.9 final cascade: toolbar stays right; sort text regular; badge weight cannot be overridden by earlier CSS. */
body.dh-clean-search-results-page .dh-clean-results-toolbar-inner,
body.dhhwb-search-results-page .dh-clean-results-toolbar-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
}

body.dh-clean-search-results-page .dh-clean-view-toggle,
body.dhhwb-search-results-page .dh-clean-view-toggle {
  margin: 0 6px 0 0 !important;
  flex: 0 0 auto !important;
}

body.dh-clean-search-results-page .dh-clean-sort-form,
body.dhhwb-search-results-page .dh-clean-sort-form {
  margin: 0 !important;
  flex: 0 0 auto !important;
}

body.dh-clean-search-results-page .dh-clean-sort-select,
body.dhhwb-search-results-page .dh-clean-sort-select,
body.dh-clean-search-results-page .dh-clean-sort-select option,
body.dhhwb-search-results-page .dh-clean-sort-select option {
  font-weight: 400 !important;
}

body.dh-clean-search-results-page .dh-project-card-image-badge,
body.dhhwb-search-results-page .dh-project-card-image-badge,
body.search-results .dh-project-card-image-badge,
.dh-project-card-image-badge,
body.dh-clean-search-results-page .dh-project-card-image-badge *,
body.dhhwb-search-results-page .dh-project-card-image-badge *,
body.search-results .dh-project-card-image-badge *,
.dh-project-card-image-badge * {
  font-weight: 400 !important;
  font-variation-settings: "wght" 400 !important;
}


/* v2.3.11 Global Card System: card internals are now owned by assets/css/project-cards.css.
   clean-pages.css keeps page/search spacing only and no longer overrides card heights, title wrapping, or button rows. */

/* v2.1.4 Search Results Spacing Polish: remove separator line under approved search box and bring results controls closer. */
body.dh-clean-search-results-page .dh-clean-search-band,
body.dhhwb-search-results-page .dh-clean-search-band {
  border-bottom: 0 !important;
  box-shadow: none !important;
  padding-bottom: 4px !important;
}

body.dh-clean-search-results-page .dh-clean-results-shell,
body.dhhwb-search-results-page .dh-clean-results-shell {
  padding-top: 8px !important;
}

body.dh-clean-search-results-page .dh-clean-results-toolbar,
body.dhhwb-search-results-page .dh-clean-results-toolbar {
  margin-top: 0 !important;
  margin-bottom: 14px !important;
}

@media (max-width: 767px) {
  body.dh-clean-search-results-page .dh-clean-search-band,
  body.dhhwb-search-results-page .dh-clean-search-band {
    padding-bottom: 4px !important;
  }

  body.dh-clean-search-results-page .dh-clean-results-shell,
  body.dhhwb-search-results-page .dh-clean-results-shell {
    padding-top: 8px !important;
  }
}


/* v2.1.5 No Shadows + Tighter Results Gap: reduce remaining approved search-results gap by another 50%. */
body.dh-clean-search-results-page .dh-clean-search-band,
body.dhhwb-search-results-page .dh-clean-search-band {
  border-bottom: 0 !important;
  box-shadow: none !important;
  padding-bottom: 2px !important;
}

body.dh-clean-search-results-page .dh-clean-results-shell,
body.dhhwb-search-results-page .dh-clean-results-shell {
  padding-top: 4px !important;
}

body.dh-clean-search-results-page .dh-clean-results-toolbar,
body.dhhwb-search-results-page .dh-clean-results-toolbar {
  margin-top: 0 !important;
  margin-bottom: 12px !important;
}

@media (max-width: 767px) {
  body.dh-clean-search-results-page .dh-clean-search-band,
  body.dhhwb-search-results-page .dh-clean-search-band {
    padding-bottom: 2px !important;
  }

  body.dh-clean-search-results-page .dh-clean-results-shell,
  body.dhhwb-search-results-page .dh-clean-results-shell {
    padding-top: 4px !important;
  }
}

/* v2.1.6 Very Tight Results Gap: reduce visible desktop gap to roughly 35-40% of the v2.1.5 spacing while keeping the approved search box untouched. */
@media (min-width: 768px) {
  body.dh-clean-search-results-page .dh-clean-search-band,
  body.dhhwb-search-results-page .dh-clean-search-band {
    border-bottom: 0 !important;
    box-shadow: none !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  body.dh-clean-search-results-page .dh-clean-results-shell,
  body.dhhwb-search-results-page .dh-clean-results-shell {
    margin-top: -34px !important;
    padding-top: 0 !important;
  }

  body.dh-clean-search-results-page .dh-clean-results-toolbar,
  body.dhhwb-search-results-page .dh-clean-results-toolbar {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
  }
}

/* v2.2.0 Clean Plugin-Controlled Homepage Hero
   Scope: homepage hero only. Theme header/footer and approved global search logic stay untouched. */
body.dh-clean-home-page .dh-clean-home-plugin-main {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff;
  overflow: hidden;
}

body.dh-clean-home-page .dh-clean-home-hero {
  --dh-clean-header-offset: 61px;
  --dh-clean-home-tab-active: rgba(0, 106, 111, 0.96);
  --dh-clean-home-tab-normal: rgba(16, 61, 91, 0.92);
  width: 100% !important;
  height: calc(100vh - var(--dh-clean-header-offset)) !important;
  min-height: calc(100vh - var(--dh-clean-header-offset)) !important;
  max-height: calc(100vh - var(--dh-clean-header-offset)) !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative;
  overflow: hidden !important;
  isolation: isolate;
  background: var(--dh-clean-navy) !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

@supports (height: 100svh) {
  body.dh-clean-home-page .dh-clean-home-hero {
    height: calc(100svh - var(--dh-clean-header-offset)) !important;
    min-height: calc(100svh - var(--dh-clean-header-offset)) !important;
    max-height: calc(100svh - var(--dh-clean-header-offset)) !important;
  }
}

body.admin-bar.dh-clean-home-page .dh-clean-home-hero {
  --dh-clean-header-offset: 93px;
}

body.dh-clean-home-page .dh-clean-home-hero::before {
  content: none !important;
}

body.dh-clean-home-page .dh-clean-home-hero-media,
body.dh-clean-home-page .dh-clean-home-hero-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

body.dh-clean-home-page .dh-clean-home-hero-media {
  z-index: 0;
  overflow: hidden;
  background: var(--dh-clean-navy);
}

body.dh-clean-home-page .dh-clean-home-hero-img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
  box-shadow: none !important;
}

body.dh-clean-home-page .dh-clean-home-hero-overlay {
  z-index: 1;
  background:
    linear-gradient(180deg,
      rgba(16, 32, 51, var(--dh-clean-home-overlay-top, 0.220)) 0%,
      rgba(16, 32, 51, var(--dh-clean-home-overlay-mid, 0.360)) 54%,
      rgba(16, 32, 51, var(--dh-clean-home-overlay-bottom, 0.480)) 100%
    ),
    rgba(16, 32, 51, var(--dh-clean-home-overlay-base, 0.120));
}

body.dh-clean-home-page .dh-clean-home-hero-inner {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding: clamp(30px, 5.4svh, 62px) clamp(14px, 3vw, 38px) clamp(34px, 5svh, 60px) !important;
  position: relative;
  z-index: 2;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr);
  align-items: start !important;
  justify-items: center;
  box-sizing: border-box;
}

body.dh-clean-home-page .dh-clean-home-module {
  width: 100%;
  max-width: 1040px;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0 !important;
  position: relative;
  z-index: 5;
  box-shadow: none !important;
}

body.dh-clean-home-page .dh-clean-home-tabs {
  width: auto;
  max-width: 100%;
  display: inline-flex !important;
  align-items: stretch !important;
  justify-content: center !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative;
  z-index: 6;
  box-shadow: none !important;
}

body.dh-clean-home-page .dh-clean-home-tab {
  min-width: 116px;
  height: 48px;
  padding: 0 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0 !important;
  border-radius: 4px 4px 0 0 !important;
  background: var(--dh-clean-home-tab-normal) !important;
  color: #fff !important;
  font-family: inherit;
  font-size: 18px;
  line-height: 1;
  font-weight: 650;
  letter-spacing: -0.01em;
  text-decoration: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  transition: background-color .16s ease, color .16s ease;
}

body.dh-clean-home-page .dh-clean-home-tab.is-active,
body.dh-clean-home-page .dh-clean-home-tab[aria-current="page"] {
  background: var(--dh-clean-home-tab-active) !important;
  color: #fff !important;
  cursor: default;
}

body.dh-clean-home-page .dh-clean-home-tab:not(.is-active):hover,
body.dh-clean-home-page .dh-clean-home-tab:not(.is-active):focus {
  background: var(--dh-clean-home-tab-active) !important;
  color: #fff !important;
  outline: 0 !important;
}

body.dh-clean-home-page .dh-clean-home-search {
  width: 100% !important;
  max-width: 1040px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  position: relative;
  z-index: 5;
  box-shadow: none !important;
}

body.dh-clean-home-page .dh-clean-home-search .dhgs,
body.dh-clean-home-page .dh-clean-home-search .dhgs-shell {
  width: 100% !important;
  max-width: 1040px !important;
  margin: 0 auto !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

body.dh-clean-home-page .dh-clean-home-search .dhgs-shell {
  border-radius: 4px !important;
}

body.dh-clean-home-page .dh-clean-home-copy-zone {
  width: 100%;
  min-height: 0;
  height: 100%;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  position: relative;
  z-index: 2;
  pointer-events: none;
}

body.dh-clean-home-page .dh-clean-home-copy {
  width: min(100%, 760px);
  margin: 0 auto !important;
  padding: 0 !important;
  text-align: center;
  color: #fff;
  box-shadow: none !important;
  text-shadow: none !important;
}

body.dh-clean-home-page .dh-clean-home-copy h1 {
  margin: 0 !important;
  color: #fff !important;
  font-family: inherit;
  font-size: clamp(32px, 3.35vw, 48px) !important;
  line-height: 1.08 !important;
  font-weight: 620 !important;
  letter-spacing: -0.035em !important;
  text-shadow: none !important;
}

body.dh-clean-home-page .dh-clean-home-copy p {
  margin: 10px 0 0 !important;
  color: rgba(255, 255, 255, 0.94) !important;
  font-family: inherit;
  font-size: clamp(16px, 1.55vw, 21px) !important;
  line-height: 1.42 !important;
  font-weight: 420 !important;
  letter-spacing: -0.01em !important;
  text-shadow: none !important;
}

body.dh-clean-home-page .dh-clean-home-hero,
body.dh-clean-home-page .dh-clean-home-hero * {
  box-shadow: none !important;
  text-shadow: none !important;
}

@media (max-width: 1023px) {
  body.dh-clean-home-page .dh-clean-home-hero-inner {
    max-width: 860px !important;
    padding: clamp(20px, 4.5svh, 42px) 14px clamp(24px, 4.5svh, 42px) !important;
  }

  body.dh-clean-home-page .dh-clean-home-module,
  body.dh-clean-home-page .dh-clean-home-search,
  body.dh-clean-home-page .dh-clean-home-search .dhgs,
  body.dh-clean-home-page .dh-clean-home-search .dhgs-shell {
    max-width: 760px !important;
  }

  body.dh-clean-home-page .dh-clean-home-tabs {
    width: min(100%, 560px);
    gap: 6px !important;
  }

  body.dh-clean-home-page .dh-clean-home-tab {
    flex: 1 1 0;
    min-width: 0;
    height: 44px;
    padding: 0 10px;
    font-size: 15px;
  }

  body.dh-clean-home-page .dh-clean-home-copy h1 {
    font-size: clamp(29px, 4.6vw, 40px) !important;
  }

  body.dh-clean-home-page .dh-clean-home-copy p {
    font-size: clamp(15px, 2.3vw, 18px) !important;
  }
}

@media (max-width: 767px) {
  body.dh-clean-home-page .dh-clean-home-hero {
    --dh-clean-header-offset: 61px;
  }

  body.admin-bar.dh-clean-home-page .dh-clean-home-hero {
    --dh-clean-header-offset: 107px;
  }

  body.dh-clean-home-page .dh-clean-home-hero-inner {
    padding: 12px 8px 14px !important;
    grid-template-rows: auto minmax(0, 1fr);
  }

  body.dh-clean-home-page .dh-clean-home-tabs {
    width: min(100%, 420px);
    gap: 5px !important;
  }

  body.dh-clean-home-page .dh-clean-home-tab {
    height: 38px;
    padding: 0 8px;
    font-size: 13.5px;
    font-weight: 650;
  }

  body.dh-clean-home-page .dh-clean-home-search,
  body.dh-clean-home-page .dh-clean-home-search .dhgs,
  body.dh-clean-home-page .dh-clean-home-search .dhgs-shell {
    max-width: 420px !important;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs {
    --dhgs-field-height-mobile: 36px;
    --dhgs-gap-mobile: 5px;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs-shell {
    padding: 6px !important;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs-input,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-choice-button,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-city-field,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-toggle,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-clear,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-submit {
    font-size: 11.8px;
  }

  body.dh-clean-home-page .dh-clean-home-copy-zone {
    padding-top: 0;
  }

  body.dh-clean-home-page .dh-clean-home-copy h1 {
    font-size: clamp(24px, 7vw, 31px) !important;
    line-height: 1.1 !important;
    font-weight: 610 !important;
    letter-spacing: -0.032em !important;
  }

  body.dh-clean-home-page .dh-clean-home-copy p {
    margin-top: 6px !important;
    font-size: clamp(13px, 3.8vw, 15.5px) !important;
    line-height: 1.34 !important;
    font-weight: 420 !important;
  }
}

@media (max-width: 767px) and (max-height: 680px) {
  body.dh-clean-home-page .dh-clean-home-hero-inner {
    padding-top: 9px !important;
    padding-bottom: 10px !important;
  }

  body.dh-clean-home-page .dh-clean-home-tab {
    height: 34px;
    font-size: 12.8px;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs {
    --dhgs-field-height-mobile: 32px;
    --dhgs-gap-mobile: 4px;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs-shell {
    padding: 5px !important;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs-input,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-choice-button,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-city-field,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-toggle,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-clear,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-submit {
    font-size: 11px;
  }

  body.dh-clean-home-page .dh-clean-home-copy-zone {
    padding-top: 0;
  }

  body.dh-clean-home-page .dh-clean-home-copy h1 {
    font-size: clamp(22px, 6.6vw, 27px) !important;
  }

  body.dh-clean-home-page .dh-clean-home-copy p {
    margin-top: 4px !important;
    font-size: clamp(12px, 3.5vw, 14px) !important;
  }
}

/* v2.2.1 Homepage hero settings + optional below-hero content.
   Public default remains hero -> footer; below content appears only when enabled in DH Frontend settings. */
body.dh-clean-home-page .dh-clean-home-below-content {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
}


/* v2.2.3 Homepage viewport audit: remove v2.2.2 overlap hack and use the real public header heights.
   The prior 2px overlap did not solve the line because the mobile/header offset was too tall. */
body.dh-clean-home-page .dh-clean-home-hero {
  --dh-clean-header-offset: 60px;
  height: calc(100vh - var(--dh-clean-header-offset)) !important;
  min-height: calc(100vh - var(--dh-clean-header-offset)) !important;
  max-height: calc(100vh - var(--dh-clean-header-offset)) !important;
  margin-bottom: 0 !important;
}

@supports (height: 100svh) {
  body.dh-clean-home-page .dh-clean-home-hero {
    height: calc(100svh - var(--dh-clean-header-offset)) !important;
    min-height: calc(100svh - var(--dh-clean-header-offset)) !important;
    max-height: calc(100svh - var(--dh-clean-header-offset)) !important;
  }
}

body.admin-bar.dh-clean-home-page .dh-clean-home-hero {
  --dh-clean-header-offset: 92px;
}

@media (max-width: 767px) {
  body.dh-clean-home-page .dh-clean-home-hero {
    --dh-clean-header-offset: 56px;
  }

  body.admin-bar.dh-clean-home-page .dh-clean-home-hero {
    --dh-clean-header-offset: 102px;
  }
}

/* v2.2.3 Mobile Sort Restore: show sort above mobile search-result cards while keeping view icons hidden. */
@media (max-width: 767px) {
  body.dh-clean-search-results-page .dh-clean-results-toolbar,
  body.dhhwb-search-results-page .dh-clean-results-toolbar {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto 10px !important;
    padding: 0 !important;
    justify-content: center !important;
    align-items: center !important;
  }

  body.dh-clean-search-results-page .dh-clean-results-toolbar-inner,
  body.dhhwb-search-results-page .dh-clean-results-toolbar-inner {
    display: flex !important;
    width: 100% !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0 !important;
  }

  body.dh-clean-search-results-page .dh-clean-view-toggle,
  body.dhhwb-search-results-page .dh-clean-view-toggle {
    display: none !important;
  }

  body.dh-clean-search-results-page .dh-clean-sort-form,
  body.dhhwb-search-results-page .dh-clean-sort-form {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    flex: 0 1 auto !important;
  }

  body.dh-clean-search-results-page .dh-clean-sort-form .sort-by-title,
  body.dhhwb-search-results-page .dh-clean-sort-form .sort-by-title {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
    color: rgba(16, 32, 51, 0.68) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  body.dh-clean-search-results-page .dh-clean-sort-select,
  body.dhhwb-search-results-page .dh-clean-sort-select {
    display: inline-block !important;
    min-width: 166px !important;
    max-width: 66vw !important;
    height: 34px !important;
    padding: 0 22px 0 8px !important;
    border: 1px solid rgba(16, 32, 51, 0.18) !important;
    border-radius: 4px !important;
    background-color: #fff !important;
    color: #102033 !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 34px !important;
    box-shadow: none !important;
  }
}


/* v2.2.4 Exact Mobile CSS Cascade Fix
   Built from v2.2.3 only.
   Scope: mobile homepage search width/readability + search-results sort gap.
   PC search box, homepage buttons/text, cards, map data, and search logic stay untouched. */
@media (max-width: 767px) {
  /* Homepage mobile: allow only the search box to use the real viewport width.
     The mode buttons and hero copy remain inside the original centered module. */
  body.dh-clean-home-page .dh-clean-home-search {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.dh-clean-home-page .dh-clean-home-search .dhgs,
  body.dh-clean-home-page .dh-clean-home-search .dhgs-shell {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs {
    --dhgs-field-height-mobile: 38px !important;
    --dhgs-gap-mobile: 5px !important;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs-shell {
    padding: 6px !important;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs-input,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-choice-button,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-city-field,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-toggle,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-clear,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-submit {
    font-size: 13.8px !important;
    line-height: 1.16 !important;
    color: #102033 !important;
    font-weight: 520 !important;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs-input::placeholder {
    color: #465766 !important;
    opacity: 1 !important;
  }

  /* Search results mobile: set the real section stack spacing.
     Desired result: Modify Your Search -> 12px -> Sort by -> 6px -> Cards. */
  body.dh-clean-search-results-page .dh-clean-search-band,
  body.dhhwb-search-results-page .dh-clean-search-band {
    padding-bottom: 12px !important;
  }

  body.dh-clean-search-results-page .dh-clean-results-shell,
  body.dhhwb-search-results-page .dh-clean-results-shell {
    padding-top: 0 !important;
  }

  body.dh-clean-search-results-page .dh-clean-results-toolbar,
  body.dhhwb-search-results-page .dh-clean-results-toolbar {
    margin-top: 0 !important;
    margin-bottom: 6px !important;
  }
}

@media (max-width: 767px) and (max-height: 680px) {
  body.dh-clean-home-page .dh-clean-home-hero .dhgs {
    --dhgs-field-height-mobile: 34px !important;
    --dhgs-gap-mobile: 4px !important;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs-shell {
    padding: 5px !important;
  }

  body.dh-clean-home-page .dh-clean-home-hero .dhgs-input,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-choice-button,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-city-field,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-toggle,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-clear,
  body.dh-clean-home-page .dh-clean-home-hero .dhgs-submit {
    font-size: 13px !important;
    line-height: 1.12 !important;
  }
}


/* v2.2.5 Mobile sort gap fallback. The final winning copy is printed late in wp_footer because legacy page inline CSS uses !important. */
@media (max-width: 767px) {
  body.dh-clean-search-results-page .dh-clean-search-band.dh-rhb-search-results-search-band,
  body.dhhwb-search-results-page .dh-clean-search-band.dh-rhb-search-results-search-band,
  body.page-id-16859 .dh-clean-search-band.dh-rhb-search-results-search-band {
    margin-bottom: 0 !important;
    padding-bottom: 12px !important;
  }

  body.dh-clean-search-results-page .dh-clean-results-shell,
  body.dhhwb-search-results-page .dh-clean-results-shell,
  body.page-id-16859 .dh-clean-results-shell {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  body.dh-clean-search-results-page .dh-clean-results-toolbar,
  body.dhhwb-search-results-page .dh-clean-results-toolbar,
  body.page-id-16859 .dh-clean-results-toolbar {
    margin-top: 0 !important;
    margin-bottom: 6px !important;
  }
}


/* v2.3.4 Project route polish: on plugin-owned dynamic result pages, keep the view/sort toolbar below the approved search box.
   Legacy Search Results keeps its approved tight spacing; this override only targets dynamic routes. */
@media (min-width: 768px) {
  body.dhhfe-dynamic-landing-page.dh-clean-search-results-page .dh-clean-results-shell,
  body.dhhfe-dynamic-landing-page.dhhwb-search-results-page .dh-clean-results-shell {
    margin-top: 0 !important;
    padding-top: 12px !important;
  }

  body.dhhfe-dynamic-landing-page.dh-clean-search-results-page .dh-clean-results-toolbar,
  body.dhhfe-dynamic-landing-page.dhhwb-search-results-page .dh-clean-results-toolbar {
    margin-top: 0 !important;
    margin-bottom: 14px !important;
    position: relative !important;
    z-index: 1 !important;
  }
}

/* v2.3.54 Hero mobile focus stability: keep mode buttons and search stack visible while fields/pickers are active. */
@media (max-width: 767px) {
  body.dh-clean-home-page .dh-clean-home-module:focus-within .dh-clean-home-tabs,
  body.dh-clean-home-page.dhgs-picker-open .dh-clean-home-tabs {
    opacity: 1 !important;
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: auto !important;
  }

  body.dh-clean-home-page .dh-clean-home-module:focus-within,
  body.dh-clean-home-page.dhgs-picker-open .dh-clean-home-module {
    transform: none !important;
  }
}

/* v2.3.55 Mobile search overlay protection: when the global mobile picker is open, it owns the screen. */
@media (max-width: 767px) {
  body.dh-clean-home-page.dhgs-picker-open .dh-clean-home-tabs,
  body.dh-clean-home-page.dhgs-picker-open .dh-clean-home-search,
  body.dh-clean-home-page.dhgs-picker-open .dh-clean-home-search .dhgs,
  body.dh-clean-home-page.dhgs-picker-open .dh-clean-home-search .dhgs-shell {
    z-index: 1 !important;
    pointer-events: none !important;
  }
}
