:root {
  --font-geist-sans: 'Inter', system-ui, sans-serif;
  --font-display: 'Inter', system-ui, sans-serif;
  --foreground: #14212b;
  --background: #f5f1e8;
  --site-header-height: 4rem;
  --mobile-nav-height: 4rem;
  --mobile-nav-total: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom, 0px));
  /* 93.75% of 16px — scales Tailwind (rem) and custom rem sizes site-wide */
  --site-font-root: 93.75%;
}

html {
  font-size: var(--site-font-root);
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  font-family: var(--font-geist-sans), system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--foreground);
  background: var(--background);
  background-image:
    radial-gradient(circle at top left, rgba(217, 164, 65, 0.12), transparent 26%),
    radial-gradient(circle at top right, rgba(47, 143, 152, 0.12), transparent 22%),
    linear-gradient(180deg, #fbf8f2 0%, #f5f1e8 100%);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

button,
input,
select,
textarea {
  font-family: inherit;
}
.section-card {
  border-radius: 28px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  background: rgba(255, 255, 255, 0.85);
  box-shadow: 0 18px 50px rgba(18, 53, 61, 0.08);
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  padding: 0.25rem 0.75rem;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #12353d;
  border: 1px solid rgba(217, 164, 65, 0.3);
  background: rgba(217, 164, 65, 0.1);
}
.section-shell {
  position: relative;
  overflow: hidden;
}
.section-shell::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at top left, rgba(217, 164, 65, 0.11), transparent 28%),
    radial-gradient(circle at bottom right, rgba(47, 143, 152, 0.12), transparent 30%);
  opacity: 0.9;
}
.section-title {
  font-size: 1.65rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: #0f172a;
}
@media (min-width: 768px) {
  .section-title {
    font-size: 1.9rem;
  }
}
.section-copy {
  font-size: 0.9375rem;
  color: #475569;
}
@media (min-width: 768px) {
  .section-copy {
    font-size: 1.125rem;
  }
}
.shadow-card-hover {
  box-shadow: 0 22px 55px rgba(18, 53, 61, 0.14);
}

/* Property detail — fullscreen hero gallery */
.page-shell--property {
  background: #f5f1e8;
}

body.page-property-detail main {
  padding-top: 0;
}

.property-hero {
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100svh;
  min-height: 100vh;
  min-height: 100svh;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.property-hero-gallery--fullscreen {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  background: #0a2e33;
}

.property-hero-gallery__stage {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.property-hero-gallery__zoom {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: #12353d;
  cursor: zoom-in;
}

.property-hero-gallery__zoom picture,
.property-lightbox__stage picture {
  display: block;
  width: 100%;
  height: 100%;
}

.property-hero-gallery__thumb picture {
  display: block;
  width: 100%;
  height: 100%;
}

.property-hero-gallery__img {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: opacity 0.35s ease;
}

.property-hero-gallery__stage::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(10, 46, 51, 0.08) 0%, rgba(10, 46, 51, 0.02) 45%, rgba(10, 46, 51, 0.45) 100%);
}

.property-hero-gallery__nav {
  position: absolute;
  top: 50%;
  z-index: 20;
  display: flex;
  height: 3rem;
  width: 3rem;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.92);
  color: #12353d;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
  transition: background 0.2s ease, transform 0.2s ease;
}

.property-hero-gallery__nav:hover {
  background: #fff;
  transform: translateY(-50%) scale(1.04);
}

.property-hero-gallery__nav--prev {
  left: 1rem;
}

.property-hero-gallery__nav--next {
  right: 1rem;
}

.property-hero-gallery__stage:has(.property-hero-gallery__thumbs) .property-hero-gallery__nav--next {
  right: 6.25rem;
}

.property-hero-gallery__thumbs {
  position: absolute;
  top: 50%;
  right: 1rem;
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-height: min(52vh, calc(100% - 11rem));
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0.5rem;
  transform: translateY(-50%);
  border-radius: 1rem;
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(8px);
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.35) transparent;
}

.property-hero-gallery__thumbs::-webkit-scrollbar {
  width: 4px;
}

.property-hero-gallery__thumbs::-webkit-scrollbar-thumb {
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.35);
}

.property-hero-gallery__thumb {
  flex-shrink: 0;
  width: 3.5rem;
  height: 3.5rem;
  overflow: hidden;
  border-radius: 0.75rem;
  border: 2px solid transparent;
  padding: 0;
  background: transparent;
  opacity: 0.72;
  transition: opacity 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  cursor: pointer;
}

.property-hero-gallery__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.property-hero-gallery__thumb:hover,
.property-hero-gallery__thumb.is-active {
  opacity: 1;
  border-color: #d9a441;
  transform: translateX(-2px);
}

.property-hero__summary-wrap {
  position: relative;
  z-index: 10;
  margin-top: -7.5rem;
  margin-bottom: 1.25rem;
  padding: 0 1rem;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  pointer-events: none;
}

.property-hero__summary-wrap > * {
  pointer-events: auto;
}

.property-hero__summary {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  border-radius: 1.25rem 1.25rem;
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-bottom: none;
  background: #fff;
  padding: 1rem 1.25rem 1.125rem;
  box-shadow: 0 -12px 40px rgba(18, 53, 61, 0.12);
}

@media (min-width: 768px) {
  .property-hero__summary {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    padding: 1.125rem 1.75rem 1.25rem;
  }
}

.property-hero__summary-main {
  min-width: 0;
  flex: 1 1 auto;
}

.property-hero__summary .property-hero__tags {
  display: none;
}

.property-hero__summary .property-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.875rem;
}

.property-hero__badge {
  display: inline-flex;
  margin-bottom: 0.5rem;
  border-radius: 9999px;
  border: 1px solid rgba(217, 164, 65, 0.35);
  background: rgba(217, 164, 65, 0.12);
  padding: 0.2rem 0.65rem;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #175b67;
}

.property-hero__title {
  font-size: clamp(1.25rem, 2.6vw, 1.875rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #0f172a;
}

.property-hero__location {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.35rem;
  font-size: 0.875rem;
  color: #64748b;
}

body.page-property-detail:not(.has-mobile-bottom-nav) .avenza-chat-fab {
  bottom: 1.5rem;
}

@media (min-width: 768px) {
  body.page-property-detail:not(.has-mobile-bottom-nav) .avenza-chat-fab {
    bottom: 1.75rem;
  }
}

.property-hero__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.875rem;
}

.property-hero__tag {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  padding: 0.35rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #334155;
}

.property-hero__tag--link {
  color: #175b67;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.property-hero__tag--link:hover {
  border-color: #84c7c9;
  background: #eef7f7;
}

.property-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-top: 1.125rem;
}

.property-hero__action {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border-radius: 9999px;
  border: 1px solid #cbd5e1;
  background: #fff;
  padding: 0.55rem 1rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.property-hero__action:hover {
  border-color: #94a3b8;
  background: #f8fafc;
}

.property-hero__action--primary {
  border-color: #175b67;
  background: linear-gradient(135deg, #175b67 0%, #12353d 100%);
  color: #fff;
}

.property-hero__action--primary:hover {
  border-color: #12353d;
  background: linear-gradient(135deg, #1f727e 0%, #144852 100%);
  color: #fff;
}

.property-hero__action--wa {
  border-color: #22c55e;
  color: #15803d;
}

.property-hero__action--wa:hover {
  background: #f0fdf4;
}

.property-hero__action--brochure {
  border-color: #d9a441;
  background: linear-gradient(135deg, #d9a441 0%, #b7821e 100%);
  color: #12353d;
}

.property-hero__action--brochure:hover {
  border-color: #b7821e;
  background: linear-gradient(135deg, #e8b84b 0%, #c9952a 100%);
  color: #12353d;
}

.property-hero__action--locked {
  opacity: 0.92;
}

.property-hero__action--share {
  border-color: rgba(23, 91, 103, 0.25);
  color: #175b67;
}

.property-hero__action--share:hover {
  border-color: #175b67;
  background: rgba(23, 91, 103, 0.08);
  color: #12353d;
}

.property-hero__action--alert {
  border-color: rgba(217, 164, 65, 0.45);
  color: #9a6700;
  background: rgba(217, 164, 65, 0.08);
}

.property-hero__action--alert:hover,
.property-hero__action--alert.is-active {
  border-color: #d9a441;
  background: rgba(217, 164, 65, 0.16);
  color: #7a4d00;
}

.property-alert-modal {
  position: fixed;
  inset: 0;
  z-index: 360;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.property-alert-modal[hidden] {
  display: none !important;
}

.property-alert-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
}

.property-alert-modal__panel {
  position: relative;
  z-index: 1;
  width: min(100%, 24rem);
  border-radius: 1.25rem;
  border: 1px solid #e2e8f0;
  background: #fff;
  padding: 1.25rem;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.22);
}

.property-alert-modal__close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  border: none;
  background: transparent;
  color: #64748b;
  cursor: pointer;
}

.property-alert-modal__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #0f172a;
}

.property-alert-modal__copy {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #64748b;
}

.property-alert-modal__form {
  margin-top: 1rem;
}

.property-alert-modal__label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
}

.property-alert-modal__phone-row {
  display: flex;
  gap: 0.5rem;
}

.property-alert-modal__prefix {
  display: inline-flex;
  align-items: center;
  border-radius: 0.75rem;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  padding: 0 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #475569;
}

.property-alert-modal__input {
  flex: 1;
  min-width: 0;
  border-radius: 0.75rem;
  border: 1px solid #e2e8f0;
  padding: 0.65rem 0.75rem;
  font-size: 0.875rem;
}

.property-alert-modal__error {
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  color: #dc2626;
}

.property-alert-modal__error.hidden {
  display: none;
}

.property-alert-modal__submit {
  margin-top: 0.875rem;
  width: 100%;
  border: none;
  border-radius: 9999px;
  background: linear-gradient(135deg, #175b67 0%, #12353d 100%);
  padding: 0.7rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
}

.property-share {
  position: relative;
}

.property-share__menu {
  position: absolute;
  top: calc(100% + 0.375rem);
  left: 0;
  z-index: 40;
  min-width: 11.5rem;
  overflow: hidden;
  border-radius: 0.875rem;
  border: 1px solid #e2e8f0;
  background: #fff;
  padding: 0.375rem;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14);
}

.property-share__menu[hidden] {
  display: none !important;
}

.property-share__item {
  display: block;
  width: 100%;
  border: none;
  border-radius: 0.5rem;
  background: transparent;
  padding: 0.5rem 0.75rem;
  text-align: left;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.property-share__item:hover {
  background: rgba(23, 91, 103, 0.08);
  color: #175b67;
}

.property-share__item--link {
  text-decoration: none;
}

.property-share-toast {
  position: fixed;
  bottom: calc(1.5rem + env(safe-area-inset-bottom, 0px));
  left: 50%;
  z-index: 320;
  max-width: calc(100vw - 2rem);
  transform: translateX(-50%);
  border-radius: 9999px;
  background: rgba(18, 53, 61, 0.94);
  padding: 0.625rem 1.125rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.22);
  pointer-events: none;
}

.property-share-toast[hidden] {
  display: none !important;
}

body.has-mobile-bottom-nav .property-share-toast {
  bottom: calc(var(--mobile-nav-total) + 1rem);
}

.property-hero__login-note {
  margin-top: 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #64748b;
}

.property-contact-gate .btn-primary {
  width: 100%;
}

@media (max-width: 639px) {
  .property-hero__summary-aside {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    padding-top: 0.25rem;
    border-top: 1px solid #e2e8f0;
    text-align: left;
  }

  .property-hero__share-block {
    align-items: stretch;
  }

  .property-hero__share-label {
    text-align: left;
  }

  .property-hero__share-chips {
    justify-content: stretch;
  }

  .property-hero__action--share-chip {
    flex: 1 1 0;
    justify-content: center;
  }

  .property-hero__action {
    flex: 1 1 calc(50% - 0.25rem);
    justify-content: center;
    padding: 0.6rem 0.75rem;
    font-size: 0.75rem;
  }
}

.property-hero__summary-aside {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.75rem;
  text-align: right;
  padding-bottom: 3.5rem;
}

.property-hero__price-block {
  width: 100%;
}

.property-hero__share-block {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.375rem;
  width: 100%;
}

.property-hero__share-label {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}

.property-hero__share-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.5rem;
}

.property-hero__action--share-chip {
  padding: 0.5rem 0.75rem;
  font-size: 0.6875rem;
}

.property-hero__action--share-chip-wa {
  border-color: #22c55e;
  background: #f0fdf4;
  color: #15803d;
}

.property-hero__action--share-chip-wa:hover {
  border-color: #16a34a;
  background: #dcfce7;
  color: #166534;
}

.property-hero__action--share-chip-fb {
  border-color: #1877f2;
  background: #eff6ff;
  color: #1d4ed8;
}

.property-hero__action--share-chip-fb:hover {
  border-color: #2563eb;
  background: #dbeafe;
  color: #1e40af;
}

.property-hero__action--share-chip-copy {
  border-color: #cbd5e1;
  background: #f8fafc;
  color: #475569;
}

.property-hero__action--share-chip-copy:hover {
  border-color: #94a3b8;
  background: #f1f5f9;
  color: #334155;
}

