:root {
  --pr-immo-red: #e2002b;
  --pr-immo-red-dark: #bc0023;
  --pr-immo-text: #2f3b49;
  --pr-immo-muted: #6b7888;
  --pr-immo-border: #dfe4ea;
  --pr-immo-bg: #f5f6f8;
  --pr-immo-white: #ffffff;
  --pr-immo-shadow: 0 14px 36px rgba(31, 45, 61, .09);
}

.pont-real-estate-page {
  background: var(--pr-immo-bg) !important;
  color: var(--pr-immo-text) !important;
  padding: 26px 20px 60px !important;
}

.pont-immo-athome-shell {
  width: min(1280px, 100%) !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  gap: 26px !important;
}

.pont-immo-athome-hero {
  padding: 28px !important;
  background: var(--pr-immo-white) !important;
  border: 1px solid var(--pr-immo-border) !important;
  border-radius: 22px !important;
  box-shadow: var(--pr-immo-shadow) !important;
}

.pont-immo-athome-heading {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 24px !important;
  margin-bottom: 22px !important;
}

.pont-immo-eyebrow {
  display: block !important;
  margin-bottom: 7px !important;
  color: var(--pr-immo-red) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
}

.pont-immo-athome-heading h2 {
  margin: 0 0 8px !important;
  color: var(--pr-immo-text) !important;
  font-size: clamp(32px, 4vw, 48px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.035em !important;
}

.pont-immo-athome-heading p {
  margin: 0 !important;
  color: var(--pr-immo-muted) !important;
  font-weight: 650 !important;
}

.pont-immo-publish-main,
.pont-immo-search-submit {
  border: 0 !important;
  background: var(--pr-immo-red) !important;
  color: #fff !important;
  font-weight: 900 !important;
  cursor: pointer !important;
}

.pont-immo-publish-main {
  min-height: 48px !important;
  padding: 0 20px !important;
  border-radius: 12px !important;
  white-space: nowrap !important;
}

.pont-immo-mode-tabs {
  display: inline-flex !important;
  gap: 4px !important;
  padding: 5px !important;
  margin-bottom: 12px !important;
  background: #f0f2f5 !important;
  border-radius: 13px !important;
}

.pont-immo-mode-tab {
  min-width: 126px !important;
  min-height: 43px !important;
  padding: 0 20px !important;
  border: 0 !important;
  border-radius: 9px !important;
  background: transparent !important;
  color: var(--pr-immo-text) !important;
  font-weight: 850 !important;
  cursor: pointer !important;
}

.pont-immo-mode-tab.is-active {
  background: #fff !important;
  color: var(--pr-immo-red) !important;
  box-shadow: 0 5px 15px rgba(31, 45, 61, .10) !important;
}

.pont-immo-athome-search {
  display: grid !important;
  grid-template-columns:
    minmax(250px, 1.7fr)
    minmax(170px, 1fr)
    minmax(170px, 1fr)
    minmax(210px, 1.2fr)
    155px !important;
  gap: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border: 1px solid var(--pr-immo-border) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}

.pont-immo-athome-search > label {
  display: grid !important;
  gap: 5px !important;
  padding: 12px 16px !important;
  border-right: 1px solid var(--pr-immo-border) !important;
  color: var(--pr-immo-muted) !important;
  font-size: 11px !important;
  font-weight: 850 !important;
}

.pont-immo-athome-search > label span {
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
}

.pont-immo-athome-search input,
.pont-immo-athome-search select {
  width: 100% !important;
  min-width: 0 !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--pr-immo-text) !important;
  font-size: 15px !important;
  font-weight: 750 !important;
  box-shadow: none !important;
  outline: none !important;
}

.pont-immo-search-submit {
  border-radius: 0 !important;
  font-size: 16px !important;
}

.pont-immo-more-filters {
  grid-column: 1 / -1 !important;
  min-height: 43px !important;
  border: 0 !important;
  border-top: 1px solid var(--pr-immo-border) !important;
  background: #fafbfc !important;
  color: var(--pr-immo-text) !important;
  font-weight: 850 !important;
  cursor: pointer !important;
}

.pont-immo-advanced {
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
  padding: 16px !important;
  border-top: 1px solid var(--pr-immo-border) !important;
  background: #fafbfc !important;
}

.pont-immo-advanced[hidden] {
  display: none !important;
}

.pont-immo-advanced > label {
  display: grid !important;
  gap: 6px !important;
  color: var(--pr-immo-muted) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}

.pont-immo-advanced input {
  min-height: 44px !important;
  padding: 0 12px !important;
  border: 1px solid var(--pr-immo-border) !important;
  border-radius: 10px !important;
  background: #fff !important;
}

.pont-immo-checks {
  grid-column: 1 / -1 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 9px !important;
}

.pont-immo-checks label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  padding: 8px 11px !important;
  border: 1px solid var(--pr-immo-border) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--pr-immo-text) !important;
  font-size: 12px !important;
}

.pont-immo-checks input {
  width: auto !important;
  min-height: 0 !important;
  accent-color: var(--pr-immo-red) !important;
}

.pont-immo-toolbar {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 20px !important;
}

.pont-immo-toolbar h2 {
  margin: 0 !important;
  color: var(--pr-immo-text) !important;
  font-size: 28px !important;
}

.pont-immo-toolbar p {
  margin: 5px 0 0 !important;
  color: var(--pr-immo-muted) !important;
  font-weight: 700 !important;
}

.pont-immo-toolbar-actions {
  display: flex !important;
  gap: 9px !important;
  flex-wrap: wrap !important;
}

