/* Diamantes Realty Group — compact home polish (2026-08-16) */
:root {
  --drg-vip-navy: #0a1729;
  --drg-vip-red: #b00008;
  --drg-vip-gold: #c9a55b;
  --drg-vip-ivory: #f7f5f1;
  --drg-vip-ink: #101b2d;
  --drg-vip-muted: #667085;
}

/* Sharp public property cards ------------------------------------------------ */
.property-card.public-property-card,
.public-property-card .property-card-shell,
.public-property-card .property-card-media,
.public-property-card .property-card-image,
.public-property-card .property-cover-link,
.public-property-card .property-cover-link img,
.home-property-slider .property-card,
.home-property-slider .property-card-shell,
#propertiesGrid .property-card,
#propertiesGrid .property-card-shell {
  border-radius: 0 !important;
}

.public-property-card .property-card-shell {
  border-color: rgba(15, 31, 58, 0.11) !important;
  box-shadow: 0 14px 34px rgba(10, 23, 41, 0.09) !important;
}

@media (hover: hover) and (pointer: fine) {
  .public-property-card:hover .property-card-shell {
    transform: translateY(-3px) !important;
    box-shadow: 0 20px 42px rgba(10, 23, 41, 0.13) !important;
    border-color: rgba(176, 0, 8, 0.18) !important;
  }
}

/* Property carousels --------------------------------------------------------- */
.home-property-section {
  overflow: clip;
}

.home-property-slider {
  display: flex !important;
  grid-template-columns: none !important;
  gap: clamp(18px, 2vw, 28px) !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity !important;
  scroll-behavior: smooth !important;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
  scrollbar-width: none;
  padding: 18px 2px 27px !important;
}

.home-property-slider::-webkit-scrollbar,
.premium-services-grid::-webkit-scrollbar {
  display: none;
}

.home-property-slider .property-card,
.home-property-slider .property-card.is-active,
.home-property-slider .property-card[aria-current="true"] {
  flex: 0 0 clamp(286px, 30vw, 370px) !important;
  width: clamp(286px, 30vw, 370px) !important;
  min-width: 0 !important;
  scroll-snap-align: start !important;
  scroll-snap-stop: normal;
  transform: none !important;
  scale: 1 !important;
  opacity: 1 !important;
  filter: none !important;
  transition: none !important;
}

.home-property-slider .property-card-shell {
  transform: none !important;
}

.home-slider-button {
  transition: transform 160ms ease, border-color 160ms ease, background-color 160ms ease, color 160ms ease !important;
}

.home-slider-button:hover { transform: translateY(-1px); }
.home-slider-button:active { transform: scale(.96); }

/* Compact signature strip below hero ---------------------------------------- */
.home-vip-intro {
  position: relative;
  overflow: hidden;
  padding: clamp(30px, 3.7vw, 48px) 0 !important;
  background:
    radial-gradient(circle at 88% 0%, rgba(176, 0, 8, .05), transparent 24rem),
    linear-gradient(135deg, #fff 0%, #f8f5ef 100%) !important;
  border-top: 1px solid rgba(11,31,58,.06);
  border-bottom: 1px solid rgba(11,31,58,.08);
}

.home-vip-intro::before {
  content: '';
  position: absolute;
  left: -62px;
  top: -104px;
  width: 150px;
  height: 150px;
  transform: rotate(45deg);
  border: 1px solid rgba(176,0,8,.08);
  pointer-events: none;
}

.home-vip-intro .home-vip-shell {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto !important;
  align-items: center !important;
  gap: 28px !important;
}

.home-vip-intro .home-vip-path { display: none !important; }

.home-vip-intro .home-vip-title {
  max-width: 760px !important;
  margin: 0 !important;
  font-size: clamp(1.9rem,3vw,3.25rem) !important;
  line-height: 1 !important;
}

.home-vip-intro .home-vip-lead {
  max-width: 720px !important;
  margin: 13px 0 0 !important;
  font-size: .96rem !important;
  line-height: 1.6 !important;
}

.home-vip-intro .home-vip-actions { margin-top: 18px !important; }
.home-vip-intro .home-vip-primary { min-height: 42px !important; }

.home-signature-inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(390px, .85fr);
  gap: clamp(28px, 5vw, 76px);
  align-items: center;
}