.property-hero__price-label {
  display: block;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #94a3b8;
}

.property-hero__price {
  margin-top: 0.2rem;
  font-size: clamp(1.25rem, 2.4vw, 1.75rem);
  font-weight: 700;
  line-height: 1.1;
  color: #12353d;
}

.property-hero__price-sub {
  margin-top: 0.15rem;
  font-size: 0.75rem;
  color: #94a3b8;
}

/* Property photo lightbox */
.property-lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10, 46, 51, 0.92);
  padding: 1rem;
}

.property-lightbox[hidden] {
  display: none;
}

.property-lightbox__stage {
  position: relative;
  max-width: min(1200px, 100%);
  max-height: calc(100vh - 4rem);
}

.property-lightbox__stage img {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 4rem);
  margin: 0 auto;
  border-radius: 0.5rem;
  object-fit: contain;
}

.property-lightbox__counter {
  position: absolute;
  bottom: -2rem;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.85);
}

.property-lightbox__close,
.property-lightbox__nav {
  position: absolute;
  z-index: 210;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  transition: background 0.2s ease;
}

.property-lightbox__close:hover,
.property-lightbox__nav:hover {
  background: rgba(255, 255, 255, 0.24);
}

.property-lightbox__close {
  top: 1rem;
  right: 1rem;
  width: 2.75rem;
  height: 2.75rem;
}

.property-lightbox__nav {
  top: 50%;
  width: 3rem;
  height: 3rem;
  transform: translateY(-50%);
}

.property-lightbox__nav--prev {
  left: 1rem;
}

.property-lightbox__nav--next {
  right: 1rem;
}

@media (max-width: 767px) {
  .property-hero {
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .property-hero-gallery--fullscreen {
    position: relative;
    inset: auto;
    height: clamp(220px, 52vw, 300px);
  }

  .property-hero-gallery__stage {
    height: 100%;
    min-height: clamp(220px, 52vw, 300px);
  }

  .property-hero-gallery__stage::after {
    background: linear-gradient(180deg, rgba(10, 46, 51, 0.06) 0%, transparent 40%, rgba(10, 46, 51, 0.35) 100%);
  }

  .property-hero-gallery__nav {
    width: 2.5rem;
    height: 2.5rem;
    z-index: 18;
    top: calc(50% - 1rem);
  }

  .property-hero-gallery__nav--prev {
    left: 0.5rem;
  }

  .property-hero-gallery__nav--next {
    right: 0.5rem;
  }

  .property-hero-gallery__stage:has(.property-hero-gallery__thumbs) .property-hero-gallery__nav--next {
    right: 0.5rem;
  }

  .property-hero-gallery__thumbs {
    top: auto;
    bottom: 0.5rem;
    left: 50%;
    right: auto;
    z-index: 24;
    display: flex;
    flex-direction: row;
    max-width: calc(100% - 1.5rem);
    max-height: none;
    padding: 0.35rem 0.5rem;
    transform: translateX(-50%);
    border-radius: 0.875rem;
    background: rgba(15, 23, 42, 0.62);
  }

  .property-hero-gallery__thumb {
    width: 3rem;
    height: 3rem;
  }

  .property-hero__summary-wrap {
    margin-top: 0.75rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  .property-hero__summary {
    padding: 0.875rem 1rem 1rem;
    border-radius: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.75);
    box-shadow: 0 8px 28px rgba(18, 53, 61, 0.1);
  }

}

/* Site header — large overlapping logo at top, compact when scrolled */
.site-header {
  overflow: visible;
  transition:
    transform 0.32s ease,
    opacity 0.28s ease,
    visibility 0.28s ease,
    box-shadow 0.32s ease;
}

body.page-property-detail .site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  overflow: hidden;
  transform: translateY(-100%);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

body.page-property-detail .site-header.site-header--revealed {
  transform: translateY(0);
  visibility: visible;
  opacity: 1;
  overflow: visible;
  pointer-events: auto;
}

body.page-property-detail .site-header__logo {
  align-self: center;
  margin-top: 0;
  padding: 0;
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}

body.page-property-detail .site-header__logo-img {
  height: 3.5rem;
}

@media (min-width: 768px) {
  body.page-property-detail .site-header__logo-img {
    height: 4rem;
  }
}

.site-header__logo {
  position: relative;
  z-index: 60;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  margin-top: 0px;
  border-radius: 5px;
  background: #fff;
  padding: 0px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
  border: 1px solid rgba(15, 23, 42, 0.06);
  transition:
    margin-top 0.28s ease,
    box-shadow 0.28s ease,
    padding 0.28s ease;
}

.site-header__logo-img {
  display: block;
  height: 80px;
  width: auto;
  transition: height 0.28s ease;
}

.site-header--scrolled .site-header__logo {
  align-self: center;
  margin-top: 0;
  box-shadow: none;
  padding: 0;
  background: transparent;
}

.site-header--scrolled .site-header__logo-img {
  height: 3.5rem;
}

@media (min-width: 768px) {
  .site-header--scrolled .site-header__logo-img {
    height: 4rem;
  }
}

@media (max-width: 767px) {
  .site-header__logo {
    align-self: center;
    margin-top: 0;
    z-index: 1;
  }

  .site-header__logo-img {
    height: 2.75rem;
  }

  .site-header--scrolled .site-header__logo-img {
    height: 2.75rem;
  }

  .site-header__bar {
    position: relative;
    z-index: 2;
  }

  .site-header__mobile-strip {
    position: relative;
    z-index: 3;
  }
}

@media (max-width: 1023px) {
  .site-header__logo {
    align-self: center;
    margin-top: 0;
    z-index: 1;
  }

  .site-header__logo-img {
    height: 2.75rem;
  }

  .site-header--scrolled .site-header__logo-img {
    height: 2.75rem;
  }
}

/* Footer SEO blocks */
.footer-section-title {
  margin-bottom: 1rem;
}
.footer-accent-bar {
  display: inline-block;
  height: 4px;
  width: 3rem;
  border-radius: 9999px;
  background: #d9a441;
  margin-bottom: 0.5rem;
}
.footer-tab-strip {
  display: flex;
  gap: 0.25rem;
  overflow-x: auto;
  border-bottom: 1px solid #e2e8f0;
  padding-bottom: 0;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.footer-tab-strip::-webkit-scrollbar {
  display: none;
}
.footer-tab-btn {
  flex-shrink: 0;
  white-space: nowrap;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  padding: 0.625rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #64748b;
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
}
.footer-tab-btn:hover {
  color: #1e293b;
}
.footer-tab-btn.is-active {
  border-bottom-color: #e11d48;
  color: #0f172a;
}
.footer-social-btn {
  display: flex;
  height: 2.75rem;
  width: 2.75rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  border: 1px solid rgba(61, 143, 154, 0.9);
  background: #0f3d42;
  color: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  transition: background 0.2s, border-color 0.2s;
}
.footer-social-btn:hover {
  border-color: rgba(217, 164, 65, 0.6);
  background: #134852;
}
.page-shell {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
}
.page-shell::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at top left, rgba(217, 164, 65, 0.08), transparent 26%),
    radial-gradient(circle at bottom right, rgba(47, 143, 152, 0.08), transparent 28%);
}
.page-panel {
  border-radius: 28px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 18px 50px rgba(18, 53, 61, 0.08);
}
.page-sidebar {
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 18px 50px rgba(18, 53, 61, 0.08);
}
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: #d9a441;
  color: #0a2e33;
  font-weight: 600;
  padding: 0.625rem 1.25rem;
  transition: opacity 0.2s;
}
.btn-primary:hover { opacity: 0.9; }
.input-field {
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(18, 53, 61, 0.12);
  padding: 0.625rem 0.875rem;
  background: #fff;
}

.scrollbar-hide {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.scrollbar-hide::-webkit-scrollbar {
  display: none;
}

.hero-home {
  min-height: 68vh;
}

.hero-home .container {
  padding-top: 2.5rem;
  padding-bottom: 2.75rem;
}

.hero-home__intro {
  margin: 0 auto 1.75rem;
  max-width: 52rem;
  text-align: center;
}

.hero-home__eyebrow {
  display: inline-flex;
  margin-bottom: 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.1);
  padding: 0.4rem 0.9rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(8px);
}

.hero-home__title {
  margin: 0 0 0.75rem;
  font-size: clamp(1.75rem, 4.5vw, 3rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.03em;
}

.hero-home__subtitle {
  margin: 0 auto 1.15rem;
  max-width: 38rem;
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.84);
}

.hero-home__subtitle strong {
  color: #fff;
  font-weight: 600;
}

.hero-home__stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.65rem;
}

.hero-home__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 7.5rem;
  padding: 0.65rem 1rem;
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(10px);
}

.hero-home__stat-num {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.1;
  color: #fff;
}

.hero-home__stat-label {
  margin-top: 0.2rem;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.72);
}

.hero-search__city {
  display: flex;
  justify-content: center;
  margin-bottom: 0.85rem;
}

.hero-search__tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.45rem;
  margin-bottom: 0.85rem;
}

.hero-search__tab {
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 0.5rem 0.9rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.hero-search__panel {
  margin-bottom: 0.85rem;
  border-radius: 1.5rem;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.1);
  padding: 0.55rem;
  box-shadow: 0 20px 50px -28px rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(14px);
}

.hero-search__bar {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  border-radius: 1.15rem;
  background: rgba(255, 255, 255, 0.97);
  padding: 0.45rem;
}

@media (min-width: 640px) {
  .hero-search__bar {
    flex-direction: row;
    align-items: stretch;
  }
}

.hero-search__input-wrap {
  display: flex;
  min-width: 0;
  flex: 1;
  align-items: center;
  gap: 0.75rem;
  border-radius: 0.85rem;
  border: 1px solid rgba(148, 163, 184, 0.25);
  background: #fff;
  padding: 0 1rem;
}

.hero-search__icon {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  color: #2f8f98;
}

.hero-search__input {
  min-width: 0;
  flex: 1;
  border: 0;
  background: transparent;
  padding: 0.8rem 0;
  font-size: 1rem;
  color: #0f172a;
}

.hero-search__input:focus {
  outline: none;
}

.hero-search__input::placeholder {
  color: #94a3b8;
}

.hero-search__submit {
  border: 0;
  border-radius: 0.85rem;
  padding: 0.85rem 1.75rem;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.15s ease;
}

.hero-search__submit:hover {
  transform: translateY(-1px);
}

.hero-search__localities {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.08);
  padding: 0.55rem 0.65rem;
  backdrop-filter: blur(8px);
}

.hero-search__localities-label {
  flex-shrink: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
}

.hero-search__localities-scroll {
  display: flex;
  min-width: 0;
  flex: 1;
  gap: 0.45rem;
  overflow-x: auto;
  padding: 0.15rem 0;
}

.hero-search__locality {
  flex-shrink: 0;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.12);
  padding: 0.4rem 0.8rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #fff;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.hero-search__locality:hover {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.18);
}

.hero-search__localities-next {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.18);
  color: #fff;
  cursor: pointer;
}

.hero-search__localities-next:hover {
  background: rgba(0, 0, 0, 0.28);
}

@media (min-width: 768px) {
  .hero-home {
    min-height: 65vh;
  }

  .hero-home .container {
    padding-top: 2.75rem;
    padding-bottom: 3rem;
  }

  .hero-home__intro {
    margin-bottom: 2rem;
  }
}

/* Top Highlights (Housing-style picks) */
.top-highlights {
  padding: 2.5rem 0 2.75rem;
  background: #f8f6f2;
}

.top-highlights__header {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}

.top-highlights__title {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  font-weight: 700;
  color: #111827;
  letter-spacing: -0.02em;
}

.top-highlights__subtitle {
  margin: 0.35rem 0 0;
  font-size: 0.9375rem;
  color: #6b7280;
}

.top-highlights__thumbs {
  display: flex;
  gap: 0.65rem;
  overflow-x: auto;
  padding-bottom: 0.15rem;
}

.top-highlights__thumb {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  width: 5.5rem;
  flex-shrink: 0;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  text-align: center;
}

