:root {
  --rr-public-primary: #2563eb;
  --rr-public-primary-dark: #174e91;
  --rr-public-navy: #0d3b76;
  --rr-public-sky: #eaf3ff;
  --rr-public-page: #f5f8fc;
  --rr-public-surface: #ffffff;
  --rr-public-surface-soft: #f8fbff;
  --rr-public-text: #13233b;
  --rr-public-muted: #65758b;
  --rr-public-border: #dce7f3;
  --rr-public-shadow: 0 22px 60px rgba(13,59,118,.13);
  --rr-public-shadow-soft: 0 12px 34px rgba(13,59,118,.08);
}

html[data-theme="dark"] {
  color-scheme: dark;
  --rr-public-page: #071421;
  --rr-public-surface: #0e2034;
  --rr-public-surface-soft: #132842;
  --rr-public-text: #f5f9ff;
  --rr-public-muted: #afc0d4;
  --rr-public-border: #294564;
  --rr-public-sky: #163454;
  --rr-public-shadow: 0 24px 70px rgba(0,0,0,.34);
  --rr-public-shadow-soft: 0 14px 38px rgba(0,0,0,.24);
}

html { scroll-behavior: smooth; }
body.rr-public-body {
  margin: 0;
  color: var(--rr-public-text) !important;
  background: var(--rr-public-page) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

body.rr-public-body * { box-sizing: border-box; }
body.rr-public-body img { max-width: 100%; }
body.rr-public-body a { color: inherit; }
body.rr-public-body button,
body.rr-public-body input,
body.rr-public-body select,
body.rr-public-body textarea { font: inherit; }

.rr-public-container {
  width: min(1180px, calc(100% - 36px)) !important;
  margin-inline: auto !important;
}

/* Header */
.rr-public-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 1050 !important;
  border-bottom: 1px solid rgba(37,99,235,.12) !important;
  background: rgba(255,255,255,.90) !important;
  box-shadow: 0 8px 30px rgba(13,59,118,.05) !important;
  backdrop-filter: blur(18px) !important;
}

html[data-theme="dark"] .rr-public-header {
  border-bottom-color: rgba(96,165,250,.16) !important;
  background: rgba(7,20,33,.90) !important;
}

.rr-header-inner {
  min-height: 76px !important;
  display: flex !important;
  align-items: center !important;
  gap: 22px !important;
}

.rr-public-brand {
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 11px !important;
  text-decoration: none !important;
}