.home-signature-copy { min-width: 0; }

.home-signature-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
  color: var(--drg-vip-red) !important;
  font-family: var(--font-ui, "Plus Jakarta Sans", sans-serif) !important;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.home-signature-kicker::before {
  content: '';
  width: 32px;
  height: 2px;
  background: linear-gradient(90deg,var(--drg-vip-red),var(--drg-vip-gold));
}

.home-signature-copy h2 {
  max-width: 760px;
  margin: 0;
  color: var(--drg-vip-ink) !important;
  font-family: var(--font-display, "Cormorant Garamond", serif) !important;
  font-size: clamp(2.05rem,3.2vw,3.65rem);
  font-weight: 600 !important;
  line-height: .96;
  letter-spacing: -.035em;
}

.home-signature-copy h2 em {
  color: var(--drg-vip-red);
  font-style: normal;
}

.home-signature-copy p:last-child {
  max-width: 700px;
  margin: 13px 0 0;
  color: #5e6979 !important;
  font-size: .94rem;
  line-height: 1.65;
}

.home-signature-links {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  border: 1px solid rgba(11,31,58,.1);
  background: rgba(255,255,255,.72);
  box-shadow: 0 15px 38px rgba(11,31,58,.07);
}

.home-signature-link {
  min-width: 0;
  min-height: 108px;
  padding: 18px 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
  border-right: 1px solid rgba(11,31,58,.09);
  color: var(--drg-vip-ink) !important;
  text-decoration: none;
  transition: background-color .2s ease, transform .2s ease;
}

.home-signature-link:last-child { border-right: 0; }

.home-signature-link svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: var(--drg-vip-red);
  stroke-width: 1.7;
}

.home-signature-link strong {
  display: block;
  color: var(--drg-vip-ink) !important;
  font-size: .82rem;
  font-weight: 800;
}

.home-signature-link small {
  display: block;
  margin-top: 3px;
  color: #7b8491 !important;
  font-size: .68rem;
  line-height: 1.4;
}

@media (hover:hover) and (pointer:fine) {
  .home-signature-link:hover {
    background: #fff;
    transform: translateY(-2px);
  }
}