.top-highlights__thumb-img-wrap {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 0.65rem;
  border: 2px solid transparent;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.top-highlights__thumb.is-active .top-highlights__thumb-img-wrap {
  border-color: #175b67;
  box-shadow: 0 0 0 1px rgba(23, 91, 103, 0.15);
}

.top-highlights__thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top-highlights__thumb-label {
  display: block;
  width: 100%;
  font-size: 0.6875rem;
  line-height: 1.25;
  color: #4b5563;
}

.top-highlights__thumb.is-active .top-highlights__thumb-label {
  color: #175b67;
  font-weight: 600;
}

.top-highlights__stage {
  position: relative;
}

.top-highlights__panel {
  animation: topHighlightFade 0.28s ease;
}

.top-highlights__panel[hidden] {
  display: none !important;
}

@keyframes topHighlightFade {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.top-highlights__card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  overflow: hidden;
  border-radius: 1.25rem;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
  box-shadow: 0 18px 45px -30px rgba(15, 23, 42, 0.35);
}

.top-highlights__info {
  padding: 1.35rem 1.25rem 1.5rem;
  background: linear-gradient(135deg, #eef7f7 0%, #fbf4e8 55%, #fff8ef 100%);
}

.top-highlights__lister {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.top-highlights__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.75rem;
  background: linear-gradient(135deg, #175b67, #2f8f98);
  color: #fff;
  font-size: 1.125rem;
  font-weight: 700;
}

.top-highlights__lister-name {
  display: block;
  font-size: 0.9375rem;
  color: #111827;
}

.top-highlights__lister-link {
  display: inline-block;
  margin-top: 0.1rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #175b67;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.top-highlights__name {
  margin: 0 0 0.35rem;
  font-size: clamp(1.2rem, 2.5vw, 1.65rem);
  font-weight: 700;
  line-height: 1.2;
  color: #111827;
}

.top-highlights__location {
  margin: 0 0 0.65rem;
  font-size: 0.875rem;
  color: #6b7280;
}

.top-highlights__price {
  margin: 0 0 0.25rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: #111827;
}

.top-highlights__type {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  color: #4b5563;
}

.top-highlights__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 7.5rem;
  padding: 0.65rem 1.35rem;
  border-radius: 0.65rem;
  background: #175b67;
  color: #fff;
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.15s ease, transform 0.15s ease;
}

.top-highlights__cta:hover {
  background: #144852;
  color: #fff;
  transform: translateY(-1px);
}

.top-highlights__media {
  display: block;
  min-height: 220px;
  background: #e5e7eb;
}

.top-highlights__image {
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
}

.top-highlights__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-top: -1.25rem;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 999px;
  background: #fff;
  color: #374151;
  box-shadow: 0 8px 24px -12px rgba(15, 23, 42, 0.35);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.top-highlights__nav:hover {
  background: #175b67;
  color: #fff;
}

.top-highlights__nav--prev {
  left: -0.35rem;
}

.top-highlights__nav--next {
  right: -0.35rem;
}

@media (min-width: 768px) {
  .top-highlights {
    padding: 3rem 0 3.25rem;
  }

  .top-highlights__header {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
  }

  .top-highlights__thumbs {
    max-width: 52%;
    margin-left: auto;
    justify-content: flex-end;
  }

  .top-highlights__thumb {
    width: 6.25rem;
  }

  .top-highlights__card {
    grid-template-columns: minmax(280px, 38%) minmax(0, 1fr);
    min-height: 320px;
  }

  .top-highlights__info {
    padding: 1.75rem 1.5rem;
  }

  .top-highlights__media {
    min-height: 100%;
  }

  .top-highlights__image {
    min-height: 320px;
  }

  .top-highlights__nav--prev {
    left: -1.1rem;
  }

  .top-highlights__nav--next {
    right: -1.1rem;
  }
}

@media (max-width: 767px) {
  .top-highlights__nav {
    display: none;
  }
}

/* Home page sections */
.home-section__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.home-section__head--stack {
  align-items: flex-start;
}

.home-section__link {
  flex-shrink: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #175b67;
  text-decoration: none;
}

.home-section__link:hover {
  color: #144852;
  text-decoration: underline;
}

.home-dev-row {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  padding-bottom: 0.35rem;
}

.home-dev-card {
  position: relative;
  width: 20rem;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 1.5rem;
  border: 1px solid rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.96);
  padding: 1.15rem;
  box-shadow: 0 18px 45px -32px rgba(15, 23, 42, 0.35);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.home-dev-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 50px -28px rgba(15, 23, 42, 0.28);
}

.home-dev-card--top {
  border-color: rgba(23, 91, 103, 0.15);
}

.home-dev-card--verified {
  border-color: rgba(37, 105, 68, 0.22);
}

.home-dev-card__rank {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: #175b67;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
}

.home-dev-card__verified {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-bottom: 0.65rem;
  border-radius: 999px;
  background: #e8f4ec;
  padding: 0.25rem 0.65rem;
  font-size: 0.6875rem;
  font-weight: 700;
  color: #256944;
}

.home-dev-card__top {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}

.home-dev-card__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 1rem;
  background: #eef7f7;
  color: #175b67;
  font-size: 1.125rem;
  font-weight: 700;
}

.home-dev-card__name {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: #111827;
}

.home-dev-card__meta {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  color: #6b7280;
}

.home-dev-card__desc {
  margin: 0 0 0.85rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #4b5563;
}

.home-dev-card__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 1rem;
  background: #e5e7eb;
  margin-bottom: 0.85rem;
}

.home-dev-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-dev-card__link {
  font-size: 0.875rem;
  font-weight: 600;
  color: #175b67;
  text-decoration: none;
}

.home-dev-card__link:hover {
  color: #144852;
  text-decoration: underline;
}

@media (max-width: 767px) {
  .home-section__head {
    flex-direction: column;
    align-items: flex-start;
  }

  .home-dev-card {
    width: 17.5rem;
  }
}

.hero-tab {
  border-color: rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.72);
}
.hero-tab:hover {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}
.hero-tab-active {
  border-color: rgba(217, 164, 65, 0.6) !important;
  background: #fff !important;
  color: #12353d !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}
.hero-search-btn {
  background: linear-gradient(135deg, #d9a441 0%, #b7821e 100%);
}

/* Support chat widget */
.avenza-chat-fab {
  position: fixed;
  bottom: 1.25rem;
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  z-index: 250;
  display: flex;
  height: 3.5rem;
  width: 3.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: #0f766e;
  color: #fff;
  box-shadow: 0 4px 14px rgba(15, 118, 110, 0.45);
  transition: transform 0.2s, opacity 0.2s, background 0.2s;
}
.avenza-chat-fab:hover {
  background: #0d9488;
}
.avenza-chat-fab-hidden {
  pointer-events: none;
  transform: scale(0.95);
  opacity: 0;
}
.avenza-chat-panel[hidden] {
  display: none !important;
}
.avenza-chat-panel {
  position: fixed;
  bottom: 1.25rem;
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  z-index: 250;
  display: flex;
  flex-direction: column;
  width: min(calc(100vw - 1.5rem), 22rem);
  height: min(92vh, 40rem);
  overflow: hidden;
  border-radius: 1rem;
  border: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
@media (min-width: 768px) {
  .avenza-chat-fab,
  .avenza-chat-panel {
    bottom: 2rem;
    right: 2rem;
  }
  .avenza-chat-panel {
    width: 24rem;
    height: min(92vh, 42rem);
  }
}
.avenza-chat-header {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.625rem;
  padding: 0.75rem;
  background: linear-gradient(to right, #0ea5e9, #0284c7);
  color: #fff;
}
.avenza-chat-header-avatar {
  height: 2.25rem;
  width: 2.25rem;
  overflow: hidden;
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.2);
  padding: 0.125rem;
}
.avenza-chat-header-avatar img {
  height: 2rem;
  width: 2rem;
  border-radius: 0.375rem;
  object-fit: cover;
}
.avenza-chat-messages {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  background: rgba(249, 250, 251, 0.9);
  padding: 0.75rem;
}
.avenza-chat-collect,
.avenza-chat-quick {
  padding: 0 0.75rem 0.5rem;
  background: rgba(249, 250, 251, 0.9);
}
.avenza-chat-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.avenza-chat-legal {
  margin: 0;
  padding: 0.5rem 0.75rem;
  text-align: center;
  font-size: 0.625rem;
  color: #9ca3af;
  background: rgba(249, 250, 251, 0.9);
}
.avenza-chat-legal a {
  text-decoration: underline;
}
.avenza-chat-legal a:hover {
  color: #4b5563;
}
.avenza-chat-compose {
  display: flex;
  flex-shrink: 0;
  gap: 0.5rem;
  border-top: 1px solid #f3f4f6;
  background: #fff;
  padding: 0.5rem;
}
.avenza-chat-compose input {
  min-width: 0;
  flex: 1;
  border-radius: 0.75rem;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  padding: 0.625rem 0.75rem;
  font-size: 0.875rem;
  outline: none;
}
.avenza-chat-compose input:focus {
  border-color: #175b67;
  background: #fff;
}
.avenza-chat-compose button {
  display: flex;
  height: 2.75rem;
  width: 2.75rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  background: #0284c7;
  color: #fff;
}
.avenza-chat-compose button:hover {
  background: #0369a1;
}

/* Search results page */
.search-hero {
  position: relative;
  z-index: auto;
  overflow: visible;
  background: linear-gradient(135deg, #12353d 0%, #175b67 48%, #2f8f98 100%);
  color: #fff;
}
.search-page > .section-shell {
  position: relative;
  z-index: auto;
}
.search-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.1), transparent 24%),
    radial-gradient(circle at 80% 0%, rgba(217, 164, 65, 0.2), transparent 20%);
}
.search-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.72);
}
.search-breadcrumb a {
  color: rgba(255, 255, 255, 0.9);
  transition: color 0.2s;
}
.search-breadcrumb a:hover {
  color: #fff;
}
.search-hero__inner {
  position: relative;
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .search-hero__inner {
    grid-template-columns: 1fr minmax(280px, 420px);
    align-items: end;
    gap: 2rem;
  }
}
.search-hero__eyebrow {
  color: #12353d;
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.4);
}
.search-hero__title {
  margin-top: 0.75rem;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.15;
}
.search-hero__copy {
  margin-top: 0.75rem;
  max-width: 36rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.82);
}
.search-hero__bar {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.5rem;
  border-radius: 1.25rem;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px);
}
@media (min-width: 480px) {
  .search-hero__bar {
    flex-direction: row;
    align-items: stretch;
  }
}
.search-hero__field {
  display: flex;
  min-width: 0;
  flex: 1;
  align-items: center;
  gap: 0.625rem;
  border-radius: 0.875rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.96);
  padding: 0 0.875rem;
}
.search-hero__submit {
  border-radius: 0.875rem;
  background: linear-gradient(135deg, #d9a441 0%, #b7821e 100%);
  padding: 0.75rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #0a2e33;
  white-space: nowrap;
  transition: transform 0.2s, opacity 0.2s;
}
.search-hero__submit:hover {
  transform: translateY(-1px);
  opacity: 0.95;
}
.search-layout {
  display: block;
}
.search-filters {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 200;
  width: min(100vw - 1rem, 22rem);
  height: 100vh;
  height: 100dvh;
  overflow-y: auto;
  margin: 0;
  padding: 0;
  padding-top: var(--site-header-height, 4rem);
  border-radius: 0;
  border: none;
  border-right: 1px solid #e2e8f0;
  background: #fff;
  box-shadow: 8px 0 32px rgba(15, 23, 42, 0.12);
  transform: translateX(-110%);
  transition: transform 0.25s ease;
  -webkit-overflow-scrolling: touch;
}
.search-filters__form {
  padding: 0 1.25rem 1.5rem;
}
@media (min-width: 768px) {
  .search-filters {
    width: min(100vw - 2rem, 380px);
  }
}
@media (min-width: 1024px) {
  .search-layout {
    display: grid;
    grid-template-columns: minmax(260px, 300px) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
  }
  .search-filters {
    position: sticky;
    top: calc(var(--site-header-height, 4rem) + 0.75rem);
    z-index: 15;
    width: auto;
    height: auto;
    max-height: calc(100vh - var(--site-header-height, 4rem) - 1.5rem);
    max-height: calc(100dvh - var(--site-header-height, 4rem) - 1.5rem);
    padding-top: 0;
    transform: none;
    border-radius: 1rem;
    border: 1px solid #e2e8f0;
    box-shadow: 0 8px 24px rgba(18, 53, 61, 0.06);
  }
  .search-filters__close {
    display: none;
  }
  .search-filters-backdrop {
    display: none !important;
  }
  .search-pill--accent[data-search-filters-open] {
    display: none;
  }
}
.search-filters--open {
  transform: translateX(0);
}
body.search-filters-open {
  overflow: hidden;
}

/* Housing-style quick filter bar */
.search-toolbar-zone {
  position: relative;
  z-index: 20;
  margin-bottom: 0.25rem;
}
.page-search .search-chips {
  position: relative;
  z-index: 54;
}
.search-section-shell {
  overflow: visible;
}
.page-search .search-section-shell {
  overflow: visible;
}
.page-search .search-section-shell::before {
  z-index: 0;
}
.search-quick-filters {
  position: sticky;
  top: 4rem;
  z-index: 55;
  display: flex;
  align-items: center;
  gap: 0.625rem;
  margin-bottom: 0.75rem;
  padding: 0.625rem 0.75rem;
  border-radius: 1rem;
  border: 1px solid rgba(18, 53, 61, 0.1);
  background: #fff;
  box-shadow: 0 8px 24px rgba(18, 53, 61, 0.06);
}
.search-results {
  position: relative;
  z-index: 1;
}
.search-quick-filters__scroll {
  display: flex;
  min-width: 0;
  flex: 1;
  align-items: center;
  gap: 0.5rem;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0.125rem 0;
}
.search-pill-dropdown {
  position: relative;
  flex-shrink: 0;
}
.search-pill-dropdown--sort {
  flex-shrink: 0;
}
.search-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border-radius: 9999px;
  border: 1px solid #cbd5e1;
  background: #fff;
  padding: 0.5rem 0.875rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  white-space: nowrap;
  transition: border-color 0.2s, background 0.2s, color 0.2s, box-shadow 0.2s;
}
a.search-pill {
  text-decoration: none;
}
.search-pill:hover {
  border-color: #94a3b8;
  background: #f8fafc;
}
.search-pill--active {
  border-color: #175b67;
  background: rgba(23, 91, 103, 0.08);
  color: #175b67;
}
.search-pill--accent {
  border-color: rgba(23, 91, 103, 0.35);
  color: #175b67;
  font-weight: 700;
}
.search-pill--icon {
  padding: 0.5rem;
  justify-content: center;
  min-width: 2.375rem;
}
.search-pill__chev {
  width: 0.875rem;
  height: 0.875rem;
  opacity: 0.65;
  transition: transform 0.2s ease;
}
.search-pill-dropdown--open .search-pill__chev {
  transform: rotate(180deg);
}
.search-pill-menu {
  position: absolute;
  top: calc(100% + 0.375rem);
  left: 0;
  z-index: 50;
  min-width: 10rem;
  max-height: 16rem;
  overflow-y: auto;
  border-radius: 0.875rem;
  border: 1px solid rgba(18, 53, 61, 0.1);
  background: #fff;
  padding: 0.375rem;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
}
.search-pill-menu[hidden] {
  display: none !important;
}
.search-pill-menu--floating {
  position: fixed !important;
  z-index: 200;
  max-height: min(16rem, 50vh);
  margin: 0;
}
.search-pill-portal {
  position: fixed;
  inset: 0;
  z-index: 150;
  pointer-events: none;
}
.search-pill-menu--portal {
  position: fixed;
  z-index: 151;
  min-width: 10rem;
  max-height: min(16rem, 50vh);
  overflow-y: auto;
  border-radius: 0.875rem;
  border: 1px solid rgba(18, 53, 61, 0.12);
  background: #fff;
  padding: 0.375rem;
  box-shadow: 0 20px 48px rgba(15, 23, 42, 0.18);
  pointer-events: auto;
}
.search-pill-menu--sort.search-pill-menu--floating {
  right: auto;
}
.search-pill-menu--wide {
  min-width: 12.5rem;
}
.search-pill-dropdown--sort .search-pill-menu:not(.search-pill-menu--floating) {
  right: 0;
  left: auto;
}
.search-pill-menu__item {
  display: block;
  border-radius: 0.5rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #334155;
  transition: background 0.15s, color 0.15s;
}
.search-pill-menu__item:hover {
  background: #f1f5f9;
  color: #175b67;
}
.search-pill-menu__item--active {
  background: rgba(23, 91, 103, 0.1);
  color: #175b67;
  font-weight: 600;
}
.search-pill-menu__hint {
  padding: 0.5rem 0.75rem;
  font-size: 0.75rem;
  color: #64748b;
}
.search-results__count {
  margin-bottom: 0.875rem;
  font-size: 0.875rem;
  color: #64748b;
}
.search-results__count strong {
  color: #0f172a;
}
.search-filters__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #e2e8f0;
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 2;
}
.search-filters__head-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.search-filters__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 9999px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  font-size: 1.25rem;
  line-height: 1;
  color: #64748b;
  transition: background 0.2s, color 0.2s;
}
.search-filters__close:hover {
  background: #f1f5f9;
  color: #0f172a;
}
.search-filters__title {
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
}
.search-filters__reset {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #175b67;
}
.search-filters__reset:hover {
  text-decoration: underline;
}
.search-label {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
}
.search-filters .input-field {
  font-size: 0.875rem;
}
.search-filters .search-label {
  margin-bottom: 0.25rem;
}
.search-filters .btn-primary {
  margin-top: 0.5rem;
}
.search-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
  padding: 0.875rem 1rem;
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.65);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 12px 32px rgba(18, 53, 61, 0.06);
}
.search-toolbar__filters-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border-radius: 9999px;
  border: 1px solid rgba(18, 53, 61, 0.12);
  background: #fff;
  padding: 0.5rem 0.875rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #175b67;
}
@media (min-width: 1024px) {
  .search-toolbar__filters-btn {
    display: none;
  }
}
.search-toolbar__count {
  flex: 1;
  min-width: 0;
  font-size: 0.875rem;
  color: #64748b;
}
.search-toolbar__count strong {
  color: #0f172a;
}
.search-toolbar__sort select {
  min-width: 10rem;
  width: auto;
}
.search-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
  padding: 0 0.125rem;
}
.search-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border-radius: 9999px;
  border: 1px solid rgba(23, 91, 103, 0.18);
  background: rgba(23, 91, 103, 0.08);
  padding: 0.375rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #175b67;
  transition: background 0.2s, border-color 0.2s;
}
.search-chip:hover {
  background: rgba(23, 91, 103, 0.14);
  border-color: rgba(23, 91, 103, 0.28);
}
.search-chip span {
  font-size: 1rem;
  line-height: 1;
  opacity: 0.7;
}
.search-chip--city {
  border-color: rgba(23, 91, 103, 0.28);
  background: rgba(23, 91, 103, 0.12);
  color: #175b67;
  cursor: default;
}
.search-hero__city-row {
  position: relative;
  z-index: 2;
  margin-top: 0.75rem;
}
.hero-city-pill {
  position: relative;
  z-index: 10;
  display: inline-flex;
}
.hero-city-pill__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 9999px;
  border: 1px solid rgba(18, 53, 61, 0.12);
  background: #fff;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #12353d;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}