.rr-brand-symbol {
  width: 44px !important;
  height: 44px !important;
  display: grid !important;
  place-items: center !important;
  flex: 0 0 44px !important;
  border-radius: 13px !important;
  color: #fff !important;
  background: linear-gradient(145deg, #3e8be1, #174e91) !important;
  box-shadow: 0 12px 26px rgba(37,99,235,.22) !important;
}

.rr-brand-name {
  min-width: 0 !important;
  display: grid !important;
  line-height: 1.1 !important;
}

.rr-brand-name strong {
  color: var(--rr-public-navy) !important;
  font-size: 1.02rem !important;
  letter-spacing: .01em !important;
}

html[data-theme="dark"] .rr-brand-name strong { color: #f5f9ff !important; }

.rr-brand-name small {
  color: var(--rr-public-muted) !important;
  font-size: .58rem !important;
  font-weight: 760 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
}

.rr-public-nav {
  margin-left: auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 22px !important;
}

.rr-public-nav > a {
  position: relative !important;
  color: var(--rr-public-text) !important;
  font-size: .72rem !important;
  font-weight: 740 !important;
  text-decoration: none !important;
}

.rr-public-nav > a::after {
  position: absolute !important;
  left: 0 !important;
  right: 100% !important;
  bottom: -7px !important;
  height: 2px !important;
  border-radius: 99px !important;
  content: "" !important;
  background: var(--rr-public-primary) !important;
  transition: right .2s ease !important;
}

.rr-public-nav > a:hover { color: var(--rr-public-primary) !important; }
.rr-public-nav > a:hover::after { right: 0 !important; }

.rr-header-actions {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
}

.rr-header-phone {
  align-items: center !important;
  gap: 6px !important;
  color: var(--rr-public-text) !important;
  font-size: .69rem !important;
  font-weight: 730 !important;
  text-decoration: none !important;
}

.rr-header-phone i { color: var(--rr-public-primary) !important; }

.rr-theme-toggle,
.rr-mobile-menu-button {
  width: 40px !important;
  height: 40px !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid var(--rr-public-border) !important;
  border-radius: 10px !important;
  color: var(--rr-public-text) !important;
  background: var(--rr-public-surface) !important;
}

.rr-nav-login {
  min-height: 40px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  padding: 0 14px !important;
  border: 1px solid var(--rr-public-primary) !important;
  border-radius: 10px !important;
  color: #fff !important;
  background: linear-gradient(135deg, #2563eb, #174e91) !important;
  box-shadow: 0 10px 24px rgba(37,99,235,.18) !important;
  font-size: .69rem !important;
  font-weight: 780 !important;
  text-decoration: none !important;
}

.rr-mobile-menu-button { display: none !important; }

/* Hero */
.rr-estate-hero {
  position: relative;
  min-height: 680px;
  display: grid;
  align-content: center;
  overflow: hidden;
  padding: 62px 0 105px;
  background: #0d2e55;
}

.rr-estate-hero-media,
.rr-estate-hero-shade {
  position: absolute;
  inset: 0;
}

.rr-estate-hero-media {
  background-image: var(--rr-estate-hero-image);
  background-position: center;
  background-size: cover;
  transform: scale(1.035);
}

.rr-estate-hero-shade {
  background:
    linear-gradient(90deg, rgba(5,24,48,.90) 0%, rgba(7,31,61,.72) 47%, rgba(8,42,81,.30) 100%),
    linear-gradient(180deg, rgba(7,20,33,.12), rgba(4,20,39,.56));
}

.rr-estate-hero-layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, .62fr);
  align-items: center;
  gap: 36px;
}

.rr-estate-glass-card {
  border: 1px solid rgba(255,255,255,.24);
  background: linear-gradient(135deg, rgba(255,255,255,.20), rgba(255,255,255,.09));
  box-shadow: 0 30px 80px rgba(0,0,0,.24);
  backdrop-filter: blur(18px) saturate(125%);
}

.rr-estate-hero-copy {
  max-width: 730px;
  padding: clamp(26px,4.2vw,48px);
  border-radius: 26px;
  color: #fff;
}

.rr-estate-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
  color: #d4eaff;
  font-size: .69rem;
  font-weight: 820;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.rr-estate-hero-copy h1 {
  max-width: 650px;
  margin: 0;
  color: #fff !important;
  font-size: clamp(2.55rem,6vw,5.2rem);
  font-weight: 850;
  letter-spacing: -.065em;
  line-height: .96;
}

.rr-estate-hero-copy h1 span {
  display: block;
  margin-top: 8px;
  color: #8dc7ff !important;
}

.rr-estate-hero-copy > p {
  max-width: 630px;
  margin: 23px 0 0;
  color: rgba(255,255,255,.80) !important;
  font-size: clamp(.93rem,1.3vw,1.08rem);
  line-height: 1.75;
}

.rr-estate-hero-actions {
  display: flex;
  align-items: center;
  gap: 11px;
  flex-wrap: wrap;
  margin-top: 28px;
}

.rr-estate-button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 17px;
  border: 1px solid transparent;
  border-radius: 11px;
  font-size: .74rem;
  font-weight: 790;
  text-decoration: none;
}

.rr-estate-button-primary {
  color: #fff !important;
  background: linear-gradient(135deg,#3f8fe8,#1b5da3);
  box-shadow: 0 13px 30px rgba(0,42,90,.32);
}

.rr-estate-button-glass {
  border-color: rgba(255,255,255,.28);
  color: #fff !important;
  background: rgba(255,255,255,.10);
  backdrop-filter: blur(12px);
}

.rr-estate-button-light {
  color: #0d3b76 !important;
  background: #fff;
}

.rr-estate-trust-row {
  display: flex;
  gap: 17px;
  flex-wrap: wrap;
  margin-top: 24px;
  color: rgba(255,255,255,.70);
  font-size: .67rem;
  font-weight: 690;
}

.rr-estate-trust-row span { display: inline-flex; align-items: center; gap: 6px; }
.rr-estate-trust-row i { color: #9bd0ff; }

.rr-estate-feature-card {
  position: relative;
  overflow: hidden;
  padding: 27px;
  border-radius: 24px;
  color: #fff;
}

.rr-estate-feature-card::after {
  position: absolute;
  right: -34px;
  bottom: -56px;
  width: 170px;
  height: 170px;
  border: 26px solid rgba(255,255,255,.08);
  border-radius: 50%;
  content: "";
}

.rr-estate-feature-label {
  color: #cfe7ff;
  font-size: .64rem;
  font-weight: 820;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.rr-estate-feature-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  margin: 22px 0 19px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 16px;
  background: rgba(255,255,255,.13);
  font-size: 1.35rem;
}

.rr-estate-feature-card h2 {
  margin: 0;
  color: #fff !important;
  font-size: clamp(1.45rem,3vw,2.25rem);
  font-weight: 820;
}

.rr-estate-feature-card > p {
  margin: 7px 0 18px;
  color: rgba(255,255,255,.72) !important;
}

.rr-estate-feature-card dl {
  display: grid;
  gap: 10px;
  margin: 0;
}

.rr-estate-feature-card dl div {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.16);
}

.rr-estate-feature-card dt {
  color: rgba(255,255,255,.60);
  font-size: .67rem;
  font-weight: 660;
}

.rr-estate-feature-card dd {
  margin: 0;
  color: #fff;
  font-size: .7rem;
  font-weight: 790;
  text-align: right;
}

.rr-estate-feature-link {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 20px;
  color: #fff !important;
  font-size: .72rem;
  font-weight: 780;
  text-decoration: none;
}

.rr-estate-search-wrap {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 27px;
  transform: translateX(-50%);
}

.rr-estate-search {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr)) auto;
  align-items: end;
  gap: 10px;
  padding: 13px;
  border-radius: 18px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 24px 58px rgba(0,25,56,.25);
  backdrop-filter: blur(18px);
}