/* Services ------------------------------------------------------------------ */
.premium-services-grid article > span.premium-service-icon {
  width: 48px !important;
  height: 48px !important;
  display: inline-grid !important;
  place-items: center;
  border: 1px solid rgba(11,31,58,.12);
  border-radius: 0 !important;
  background: linear-gradient(145deg,#fff,#f7f3eb) !important;
  color: var(--drg-vip-red) !important;
  box-shadow: 0 10px 26px rgba(11,31,58,.07);
}

.premium-services-grid article > span.premium-service-icon svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Reveal -------------------------------------------------------------------- */
.js-vip-motion [data-vip-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 620ms cubic-bezier(.22,1,.36,1), transform 620ms cubic-bezier(.22,1,.36,1);
}

.js-vip-motion [data-vip-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 980px) {
  .home-signature-inner { grid-template-columns: 1fr; gap: 24px; }
  .home-signature-links { max-width: 680px; }
}

@media (max-width: 768px) {
  .home-vip-intro { padding: 28px 0 31px !important; }
  .home-signature-copy h2 { font-size: clamp(2rem,10vw,2.9rem); }
  .home-signature-copy p:last-child { font-size: .88rem; }
  .home-signature-links { grid-template-columns: repeat(3,minmax(128px,1fr)); overflow-x: auto; scrollbar-width: none; }
  .home-signature-link { min-width: 128px; }

  .home-property-slider {
    width: auto !important;
    margin-inline: -18px !important;
    padding: 12px 18px 22px !important;
    gap: 14px !important;
    scroll-padding-inline: 18px;
    scroll-snap-type: x mandatory !important;
    touch-action: pan-x !important;
  }

  .home-property-slider .property-card,
  .home-property-slider .property-card.is-active,
  .home-property-slider .property-card[aria-current="true"] {
    flex: 0 0 min(84vw,330px) !important;
    width: min(84vw,330px) !important;
    scroll-snap-align: start !important;
  }

  .premium-services { overflow: visible !important; }

  .premium-services-grid {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 14px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    width: auto !important;
    margin-inline: -18px !important;
    padding: 8px 18px 22px !important;
    scroll-padding-inline: 18px;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    scrollbar-width: none;
  }

  .premium-services-grid article {
    flex: 0 0 min(80vw,310px) !important;
    width: min(80vw,310px) !important;
    min-width: min(80vw,310px) !important;
    scroll-snap-align: start;
    margin: 0 !important;
  }
}

@media (max-width: 430px) {
  .home-property-slider .property-card,
  .home-property-slider .property-card.is-active,
  .home-property-slider .property-card[aria-current="true"] {
    flex-basis: 86vw !important;
    width: 86vw !important;
  }

  .premium-services-grid article {
    flex-basis: 82vw !important;
    width: 82vw !important;
    min-width: 82vw !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .js-vip-motion [data-vip-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .home-property-slider { scroll-behavior: auto !important; }
}

/* Mobile gesture + viewport containment fix (2026-08-17) -------------------- */
.home-page .premium-hero .hero-title,
.home-page .hero .hero-title {
  font-weight: 600 !important;
  letter-spacing: -0.035em !important;
}

@media (max-width: 768px) {
  html,
  body.home-page {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
    overflow-x: clip !important;
  }

  body.home-page .public-page-surface,
  body.home-page main,
  body.home-page .home-vip-intro,
  body.home-page .home-property-section,
  body.home-page .premium-services {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: clip !important;
  }

  body.home-page .premium-services { overflow-y: visible !important; }

  .home-signature-inner,
  .home-signature-copy,
  .home-signature-links {
    min-width: 0;
    max-width: 100%;
  }

  .home-signature-links {
    width: 100%;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(128px, 42vw);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    overscroll-behavior-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y !important;
  }

  .home-property-slider,
  .home-property-slider .property-card,
  .home-property-slider .property-card-shell,
  .premium-services-grid,
  .premium-services-grid article,
  .premium-services-grid article * {
    touch-action: pan-x pan-y !important;
  }

  .home-property-slider,
  .premium-services-grid {
    overscroll-behavior-x: contain;
    overscroll-behavior-y: auto;
  }
}

/* Desktop hero density correction (2026-08-17)
   Navbar selectors are deliberately excluded. */
@media (min-width: 769px) {
  .home-page .hero.premium-hero {
    min-height: 560px !important;
    height: clamp(560px, 64vh, 640px) !important;
    max-height: 640px !important;
    padding: 6.8rem 0 2.15rem !important;
    align-items: center !important;
  }

  .home-page .hero.premium-hero .hero-content {
    align-items: center !important;
    transform: translateY(-22px);
  }

  .home-page .hero.premium-hero .hero-static-content h1,
  .home-page .hero.premium-hero .hero-title {
    max-width: 690px !important;
    font-size: clamp(2.7rem, 4.7vw, 4.45rem) !important;
    font-weight: 600 !important;
    line-height: .98 !important;
    letter-spacing: -.04em !important;
  }

  .home-page .hero.premium-hero .hero-search-content {
    align-self: center !important;
    transform: translateY(-4px);
  }
}

@media (min-width: 1280px) {
  .home-page .hero.premium-hero {
    height: clamp(580px, 62vh, 630px) !important;
    max-height: 630px !important;
  }

  .home-page .hero.premium-hero .hero-content {
    transform: translateY(-26px);
  }
}