.hero-city-pill--on-dark .hero-city-pill__btn {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  backdrop-filter: blur(8px);
}
.hero-city-pill__chev {
  opacity: 0.7;
  transition: transform 0.2s ease;
}
.hero-city-pill__menu {
  position: absolute;
  top: calc(100% + 0.375rem);
  left: 0;
  z-index: 10000;
  min-width: 11rem;
  max-height: min(14rem, calc(100vh - 8rem));
  overflow-y: auto;
  border-radius: 0.875rem;
  border: 1px solid rgba(18, 53, 61, 0.1);
  background: #fff;
  padding: 0.375rem;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14);
}
.hero-city-pill__menu.is-fixed {
  position: fixed !important;
  top: auto;
  left: auto;
  z-index: 10000;
  min-width: 11rem;
  overflow-y: auto;
  border-radius: 0.875rem;
  border: 1px solid rgba(18, 53, 61, 0.1);
  background: #fff;
  padding: 0.375rem;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14);
}
.hero-city-pill__menu.is-fixed .hero-city-pill__option {
  display: block;
  width: 100%;
  border-radius: 0.5rem;
  padding: 0.5rem 0.75rem;
  text-align: left;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #334155;
  text-decoration: none;
}
.hero-city-pill__menu.is-fixed .hero-city-pill__option:hover,
.hero-city-pill__menu.is-fixed .hero-city-pill__option--active {
  background: rgba(23, 91, 103, 0.1);
  color: #175b67;
  font-weight: 600;
}
.hero-city-pill__menu[hidden] {
  display: none !important;
}
.hero-city-pill__option {
  display: block;
  width: 100%;
  border-radius: 0.5rem;
  padding: 0.5rem 0.75rem;
  text-align: left;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #334155;
}
.hero-city-pill__option:hover,
.hero-city-pill__option--active {
  background: rgba(23, 91, 103, 0.1);
  color: #175b67;
  font-weight: 600;
}
a.hero-city-pill__option {
  text-decoration: none;
}

/* Property detail tab navigation */
.property-tabs__head {
  margin-bottom: 1.5rem;
}
.property-tabs__list {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  padding-bottom: 0.75rem;
}
.property-tabs__btn {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
}
.property-tabs__btn--active {
  z-index: 3;
}
.property-tabs__rule {
  position: relative;
  z-index: 1;
  height: 1px;
  margin-top: -1px;
  background: #e2e8f0;
}

.property-price-history__card {
  max-width: 36rem;
}

.property-price-history__layout {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem 1.75rem;
}

.property-price-history__chart {
  flex: 0 0 auto;
}

.property-price-history__sparkline {
  display: block;
}

.property-price-history__sparkline-labels {
  display: flex;
  justify-content: space-between;
  margin-top: 0.35rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}

.property-price-history__meta {
  flex: 1 1 10rem;
  min-width: 0;
}