html[data-theme="dark"] .rr-estate-search { background: rgba(10,28,48,.90); }

.rr-estate-search label {
  display: grid;
  gap: 5px;
  padding: 0 11px;
  border-right: 1px solid rgba(13,59,118,.12);
}

.rr-estate-search label > span {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--rr-public-muted);
  font-size: .58rem;
  font-weight: 780;
  text-transform: uppercase;
  letter-spacing: .075em;
}

.rr-estate-search label > span i { color: var(--rr-public-primary); }

.rr-estate-search select {
  width: 100%;
  min-height: 35px;
  padding: 0;
  border: 0;
  outline: 0;
  color: var(--rr-public-text);
  background: transparent;
  font-size: .72rem;
  font-weight: 720;
}

.rr-estate-search-button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 18px;
  border: 0;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(135deg,#2563eb,#174e91);
  font-size: .72rem;
  font-weight: 790;
}

/* Shared public sections */
.rr-estate-steps,
.rr-estate-featured,
.rr-estate-catalogue,
.rr-estate-about,
.rr-estate-visualizer {
  padding: clamp(68px,9vw,112px) 0;
}

.rr-estate-section-heading {
  max-width: 720px;
  margin-bottom: 34px;
}

.rr-estate-section-heading-center {
  margin-inline: auto;
  text-align: center;
}

.rr-estate-section-heading-inline {
  max-width: none;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}