.pont-immo-toolbar-actions button {
  min-height: 42px !important;
  padding: 0 15px !important;
  border: 1px solid var(--pr-immo-border) !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--pr-immo-text) !important;
  font-weight: 800 !important;
}

.pont-immo-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 20px !important;
}

.pont-immo-athome-card {
  overflow: hidden !important;
  min-width: 0 !important;
  background: #fff !important;
  border: 1px solid var(--pr-immo-border) !important;
  border-radius: 16px !important;
  box-shadow: var(--pr-immo-shadow) !important;
}

.pont-immo-athome-card .pont-immo-card-media {
  position: relative !important;
  aspect-ratio: 16 / 10 !important;
  overflow: hidden !important;
  background: #edf0f3 !important;
}

.pont-immo-athome-card .pont-immo-card-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.pont-immo-transaction-badge,
.pont-immo-360-badge {
  position: absolute !important;
  top: 12px !important;
  padding: 6px 9px !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  font-weight: 900 !important;
}

.pont-immo-transaction-badge {
  left: 12px !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--pr-immo-text) !important;
}

.pont-immo-360-badge {
  left: 84px !important;
  background: var(--pr-immo-red) !important;
  color: #fff !important;
}

.pont-immo-card-favorite {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  width: 38px !important;
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--pr-immo-red) !important;
  font-size: 24px !important;
}

.pont-immo-athome-card .pont-immo-card-body {
  display: grid !important;
  gap: 8px !important;
  padding: 16px !important;
}

.pont-immo-card-kicker {
  color: var(--pr-immo-red) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
}

.pont-immo-athome-card h3 {
  margin: 0 !important;
  color: var(--pr-immo-text) !important;
  font-size: 18px !important;
  line-height: 1.3 !important;
}

.pont-immo-card-location,
.pont-immo-card-agency {
  color: var(--pr-immo-muted) !important;
  font-size: 13px !important;
}

.pont-immo-price {
  color: var(--pr-immo-text) !important;
  font-size: 20px !important;
  font-weight: 950 !important;
}

.pont-immo-facts {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
}

.pont-immo-facts span {
  padding: 5px 8px !important;
  border: 1px solid var(--pr-immo-border) !important;
  border-radius: 999px !important;
  background: #f8f9fb !important;
  color: var(--pr-immo-text) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}

.pont-immo-card-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  margin-top: 5px !important;
  padding-top: 12px !important;
  border-top: 1px solid var(--pr-immo-border) !important;
}

.pont-immo-card-footer small {
  color: var(--pr-immo-muted) !important;
}

.pont-immo-card-open {
  min-height: 38px !important;
  padding: 0 13px !important;
  border: 0 !important;
  border-radius: 9px !important;
  background: var(--pr-immo-red) !important;
  color: #fff !important;
  font-weight: 850 !important;
}

.pont-immo-tour-hidden,
.pont-immo-contact-hidden,
.pont-immo-compare-hidden {
  display: none !important;
}

.pont-immo-athome-housing {
  padding: 24px !important;
  background: #fff !important;
  color: var(--pr-immo-text) !important;
  border: 1px solid var(--pr-immo-border) !important;
  border-radius: 20px !important;
  box-shadow: var(--pr-immo-shadow) !important;
}

.pont-immo-athome-housing h2 {
  color: var(--pr-immo-text) !important;
}

.pont-immo-athome-housing p {
  color: var(--pr-immo-muted) !important;
}

.pont-housing-filters input,
.pont-housing-filters select {
  background: #fff !important;
  color: var(--pr-immo-text) !important;
  border: 1px solid var(--pr-immo-border) !important;
  border-radius: 10px !important;
}

@media (max-width: 1100px) {
  .pont-immo-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .pont-immo-athome-search {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 12px !important;
    overflow: visible !important;
  }

  .pont-immo-athome-search > label {
    border: 1px solid var(--pr-immo-border) !important;
    border-radius: 11px !important;
  }

  .pont-immo-search-submit {
    min-height: 58px !important;
    border-radius: 11px !important;
  }
}

@media (max-width: 820px) {
  .pont-immo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .pont-immo-athome-heading,
  .pont-immo-toolbar {
    display: grid !important;
  }

  .pont-immo-publish-main {
    width: 100% !important;
  }
}

@media (max-width: 600px) {
  .pont-real-estate-page {
    padding: 12px 9px 40px !important;
  }

  .pont-immo-athome-hero,
  .pont-immo-athome-housing {
    padding: 17px !important;
  }

  .pont-immo-mode-tabs,
  .pont-immo-athome-search,
  .pont-immo-advanced,
  .pont-immo-grid {
    grid-template-columns: 1fr !important;
    width: 100% !important;
  }

  .pont-immo-mode-tabs {
    display: grid !important;
  }

  .pont-immo-mode-tab {
    width: 100% !important;
  }

  .pont-immo-grid {
    display: grid !important;
  }
}

/* Correction taille du bouton Rechercher immobilier */
.pont-immo-athome-search .pont-immo-search-submit {
  width: 100% !important;
  height: 100% !important;
  min-height: 78px !important;
  align-self: stretch !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  margin: 0 !important;
  padding: 0 22px !important;

  border: 0 !important;
  border-radius: 0 !important;
  background: #e6002d !important;
  color: #ffffff !important;

  font-size: 18px !important;
  line-height: 1 !important;
  font-weight: 900 !important;

  box-sizing: border-box !important;
}

.pont-immo-athome-search .pont-immo-search-submit:hover {
  background: #c90027 !important;
}

@media (max-width: 1100px) {
  .pont-immo-athome-search .pont-immo-search-submit {
    min-height: 58px !important;
    border-radius: 10px !important;
  }
}