.search-grid {
  display: grid;
  gap: 1.25rem;
  position: relative;
  z-index: 0;
}
@media (min-width: 640px) {
  .search-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1280px) {
  .search-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.property-card {
  height: 100%;
}
.property-card__badge {
  position: absolute;
  top: 0.75rem;
  padding: 0.25rem 0.625rem;
  border-radius: 9999px;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.2;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
}
.property-card__badge--cat {
  left: 0.75rem;
  background: #175b67;
  color: #fff;
}
.property-card__badge--type {
  top: auto;
  bottom: 0.75rem;
  right: 0.75rem;
  background: rgba(255, 255, 255, 0.96);
  color: #334155;
}
.property-card__badge--featured {
  top: auto;
  bottom: 0.75rem;
  right: 0.75rem;
  background: linear-gradient(135deg, #d9a441 0%, #b7821e 100%);
  color: #12353d;
}
.property-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  align-content: flex-start;
}
.property-card__meta span {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  background: rgba(23, 91, 103, 0.08);
  padding: 0.25rem 0.625rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #475569;
  white-space: nowrap;
}
.property-card__meta--empty {
  min-height: 2rem;
}
.property-card--carousel .property-card__cta {
  border-top: 1px solid rgba(18, 53, 61, 0.06);
  padding-top: 0.875rem;
  margin-top: auto;
}

/* Similar properties carousel */
.similar-properties-shell {
  overflow: hidden;
}
.similar-properties__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin-bottom: 1.25rem;
}
.similar-properties__view-all {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #175b67;
  white-space: nowrap;
  transition: color 0.2s, gap 0.2s;
}
.similar-properties__view-all:hover {
  color: #12353d;
  gap: 0.5rem;
}
.similar-properties__wrap {
  position: relative;
}
.similar-properties__track {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0.25rem 0.25rem 1rem;
  scroll-snap-type: x mandatory;
  scroll-padding-left: 0.25rem;
  -webkit-overflow-scrolling: touch;
}
.similar-properties__slide {
  flex: 0 0 min(100%, 18.5rem);
  width: min(100%, 18.5rem);
  scroll-snap-align: start;
}
@media (min-width: 640px) {
  .similar-properties__slide {
    flex: 0 0 18.5rem;
    width: 18.5rem;
  }
}
.similar-properties__nav {
  display: none;
  position: absolute;
  top: 38%;
  z-index: 2;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  border: 1px solid rgba(18, 53, 61, 0.1);
  background: #fff;
  color: #175b67;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}
@media (min-width: 768px) {
  .similar-properties__nav {
    display: flex;
  }
  .similar-properties__wrap:hover .similar-properties__nav {
    opacity: 1;
  }
}
.similar-properties__nav:hover {
  background: #f8fafc;
  transform: scale(1.05);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.14);
}
.similar-properties__nav--prev {
  left: -0.5rem;
}
.similar-properties__nav--next {
  right: -0.5rem;
}
@media (min-width: 1024px) {
  .similar-properties__nav--prev {
    left: -1.25rem;
  }
  .similar-properties__nav--next {
    right: -1.25rem;
  }
}
.property-row-track {
  scroll-snap-type: x proximity;
  padding-bottom: 0.5rem;
}
.property-row-track__item {
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
}
.search-empty {
  padding: 3rem 1.5rem;
  text-align: center;
  border-radius: 1.75rem;
  border: 1px solid rgba(255, 255, 255, 0.65);
  background: rgba(255, 255, 255, 0.88);
}
.search-empty__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  margin-bottom: 1rem;
  border-radius: 9999px;
  background: rgba(23, 91, 103, 0.1);
}
.search-empty__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #0f172a;
}
.search-empty__copy {
  margin: 0.5rem auto 1.25rem;
  max-width: 24rem;
  font-size: 0.9375rem;
  color: #64748b;
}
.search-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  margin-top: 2rem;
}
.search-pagination__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 0.625rem;
  border-radius: 0.625rem;
  border: 1px solid rgba(18, 53, 61, 0.12);
  background: #fff;
  font-size: 0.875rem;
  font-weight: 500;
  color: #334155;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.search-pagination__btn:hover {
  border-color: rgba(23, 91, 103, 0.3);
  color: #175b67;
}
.search-pagination__btn--active {
  border-color: #175b67;
  background: #175b67;
  color: #fff;
}
.search-pagination__btn--nav {
  padding: 0 0.875rem;
  font-weight: 600;
}
.search-pagination__ellipsis {
  padding: 0 0.25rem;
  color: #94a3b8;
}
.search-filters-backdrop {
  position: fixed;
  inset: 0;
  z-index: 190;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(2px);
}
.search-filters-backdrop[hidden] {
  display: none !important;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Admin property list */
.admin-page-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.admin-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}
.admin-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 9999px;
  border: 1px solid rgba(18, 53, 61, 0.12);
  background: rgba(255, 255, 255, 0.85);
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #475569;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.admin-tab:hover {
  border-color: rgba(23, 91, 103, 0.25);
  color: #175b67;
}
.admin-tab--active {
  border-color: #175b67;
  background: #175b67;
  color: #fff;
}
.admin-tab__count {
  display: inline-flex;
  min-width: 1.375rem;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: rgba(0, 0, 0, 0.08);
  padding: 0.125rem 0.375rem;
  font-size: 0.75rem;
}
.admin-tab--active .admin-tab__count {
  background: rgba(255, 255, 255, 0.2);
}
.admin-property-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.admin-property-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
  padding: 0;
}
@media (min-width: 640px) {
  .admin-property-card {
    flex-direction: row;
  }
}
.admin-property-card__media {
  display: block;
  flex-shrink: 0;
  width: 100%;
  aspect-ratio: 16 / 10;
  background: #e2e8f0;
}
@media (min-width: 640px) {
  .admin-property-card__media {
    width: 11rem;
    aspect-ratio: auto;
    align-self: stretch;
  }
}
.admin-property-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.admin-property-card__body {
  flex: 1;
  min-width: 0;
  padding: 1rem 1.25rem;
}
.admin-property-card__top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}
.admin-property-card__title {
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.35;
}
.admin-property-card__loc {
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  color: #64748b;
}
.admin-property-card__price {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #175b67;
  white-space: nowrap;
}
.admin-property-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin-top: 0.75rem;
  font-size: 0.8125rem;
  color: #475569;
}
.admin-property-card__meta span:not(:first-child)::before {
  content: '·';
  margin-right: 0.5rem;
  color: #cbd5e1;
}
.admin-property-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  margin-top: 1rem;
  padding-top: 0.875rem;
  border-top: 1px solid rgba(18, 53, 61, 0.08);
}
.admin-badge {
  display: inline-flex;
  border-radius: 9999px;
  padding: 0.125rem 0.5rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.admin-badge--draft { background: #e2e8f0; color: #475569; }
.admin-badge--pending { background: #fef3c7; color: #92400e; }
.admin-badge--approved { background: #d1fae5; color: #065f46; }
.admin-badge--rejected { background: #fee2e2; color: #991b1b; }
.admin-action {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  padding: 0.375rem 0.875rem;
  font-size: 0.8125rem;
  font-weight: 600;
  transition: opacity 0.2s;
}
.admin-action:hover { opacity: 0.88; }
.admin-action--view {
  border: 1px solid rgba(23, 91, 103, 0.2);
  color: #175b67;
  background: #fff;
}
.admin-action--approve {
  border: none;
  background: #059669;
  color: #fff;
}
.admin-action--reject {
  border: none;
  background: #fef2f2;
  color: #dc2626;
}

/* ——— Mobile bottom navigation & responsive layout ——— */
@media (max-width: 1023px) {
  :root {
    --site-header-height: 7.25rem;
  }

  body.has-mobile-bottom-nav {
    padding-bottom: var(--mobile-nav-total);
  }

  body.has-mobile-bottom-nav .mobile-bottom-nav {
    display: block;
  }

  body.has-mobile-bottom-nav .avenza-chat-fab,
  body.has-mobile-bottom-nav .avenza-chat-panel {
    bottom: calc(var(--mobile-nav-total) + 1.25rem);
    z-index: 250;
  }

  body.has-mobile-bottom-nav.page-property-detail .avenza-chat-fab {
    bottom: calc(var(--mobile-nav-total) + 1.25rem);
  }

  body.has-mobile-bottom-nav.page-search .search-quick-filters {
    top: var(--site-header-height);
  }

  body.has-mobile-bottom-nav .search-hero {
    padding-bottom: 0.5rem;
  }

  body.page-property-detail aside .sticky {
    position: static;
    top: auto;
  }
}

.mobile-bottom-nav {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 100;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  border-top: 1px solid rgba(18, 53, 61, 0.1);
  background: rgba(251, 247, 238, 0.97);
  backdrop-filter: blur(16px);
  box-shadow: 0 -8px 32px rgba(18, 53, 61, 0.1);
}

.mobile-bottom-nav__inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  height: var(--mobile-nav-height);
  max-width: 32rem;
  margin: 0 auto;
}

.mobile-bottom-nav__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  min-width: 0;
  padding: 0.35rem 0.25rem;
  text-decoration: none;
  color: #64748b;
  transition: color 0.2s ease;
}

.mobile-bottom-nav__item:hover {
  color: #175b67;
}

.mobile-bottom-nav__item--active {
  color: #175b67;
}

.mobile-bottom-nav__item--active .mobile-bottom-nav__icon {
  transform: scale(1.05);
}

.mobile-bottom-nav__icon {
  width: 1.375rem;
  height: 1.375rem;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.mobile-bottom-nav__label {
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: 0.01em;
}

.mobile-bottom-nav__item--active .mobile-bottom-nav__label {
  font-weight: 700;
}

@media (max-width: 767px) {
  .hero-home {
    min-height: auto;
  }

  .hero-home .container {
    padding-top: 1.5rem;
    padding-bottom: 1.75rem;
  }

  .hero-home__intro {
    margin-bottom: 1.25rem;
  }

  .hero-home__stats {
    gap: 0.5rem;
  }

  .hero-home__stat {
    min-width: 6.5rem;
    padding: 0.55rem 0.75rem;
  }

  .hero-search__submit {
    width: 100%;
  }

  .hero-search__localities {
    flex-wrap: wrap;
  }

  .hero-search__localities-label {
    width: 100%;
  }

  .section-card {
    border-radius: 1.25rem;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .section-title {
    font-size: 1.5rem;
  }

  section.section-shell {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .search-hero .container {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  .search-hero__title {
    font-size: 1.5rem;
  }

  .search-hero__bar {
    border-radius: 1rem;
  }

  .search-hero__submit {
    width: 100%;
  }

  .search-chips {
    position: relative;
    z-index: 54;
  }

  .search-toolbar-zone {
    z-index: 25;
  }

  .search-quick-filters {
    margin-left: -0.25rem;
    margin-right: -0.25rem;
    padding: 0.5rem;
    border-radius: 0.875rem;
  }

  .search-pill {
    padding: 0.4375rem 0.75rem;
    font-size: 0.75rem;
  }

  .search-grid {
    gap: 1rem;
  }

  .property-hero__title {
    font-size: 1.125rem;
  }

  .property-hero__summary-aside {
    padding-bottom: 0.5rem;
  }

  .page-panel {
    border-radius: 1.25rem;
    padding: 1rem !important;
  }

  .page-sidebar--dashboard .dashboard-sidebar__link.is-active {
    border-left-width: 0;
    border-bottom: 2px solid #175b67;
  }

  .page-sidebar--dashboard .dashboard-sidebar__link {
    white-space: nowrap;
  }

  .dash-activity-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  footer .grid-cols-2 {
    gap: 2rem;
  }

  footer .container {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }

  .site-header__bar {
    height: 3.5rem;
  }

  .site-header__mobile-strip {
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
  }

  .nav-mega {
    display: none !important;
  }
}

@media (max-width: 380px) {
  .mobile-bottom-nav__label {
    font-size: 0.5625rem;
  }

  .hero-tab {
    padding: 0.4rem 0.5rem;
    font-size: 0.625rem;
  }
}

@media (min-width: 1024px) {
  .mobile-bottom-nav {
    display: none !important;
  }
}

/* Legal disclaimer modal (property detail) — bottom sheet */
body.legal-modal-open {
  overflow: hidden;
}

.legal-modal[hidden] {
  display: none !important;
}

.legal-modal {
  position: fixed;
  inset: 0;
  z-index: 300;
  pointer-events: none;
}

.legal-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.35);
  pointer-events: auto;
}

.legal-modal__sheet {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  justify-content: center;
  padding: 0;
  pointer-events: none;
}

.legal-modal__card {
  width: 100%;
  max-width: 42rem;
  margin: 0 auto;
  border-radius: 1.25rem 1.25rem 0 0;
  border: 1px solid #e2e8f0;
  border-bottom: none;
  background: #fff;
  padding: 1.25rem 1.25rem calc(1rem + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.18);
  pointer-events: auto;
}

.legal-modal__text {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #475569;
}

.legal-modal__text--full {
  max-height: min(42vh, 16rem);
  overflow-y: auto;
}

.legal-modal__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid #f1f5f9;
}

.legal-modal__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: none;
  background: transparent;
  padding: 0.25rem 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: #175b67;
  cursor: pointer;
}

.legal-modal__toggle:hover {
  color: #12353d;
}

.legal-modal__chev {
  width: 1rem;
  height: 1rem;
  transition: transform 0.2s ease;
}

.legal-modal__continue {
  border: none;
  border-radius: 0.5rem;
  background: linear-gradient(135deg, #175b67 0%, #12353d 100%);
  padding: 0.625rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.legal-modal__continue:hover {
  opacity: 0.95;
  transform: translateY(-1px);
}

@media (min-width: 768px) {
  .legal-modal__sheet {
    padding: 0 1rem;
  }

  .legal-modal__card {
    border-radius: 1.25rem 1.25rem 0 0;
    padding: 1.5rem 1.5rem 1.25rem;
    padding-bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
  }
}

/* Legal pages (Terms, Privacy) */
.legal-page-hero {
  background: linear-gradient(135deg, #12353d 0%, #175b67 42%, #2f8f98 100%);
  color: #fff;
}

.legal-page-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.75);
}

.legal-page-breadcrumb a {
  color: rgba(255, 255, 255, 0.92);
}

.legal-page-hero__title {
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -0.025em;
}

.legal-page-hero__updated {
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.72);
}

.legal-page-hero__intro {
  margin-top: 1.25rem;
  max-width: 42rem;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.9);
}

.legal-page-hero__intro a {
  color: #fff;
  text-decoration: underline;
}

.legal-page-hero__cross {
  margin-top: 1rem;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.8);
}

.legal-page-hero__cross a {
  color: #fff;
  font-weight: 600;
  text-decoration: underline;
}

.legal-page-layout {
  display: grid;
  gap: 1.5rem;
  max-width: 72rem;
  margin: 0 auto;
}

@media (min-width: 1024px) {
  .legal-page-layout {
    grid-template-columns: minmax(12rem, 16rem) 1fr;
    align-items: start;
  }

  .legal-page-toc {
    position: sticky;
    top: 5.5rem;
  }
}

.legal-page-toc__card {
  padding: 1rem 1.125rem;
}

.legal-page-toc__heading {
  margin: 0 0 0.75rem;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #64748b;
}

.legal-page-toc__list {
  margin: 0;
  padding-left: 1.125rem;
  font-size: 0.8125rem;
  line-height: 1.55;
  color: #475569;
}

.legal-page-toc__list a {
  color: #175b67;
  text-decoration: none;
}

.legal-page-toc__list a:hover {
  text-decoration: underline;
}

.legal-page-toc__list li + li {
  margin-top: 0.35rem;
}

.legal-section + .legal-section {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid #e2e8f0;
}

.legal-section__title {
  margin: 0 0 0.75rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: #0f172a;
}

.prose-legal {
  font-size: 0.9375rem;
  line-height: 1.7;
  color: #475569;
}

.prose-legal p {
  margin: 0 0 0.875rem;
}

.prose-legal p:last-child {
  margin-bottom: 0;
}

.prose-legal ul,
.prose-legal ol {
  margin: 0 0 0.875rem;
  padding-left: 1.35rem;
}

.prose-legal li + li {
  margin-top: 0.35rem;
}

.prose-legal a {
  color: #175b67;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.prose-legal a:hover {
  color: #12353d;
}

.prose-legal strong {
  color: #334155;
  font-weight: 600;
}

.prose-legal h3.legal-subheading {
  margin: 1.25rem 0 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
}

.prose-legal h3.legal-subheading:first-child {
  margin-top: 0;
}

.legal-section--contact {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 2px solid rgba(23, 91, 103, 0.15);
  background: rgba(23, 91, 103, 0.04);
  margin-left: -1.5rem;
  margin-right: -1.5rem;
  margin-bottom: -2rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-bottom: 2rem;
  border-radius: 0 0 1.25rem 1.25rem;
}

@media (min-width: 768px) {
  .legal-section--contact {
    margin-left: -2.5rem;
    margin-right: -2.5rem;
    margin-bottom: -2.5rem;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    padding-bottom: 2.5rem;
  }
}

/* Sitemap page */
.sitemap-page {
  background: transparent;
}

.sitemap-hero {
  background: linear-gradient(135deg, #12353d 0%, #175b67 48%, #2f8f98 100%);
  color: #fff;
}

.sitemap-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.75);
}

.sitemap-breadcrumb a {
  color: rgba(255, 255, 255, 0.92);
}

.sitemap-breadcrumb a:hover {
  color: #fff;
}

.sitemap-hero__title {
  margin-top: 0.75rem;
  font-size: clamp(1.875rem, 4vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.15;
}

.sitemap-hero .eyebrow {
  color: #12353d;
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.35);
}

.sitemap-hero__copy {
  margin-top: 0.75rem;
  max-width: 40rem;
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
}

.sitemap-hero__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.sitemap-stat {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.12);
  padding: 0.45rem 0.9rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(8px);
}

.sitemap-stat strong {
  font-weight: 700;
  color: #fff;
}

.sitemap-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .sitemap-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .sitemap-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.sitemap-card {
  padding: 1.25rem 1.25rem 1rem;
  height: 100%;
}

.sitemap-card__title {
  margin: 0 0 0.35rem;
  font-size: 1.0625rem;
  font-weight: 700;
  color: #0f172a;
}

.sitemap-card__desc {
  margin: 0 0 1rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #64748b;
}