.rr-estate-section-heading > span,
.rr-estate-types-copy > span,
.rr-estate-about-copy > span,
.rr-estate-visualizer-copy > span,
.rr-estate-final-cta-inner > div > span {
  display: block;
  margin-bottom: 10px;
  color: var(--rr-public-primary);
  font-size: .66rem;
  font-weight: 830;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.rr-estate-section-heading h2,
.rr-estate-types-copy h2,
.rr-estate-about-copy h2,
.rr-estate-visualizer-copy h2,
.rr-estate-final-cta-inner h2 {
  margin: 0;
  color: var(--rr-public-text) !important;
  font-size: clamp(2rem,4.4vw,3.65rem);
  font-weight: 850;
  letter-spacing: -.055em;
  line-height: 1.02;
}

.rr-estate-section-heading p,
.rr-estate-types-copy p,
.rr-estate-about-copy > p,
.rr-estate-visualizer-copy > p,
.rr-estate-final-cta-inner p {
  margin: 17px 0 0;
  color: var(--rr-public-muted) !important;
  line-height: 1.75;
}

/* Steps */
.rr-estate-steps { background: var(--rr-public-surface); }
.rr-estate-step-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.rr-estate-step-grid article {
  position: relative;
  overflow: hidden;
  min-height: 260px;
  padding: 28px;
  border: 1px solid var(--rr-public-border);
  border-radius: 20px;
  background: var(--rr-public-surface-soft);
  box-shadow: var(--rr-public-shadow-soft);
}
.rr-estate-step-grid article::after {
  position: absolute;
  right: -32px;
  bottom: -35px;
  width: 120px;
  height: 120px;
  border: 18px solid rgba(37,99,235,.07);
  border-radius: 50%;
  content: "";
}
.rr-estate-step-grid article > i {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  margin: 24px 0 18px;
  border-radius: 16px;
  color: #fff;
  background: linear-gradient(145deg,#4b94e2,#174e91);
  font-size: 1.25rem;
}
.rr-estate-step-number { color: #8ca0b8; font-size: .66rem; font-weight: 820; letter-spacing: .12em; }
.rr-estate-step-grid h3 { margin: 0; color: var(--rr-public-text) !important; font-size: 1.16rem; font-weight: 820; }
.rr-estate-step-grid p { margin: 10px 0 0; color: var(--rr-public-muted) !important; font-size: .82rem; line-height: 1.7; }

/* Property types */
.rr-estate-property-types {
  padding: 66px 0;
  color: #fff;
  background:
    radial-gradient(circle at 9% 5%, rgba(107,178,246,.24), transparent 30%),
    linear-gradient(120deg,#0b3263,#164f91 60%,#246eb9);
}
.rr-estate-types-layout { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(0,1.35fr); gap: 40px; align-items: center; }
.rr-estate-types-copy > span { color: #bcdcff; }
.rr-estate-types-copy h2 { color: #fff !important; }
.rr-estate-types-copy p { color: rgba(255,255,255,.72) !important; }
.rr-estate-types-stats { display: flex; gap: 28px; margin-top: 24px; }
.rr-estate-types-stats strong { color: #fff; font-size: 1.7rem; }
.rr-estate-types-stats small { display: block; margin-top: 3px; color: rgba(255,255,255,.60); font-size: .62rem; font-weight: 640; }
.rr-estate-type-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.rr-estate-type-grid button {
  min-height: 154px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 8px;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 18px;
  color: #fff;
  background: rgba(255,255,255,.11);
  backdrop-filter: blur(12px);
  transition: .2s ease;
}
.rr-estate-type-grid button:hover { transform: translateY(-4px); background: rgba(255,255,255,.18); }
.rr-estate-type-grid i { font-size: 1.5rem; }
.rr-estate-type-grid strong { font-size: .78rem; text-align: center; }
.rr-estate-type-grid small { color: rgba(255,255,255,.62); font-size: .59rem; }

/* Featured cards */
.rr-estate-featured { background: var(--rr-public-page); }
.rr-carousel-actions { display: flex; gap: 8px; }
.rr-carousel-actions button {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--rr-public-border);
  border-radius: 11px;
  color: var(--rr-public-text);
  background: var(--rr-public-surface);
}
.rr-project-carousel { overflow-x: auto; padding-bottom: 12px; scrollbar-width: thin; }
.rr-project-carousel-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px,360px); gap: 18px; }
.rr-estate-property-card,
.rr-estate-catalogue-card {
  overflow: hidden;
  border: 1px solid var(--rr-public-border);
  border-radius: 20px;
  background: var(--rr-public-surface);
  box-shadow: var(--rr-public-shadow-soft);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.rr-estate-property-card:hover,
.rr-estate-catalogue-card:hover { transform: translateY(-4px); border-color: #95bbe5; box-shadow: var(--rr-public-shadow); }
.rr-estate-property-image,
.rr-estate-catalogue-image { position: relative; display: block; overflow: hidden; aspect-ratio: 16/10; }
.rr-estate-property-image img,
.rr-estate-catalogue-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.rr-estate-property-card:hover img,
.rr-estate-catalogue-card:hover img { transform: scale(1.045); }
.rr-estate-property-image > span,
.rr-estate-catalogue-image > span {
  position: absolute;
  left: 13px;
  top: 13px;
  padding: 6px 9px;
  border-radius: 999px;
  color: #fff;
  background: rgba(13,59,118,.90);
  backdrop-filter: blur(8px);
  font-size: .57rem;
  font-weight: 790;
}
.rr-estate-property-body { padding: 18px; }
.rr-estate-property-body > small,
.rr-estate-catalogue-card > div > small { display: inline-flex; align-items: center; gap: 5px; color: var(--rr-public-primary); font-size: .65rem; font-weight: 720; }
.rr-estate-property-body h3,
.rr-estate-catalogue-card h3 { margin: 9px 0 0; color: var(--rr-public-text) !important; font-size: 1.12rem; font-weight: 820; }
.rr-estate-property-body > p,
.rr-estate-catalogue-card p { display: -webkit-box; overflow: hidden; margin: 9px 0 0; color: var(--rr-public-muted) !important; font-size: .77rem; line-height: 1.65; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.rr-estate-property-meta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 15px; color: var(--rr-public-muted); font-size: .63rem; }
.rr-estate-property-meta span { display: inline-flex; align-items: center; gap: 5px; }
.rr-estate-property-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 17px; padding-top: 15px; border-top: 1px solid var(--rr-public-border); }
.rr-estate-property-actions a { color: var(--rr-public-primary) !important; font-size: .71rem; font-weight: 790; text-decoration: none; }
.rr-estate-property-actions button {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--rr-public-border);
  border-radius: 10px;
  color: var(--rr-public-primary);
  background: var(--rr-public-sky);
}

/* Catalogue */
.rr-estate-catalogue { background: var(--rr-public-surface); }
.rr-estate-filter-panel {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 25px;
  padding: 14px;
  border: 1px solid var(--rr-public-border);
  border-radius: 17px;
  background: var(--rr-public-surface-soft);
}
.rr-estate-filter-search { min-width: min(100%,360px); flex: 1; display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 13px; border: 1px solid var(--rr-public-border); border-radius: 11px; background: var(--rr-public-surface); }
.rr-estate-filter-search i { color: var(--rr-public-primary); }
.rr-estate-filter-search input { width: 100%; border: 0; outline: 0; color: var(--rr-public-text); background: transparent; font-size: .73rem; }
.rr-estate-filter-chips { display: flex; gap: 7px; overflow-x: auto; }
.rr-estate-filter-chips button { min-height: 38px; padding: 0 12px; border: 1px solid var(--rr-public-border); border-radius: 9px; color: var(--rr-public-muted); background: var(--rr-public-surface); font-size: .66rem; font-weight: 740; white-space: nowrap; }
.rr-estate-filter-chips button.is-active { border-color: var(--rr-public-primary); color: #fff; background: var(--rr-public-primary); }
.rr-estate-catalogue-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.rr-estate-catalogue-card > div { padding: 17px; }
.rr-estate-catalogue-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; }
.rr-estate-catalogue-actions a,
.rr-estate-catalogue-actions button { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 11px; border: 1px solid var(--rr-public-border); border-radius: 9px; font-size: .67rem; font-weight: 770; text-decoration: none; }
.rr-estate-catalogue-actions a { color: #fff !important; background: var(--rr-public-primary); }
.rr-estate-catalogue-actions button { color: var(--rr-public-primary); background: var(--rr-public-sky); }
.rr-estate-empty { padding: 42px; border: 1px dashed var(--rr-public-border); border-radius: 18px; color: var(--rr-public-muted); background: var(--rr-public-surface-soft); text-align: center; }
.rr-estate-empty i { color: var(--rr-public-primary); font-size: 1.7rem; }
.rr-estate-empty h3 { color: var(--rr-public-text) !important; }

/* About */
.rr-estate-about { background: var(--rr-public-page); }
.rr-estate-about-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,.9fr); gap: 55px; align-items: center; }
.rr-estate-about-visual { position: relative; min-height: 520px; overflow: hidden; border-radius: 26px; box-shadow: var(--rr-public-shadow); }
.rr-estate-about-visual > img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; background: #dceafb; }
.rr-estate-about-glass {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 16px;
  color: #fff;
  background: rgba(8,34,66,.70);
  backdrop-filter: blur(16px);
}
.rr-estate-about-glass > i { width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 40px; border-radius: 12px; background: rgba(255,255,255,.14); }
.rr-estate-about-glass span { display: grid; }
.rr-estate-about-glass small { color: rgba(255,255,255,.68); font-size: .67rem; }
.rr-estate-about-list { display: grid; gap: 13px; margin-top: 28px; }
.rr-estate-about-list article { display: flex; gap: 12px; padding: 14px; border: 1px solid var(--rr-public-border); border-radius: 14px; background: var(--rr-public-surface); }
.rr-estate-about-list article > i { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 42px; border-radius: 12px; color: #fff; background: linear-gradient(145deg,#4b94e2,#174e91); }
.rr-estate-about-list article div { display: grid; }
.rr-estate-about-list article strong { color: var(--rr-public-text); font-size: .78rem; }
.rr-estate-about-list article small { color: var(--rr-public-muted); font-size: .68rem; }

/* 3D SQM section */
.rr-estate-visualizer {
  color: #fff;
  background:
    radial-gradient(circle at 10% 20%, rgba(95,170,244,.22), transparent 30%),
    linear-gradient(120deg,#081f3d,#0d3b76 58%,#1763ad);
}
.rr-estate-visualizer-grid { display: grid; grid-template-columns: minmax(0,.82fr) minmax(360px,1.18fr); align-items: center; gap: 48px; }
.rr-estate-visualizer-copy > span { color: #bcdcff; }
.rr-estate-visualizer-copy h2 { color: #fff !important; }
.rr-estate-visualizer-copy > p { color: rgba(255,255,255,.72) !important; }
.rr-estate-visualizer-preview { position: relative; min-height: 430px; display: grid; place-items: center; perspective: 1000px; }
.rr-estate-lot-world { width: min(100%,520px); height: 330px; display: grid; place-items: center; transform-style: preserve-3d; }
.rr-estate-lot-plane {
  position: relative;
  width: 360px;
  height: 220px;
  transform: rotateX(58deg) rotateZ(-28deg);
  transform-style: preserve-3d;
  border: 4px solid rgba(255,255,255,.72);
  background:
    linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px),
    #4c8c64;
  background-size: 28px 28px;
  box-shadow: 30px 35px 55px rgba(0,0,0,.26);
}
.rr-estate-lot-plane > strong { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); color: #fff; font-size: 1.45rem; text-shadow: 0 2px 9px rgba(0,0,0,.35); }
.rr-estate-lot-width { position: absolute; top: -28px; left: 50%; transform: translateX(-50%); color: #fff; font-size: .72rem; }
.rr-estate-lot-length { position: absolute; right: -42px; top: 50%; transform: translateY(-50%) rotate(90deg); color: #fff; font-size: .72rem; }
.rr-estate-mini-house { position: absolute; left: 46px; top: 42px; width: 120px; height: 78px; background: #f5f8fc; transform: translateZ(34px); box-shadow: 0 15px 18px rgba(0,0,0,.20); }
.rr-estate-mini-house::before { position: absolute; left: 8px; right: 8px; top: -45px; height: 70px; transform: skewY(-20deg); content: ""; background: #153f6c; }
.rr-estate-mini-driveway { position: absolute; right: 30px; bottom: 30px; width: 110px; height: 50px; background: #d7dce2; }
.rr-estate-mini-tree { position: absolute; width: 35px; height: 35px; border-radius: 50%; background: #1f6b3f; transform: translateZ(28px); box-shadow: 0 0 0 8px rgba(21,78,46,.25); }
.rr-estate-mini-tree.one { right: 42px; top: 35px; }
.rr-estate-mini-tree.two { left: 43px; bottom: 30px; }
.rr-estate-visualizer-glass { position: absolute; right: 0; bottom: 0; display: flex; align-items: center; gap: 10px; padding: 14px 16px; border: 1px solid rgba(255,255,255,.24); border-radius: 15px; background: rgba(255,255,255,.11); backdrop-filter: blur(14px); }
.rr-estate-visualizer-glass > i { font-size: 1.2rem; }
.rr-estate-visualizer-glass span { display: grid; }
.rr-estate-visualizer-glass small { color: rgba(255,255,255,.65); font-size: .62rem; }

/* Final CTA */
.rr-estate-final-cta { padding: 52px 0; background: var(--rr-public-page); }
.rr-estate-final-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 32px; border-radius: 22px; color: #fff; background: linear-gradient(115deg,#0d3b76,#1765b2 68%,#4b96e2); box-shadow: var(--rr-public-shadow); }
.rr-estate-final-cta-inner > div > span { color: #c7e2ff; }
.rr-estate-final-cta-inner h2 { max-width: 760px; color: #fff !important; font-size: clamp(1.75rem,3.5vw,2.7rem); }
.rr-estate-final-cta-inner p { color: rgba(255,255,255,.72) !important; }
.rr-estate-final-cta-inner > div:last-child { display: flex; gap: 9px; flex-wrap: wrap; }

/* Footer */
.rr-public-footer {
  padding-top: 64px !important;
  color: #dceaff !important;
  background: #071d37 !important;
}
.rr-footer-grid { display: grid !important; grid-template-columns: 1.35fr repeat(4,minmax(0,1fr)) !important; gap: 36px !important; }
.rr-public-brand-footer .rr-brand-name strong { color: #fff !important; }
.rr-footer-brand-column > p,
.rr-public-footer p { color: rgba(220,234,255,.62) !important; font-size: .73rem !important; line-height: 1.7 !important; }
.rr-public-footer h2 { color: #fff !important; font-size: .76rem !important; font-weight: 800 !important; }
.rr-public-footer a { display: flex !important; align-items: center !important; gap: 6px !important; margin-top: 10px !important; color: rgba(220,234,255,.68) !important; font-size: .68rem !important; text-decoration: none !important; }
.rr-public-footer a:hover { color: #fff !important; }
.rr-footer-socials { display: flex !important; gap: 8px !important; }
.rr-footer-socials a { width: 36px !important; height: 36px !important; display: grid !important; place-items: center !important; border: 1px solid rgba(255,255,255,.15) !important; border-radius: 10px !important; }
.rr-footer-cta { width: fit-content !important; padding: 10px 12px !important; border-radius: 9px !important; color: #0d3b76 !important; background: #fff !important; font-weight: 780 !important; }
.rr-footer-bottom { margin-top: 48px !important; border-top: 1px solid rgba(255,255,255,.10) !important; }
.rr-footer-bottom > div { min-height: 66px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 20px !important; color: rgba(220,234,255,.48) !important; font-size: .62rem !important; }

/* Existing public project/tripping pages and 3D SQM modal */
body.rr-public-body :where(.rr-project-detail,.rr-public-tripping-page,.rr-not-found) {
  color: var(--rr-public-text) !important;
}
body.rr-public-body :where(.rr-project-detail-card,.rr-public-tripping-card,.rr-project-info-card,.rr-not-found-card) {
  border-color: var(--rr-public-border) !important;
  color: var(--rr-public-text) !important;
  background: var(--rr-public-surface) !important;
  box-shadow: var(--rr-public-shadow-soft) !important;
}
body.rr-public-body :where(.form-control,.form-select,textarea,input,select) {
  border-color: var(--rr-public-border) !important;
  color: var(--rr-public-text) !important;
  background-color: var(--rr-public-surface) !important;
}
body.rr-public-body :where(.form-control,.form-select,textarea,input,select):focus {
  border-color: #77a9df !important;
  box-shadow: 0 0 0 .22rem rgba(37,99,235,.13) !important;
}

.rr-sqm-modal,
[data-sqm-modal] {
  --rr-sqm-accent: #2563eb !important;
}
.rr-sqm-modal-card,
.rr-sqm-dialog,
.rr-sqm-panel {
  border: 1px solid rgba(255,255,255,.28) !important;
  color: var(--rr-public-text) !important;
  background: color-mix(in srgb, var(--rr-public-surface) 88%, transparent) !important;
  box-shadow: 0 35px 90px rgba(0,0,0,.30) !important;
  backdrop-filter: blur(20px) !important;
}
html[data-theme="dark"] .rr-sqm-modal-card,
html[data-theme="dark"] .rr-sqm-dialog,
html[data-theme="dark"] .rr-sqm-panel { background: rgba(13,32,52,.94) !important; }
.rr-sqm-stage { background: linear-gradient(160deg,#dcecff,#edf5ff) !important; }
html[data-theme="dark"] .rr-sqm-stage { background: linear-gradient(160deg,#0b1d31,#143350) !important; }
.rr-sqm-controls button,
.rr-sqm-button { border-color: var(--rr-public-border) !important; color: var(--rr-public-text) !important; background: var(--rr-public-surface) !important; }

/* Reveal animation */
[data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease; }
[data-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 1199.98px) {
  .rr-public-nav { gap: 14px !important; }
  .rr-estate-hero-layout { grid-template-columns: minmax(0,1fr) 330px; }
  .rr-estate-type-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rr-estate-catalogue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rr-footer-grid { grid-template-columns: 1.4fr repeat(2,minmax(0,1fr)) !important; }
}

@media (max-width: 991.98px) {
  .rr-mobile-menu-button { display: grid !important; margin-left: auto !important; }
  .rr-public-nav {
    position: fixed !important;
    left: 18px !important;
    right: 18px !important;
    top: 82px !important;
    display: none !important;
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 12px !important;
    border: 1px solid var(--rr-public-border) !important;
    border-radius: 16px !important;
    background: var(--rr-public-surface) !important;
    box-shadow: var(--rr-public-shadow) !important;
  }
  .rr-public-nav.is-open { display: flex !important; }
  .rr-public-nav > a { padding: 12px !important; border-radius: 9px !important; }
  .rr-public-nav > a:hover { background: var(--rr-public-sky) !important; }
  .rr-public-nav > a::after { display: none !important; }
  .rr-estate-hero { min-height: auto; padding: 50px 0 180px; }
  .rr-estate-hero-layout { grid-template-columns: 1fr; }
  .rr-estate-feature-card { max-width: 560px; }
  .rr-estate-search { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rr-estate-search-button { min-height: 46px; }
  .rr-estate-step-grid { grid-template-columns: 1fr; }
  .rr-estate-types-layout,
  .rr-estate-about-grid,
  .rr-estate-visualizer-grid { grid-template-columns: 1fr; }
  .rr-estate-about-visual { min-height: 430px; }
  .rr-estate-about-visual > img { min-height: 430px; }
  .rr-estate-final-cta-inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 767.98px) {
  .rr-public-container { width: min(100% - 26px,1180px) !important; }
  .rr-header-actions .rr-theme-toggle { display: none !important; }
  .rr-nav-login { padding: 0 11px !important; }
  .rr-estate-hero { padding-bottom: 270px; }
  .rr-estate-hero-copy { padding: 25px 22px; border-radius: 21px; }
  .rr-estate-hero-copy h1 { font-size: clamp(2.35rem,13vw,4rem); }
  .rr-estate-feature-card { padding: 22px; }
  .rr-estate-search-wrap { bottom: 22px; }
  .rr-estate-search { grid-template-columns: 1fr; padding: 12px; }
  .rr-estate-search label { padding: 8px 10px 10px; border-right: 0; border-bottom: 1px solid rgba(13,59,118,.12); }
  .rr-estate-section-heading-inline { align-items: flex-start; flex-direction: column; }
  .rr-estate-type-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rr-estate-catalogue-grid { grid-template-columns: 1fr; }
  .rr-estate-about-visual { min-height: 360px; }
  .rr-estate-about-visual > img { min-height: 360px; }
  .rr-estate-visualizer-preview { min-height: 350px; overflow: hidden; }
  .rr-estate-lot-world { transform: scale(.78); }
  .rr-estate-final-cta-inner { padding: 24px; }
  .rr-footer-grid { grid-template-columns: 1fr !important; }
  .rr-footer-bottom > div { align-items: flex-start !important; flex-direction: column !important; justify-content: center !important; padding: 18px 0 !important; }
}

@media (max-width: 480px) {
  .rr-brand-name small { display: none !important; }
  .rr-estate-type-grid { grid-template-columns: 1fr; }
  .rr-estate-trust-row { gap: 10px; flex-direction: column; }
  .rr-estate-lot-world { transform: scale(.64); }
}

/* 3D SQM glass property visualizer — public website */
.rr-public-body .rr-sqm-backdrop {
  background:
    radial-gradient(circle at 78% 14%, rgba(66,148,232,.24), transparent 34%),
    rgba(4,20,39,.74) !important;
  backdrop-filter: blur(15px) saturate(125%) !important;
}

.rr-public-body .rr-sqm-dialog {
  overflow: hidden !important;
  border: 1px solid rgba(255,255,255,.52) !important;
  border-radius: 27px !important;
  background: rgba(249,252,255,.89) !important;
  box-shadow: 0 36px 110px rgba(3,23,47,.42) !important;
  backdrop-filter: blur(25px) saturate(145%) !important;
}

.rr-public-body .rr-sqm-dialog-header {
  border-color: rgba(118,164,214,.34) !important;
  background: rgba(255,255,255,.7) !important;
  backdrop-filter: blur(18px) !important;
}

.rr-public-body .rr-sqm-dialog-header h2 {
  color: #102f55 !important;
  font-family: Inter, system-ui, sans-serif !important;
  font-weight: 850 !important;
  letter-spacing: -.035em !important;
}

.rr-public-body .rr-sqm-stage-wrap {
  background:
    linear-gradient(rgba(255,255,255,.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.09) 1px, transparent 1px),
    radial-gradient(circle at 76% 18%, rgba(79,157,237,.36), transparent 29%),
    linear-gradient(145deg,#08284c,#0d4f8a 62%,#217dc7) !important;
  background-size: 30px 30px, 30px 30px, auto, auto !important;
}

.rr-public-body .rr-sqm-stage {
  border: 1px solid rgba(255,255,255,.22) !important;
  border-radius: 22px !important;
  background: rgba(255,255,255,.075) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 23px 56px rgba(2,18,38,.24) !important;
  backdrop-filter: blur(9px) !important;
}

.rr-public-body .rr-stage-control {
  border: 1px solid rgba(255,255,255,.26) !important;
  border-radius: 11px !important;
  color: #fff !important;
  background: rgba(255,255,255,.11) !important;
  backdrop-filter: blur(12px) !important;
}

.rr-public-body .rr-sqm-information {
  color: var(--rr-public-text) !important;
  background:
    radial-gradient(circle at 100% 0, rgba(37,99,235,.1), transparent 32%),
    rgba(255,255,255,.72) !important;
  backdrop-filter: blur(18px) !important;
}

.rr-public-body .rr-sqm-equation,
.rr-public-body .rr-sqm-explanation,
.rr-public-body .rr-scale-guide,
.rr-public-body .rr-sqm-note {
  border: 1px solid rgba(115,161,211,.3) !important;
  border-radius: 15px !important;
  background: rgba(255,255,255,.62) !important;
  box-shadow: 0 12px 28px rgba(18,59,109,.07) !important;
  backdrop-filter: blur(12px) !important;
}

html[data-theme="dark"] .rr-public-body .rr-sqm-dialog {
  border-color: rgba(130,181,237,.22) !important;
  background: rgba(11,29,49,.93) !important;
}

html[data-theme="dark"] .rr-public-body .rr-sqm-dialog-header,
html[data-theme="dark"] .rr-public-body .rr-sqm-information {
  background: rgba(14,35,58,.9) !important;
}

html[data-theme="dark"] .rr-public-body .rr-sqm-dialog-header h2,
html[data-theme="dark"] .rr-public-body .rr-sqm-information :where(h2,h3,h4,strong,label) {
  color: #f8fbff !important;
}

html[data-theme="dark"] .rr-public-body .rr-sqm-equation,
html[data-theme="dark"] .rr-public-body .rr-sqm-explanation,
html[data-theme="dark"] .rr-public-body .rr-scale-guide,
html[data-theme="dark"] .rr-public-body .rr-sqm-note {
  border-color: rgba(130,181,237,.18) !important;
  background: rgba(17,43,70,.76) !important;
}