.sitemap-card__links {
  margin: 0;
  padding: 0;
  list-style: none;
}

.sitemap-card__links li + li {
  margin-top: 0.125rem;
}

.sitemap-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  border-radius: 0.625rem;
  padding: 0.5rem 0.625rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #175b67;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.sitemap-link:hover {
  background: rgba(23, 91, 103, 0.08);
  color: #12353d;
}

.sitemap-link__icon {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  opacity: 0.5;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.sitemap-link:hover .sitemap-link__icon {
  opacity: 1;
  transform: translateX(2px);
}

.sitemap-properties__head {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

@media (min-width: 768px) {
  .sitemap-properties__head {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}

.sitemap-properties__title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
}

.sitemap-properties__desc {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  color: #64748b;
}

.sitemap-properties__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  border: 1px solid rgba(23, 91, 103, 0.2);
  background: linear-gradient(135deg, #175b67 0%, #12353d 100%);
  padding: 0.625rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.sitemap-properties__cta:hover {
  opacity: 0.95;
  transform: translateY(-1px);
}

.sitemap-properties__list {
  display: grid;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (min-width: 768px) {
  .sitemap-properties__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .sitemap-properties__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.sitemap-property-link {
  display: block;
  border-radius: 0.875rem;
  border: 1px solid rgba(18, 53, 61, 0.08);
  background: rgba(255, 255, 255, 0.7);
  padding: 0.75rem 1rem;
  text-decoration: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.sitemap-property-link:hover {
  border-color: rgba(23, 91, 103, 0.22);
  background: #fff;
  box-shadow: 0 8px 24px rgba(18, 53, 61, 0.08);
}

.sitemap-property-link__title {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
  color: #0f172a;
}

.sitemap-property-link:hover .sitemap-property-link__title {
  color: #175b67;
}

.sitemap-property-link__meta {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.75rem;
  color: #64748b;
}

/* Cookie consent banner (home page) */
.cookie-banner[hidden] {
  display: none !important;
}

.cookie-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 220;
  padding: 0.75rem;
  padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
}

.cookie-banner__inner {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 56rem;
  margin: 0 auto;
  border-radius: 1rem;
  border: 1px solid rgba(18, 53, 61, 0.12);
  background: rgba(255, 255, 255, 0.98);
  padding: 1rem 1.25rem;
  box-shadow: 0 16px 48px rgba(18, 53, 61, 0.16);
  backdrop-filter: blur(12px);
}

.cookie-banner__title {
  margin: 0 0 0.35rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #0f172a;
}

.cookie-banner__text {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.55;
  color: #475569;
}

.cookie-banner__text a {
  font-weight: 600;
  color: #175b67;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cookie-banner__text a:hover {
  color: #12353d;
}

.cookie-banner__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  flex-shrink: 0;
}

.cookie-banner__link {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #175b67;
  text-decoration: none;
}

.cookie-banner__link:hover {
  text-decoration: underline;
}

.cookie-banner__accept {
  margin-left: auto;
  border: none;
  border-radius: 9999px;
  background: linear-gradient(135deg, #d9a441 0%, #b7821e 100%);
  padding: 0.5rem 1.25rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #0a2e33;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.cookie-banner__accept:hover {
  opacity: 0.92;
}

@media (min-width: 768px) {
  .cookie-banner__inner {
    flex-direction: row;
    align-items: center;
    gap: 1.5rem;
  }

  .cookie-banner__copy {
    flex: 1;
    min-width: 0;
  }
}

@media (max-width: 1023px) {
  body.has-cookie-banner.has-mobile-bottom-nav .cookie-banner {
    bottom: var(--mobile-nav-total);
    padding-bottom: 0.75rem;
  }

  body.has-cookie-banner.has-mobile-bottom-nav {
    padding-bottom: calc(var(--mobile-nav-total) + 7rem + env(safe-area-inset-bottom, 0px));
  }
}

/* News hub */
.news-hub {
  background: transparent;
}

.news-hub-hero {
  background: linear-gradient(135deg, #12353d 0%, #175b67 48%, #2f8f98 100%);
  color: #fff;
  padding-bottom: 2.5rem;
}

.news-hub-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
  padding-top: 0.25rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.75);
}

.news-hub-breadcrumb a {
  color: rgba(255, 255, 255, 0.92);
}

.news-hub-breadcrumb a:hover {
  color: #fff;
}

.news-hub-hero__title {
  margin-top: 0.75rem;
  font-size: clamp(1.875rem, 4vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.15;
}

.news-hub-hero .eyebrow {
  color: #12353d;
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.35);
}

.news-hub-hero__copy {
  margin-top: 0.75rem;
  max-width: 40rem;
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
}

.news-hub-hero__count {
  margin-top: 1rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.72);
}

.news-hub-body {
  margin-top: -1.25rem;
}

.news-hub-toolbar {
  padding: 1rem 1.15rem;
  margin-bottom: 1.5rem;
}

.news-hub-toolbar__label {
  margin-bottom: 0.65rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #64748b;
}

.news-hub-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0;
}

.news-hub-filter {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  border: 1px solid rgba(23, 91, 103, 0.2);
  background: #fff;
  padding: 0.4rem 0.9rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #175b67;
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.news-hub-filter:hover {
  border-color: #175b67;
  background: rgba(23, 91, 103, 0.06);
}

.news-hub-filter--active {
  border-color: #175b67;
  background: #175b67;
  color: #fff;
}

.news-hub-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .news-hub-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .news-hub-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.news-card {
  overflow: hidden;
  padding: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.news-card__media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: linear-gradient(135deg, #d7eded 0%, #b0dcdc 55%, #84c7c9 100%);
}

.news-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
  background: #e2e8f0;
}

.news-card__media:hover .news-card__img {
  transform: scale(1.04);
}

.news-card__city {
  position: absolute;
  left: 0.75rem;
  bottom: 0.75rem;
  border-radius: 9999px;
  background: rgba(18, 53, 61, 0.88);
  padding: 0.25rem 0.65rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #fff;
}

.news-card__body {
  padding: 1rem 1.15rem 1.25rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0.35rem;
}

.news-card__date {
  font-size: 0.75rem;
  color: #64748b;
}

.news-card__title {
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.35;
  color: #12353d;
}

.news-card__title a {
  color: inherit;
  text-decoration: none;
}

.news-card__title a:hover {
  color: #175b67;
}

.news-card__excerpt {
  margin-top: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #475569;
  flex: 1;
}

.news-card__read {
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #175b67;
  text-decoration: none;
}

.news-card__read:hover {
  text-decoration: underline;
}

.news-card__link {
  margin-top: 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #64748b;
  text-decoration: none;
}

.news-card__link:hover {
  text-decoration: underline;
}

.news-hub-empty {
  max-width: 32rem;
  margin: 0 auto;
}

.news-article-tag {
  display: inline-block;
  border-radius: 9999px;
  background: rgba(23, 91, 103, 0.1);
  padding: 0.2rem 0.55rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #175b67;
}

/* Download app page */
.download-app-page {
  background: transparent;
}

.download-app-hero {
  background: linear-gradient(135deg, #12353d 0%, #175b67 48%, #2f8f98 100%);
  color: #fff;
}

.download-app-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.75);
}

.download-app-breadcrumb a {
  color: rgba(255, 255, 255, 0.92);
}

.download-app-breadcrumb a:hover {
  color: #fff;
}

.download-app-hero__grid {
  display: grid;
  gap: 2.5rem;
  align-items: center;
}

@media (min-width: 900px) {
  .download-app-hero__grid {
    grid-template-columns: 1fr minmax(260px, 300px);
    gap: 3rem;
  }
}

.download-app-hero__title {
  margin-top: 0.75rem;
  font-size: clamp(1.875rem, 4vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.15;
}

.download-app-hero .eyebrow {
  color: #12353d;
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.35);
}

.download-app-hero__lead {
  margin-top: 0.75rem;
  max-width: 36rem;
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
}

.download-app-stores {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.download-app-store {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 10.5rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.1);
  padding: 0.55rem 0.9rem;
  color: #fff;
  backdrop-filter: blur(8px);
}

.download-app-store--soon {
  opacity: 0.85;
  cursor: default;
}

.download-app-store__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.9;
}

.download-app-store__text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.download-app-store__label {
  font-size: 0.9375rem;
  font-weight: 700;
}

.download-app-store__sub {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.72);
}

.download-app-hero__note {
  margin-top: 1rem;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.78);
}

.download-app-hero__note a {
  color: #f5d78a;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.download-app-hero__note a:hover {
  color: #fff;
}

/* Phone mockup */
.app-mockup {
  display: flex;
  justify-content: center;
  padding: 0.5rem 0 1rem;
}

.app-mockup__device {
  width: min(100%, 280px);
  border-radius: 2rem;
  border: 3px solid rgba(255, 255, 255, 0.35);
  background: #0a2e33;
  padding: 0.65rem 0.5rem 0.5rem;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.35);
}

.app-mockup__notch {
  width: 5rem;
  height: 0.35rem;
  margin: 0 auto 0.5rem;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.2);
}

.app-mockup__screen {
  border-radius: 1.35rem;
  background: #f4f7f8;
  overflow: hidden;
  min-height: 420px;
  display: flex;
  flex-direction: column;
}

.app-mockup__header {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.65rem 0.75rem;
  background: #fff;
  border-bottom: 1px solid #e2e8f0;
}

.app-mockup__logo {
  height: 1.25rem;
  width: auto;
}

.app-mockup__brand {
  font-size: 0.6875rem;
  font-weight: 700;
  color: #12353d;
}

.app-mockup__search {
  margin: 0.65rem 0.75rem 0;
  border-radius: 0.5rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  padding: 0.45rem 0.65rem;
  font-size: 0.625rem;
  color: #94a3b8;
}

.app-mockup__chips {
  display: flex;
  gap: 0.35rem;
  padding: 0.5rem 0.75rem;
}

.app-mockup__chips span {
  border-radius: 9999px;
  background: #175b67;
  color: #fff;
  padding: 0.2rem 0.45rem;
  font-size: 0.5625rem;
  font-weight: 600;
}

.app-mockup__chips span:not(:first-child) {
  background: #e2e8f0;
  color: #475569;
}

.app-mockup__card {
  display: flex;
  gap: 0.5rem;
  margin: 0 0.75rem 0.5rem;
  border-radius: 0.5rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  overflow: hidden;
}

.app-mockup__card--sm {
  opacity: 0.92;
  transform: scale(0.96);
  transform-origin: top center;
}

.app-mockup__card-img {
  width: 4.5rem;
  flex-shrink: 0;
  background: linear-gradient(135deg, #cbd5e1 0%, #94a3b8 100%);
  min-height: 3.25rem;
}

.app-mockup__card-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0.35rem 0.5rem 0.35rem 0;
  gap: 0.15rem;
}

.app-mockup__card-title {
  font-size: 0.5625rem;
  font-weight: 600;
  color: #334155;
}

.app-mockup__card-price {
  font-size: 0.625rem;
  font-weight: 700;
  color: #175b67;
}

.app-mockup__nav {
  margin-top: auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid #e2e8f0;
  background: #fff;
  padding: 0.4rem 0;
}

.app-mockup__nav-item {
  text-align: center;
  font-size: 0.5rem;
  font-weight: 600;
  color: #94a3b8;
}

.app-mockup__nav-item--active {
  color: #175b67;
}

.download-app-section-head {
  text-align: center;
  max-width: 36rem;
  margin: 0 auto 1.75rem;
}

.download-app-section-head__title {
  font-size: clamp(1.375rem, 3vw, 1.75rem);
  font-weight: 700;
  color: #12353d;
  letter-spacing: -0.02em;
}

.download-app-section-head__desc {
  margin-top: 0.5rem;
  font-size: 0.9375rem;
  color: #64748b;
  line-height: 1.55;
}

.download-app-features {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .download-app-features {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .download-app-features {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.download-app-feature {
  display: flex;
  flex-direction: column;
  padding: 1.25rem 1.35rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.download-app-feature:hover {
  border-color: rgba(23, 91, 103, 0.35);
  box-shadow: 0 8px 24px rgba(18, 53, 61, 0.08);
}

.download-app-feature__icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.65rem;
  background: rgba(23, 91, 103, 0.1);
  margin-bottom: 0.75rem;
  position: relative;
}

.download-app-feature__icon::after {
  content: '';
  position: absolute;
  inset: 0;
  margin: auto;
  width: 1.15rem;
  height: 1.15rem;
  background: #175b67;
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}

.download-app-feature__icon--search::after {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='2'%3E%3Cpath stroke-linecap='round' d='M21 21l-5.2-5.2M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='2'%3E%3Cpath stroke-linecap='round' d='M21 21l-5.2-5.2M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14z'/%3E%3C/svg%3E");
}

.download-app-feature__icon--heart::after {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E");
}

.download-app-feature__icon--home::after {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z'/%3E%3C/svg%3E");
}

.download-app-feature__icon--chat::after {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z'/%3E%3C/svg%3E");
}

.download-app-feature__icon--calc::after {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 14H8v-2h4v2zm0-4H8v-2h4v2zm0-4H8V7h4v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 14H8v-2h4v2zm0-4H8v-2h4v2zm0-4H8V7h4v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z'/%3E%3C/svg%3E");
}

.download-app-feature__icon--news::after {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z'/%3E%3C/svg%3E");
}

.download-app-feature__title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #12353d;
}

.download-app-feature__desc {
  margin-top: 0.35rem;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #64748b;
  flex: 1;
}

.download-app-feature__link {
  margin-top: 0.65rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #175b67;
}

.download-app-web {
  display: grid;
  gap: 2rem;
  margin-top: 2rem;
  padding: 1.5rem 1.35rem;
}

@media (min-width: 768px) {
  .download-app-web {
    grid-template-columns: 1fr auto;
    align-items: center;
    padding: 2rem 2.25rem;
  }
}

.download-app-web__title {
  margin-top: 0.5rem;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 700;
  color: #12353d;
}

.download-app-web__desc {
  margin-top: 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #64748b;
  max-width: 32rem;
}

.download-app-web__url {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.25rem;
  max-width: 28rem;
}

.download-app-web__input {
  flex: 1;
  min-width: 12rem;
  border-radius: 0.5rem;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  padding: 0.55rem 0.75rem;
  font-size: 0.8125rem;
  color: #334155;
}

.download-app-web__copy {
  flex-shrink: 0;
  white-space: nowrap;
}

.download-app-steps {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

@media (min-width: 640px) {
  .download-app-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.download-app-step {
  border-radius: 0.65rem;
  background: rgba(23, 91, 103, 0.06);
  padding: 0.75rem 0.9rem;
}

.download-app-step__label {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #175b67;
}

.download-app-step__text {
  margin-top: 0.35rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #475569;
}

.download-app-web__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin-top: 1.25rem;
}

.download-app-web__secondary {
  font-size: 0.875rem;
  font-weight: 600;
  color: #175b67;
  text-decoration: none;
}

.download-app-web__secondary:hover {
  text-decoration: underline;
}

.download-app-web__qr {
  text-align: center;
}

.download-app-web__qr-img {
  border-radius: 0.75rem;
  border: 1px solid #e2e8f0;
  background: #fff;
  padding: 0.35rem;
}

.download-app-web__qr-caption {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  color: #64748b;
}

/* Dashboard property form tabs */
.property-form--dashboard {
  border-radius: 0.75rem;
  border: 1px solid #e5e7eb;
  background: #fff;
  overflow: hidden;
}

.property-form-tabs__nav {
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #e5e7eb;
  background: #f8fafc;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.property-form-tabs__nav::-webkit-scrollbar {
  display: none;
}

.property-form-tabs__btn {
  flex-shrink: 0;
  border-radius: 9999px;
  border: 1px solid #e2e8f0;
  background: #fff;
  padding: 0.45rem 0.9rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.property-form-tabs__btn:hover {
  border-color: #175b67;
  color: #175b67;
}

.property-form-tabs__btn--active {
  border-color: #175b67;
  background: #175b67;
  color: #fff;
}

.property-form-tabs__panels {
  padding: 1.25rem 1.25rem 0.5rem;
}

@media (min-width: 768px) {
  .property-form-tabs__panels {
    padding: 1.5rem 1.5rem 0.75rem;
  }
}

.property-form-tabs__heading {
  margin-bottom: 0.25rem;
  font-size: 1rem;
  font-weight: 700;
  color: #12353d;
}

.property-form-tabs__footer {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem 1.25rem 1.25rem;
  border-top: 1px solid #e5e7eb;
  background: #f8fafc;
}

@media (min-width: 640px) {
  .property-form-tabs__footer {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem 1.5rem;
  }
}

.property-form-tabs__footer-nav {
  display: flex;
  gap: 0.5rem;
}

.property-form-tabs__step {
  border-radius: 9999px;
  border: 1px solid #cbd5e1;
  background: #fff;
  padding: 0.45rem 1rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #475569;
  cursor: pointer;
}

.property-form-tabs__step:hover:not(:disabled) {
  border-color: #175b67;
  color: #175b67;
}

.property-form-tabs__step:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.property-form-tabs__footer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* Property SEO tab */
.property-seo-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border-radius: 0.75rem;
  background: #eef6ff;
  border: 1px solid #cfe3fb;
}

.property-seo-banner__copy {
  margin: 0.35rem 0 0;
  font-size: 0.85rem;
  color: #475569;
}

.property-seo-hint {
  margin: 0;
  font-size: 0.82rem;
  color: #64748b;
}

.property-seo-section {
  padding-top: 0.25rem;
}

.property-seo-section__title {
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
}

.property-seo-generate-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 1rem;
  border: none;
  border-radius: 999px;
  background: #12353d;
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

.property-seo-generate-btn:hover {
  background: #175b67;
}

/* Property image upload */
.property-upload__drop {
  border: 2px dashed #cbd5e1;
  border-radius: 0.85rem;
  background: #f8fafc;
  padding: 1.75rem 1rem;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.property-upload__drop:hover,
.property-upload__drop:focus-visible,
.property-upload__drop--active {
  border-color: #175b67;
  background: rgba(23, 91, 103, 0.06);
  outline: none;
}

.property-upload__drop-inner {
  pointer-events: none;
}

.property-upload__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 9999px;
  background: rgba(23, 91, 103, 0.1);
  color: #175b67;
  margin-bottom: 0.65rem;
}

.property-upload__title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #12353d;
}

.property-upload__sub {
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  color: #64748b;
}

.property-upload__link {
  color: #175b67;
  font-weight: 600;
  text-decoration: underline;
}

.property-upload__hint {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  color: #94a3b8;
}

.property-upload__status {
  margin-top: 0.75rem;
}

.property-upload__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
}

@media (min-width: 640px) {
  .property-upload__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .property-upload__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.property-upload__item {
  position: relative;
  border-radius: 0.65rem;
  border: 1px solid #e2e8f0;
  background: #fff;
  overflow: hidden;
}

.property-upload__item--primary {
  border-color: #175b67;
  box-shadow: 0 0 0 2px rgba(23, 91, 103, 0.15);
}

.property-upload__thumb {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #f1f5f9;
}

.property-upload__badge {
  position: absolute;
  top: 0.4rem;
  left: 0.4rem;
  border-radius: 9999px;
  background: #175b67;
  color: #fff;
  padding: 0.15rem 0.5rem;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.property-upload__meta {
  padding: 0.35rem 0.5rem 0;
  font-size: 0.6875rem;
  color: #64748b;
}

.property-upload__actions {
  display: flex;
  gap: 0.35rem;
  padding: 0.45rem 0.5rem 0.5rem;
}

.property-upload__cover,
.property-upload__remove {
  flex: 1;
  border-radius: 0.4rem;
  border: 1px solid #e2e8f0;
  background: #fff;
  padding: 0.3rem 0.35rem;
  font-size: 0.6875rem;
  font-weight: 600;
  cursor: pointer;
}

.property-upload__cover {
  color: #175b67;
}

.property-upload__cover--active {
  border-color: #175b67;
  background: rgba(23, 91, 103, 0.08);
}

.property-upload__remove {
  color: #b91c1c;
}

.property-upload__cover:hover,
.property-upload__remove:hover {
  opacity: 0.9;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Careers page */
.careers-page {
  background: transparent;
}

.careers-hero {
  background: linear-gradient(135deg, #12353d 0%, #175b67 48%, #2f8f98 100%);
  color: #fff;
}

.careers-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.75);
}

.careers-breadcrumb a {
  color: rgba(255, 255, 255, 0.92);
}

.careers-breadcrumb a:hover {
  color: #fff;
}

.careers-hero__title {
  margin-top: 0.75rem;
  font-size: clamp(1.875rem, 4vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.15;
}

.careers-hero .eyebrow {
  color: #12353d;
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.35);
}

.careers-hero__copy {
  margin-top: 0.75rem;
  max-width: 40rem;
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
}

.careers-hero__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.careers-stat {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.12);
  padding: 0.45rem 0.9rem;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.9);
}

.careers-stat strong {
  font-weight: 700;
  color: #fff;
}

.careers-stat a {
  color: #f5d78a;
  font-weight: 600;
}

.careers-intro {
  padding: 1.25rem 1.35rem;
  margin-bottom: 2rem;
}

.careers-intro__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #12353d;
}

.careers-perks {
  margin-top: 0.75rem;
  padding-left: 1.15rem;
  list-style: disc;
  color: #475569;
  font-size: 0.9375rem;
  line-height: 1.65;
}

.careers-perks li + li {
  margin-top: 0.35rem;
}

.careers-section-title {
  margin-bottom: 1rem;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 700;
  color: #12353d;
}

.careers-jobs {
  display: grid;
  gap: 1rem;
}

.careers-job {
  padding: 1.25rem 1.35rem;
}

.careers-job__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.careers-job__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
}

.careers-job__tag {
  border-radius: 9999px;
  background: rgba(23, 91, 103, 0.08);
  padding: 0.2rem 0.55rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #175b67;
}

.careers-job__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #12353d;
}

.careers-job__meta {
  margin-top: 0.2rem;
  font-size: 0.8125rem;
  color: #64748b;
}

.careers-job__apply {
  flex-shrink: 0;
}

.careers-job__summary {
  margin-top: 0.85rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #475569;
}

.careers-job__details {
  margin-top: 0.85rem;
  border-top: 1px solid #e2e8f0;
  padding-top: 0.75rem;
}

.careers-job__details summary {
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 600;
  color: #175b67;
}

.careers-job__detail-grid {
  display: grid;
  gap: 1rem;
  margin-top: 0.85rem;
}

@media (min-width: 640px) {
  .careers-job__detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.careers-job__detail-grid h4 {
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}

.careers-job__detail-grid ul {
  margin-top: 0.45rem;
  padding-left: 1.1rem;
  list-style: disc;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #475569;
}

.careers-job__detail-grid li + li {
  margin-top: 0.3rem;
}

.careers-apply {
  padding: 1.5rem 1.35rem;
}

@media (min-width: 768px) {
  .careers-apply {
    padding: 1.75rem 2rem;
  }
}

.careers-apply__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #12353d;
}

.careers-apply__desc {
  margin-top: 0.35rem;
  font-size: 0.9375rem;
  color: #64748b;
  line-height: 1.55;
}

.careers-apply__form {
  margin-top: 1.25rem;
}

.careers-apply__file {
  display: block;
  width: 100%;
  font-size: 0.875rem;
  color: #334155;
}

.careers-apply__file::file-selector-button {
  margin-right: 0.75rem;
  border: 0;
  border-radius: 0.5rem;
  background: rgba(23, 91, 103, 0.1);
  padding: 0.45rem 0.85rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #175b67;
  cursor: pointer;
}

.impersonation-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1.25rem;
  padding: 0.55rem 1rem;
  background: #0d1b21;
  color: #f8fafc;
  font-size: 0.875rem;
  text-align: center;
}

.impersonation-banner strong {
  font-weight: 600;
}

.impersonation-banner__exit {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  background: #256944;
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.15s ease;
}

.impersonation-banner__exit:hover {
  background: #1e5436;
  color: #fff;
}

/* Save / Compare actions */
.property-card-wrap,
.prop-card-wrap {
  position: relative;
}
.property-card__actions {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  pointer-events: none;
}
.property-card__actions .property-action-btn {
  pointer-events: auto;
}
.property-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  border: 1px solid rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.95);
  color: #175b67;
  border-radius: 999px;
  padding: 0.35rem 0.65rem;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.property-action-btn--icon {
  width: 2rem;
  height: 2rem;
  padding: 0;
}
.property-action-btn--icon .property-action-btn__label {
  display: none;
}
.property-action-btn.is-saved,
.property-action-btn--save.is-saved {
  background: #fce7f3;
  border-color: #f9a8d4;
  color: #db2777;
}
.property-action-btn--compare.is-active {
  background: #eef7f7;
  border-color: #84c7c9;
  color: #175b67;
}
.property-hero__action--save.is-saved,
.property-hero__action--compare.is-active {
  border-color: currentColor;
}
.prop-card-actions {
  display: inline-flex;
  gap: 0.35rem;
}
.save-toast,
.compare-toast {
  position: fixed;
  left: 50%;
  bottom: 5.5rem;
  transform: translateX(-50%) translateY(12px);
  background: #12353d;
  color: #fff;
  padding: 0.65rem 1rem;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s, transform 0.2s;
  z-index: 70;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.2);
}
body.has-compare-bar .save-toast,
body.has-compare-bar .compare-toast {
  bottom: 1.5rem;
}
.save-toast--show,
.compare-toast--show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.compare-bar {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 61;
  display: flex;
  flex-direction: row-reverse;
  align-items: stretch;
  max-width: calc(100vw - 0.5rem);
  pointer-events: none;
}
.compare-bar__handle,
.compare-bar__panel {
  pointer-events: auto;
}
.compare-bar__handle {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  width: 2.5rem;
  padding: 0.75rem 0.4rem;
  border-radius: 12px 0 0 12px;
  background: linear-gradient(180deg, #175b67, #12353d);
  color: #fff;
  box-shadow: -6px 6px 20px rgba(15, 23, 42, 0.18);
  cursor: default;
  user-select: none;
}
.compare-bar__handle-icon {
  width: 1.1rem;
  height: 1.1rem;
}
.compare-bar__handle-count {
  min-width: 1.2rem;
  height: 1.2rem;
  padding: 0 0.28rem;
  border-radius: 999px;
  background: #d9a441;
  color: #0b2027;
  font-size: 0.6875rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.compare-bar__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.5rem;
  width: 0;
  opacity: 0;
  overflow: hidden;
  padding: 0;
  background: linear-gradient(180deg, #175b67, #12353d);
  border-radius: 12px 0 0 12px;
  box-shadow: -6px 6px 20px rgba(15, 23, 42, 0.16);
  transition: width 0.24s ease, opacity 0.2s ease, padding 0.24s ease;
}
.compare-bar:hover .compare-bar__panel,
.compare-bar:focus-within .compare-bar__panel {
  width: 9.5rem;
  opacity: 1;
  padding: 0.65rem 0.55rem 0.65rem 0.7rem;
}
body.has-compare-bar .user-shortlist-dock {
  top: calc(50% + 3.75rem);
}
.compare-bar__label {
  margin: 0;
  font-size: 0.6875rem;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.92);
  white-space: nowrap;
}
.compare-bar__label strong {
  font-size: 1.125rem;
  font-weight: 800;
  margin-right: 0.2rem;
}
.compare-bar__actions {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.compare-bar__clear {
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: transparent;
  color: #fff;
  border-radius: 999px;
  padding: 0.35rem 0.55rem;
  font-size: 0.6875rem;
  font-weight: 600;
  cursor: pointer;
  width: 100%;
}
.compare-bar__go {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #d9a441;
  color: #0b2027;
  padding: 0.4rem 0.55rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-decoration: none;
  width: 100%;
}
@media (max-width: 768px) {
  .compare-bar__handle {
    width: 2.35rem;
    padding: 0.65rem 0.35rem;
  }
  .compare-bar:hover .compare-bar__panel,
  .compare-bar:focus-within .compare-bar__panel {
    width: 8.75rem;
  }
  body.has-compare-bar .user-shortlist-dock {
    top: calc(50% + 3.25rem);
  }
}
.compare-page__title {
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 800;
  color: #0b2027;
  letter-spacing: -0.02em;
}
.compare-page__copy {
  margin-top: 0.5rem;
  color: #52525b;
  max-width: 640px;
}
.compare-table-wrap {
  overflow-x: auto;
  border-radius: 20px;
  border: 1px solid rgba(18, 53, 61, 0.1);
  background: #fff;
  box-shadow: 0 18px 50px rgba(18, 53, 61, 0.08);
}
.compare-table {
  width: 100%;
  min-width: 720px;
  table-layout: fixed;
  border-collapse: collapse;
}
.compare-table th,
.compare-table td {
  padding: 0.85rem 1rem;
  border-bottom: 1px solid #e8ecef;
  vertical-align: top;
  text-align: left;
  font-size: 0.875rem;
}
.compare-table__corner,
.compare-table__label {
  width: 160px;
  background: #f7f4ee;
  font-weight: 700;
  color: #12353d;
}
.compare-table__property {
  width: auto;
}
.compare-table__card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}
.compare-table__image {
  display: block;
  width: 100%;
  height: 140px;
  flex-shrink: 0;
  border-radius: 12px;
  overflow: hidden;
  background: #f1f5f9;
}
.compare-table__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.compare-table__name {
  font-weight: 700;
  color: #12353d;
  text-decoration: none;
  line-height: 1.35;
}
.compare-table__remove,
.compare-table__view {
  font-size: 0.8125rem;
  font-weight: 600;
}
.compare-table__remove {
  border: none;
  background: transparent;
  color: #b91c1c;
  cursor: pointer;
  padding: 0;
  text-align: left;
}
.compare-table__view {
  color: #175b67;
  text-decoration: none;
}
.compare-page__hint {
  margin-top: 1rem;
  font-size: 0.875rem;
  color: #64748b;
}

/* Logged-in: saved + compare dock (right edge, hover expands left) */
.user-shortlist-dock {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 58;
  display: flex;
  flex-direction: row-reverse;
  align-items: stretch;
  max-width: calc(100vw - 1rem);
  pointer-events: none;
}
.user-shortlist-dock__handle,
.user-shortlist-dock__panel {
  pointer-events: auto;
}
.user-shortlist-dock__handle {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  width: 2.75rem;
  padding: 0.85rem 0.45rem;
  border-radius: 14px 0 0 14px;
  background: linear-gradient(180deg, #175b67, #12353d);
  color: #fff;
  box-shadow: -8px 8px 28px rgba(15, 23, 42, 0.18);
  cursor: default;
  user-select: none;
}
.user-shortlist-dock__handle-icon {
  width: 1.15rem;
  height: 1.15rem;
}
.user-shortlist-dock__handle-text {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  transform: rotate(180deg);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1;
}
.user-shortlist-dock__handle-badge {
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: #d9a441;
  color: #0b2027;
  font-size: 0.6875rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.user-shortlist-dock__handle-badge:empty,
.user-shortlist-dock__handle-badge[data-zero="1"] {
  display: none;
}
.user-shortlist-dock__panel {
  display: flex;
  flex-direction: column;
  width: 0;
  opacity: 0;
  overflow: hidden;
  background: rgba(255, 255, 253, 0.98);
  border: 1px solid rgba(18, 53, 61, 0.12);
  border-right: none;
  border-radius: 16px 0 0 16px;
  box-shadow: -12px 12px 36px rgba(15, 23, 42, 0.14);
  backdrop-filter: blur(10px);
  transition: width 0.28s ease, opacity 0.22s ease;
}
.user-shortlist-dock:hover .user-shortlist-dock__panel,
.user-shortlist-dock:focus-within .user-shortlist-dock__panel,
.user-shortlist-dock.is-open .user-shortlist-dock__panel {
  width: min(240px, calc(100vw - 4rem));
  opacity: 1;
}
.user-shortlist-dock__item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.9rem 1rem;
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid rgba(18, 53, 61, 0.08);
  transition: background 0.15s ease;
  min-width: 220px;
}
.user-shortlist-dock__item:last-child {
  border-bottom: none;
}
.user-shortlist-dock__item:hover {
  background: #eef7f7;
}
.user-shortlist-dock__item-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.user-shortlist-dock__item-icon svg {
  width: 1.1rem;
  height: 1.1rem;
}
.user-shortlist-dock__item--saved .user-shortlist-dock__item-icon {
  background: #fce7f3;
  color: #db2777;
}
.user-shortlist-dock__item--compare .user-shortlist-dock__item-icon {
  background: #eef7f7;
  color: #175b67;
}
.user-shortlist-dock__item-body {
  flex: 1;
  min-width: 0;
}
.user-shortlist-dock__item-label {
  display: block;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #12353d;
}
.user-shortlist-dock__item-sub {
  display: block;
  font-size: 0.75rem;
  color: #64748b;
  margin-top: 0.1rem;
}
.user-shortlist-dock__item-count {
  min-width: 1.6rem;
  height: 1.6rem;
  padding: 0 0.4rem;
  border-radius: 999px;
  background: #12353d;
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.user-shortlist-dock__item-count[data-zero="1"] {
  background: #94a3b8;
}
@media (max-width: 768px) {
  .user-shortlist-dock__handle {
    width: 2.5rem;
    padding: 0.7rem 0.35rem;
  }
  .user-shortlist-dock__handle-text {
    display: none;
  }
}

/* Dashboard — sidebar + activity pages */
.dashboard-sidebar__group + .dashboard-sidebar__group {
  margin-top: 0.25rem;
}
.dashboard-sidebar__label {
  padding: 0 0.75rem 0.35rem;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #94a3b8;
}
.dashboard-sidebar__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  border-radius: 0.625rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #334155;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.dashboard-sidebar__link:hover {
  background: rgba(23, 91, 103, 0.08);
  color: #175b67;
}
.dashboard-sidebar__link.is-active {
  border-left: 4px solid #175b67;
  background: rgba(23, 91, 103, 0.1);
  color: #175b67;
  font-weight: 600;
}
.dashboard-sidebar__count {
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
  font-size: 0.6875rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.dashboard-sidebar__link.is-active .dashboard-sidebar__count {
  background: #175b67;
  color: #fff;
}
.dashboard-sidebar__admin {
  display: block;
  margin-top: 0.5rem;
  border-radius: 0.625rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #12353d;
  text-decoration: none;
}
.dashboard-sidebar__admin:hover {
  background: rgba(217, 164, 65, 0.15);
}

.dash-activity-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
  padding-bottom: 0.25rem;
}
.dash-activity-tabs__tab {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 999px;
  border: 1px solid #e2e8f0;
  background: #fff;
  padding: 0.45rem 0.9rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #475569;
  text-decoration: none;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.dash-activity-tabs__tab:hover {
  border-color: #b8d4d6;
  color: #175b67;
}
.dash-activity-tabs__tab.is-active {
  border-color: #175b67;
  background: #175b67;
  color: #fff;
}
.dash-activity-tabs__count {
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
  font-size: 0.6875rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.dash-activity-tabs__tab.is-active .dash-activity-tabs__count {
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
}

.dash-activity-page__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 1.5rem;
}
.dash-activity-page__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #0f172a;
}
.dash-activity-page__copy {
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: #64748b;
  max-width: 36rem;
}
.dash-activity-page__badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: rgba(23, 91, 103, 0.1);
  padding: 0.35rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: #175b67;
}
.dash-activity-page__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.dash-activity-empty {
  border-radius: 1rem;
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  padding: 2.5rem 1.5rem;
  text-align: center;
}
.dash-activity-empty__icon {
  margin: 0 auto 1rem;
  display: flex;
  height: 3.5rem;
  width: 3.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #fff;
  color: #94a3b8;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}
.dash-activity-empty__text {
  margin-bottom: 1.25rem;
  font-size: 0.9375rem;
  color: #64748b;
  max-width: 28rem;
  margin-left: auto;
  margin-right: auto;
}

.dash-activity-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
@media (min-width: 640px) {
  .dash-activity-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1280px) {
  .dash-activity-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.dash-activity-grid__meta {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #64748b;
}

.dash-search-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.dash-search-list__item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  border-radius: 1rem;
  border: 1px solid #e2e8f0;
  background: #fff;
  padding: 0.85rem 1rem;
  text-decoration: none;
  transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.dash-search-list__item:hover {
  border-color: #b8d4d6;
  background: rgba(23, 91, 103, 0.04);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}
.dash-search-list__icon {
  display: flex;
  height: 2.5rem;
  width: 2.5rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  background: rgba(23, 91, 103, 0.1);
  color: #175b67;
}
.dash-search-list__body {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.dash-search-list__label {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #0f172a;
}
.dash-search-list__time {
  font-size: 0.75rem;
  color: #94a3b8;
}
.dash-search-list__cta {
  flex-shrink: 0;
  font-size: 0.75rem;
  font-weight: 700;
  color: #175b67;
}

.dash-profile {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.dash-profile__activity-title {
  margin-bottom: 0.75rem;
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
}
.dash-profile__activity-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
@media (min-width: 640px) {
  .dash-profile__activity-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.dash-profile__activity-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  border-radius: 1rem;
  border: 1px solid #e2e8f0;
  background: #fff;
  padding: 1rem;
  text-decoration: none;
  transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}
.dash-profile__activity-card:hover {
  border-color: #b8d4d6;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}
.dash-profile__activity-count {
  font-size: 1.5rem;
  font-weight: 800;
  color: #175b67;
  line-height: 1.1;
}
.dash-profile__activity-label {
  font-size: 0.875rem;
  font-weight: 700;
  color: #0f172a;
}
.dash-profile__activity-desc {
  font-size: 0.75rem;
  color: #94a3b8;
  line-height: 1.35;
}

.dash-properties__pagination {
  margin-top: 1.5rem;
}

.dash-property-row {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem;
}

@media (min-width: 640px) {
  .dash-property-row {
    flex-direction: row;
    align-items: flex-start;
  }
}

.dash-property-row__media {
  width: 100%;
  max-width: 8rem;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 0.75rem;
  background: #f1f5f9;
}

.dash-property-row__img {
  display: block;
  width: 100%;
  height: 6rem;
  object-fit: cover;
}

.dash-property-row__body {
  min-width: 0;
  flex: 1;
}

.dash-property-row__title {
  font-weight: 600;
  color: #111827;
  text-decoration: none;
}

a.dash-property-row__title:hover {
  color: #175b67;
}

.dash-property-row__meta {
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: #6b7280;
}

.dash-property-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  margin-top: 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.75rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.dash-property-stats__item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.dash-property-stats__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 0.45rem;
}

.dash-property-stats__icon--views {
  background: #e0f2fe;
  color: #0369a1;
}

.dash-property-stats__icon--activity {
  background: #ecfdf5;
  color: #047857;
}

.dash-property-stats__value {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1;
}

.dash-property-stats__label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #64748b;
}

.dash-property-stats__breakdown {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  width: 100%;
  font-size: 0.75rem;
  color: #64748b;
}

@media (min-width: 768px) {
  .dash-property-stats__breakdown {
    width: auto;
    margin-left: auto;
  }
}

.dash-property-stats__dot {
  color: #cbd5e1;
}

.dash-property-row__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.75rem;
}
