/* 首页交付版：真实 DOM/CSS/SVG 结构。只允许楼体、室内和户型图作为内容图片。 */
:root {
  --home-gold: #c49a62;
  --home-gold-deep: #a9783d;
  --home-ink: #2f241d;
  --home-muted: #7c6d5f;
  --home-paper: #fffdf9;
}

html:has(.app-shell.is-home),
html:has(.app-shell.is-home) body {
  width: 100%;
  min-width: 100%;
  height: 100%;
  min-height: 100dvh;
  margin: 0;
  overflow: hidden;
  background: #f7f0e8;
}

.app-shell.is-home {
  --home-u: min(calc(100vw / 375), calc(100dvh / 812));
  --home-canvas-w: calc(375 * var(--home-u));
  --home-canvas-h: calc(812 * var(--home-u));
  position: fixed !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  color: var(--home-ink) !important;
  background:
    radial-gradient(circle at 50% 8%, rgba(221, 199, 171, 0.28), transparent 34%),
    linear-gradient(180deg, #fffaf3 0%, #f5ede4 100%) !important;
  font-family: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", sans-serif !important;
}

.app-shell.is-home .app {
  display: none !important;
}

.app-shell.is-home .home-screen {
  position: relative !important;
  width: var(--home-canvas-w) !important;
  min-width: var(--home-canvas-w) !important;
  max-width: var(--home-canvas-w) !important;
  height: var(--home-canvas-h) !important;
  min-height: var(--home-canvas-h) !important;
  max-height: var(--home-canvas-h) !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 251, 245, 0.96) 55%, rgba(247, 240, 232, 0.98) 100%),
    radial-gradient(circle at 52% 22%, rgba(207, 164, 104, 0.12), transparent 42%) !important;
  box-shadow: 0 calc(18 * var(--home-u)) calc(52 * var(--home-u)) rgba(80, 55, 30, 0.1) !important;
}

.app-shell.is-home .home-value-strip,
.app-shell.is-home .home-footnote {
  display: none !important;
}

.app-shell.is-home .home-icon-defs {
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
}

.app-shell.is-home .home-screen *,
.app-shell.is-home .home-screen *::before,
.app-shell.is-home .home-screen *::after {
  box-sizing: border-box !important;
}

.app-shell.is-home .home-hero,
.app-shell.is-home .home-main,
.app-shell.is-home .home-selection-card,
.app-shell.is-home .home-house-panel,
.app-shell.is-home .home-contact-strip,
.app-shell.is-home .home-card-copy,
.app-shell.is-home .home-service-row,
.app-shell.is-home .home-interior-slot,
.app-shell.is-home .home-house-panel > h2,
.app-shell.is-home .home-house-plan,
.app-shell.is-home .home-house-info,
.app-shell.is-home .home-enter-button,
.app-shell.is-home .home-house-card {
  opacity: 1 !important;
  transform: none !important;
}

.app-shell.is-home .home-hero {
  position: absolute !important;
  inset: 0 auto auto 0 !important;
  width: 100% !important;
  height: calc(258 * var(--home-u)) !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background:
    linear-gradient(180deg, rgba(255, 253, 249, 0.98) 0%, rgba(255, 253, 249, 0.66) 46%, rgba(255, 253, 249, 0.98) 100%),
    linear-gradient(180deg, #fbfdff 0%, #f5e5d2 74%, #fffdf9 100%) !important;
  box-shadow: none !important;
}

.app-shell.is-home .home-hero-image {
  position: absolute !important;
  z-index: 0 !important;
  left: calc(-8 * var(--home-u)) !important;
  top: calc(104 * var(--home-u)) !important;
  width: calc(391 * var(--home-u)) !important;
  height: calc(100 * var(--home-u)) !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center center !important;
  opacity: 0.98 !important;
  filter: saturate(1.04) contrast(1.02) !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-hero::after {
  content: "" !important;
  position: absolute !important;
  z-index: 1 !important;
  left: 0 !important;
  right: 0 !important;
  top: calc(164 * var(--home-u)) !important;
  height: calc(68 * var(--home-u)) !important;
  background: linear-gradient(180deg, rgba(255, 253, 249, 0), rgba(255, 253, 249, 0.94) 70%, #fffdf9 100%) !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-logo-slot {
  position: absolute !important;
  z-index: 4 !important;
  top: calc(22 * var(--home-u)) !important;
  right: calc(22 * var(--home-u)) !important;
  width: calc(76 * var(--home-u)) !important;
  min-width: 0 !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  gap: calc(3 * var(--home-u)) !important;
  color: var(--home-ink) !important;
  text-align: center !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.app-shell.is-home .home-logo-slot::before {
  display: none !important;
}

.app-shell.is-home .home-logo-wave {
  position: relative !important;
  width: calc(44 * var(--home-u)) !important;
  height: calc(15 * var(--home-u)) !important;
  display: block !important;
}

.app-shell.is-home .home-logo-wave::before,
.app-shell.is-home .home-logo-wave::after,
.app-shell.is-home .home-logo-wave b {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  height: calc(4 * var(--home-u)) !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, transparent 0%, #2f2924 20%, #8b7761 54%, #2f2924 86%, transparent 100%) !important;
  transform: skewX(-26deg) rotate(8deg) !important;
}

.app-shell.is-home .home-logo-wave::before {
  top: 0 !important;
}

.app-shell.is-home .home-logo-wave::after {
  top: calc(5 * var(--home-u)) !important;
  left: calc(7 * var(--home-u)) !important;
  opacity: 0.72 !important;
}

.app-shell.is-home .home-logo-wave b:first-child {
  top: calc(10 * var(--home-u)) !important;
  left: calc(15 * var(--home-u)) !important;
  opacity: 0.88 !important;
}

.app-shell.is-home .home-logo-wave b:last-child {
  display: none !important;
}

.app-shell.is-home .home-logo-slot span {
  display: block !important;
  color: #302821 !important;
  font-family: "Times New Roman", serif !important;
  font-size: calc(5.8 * var(--home-u)) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-logo-slot strong {
  display: block !important;
  color: #302821 !important;
  font-family: "SimSun", "Songti SC", serif !important;
  font-size: calc(10.5 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0.06em !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-copy {
  position: absolute !important;
  z-index: 4 !important;
  left: calc(19 * var(--home-u)) !important;
  top: calc(26 * var(--home-u)) !important;
  width: calc(240 * var(--home-u)) !important;
  max-width: none !important;
  padding: 0 !important;
  color: var(--home-ink) !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.app-shell.is-home .home-title {
  margin: 0 0 calc(10 * var(--home-u)) !important;
  color: #30241c !important;
  font-family: "SimSun", "STSong", "Songti SC", serif !important;
  font-size: calc(28 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.08 !important;
  letter-spacing: 0.03em !important;
  white-space: normal !important;
  text-shadow: 0 calc(4 * var(--home-u)) calc(12 * var(--home-u)) rgba(72, 50, 30, 0.1) !important;
}

.app-shell.is-home .home-title span {
  display: block !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-title span + span {
  margin: 0 !important;
}

.app-shell.is-home .home-subtitle,
.app-shell.is-home .home-desc {
  margin: 0 !important;
  color: #3a2d24 !important;
  font-size: calc(11.4 * var(--home-u)) !important;
  font-weight: 850 !important;
  line-height: 1.62 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-desc {
  font-size: calc(10.6 * var(--home-u)) !important;
}

.app-shell.is-home .home-feature-row {
  position: absolute !important;
  z-index: 5 !important;
  left: calc(18 * var(--home-u)) !important;
  right: calc(18 * var(--home-u)) !important;
  bottom: calc(12 * var(--home-u)) !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: calc(8 * var(--home-u)) calc(10 * var(--home-u)) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.app-shell.is-home .home-feature {
  min-width: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: calc(22 * var(--home-u)) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: calc(4 * var(--home-u)) !important;
  color: var(--home-gold) !important;
  text-align: left !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.app-shell.is-home .home-icon-slot,
.app-shell.is-home .home-mini-icon,
.app-shell.is-home .home-contact-icon,
.app-shell.is-home .home-phone-icon {
  display: grid !important;
  place-items: center !important;
  color: var(--home-gold) !important;
}

.app-shell.is-home .home-icon-slot {
  width: calc(20 * var(--home-u)) !important;
  height: calc(20 * var(--home-u)) !important;
  min-width: calc(20 * var(--home-u)) !important;
  border: calc(1 * var(--home-u)) solid rgba(196, 154, 98, 0.5) !important;
  border-radius: 50% !important;
  background: rgba(255, 253, 249, 0.82) !important;
}

.app-shell.is-home .home-icon-slot svg,
.app-shell.is-home .home-mini-icon svg,
.app-shell.is-home .home-contact-icon svg,
.app-shell.is-home .home-phone-icon svg {
  width: 62% !important;
  height: 62% !important;
  display: block !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2.35 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  transform: none !important;
}

.app-shell.is-home .home-feature p {
  min-width: 0 !important;
  margin: 0 !important;
  display: block !important;
}

.app-shell.is-home .home-feature strong,
.app-shell.is-home .home-feature p span {
  display: block !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-feature strong {
  color: #997244 !important;
  font-size: calc(6.9 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.13 !important;
}

.app-shell.is-home .home-feature p span {
  margin-top: calc(1.6 * var(--home-u)) !important;
  color: rgba(153, 114, 68, 0.55) !important;
  font-size: calc(5.5 * var(--home-u)) !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
}

.app-shell.is-home .home-main {
  position: absolute !important;
  z-index: 6 !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-selection-card,
.app-shell.is-home .home-house-panel,
.app-shell.is-home .home-contact-strip {
  border: calc(0.8 * var(--home-u)) solid rgba(218, 198, 171, 0.74) !important;
  border-radius: calc(13 * var(--home-u)) !important;
  background: rgba(255, 255, 255, 0.94) !important;
  box-shadow: 0 calc(7 * var(--home-u)) calc(22 * var(--home-u)) rgba(78, 53, 29, 0.07) !important;
  backdrop-filter: blur(calc(5 * var(--home-u))) !important;
}

.app-shell.is-home .home-selection-card {
  position: absolute !important;
  left: calc(14 * var(--home-u)) !important;
  top: calc(266 * var(--home-u)) !important;
  width: calc(347 * var(--home-u)) !important;
  height: calc(221 * var(--home-u)) !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: calc(15 * var(--home-u)) !important;
  display: grid !important;
  grid-template-columns: calc(106 * var(--home-u)) minmax(0, 1fr) !important;
  grid-template-rows: auto 1fr calc(31 * var(--home-u)) !important;
  grid-template-areas:
    "copy image"
    "icons image"
    "button image" !important;
  gap: calc(10 * var(--home-u)) calc(13 * var(--home-u)) !important;
  overflow: hidden !important;
  pointer-events: auto !important;
}

.app-shell.is-home .home-card-copy {
  grid-area: copy !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: none !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-card-copy h2,
.app-shell.is-home .home-house-panel h2 {
  margin: 0 !important;
  color: #33251d !important;
  font-family: "SimSun", "STSong", "Songti SC", serif !important;
  font-size: calc(22 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  letter-spacing: 0.03em !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-card-copy p {
  margin: calc(10 * var(--home-u)) 0 0 !important;
  color: #3f3026 !important;
  font-size: calc(10.8 * var(--home-u)) !important;
  font-weight: 850 !important;
  line-height: 1.35 !important;
}

.app-shell.is-home .home-service-row {
  grid-area: icons !important;
  align-self: center !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: calc(9 * var(--home-u)) calc(7 * var(--home-u)) !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-service-row > div {
  min-width: 0 !important;
  display: grid !important;
  justify-items: center !important;
  gap: calc(4 * var(--home-u)) !important;
  color: var(--home-gold) !important;
  text-align: center !important;
}

.app-shell.is-home .home-mini-icon {
  width: calc(31 * var(--home-u)) !important;
  height: calc(31 * var(--home-u)) !important;
  min-width: calc(31 * var(--home-u)) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  clip-path: none !important;
  filter: drop-shadow(0 calc(2 * var(--home-u)) calc(4 * var(--home-u)) rgba(179, 128, 62, 0.08)) !important;
}

.app-shell.is-home .home-mini-icon svg {
  width: 100% !important;
  height: 100% !important;
  stroke-width: 2.05 !important;
}

.app-shell.is-home .home-service-row .home-mini-icon svg {
  width: 100% !important;
  height: 100% !important;
}

.app-shell.is-home .home-service-row strong,
.app-shell.is-home .home-service-row em {
  display: block !important;
  min-width: 0 !important;
  color: #4f3b2d !important;
  font-style: normal !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-service-row strong {
  font-size: calc(8.6 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.12 !important;
}

.app-shell.is-home .home-service-row em {
  color: rgba(79, 59, 45, 0.64) !important;
  font-size: calc(6.4 * var(--home-u)) !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
}

.app-shell.is-home .home-interior-slot {
  position: relative !important;
  grid-area: image !important;
  width: 100% !important;
  min-height: 0 !important;
  height: 100% !important;
  margin: 0 !important;
  border-radius: calc(10 * var(--home-u)) !important;
  overflow: hidden !important;
  background: #eadbcc !important;
  box-shadow: inset 0 0 0 calc(1 * var(--home-u)) rgba(130, 96, 59, 0.1) !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-interior-slot::before,
.app-shell.is-home .home-interior-slot::after {
  display: none !important;
}

.app-shell.is-home .home-interior-slot img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* Final homepage layout correction v127: exterior hero + reference-card proportions. */
.app-shell.is-home .home-hero-image {
  top: calc(74 * var(--home-u)) !important;
  left: calc(118 * var(--home-u)) !important;
  width: calc(257 * var(--home-u)) !important;
  height: calc(137 * var(--home-u)) !important;
  object-fit: cover !important;
  object-position: 44% 55% !important;
  filter: none !important;
}

.app-shell.is-home .home-hero::before {
  top: calc(70 * var(--home-u)) !important;
  height: calc(146 * var(--home-u)) !important;
  background:
    linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0.96) 24%, rgba(255, 255, 255, 0.2) 48%, rgba(255, 255, 255, 0) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0) 66%, rgba(255, 253, 249, 0.96) 100%) !important;
}

.app-shell.is-home .home-logo-slot {
  top: calc(26 * var(--home-u)) !important;
  right: calc(19 * var(--home-u)) !important;
  width: calc(70 * var(--home-u)) !important;
  height: calc(39 * var(--home-u)) !important;
}

.app-shell.is-home .home-selection-card {
  padding: calc(15 * var(--home-u)) !important;
  grid-template-columns: calc(103 * var(--home-u)) minmax(0, 1fr) !important;
  grid-template-rows: calc(55 * var(--home-u)) 1fr calc(24 * var(--home-u)) !important;
  gap: calc(9 * var(--home-u)) calc(15 * var(--home-u)) !important;
}

.app-shell.is-home .home-card-copy,
.app-shell.is-home .home-service-row {
  width: calc(103 * var(--home-u)) !important;
  min-width: calc(103 * var(--home-u)) !important;
  max-width: calc(103 * var(--home-u)) !important;
}

.app-shell.is-home .home-card-copy h2 {
  font-size: calc(19.5 * var(--home-u)) !important;
}

.app-shell.is-home .home-card-copy p {
  font-size: calc(10.2 * var(--home-u)) !important;
  line-height: 1.25 !important;
}

.app-shell.is-home .home-service-row {
  gap: calc(12 * var(--home-u)) calc(9 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row > div {
  width: calc(47 * var(--home-u)) !important;
  grid-template-rows: calc(25 * var(--home-u)) auto auto !important;
  gap: calc(3 * var(--home-u)) !important;
}

.app-shell.is-home .home-mini-icon {
  width: calc(25 * var(--home-u)) !important;
  height: calc(25 * var(--home-u)) !important;
  min-width: calc(25 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row strong,
.app-shell.is-home .home-service-row em {
  max-width: calc(47 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row strong {
  font-size: calc(7.8 * var(--home-u)) !important;
  line-height: 1.06 !important;
}

.app-shell.is-home .home-service-row em {
  font-size: calc(5.7 * var(--home-u)) !important;
  line-height: 1.04 !important;
}

.app-shell.is-home .home-interior-slot {
  border-radius: calc(12 * var(--home-u)) !important;
}

.app-shell.is-home .home-interior-slot img {
  object-position: 43% center !important;
}

.app-shell.is-home .home-enter-button {
  width: calc(89 * var(--home-u)) !important;
  height: calc(24 * var(--home-u)) !important;
  border-radius: calc(6 * var(--home-u)) !important;
}

/* Final homepage hero background correction v128: keep exterior as the full top base image. */
.app-shell.is-home .home-hero {
  height: calc(264 * var(--home-u)) !important;
  background: #fff !important;
}

.app-shell.is-home .home-hero-image {
  position: absolute !important;
  z-index: 0 !important;
  inset: 0 !important;
  width: 100% !important;
  height: calc(216 * var(--home-u)) !important;
  display: block !important;
  object-fit: cover !important;
  object-position: 52% 45% !important;
  opacity: 1 !important;
  filter: none !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-hero::before {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  inset: 0 !important;
  height: calc(220 * var(--home-u)) !important;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.9) 22%, rgba(255, 255, 255, 0.42) 48%, rgba(255, 255, 255, 0.06) 78%, rgba(255, 255, 255, 0) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.58) 0%, rgba(255, 255, 255, 0.06) 34%, rgba(255, 255, 255, 0) 60%, #fffdf9 100%) !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-hero::after {
  content: "" !important;
  position: absolute !important;
  z-index: 3 !important;
  left: 0 !important;
  right: 0 !important;
  top: calc(176 * var(--home-u)) !important;
  height: calc(62 * var(--home-u)) !important;
  background: linear-gradient(180deg, rgba(255, 253, 249, 0), rgba(255, 253, 249, 0.88) 58%, #fffdf9 100%) !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-logo-slot {
  z-index: 5 !important;
}

.app-shell.is-home .home-copy,
.app-shell.is-home .home-feature-row {
  z-index: 4 !important;
}

/* Final homepage hero background correction v128: keep exterior as the full top base image. */
.app-shell.is-home .home-hero {
  height: calc(264 * var(--home-u)) !important;
  background: #fff !important;
}

.app-shell.is-home .home-hero-image {
  position: absolute !important;
  z-index: 0 !important;
  inset: 0 !important;
  width: 100% !important;
  height: calc(216 * var(--home-u)) !important;
  display: block !important;
  object-fit: cover !important;
  object-position: 52% 45% !important;
  opacity: 1 !important;
  filter: none !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-hero::before {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  inset: 0 !important;
  height: calc(220 * var(--home-u)) !important;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.9) 22%, rgba(255, 255, 255, 0.42) 48%, rgba(255, 255, 255, 0.06) 78%, rgba(255, 255, 255, 0) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.58) 0%, rgba(255, 255, 255, 0.06) 34%, rgba(255, 255, 255, 0) 60%, #fffdf9 100%) !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-hero::after {
  content: "" !important;
  position: absolute !important;
  z-index: 3 !important;
  left: 0 !important;
  right: 0 !important;
  top: calc(176 * var(--home-u)) !important;
  height: calc(62 * var(--home-u)) !important;
  background: linear-gradient(180deg, rgba(255, 253, 249, 0), rgba(255, 253, 249, 0.88) 58%, #fffdf9 100%) !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-logo-slot {
  z-index: 5 !important;
}

.app-shell.is-home .home-copy,
.app-shell.is-home .home-feature-row {
  z-index: 4 !important;
}

/* Final homepage hero background correction v128: use exterior as a full hero base image. */
.app-shell.is-home .home-hero {
  height: calc(264 * var(--home-u)) !important;
  background: #fff !important;
}

.app-shell.is-home .home-hero-image {
  position: absolute !important;
  z-index: 0 !important;
  inset: 0 !important;
  width: 100% !important;
  height: calc(216 * var(--home-u)) !important;
  display: block !important;
  object-fit: cover !important;
  object-position: 52% 45% !important;
  opacity: 1 !important;
  filter: none !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-hero::before {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  inset: 0 !important;
  height: calc(220 * var(--home-u)) !important;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.9) 22%, rgba(255, 255, 255, 0.42) 48%, rgba(255, 255, 255, 0.06) 78%, rgba(255, 255, 255, 0) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.58) 0%, rgba(255, 255, 255, 0.06) 34%, rgba(255, 255, 255, 0) 60%, #fffdf9 100%) !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-hero::after {
  content: "" !important;
  position: absolute !important;
  z-index: 3 !important;
  left: 0 !important;
  right: 0 !important;
  top: calc(176 * var(--home-u)) !important;
  height: calc(62 * var(--home-u)) !important;
  background: linear-gradient(180deg, rgba(255, 253, 249, 0), rgba(255, 253, 249, 0.88) 58%, #fffdf9 100%) !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-logo-slot {
  z-index: 5 !important;
}

.app-shell.is-home .home-copy,
.app-shell.is-home .home-feature-row {
  z-index: 4 !important;
}

/* Homepage hero and selection card proportion correction v127. */
.app-shell.is-home .home-hero {
  height: calc(264 * var(--home-u)) !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.9) 58%, #fffdf9 100%) !important;
}

.app-shell.is-home .home-hero-image {
  top: calc(74 * var(--home-u)) !important;
  left: calc(118 * var(--home-u)) !important;
  right: 0 !important;
  width: calc(257 * var(--home-u)) !important;
  height: calc(137 * var(--home-u)) !important;
  object-fit: cover !important;
  object-position: 44% 55% !important;
  opacity: 1 !important;
  filter: none !important;
}

.app-shell.is-home .home-hero::before {
  top: calc(70 * var(--home-u)) !important;
  height: calc(146 * var(--home-u)) !important;
  background:
    linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0.96) 24%, rgba(255, 255, 255, 0.2) 48%, rgba(255, 255, 255, 0) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0) 66%, rgba(255, 253, 249, 0.96) 100%) !important;
}

.app-shell.is-home .home-hero::after {
  top: calc(162 * var(--home-u)) !important;
  height: calc(58 * var(--home-u)) !important;
}

.app-shell.is-home .home-logo-slot {
  top: calc(26 * var(--home-u)) !important;
  right: calc(19 * var(--home-u)) !important;
  width: calc(70 * var(--home-u)) !important;
  height: calc(39 * var(--home-u)) !important;
}

.app-shell.is-home .home-selection-card {
  left: calc(14 * var(--home-u)) !important;
  top: calc(272 * var(--home-u)) !important;
  width: calc(347 * var(--home-u)) !important;
  height: calc(222 * var(--home-u)) !important;
  padding: calc(15 * var(--home-u)) calc(15 * var(--home-u)) !important;
  grid-template-columns: calc(103 * var(--home-u)) minmax(0, 1fr) !important;
  grid-template-rows: calc(55 * var(--home-u)) 1fr calc(24 * var(--home-u)) !important;
  grid-template-areas:
    "copy image"
    "icons image"
    "button image" !important;
  gap: calc(9 * var(--home-u)) calc(15 * var(--home-u)) !important;
}

.app-shell.is-home .home-card-copy {
  width: calc(103 * var(--home-u)) !important;
}

.app-shell.is-home .home-card-copy h2 {
  font-size: calc(19.5 * var(--home-u)) !important;
  line-height: 1.05 !important;
}

.app-shell.is-home .home-card-copy p {
  margin-top: calc(11 * var(--home-u)) !important;
  font-size: calc(10.2 * var(--home-u)) !important;
  line-height: 1.25 !important;
}

.app-shell.is-home .home-service-row {
  width: calc(103 * var(--home-u)) !important;
  min-width: calc(103 * var(--home-u)) !important;
  max-width: calc(103 * var(--home-u)) !important;
  align-self: center !important;
  gap: calc(12 * var(--home-u)) calc(9 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row > div {
  width: calc(47 * var(--home-u)) !important;
  grid-template-rows: calc(25 * var(--home-u)) auto auto !important;
  gap: calc(3 * var(--home-u)) !important;
}

.app-shell.is-home .home-mini-icon {
  width: calc(25 * var(--home-u)) !important;
  height: calc(25 * var(--home-u)) !important;
  min-width: calc(25 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row strong,
.app-shell.is-home .home-service-row em {
  max-width: calc(47 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row strong {
  font-size: calc(7.8 * var(--home-u)) !important;
  line-height: 1.06 !important;
}

.app-shell.is-home .home-service-row em {
  font-size: calc(5.7 * var(--home-u)) !important;
  line-height: 1.04 !important;
}

.app-shell.is-home .home-interior-slot {
  border-radius: calc(12 * var(--home-u)) !important;
}

.app-shell.is-home .home-interior-slot img {
  object-position: 43% center !important;
}

.app-shell.is-home .home-enter-button {
  width: calc(89 * var(--home-u)) !important;
  height: calc(24 * var(--home-u)) !important;
  border-radius: calc(6 * var(--home-u)) !important;
}

.app-shell.is-home .home-enter-button {
  position: static !important;
  grid-area: button !important;
  align-self: end !important;
  justify-self: start !important;
  width: calc(102 * var(--home-u)) !important;
  height: calc(31 * var(--home-u)) !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 calc(9 * var(--home-u)) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: calc(8 * var(--home-u)) !important;
  border: 0 !important;
  border-radius: calc(7 * var(--home-u)) !important;
  color: #fff !important;
  background: linear-gradient(135deg, #e1bf86 0%, #c5924b 100%) !important;
  box-shadow: 0 calc(7 * var(--home-u)) calc(14 * var(--home-u)) rgba(178, 126, 62, 0.22), inset 0 calc(1 * var(--home-u)) 0 rgba(255, 255, 255, 0.36) !important;
  font-size: calc(10.8 * var(--home-u)) !important;
  font-weight: 900 !important;
  letter-spacing: 0.03em !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}

.app-shell.is-home .home-enter-button i {
  font-style: normal !important;
  font-size: 1.08em !important;
  line-height: 1 !important;
}

.app-shell.is-home .home-house-panel {
  position: absolute !important;
  left: calc(14 * var(--home-u)) !important;
  top: calc(501 * var(--home-u)) !important;
  width: calc(347 * var(--home-u)) !important;
  height: calc(198 * var(--home-u)) !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: calc(15 * var(--home-u)) calc(14 * var(--home-u)) !important;
  overflow: hidden !important;
  pointer-events: auto !important;
}

.app-shell.is-home .home-house-cards {
  position: relative !important;
  z-index: 1 !important;
  left: auto !important;
  top: auto !important;
  width: 100% !important;
  height: auto !important;
  margin: calc(13 * var(--home-u)) 0 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: calc(9 * var(--home-u)) !important;
  pointer-events: auto !important;
}

.app-shell.is-home .home-house-card {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  width: auto !important;
  height: calc(132 * var(--home-u)) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-rows: calc(77 * var(--home-u)) minmax(0, 1fr) !important;
  border: 0 !important;
  border-radius: calc(10 * var(--home-u)) !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: 0 calc(6 * var(--home-u)) calc(15 * var(--home-u)) rgba(68, 47, 28, 0.06) !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}

.app-shell.is-home .home-house-card:nth-child(1),
.app-shell.is-home .home-house-card:nth-child(2),
.app-shell.is-home .home-house-card:nth-child(3) {
  left: auto !important;
}

.app-shell.is-home .home-house-card:active,
.app-shell.is-home .home-enter-button:active {
  filter: brightness(0.97) !important;
}

.app-shell.is-home .home-house-plan {
  position: relative !important;
  min-height: 0 !important;
  display: block !important;
  overflow: hidden !important;
  background-color: #fff !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: cover !important;
}

.app-shell.is-home .home-house-plan::before {
  display: none !important;
}

.app-shell.is-home .home-house-card[data-house-type="143"] .home-house-plan {
  background-image: url("./assets/ui/home-plan-143.webp") !important;
}

.app-shell.is-home .home-house-card[data-house-type="169"] .home-house-plan,
.app-shell.is-home .home-house-card[data-house-type="168"] .home-house-plan {
  background-image: url("./assets/ui/home-plan-169.webp") !important;
}

.app-shell.is-home .home-house-card[data-house-type="187"] .home-house-plan {
  background-image: url("./assets/ui/home-plan-187.webp") !important;
}

.app-shell.is-home .home-house-info {
  padding: calc(7 * var(--home-u)) calc(3 * var(--home-u)) calc(5 * var(--home-u)) !important;
  display: grid !important;
  justify-items: center !important;
  align-content: start !important;
  gap: calc(2.5 * var(--home-u)) !important;
  background: linear-gradient(180deg, #f8f1e9 0%, #efe1d0 100%) !important;
  color: #4d341e !important;
  text-align: center !important;
}

.app-shell.is-home .home-house-info strong {
  color: #513719 !important;
  font-family: "Georgia", "Times New Roman", serif !important;
  font-size: calc(18.5 * var(--home-u)) !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: -0.03em !important;
}

.app-shell.is-home .home-house-info span {
  display: block !important;
  color: #4b3729 !important;
  font-size: calc(6.6 * var(--home-u)) !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-house-info em {
  display: block !important;
  max-width: 100% !important;
  color: #4b3729 !important;
  font-size: calc(5.9 * var(--home-u)) !important;
  font-style: normal !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-contact-strip {
  position: absolute !important;
  left: calc(14 * var(--home-u)) !important;
  top: calc(714 * var(--home-u)) !important;
  width: calc(347 * var(--home-u)) !important;
  height: calc(70 * var(--home-u)) !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: calc(12 * var(--home-u)) calc(14 * var(--home-u)) !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: calc(10 * var(--home-u)) !important;
  pointer-events: auto !important;
}

.app-shell.is-home .home-contact-strip p {
  min-width: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: calc(8 * var(--home-u)) !important;
  color: #45372c !important;
}

.app-shell.is-home .home-contact-icon,
.app-shell.is-home .home-phone-icon {
  width: calc(23 * var(--home-u)) !important;
  height: calc(23 * var(--home-u)) !important;
  min-width: calc(23 * var(--home-u)) !important;
}

.app-shell.is-home .home-contact-icon svg,
.app-shell.is-home .home-phone-icon svg {
  width: 100% !important;
  height: 100% !important;
  stroke-width: 2.7 !important;
}

.app-shell.is-home .home-contact-strip strong {
  min-width: 0 !important;
  display: block !important;
  color: #44352a !important;
  font-size: calc(10.5 * var(--home-u)) !important;
  font-weight: 850 !important;
  line-height: 1.22 !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-contact-address strong {
  max-width: calc(190 * var(--home-u)) !important;
  white-space: normal !important;
}

.app-shell.is-home .home-contact-phone strong {
  color: #322219 !important;
  font-family: "Georgia", "Times New Roman", serif !important;
  font-size: calc(19 * var(--home-u)) !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-feature .home-icon-slot {
  width: calc(22 * var(--home-u)) !important;
  height: calc(22 * var(--home-u)) !important;
  min-width: calc(22 * var(--home-u)) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #c79a5a !important;
  filter: drop-shadow(0 calc(2 * var(--home-u)) calc(3 * var(--home-u)) rgba(171, 118, 56, 0.1)) !important;
}

.app-shell.is-home .home-feature .home-icon-slot svg {
  width: 100% !important;
  height: 100% !important;
  stroke-width: 1.95 !important;
}

.app-shell.is-home .loading-screen {
  z-index: 30 !important;
}

@media (max-height: 720px), (max-width: 340px) {
  .app-shell.is-home .home-feature p span,
  .app-shell.is-home .home-service-row em {
    display: none !important;
  }

  .app-shell.is-home .home-title {
    font-size: calc(26 * var(--home-u)) !important;
  }
}

/* Homepage reference rebuild v110: follow the supplied 375px mini-program structure. */
.app-shell.is-home {
  --home-u: min(calc(100vw / 375), calc(100dvh / 812)) !important;
  --home-canvas-w: calc(375 * var(--home-u)) !important;
  --home-canvas-h: calc(812 * var(--home-u)) !important;
  --home-gold: #c79a5a !important;
  --home-gold-soft: #d9b77e !important;
  --home-text: #30231b !important;
  --home-card-border: rgba(216, 196, 168, 0.58) !important;
  --home-card-shadow: 0 calc(7 * var(--home-u)) calc(21 * var(--home-u)) rgba(63, 42, 22, 0.075) !important;
  background: linear-gradient(180deg, #fffefe 0%, #f8f2eb 100%) !important;
}

.app-shell.is-home .home-screen {
  width: var(--home-canvas-w) !important;
  min-width: var(--home-canvas-w) !important;
  max-width: var(--home-canvas-w) !important;
  height: var(--home-canvas-h) !important;
  min-height: var(--home-canvas-h) !important;
  max-height: var(--home-canvas-h) !important;
  background:
    radial-gradient(circle at 50% 5%, rgba(255, 255, 255, 0.98), transparent 39%),
    linear-gradient(180deg, #fffefd 0%, #fffdf9 45%, #faf4ed 100%) !important;
  box-shadow: none !important;
}

.app-shell.is-home .home-hero {
  height: calc(264 * var(--home-u)) !important;
  background: linear-gradient(180deg, #ffffff 0%, #fffdf9 76%, #fffdf9 100%) !important;
}

.app-shell.is-home .home-hero-image {
  top: calc(82 * var(--home-u)) !important;
  left: 0 !important;
  width: 100% !important;
  height: calc(122 * var(--home-u)) !important;
  object-fit: cover !important;
  object-position: center bottom !important;
  opacity: 1 !important;
  filter: saturate(1.03) contrast(1.02) brightness(1.01) !important;
}

.app-shell.is-home .home-hero::before {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  left: 0 !important;
  right: 0 !important;
  top: calc(78 * var(--home-u)) !important;
  height: calc(128 * var(--home-u)) !important;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.84) 0%, rgba(255, 255, 255, 0.16) 28%, rgba(255, 255, 255, 0) 72%),
    linear-gradient(180deg, rgba(255, 255, 255, 0) 62%, rgba(255, 253, 249, 0.94) 100%) !important;
  pointer-events: none !important;
}

.app-shell.is-home .home-hero::after {
  z-index: 3 !important;
  top: calc(158 * var(--home-u)) !important;
  height: calc(58 * var(--home-u)) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 253, 249, 0.9) 70%, #fffdf9 100%) !important;
}

.app-shell.is-home .home-logo-slot {
  top: calc(27 * var(--home-u)) !important;
  right: calc(18 * var(--home-u)) !important;
  width: calc(56 * var(--home-u)) !important;
  gap: calc(3 * var(--home-u)) !important;
  color: #342920 !important;
}

.app-shell.is-home .home-logo-wave {
  width: calc(39 * var(--home-u)) !important;
  height: calc(12 * var(--home-u)) !important;
}

.app-shell.is-home .home-logo-slot span {
  font-size: calc(4.9 * var(--home-u)) !important;
  letter-spacing: 0 !important;
}

.app-shell.is-home .home-logo-slot strong {
  font-size: calc(8.2 * var(--home-u)) !important;
  letter-spacing: calc(0.9 * var(--home-u)) !important;
}

.app-shell.is-home .home-copy {
  left: calc(18 * var(--home-u)) !important;
  top: calc(25 * var(--home-u)) !important;
  width: calc(268 * var(--home-u)) !important;
}

.app-shell.is-home .home-title {
  margin: 0 0 calc(9 * var(--home-u)) !important;
  display: block !important;
  color: var(--home-text) !important;
  font-size: calc(25.6 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.13 !important;
  letter-spacing: calc(0.7 * var(--home-u)) !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-title span {
  display: inline !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-title span + span {
  margin-left: calc(7 * var(--home-u)) !important;
}

.app-shell.is-home .home-subtitle,
.app-shell.is-home .home-desc {
  color: #3b2c23 !important;
  font-size: calc(11.4 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.66 !important;
  letter-spacing: calc(-0.15 * var(--home-u)) !important;
}

.app-shell.is-home .home-desc {
  font-size: calc(10.8 * var(--home-u)) !important;
}

.app-shell.is-home .home-feature-row {
  z-index: 6 !important;
  left: calc(17 * var(--home-u)) !important;
  right: calc(13 * var(--home-u)) !important;
  bottom: calc(7 * var(--home-u)) !important;
  height: calc(58 * var(--home-u)) !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
  gap: calc(5 * var(--home-u)) calc(8 * var(--home-u)) !important;
}

.app-shell.is-home .home-feature {
  grid-template-columns: calc(18 * var(--home-u)) minmax(0, 1fr) !important;
  gap: calc(4 * var(--home-u)) !important;
  align-items: center !important;
  color: var(--home-gold) !important;
}

.app-shell.is-home .home-icon-slot {
  width: calc(18 * var(--home-u)) !important;
  height: calc(18 * var(--home-u)) !important;
  min-width: calc(18 * var(--home-u)) !important;
  border-color: rgba(199, 154, 90, 0.46) !important;
  background: rgba(255, 255, 255, 0.5) !important;
}

.app-shell.is-home .home-icon-slot svg {
  width: 68% !important;
  height: 68% !important;
  stroke-width: 2.1 !important;
}

.app-shell.is-home .home-feature strong {
  color: #b18450 !important;
  font-size: calc(6.2 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.08 !important;
}

.app-shell.is-home .home-feature p span {
  margin-top: calc(1 * var(--home-u)) !important;
  color: rgba(177, 132, 80, 0.46) !important;
  font-size: calc(5.3 * var(--home-u)) !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
}

.app-shell.is-home .home-selection-card,
.app-shell.is-home .home-house-panel,
.app-shell.is-home .home-contact-strip {
  border: calc(0.7 * var(--home-u)) solid var(--home-card-border) !important;
  border-radius: calc(13 * var(--home-u)) !important;
  background: rgba(255, 255, 255, 0.97) !important;
  box-shadow: var(--home-card-shadow) !important;
}

.app-shell.is-home .home-selection-card {
  left: calc(14 * var(--home-u)) !important;
  top: calc(272 * var(--home-u)) !important;
  width: calc(347 * var(--home-u)) !important;
  height: calc(222 * var(--home-u)) !important;
  padding: calc(15 * var(--home-u)) calc(14 * var(--home-u)) !important;
  grid-template-columns: calc(90 * var(--home-u)) minmax(0, 1fr) !important;
  grid-template-rows: auto 1fr calc(24 * var(--home-u)) !important;
  gap: calc(9 * var(--home-u)) calc(12 * var(--home-u)) !important;
}

.app-shell.is-home .home-card-copy h2,
.app-shell.is-home .home-house-panel h2 {
  color: var(--home-text) !important;
  font-size: calc(18.6 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.08 !important;
  letter-spacing: calc(0.3 * var(--home-u)) !important;
}

.app-shell.is-home .home-card-copy p {
  margin-top: calc(11 * var(--home-u)) !important;
  color: #3a2c22 !important;
  font-size: calc(10.3 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
}

.app-shell.is-home .home-service-row {
  align-self: center !important;
  gap: calc(10 * var(--home-u)) calc(5 * var(--home-u)) !important;
}

.app-shell.is-home .home-mini-icon {
  width: calc(28 * var(--home-u)) !important;
  height: calc(28 * var(--home-u)) !important;
  min-width: calc(28 * var(--home-u)) !important;
  color: var(--home-gold) !important;
  border-color: rgba(199, 154, 90, 0.62) !important;
}

.app-shell.is-home .home-mini-icon svg {
  stroke-width: 2.18 !important;
}

.app-shell.is-home .home-service-row strong {
  color: #503b2b !important;
  font-size: calc(8.4 * var(--home-u)) !important;
  font-weight: 900 !important;
}

.app-shell.is-home .home-service-row em {
  color: rgba(80, 59, 43, 0.62) !important;
  font-size: calc(6.15 * var(--home-u)) !important;
  font-weight: 800 !important;
}

.app-shell.is-home .home-interior-slot {
  border-radius: calc(9 * var(--home-u)) !important;
}

.app-shell.is-home .home-enter-button {
  width: calc(86 * var(--home-u)) !important;
  height: calc(24 * var(--home-u)) !important;
  padding: 0 calc(8 * var(--home-u)) !important;
  gap: calc(7 * var(--home-u)) !important;
  border-radius: calc(5 * var(--home-u)) !important;
  background: var(--home-gold) !important;
  box-shadow: 0 calc(5 * var(--home-u)) calc(10 * var(--home-u)) rgba(174, 121, 54, 0.2) !important;
  font-size: calc(8.8 * var(--home-u)) !important;
}

.app-shell.is-home .home-house-panel {
  left: calc(14 * var(--home-u)) !important;
  top: calc(509 * var(--home-u)) !important;
  width: calc(347 * var(--home-u)) !important;
  height: calc(224 * var(--home-u)) !important;
  padding: calc(15 * var(--home-u)) calc(11 * var(--home-u)) !important;
}

.app-shell.is-home .home-house-cards {
  margin-top: calc(15 * var(--home-u)) !important;
  gap: calc(8 * var(--home-u)) !important;
}

.app-shell.is-home .home-house-card {
  height: calc(158 * var(--home-u)) !important;
  grid-template-rows: calc(91 * var(--home-u)) minmax(0, 1fr) !important;
  border-radius: calc(9 * var(--home-u)) !important;
  box-shadow: 0 calc(5 * var(--home-u)) calc(14 * var(--home-u)) rgba(68, 47, 28, 0.055) !important;
}

.app-shell.is-home .home-house-info {
  padding: calc(9 * var(--home-u)) calc(2 * var(--home-u)) calc(6 * var(--home-u)) !important;
  gap: calc(3 * var(--home-u)) !important;
  background: linear-gradient(180deg, #fbf6ef 0%, #efe2d4 100%) !important;
}

.app-shell.is-home .home-house-info strong {
  color: #4b3119 !important;
  font-size: calc(18.8 * var(--home-u)) !important;
  font-weight: 500 !important;
}

.app-shell.is-home .home-house-info sup {
  font-size: 0.45em !important;
  line-height: 0 !important;
}

.app-shell.is-home .home-house-info span {
  color: #3f3026 !important;
  font-size: calc(6.7 * var(--home-u)) !important;
  font-weight: 900 !important;
}

.app-shell.is-home .home-house-info em {
  color: #3f3026 !important;
  font-size: calc(6.1 * var(--home-u)) !important;
  font-weight: 900 !important;
  text-overflow: clip !important;
}

.app-shell.is-home .home-contact-strip {
  left: calc(14 * var(--home-u)) !important;
  top: calc(750 * var(--home-u)) !important;
  width: calc(347 * var(--home-u)) !important;
  height: calc(48 * var(--home-u)) !important;
  padding: calc(9 * var(--home-u)) calc(16 * var(--home-u)) !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: calc(14 * var(--home-u)) !important;
}

.app-shell.is-home .home-contact-strip p {
  gap: calc(7 * var(--home-u)) !important;
}

.app-shell.is-home .home-contact-icon,
.app-shell.is-home .home-phone-icon {
  width: calc(20 * var(--home-u)) !important;
  height: calc(20 * var(--home-u)) !important;
  min-width: calc(20 * var(--home-u)) !important;
  color: var(--home-gold) !important;
}

.app-shell.is-home .home-contact-strip strong {
  color: #3b2b21 !important;
  font-size: calc(9.4 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.18 !important;
}

.app-shell.is-home .home-contact-address strong {
  max-width: calc(190 * var(--home-u)) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: clip !important;
}

.app-shell.is-home .home-contact-phone strong {
  color: #2e2018 !important;
  font-size: calc(16.7 * var(--home-u)) !important;
  font-weight: 500 !important;
  letter-spacing: calc(0.25 * var(--home-u)) !important;
}

@media (max-height: 720px), (max-width: 340px) {
  .app-shell.is-home .home-feature p span {
    display: none !important;
  }
}

/* Home floor-plan card correction v114. */
.app-shell.is-home .home-house-card {
  background: #ffffff !important;
  background-image: none !important;
}

.app-shell.is-home .home-house-plan {
  background-color: #ffffff !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
}

.app-shell.is-home .home-house-info {
  padding: calc(8.5 * var(--home-u)) calc(2.5 * var(--home-u)) calc(6 * var(--home-u)) !important;
  gap: calc(2.4 * var(--home-u)) !important;
  background: #efe2d1 !important;
  background-image: none !important;
}

.app-shell.is-home .home-house-info strong {
  color: #422712 !important;
  font-family: "Times New Roman", "Songti SC", "STSong", "SimSun", serif !important;
  font-size: calc(19.8 * var(--home-u)) !important;
  font-weight: 400 !important;
  line-height: 0.94 !important;
  letter-spacing: calc(-0.65 * var(--home-u)) !important;
  font-variant-numeric: lining-nums tabular-nums !important;
}

.app-shell.is-home .home-house-info strong sup {
  position: relative !important;
  top: calc(-2.4 * var(--home-u)) !important;
  margin-left: calc(0.9 * var(--home-u)) !important;
  font-family: "Times New Roman", "Songti SC", "STSong", "SimSun", serif !important;
  font-size: 0.43em !important;
  font-weight: 400 !important;
  line-height: 0 !important;
  letter-spacing: 0 !important;
  vertical-align: super !important;
}

.app-shell.is-home .home-house-info span {
  color: #3d2c20 !important;
  font-size: calc(6.65 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.08 !important;
}

.app-shell.is-home .home-house-info em {
  color: #3d2c20 !important;
  font-size: calc(6.05 * var(--home-u)) !important;
  font-weight: 900 !important;
  line-height: 1.08 !important;
}

/* Homepage SVG icon correction v115. */
.app-shell.is-home .home-icon-slot,
.app-shell.is-home .home-mini-icon,
.app-shell.is-home .home-contact-icon,
.app-shell.is-home .home-phone-icon {
  position: relative !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  color: #c99656 !important;
}

.app-shell.is-home .home-icon-slot::before,
.app-shell.is-home .home-icon-slot::after,
.app-shell.is-home .home-mini-icon::before,
.app-shell.is-home .home-mini-icon::after,
.app-shell.is-home .home-contact-icon::before,
.app-shell.is-home .home-contact-icon::after,
.app-shell.is-home .home-phone-icon::before,
.app-shell.is-home .home-phone-icon::after {
  display: none !important;
  content: none !important;
}

.app-shell.is-home .home-icon-slot svg,
.app-shell.is-home .home-mini-icon svg,
.app-shell.is-home .home-contact-icon svg,
.app-shell.is-home .home-phone-icon svg {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 2.18 !important;
}

.app-shell.is-home .home-feature .home-icon-slot {
  width: calc(21 * var(--home-u)) !important;
  height: calc(21 * var(--home-u)) !important;
  min-width: calc(21 * var(--home-u)) !important;
}

.app-shell.is-home .home-feature .home-icon-slot svg {
  stroke-width: 2.08 !important;
}

.app-shell.is-home .home-mini-icon {
  width: calc(31 * var(--home-u)) !important;
  height: calc(31 * var(--home-u)) !important;
  min-width: calc(31 * var(--home-u)) !important;
}

.app-shell.is-home .home-mini-icon svg {
  stroke-width: 2.02 !important;
}

.app-shell.is-home .home-contact-icon,
.app-shell.is-home .home-phone-icon {
  width: calc(22 * var(--home-u)) !important;
  height: calc(22 * var(--home-u)) !important;
  min-width: calc(22 * var(--home-u)) !important;
}

.app-shell.is-home .home-contact-icon svg,
.app-shell.is-home .home-phone-icon svg {
  stroke-width: 2.18 !important;
}

/* Homepage desktop viewport lock v122: desktop opens the same portrait mini-program canvas. */
html:has(.app-shell.is-home),
html:has(.app-shell.is-home) body {
  width: 100% !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  overflow: hidden !important;
}

.app-shell.is-home {
  --home-u: min(calc(100vw / 375), calc(100dvh / 812)) !important;
  --home-canvas-w: calc(375 * var(--home-u)) !important;
  --home-canvas-h: calc(812 * var(--home-u)) !important;
  width: 100vw !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  display: grid !important;
  place-items: start center !important;
  overflow: hidden !important;
}

.app-shell.is-home .home-screen {
  width: var(--home-canvas-w) !important;
  min-width: var(--home-canvas-w) !important;
  max-width: var(--home-canvas-w) !important;
  height: var(--home-canvas-h) !important;
  min-height: var(--home-canvas-h) !important;
  max-height: 100dvh !important;
  overflow: hidden !important;
}

/* Homepage icon redraw v123: match the UI reference with upright gold SVG badges. */
.app-shell.is-home .home-icon-slot,
.app-shell.is-home .home-mini-icon,
.app-shell.is-home .home-contact-icon,
.app-shell.is-home .home-phone-icon {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  color: #c99656 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
  transform: none !important;
}

.app-shell.is-home .home-icon-slot::before,
.app-shell.is-home .home-icon-slot::after,
.app-shell.is-home .home-mini-icon::before,
.app-shell.is-home .home-mini-icon::after,
.app-shell.is-home .home-contact-icon::before,
.app-shell.is-home .home-contact-icon::after,
.app-shell.is-home .home-phone-icon::before,
.app-shell.is-home .home-phone-icon::after {
  display: none !important;
  content: none !important;
}

.app-shell.is-home .home-icon-slot svg,
.app-shell.is-home .home-mini-icon svg,
.app-shell.is-home .home-contact-icon svg,
.app-shell.is-home .home-phone-icon svg {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  overflow: visible !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  vector-effect: non-scaling-stroke !important;
  transform: none !important;
}

.app-shell.is-home .home-feature .home-icon-slot {
  width: calc(21 * var(--home-u)) !important;
  height: calc(21 * var(--home-u)) !important;
  min-width: calc(21 * var(--home-u)) !important;
}

.app-shell.is-home .home-feature .home-icon-slot svg {
  stroke-width: 1.65 !important;
}

.app-shell.is-home .home-service-row {
  align-self: start !important;
  gap: calc(8 * var(--home-u)) calc(8 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row > div {
  min-width: 0 !important;
  display: grid !important;
  grid-template-rows: calc(31 * var(--home-u)) auto auto !important;
  justify-items: center !important;
  align-content: start !important;
  gap: calc(3 * var(--home-u)) !important;
  text-align: center !important;
}

.app-shell.is-home .home-mini-icon {
  width: calc(31 * var(--home-u)) !important;
  height: calc(31 * var(--home-u)) !important;
  min-width: calc(31 * var(--home-u)) !important;
}

.app-shell.is-home .home-mini-icon svg {
  stroke-width: 1.8 !important;
}

.app-shell.is-home .home-service-row strong {
  margin-top: calc(1 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row em {
  display: block !important;
}

.app-shell.is-home .home-contact-icon,
.app-shell.is-home .home-phone-icon {
  width: calc(24 * var(--home-u)) !important;
  height: calc(24 * var(--home-u)) !important;
  min-width: calc(24 * var(--home-u)) !important;
}

.app-shell.is-home .home-contact-icon svg,
.app-shell.is-home .home-phone-icon svg {
  stroke-width: 2.4 !important;
}

/* Homepage service icon layout v124: keep the 2x2 service icon block readable. */
.app-shell.is-home .home-selection-card {
  grid-template-columns: calc(124 * var(--home-u)) minmax(0, 1fr) !important;
  grid-template-rows: auto 1fr calc(24 * var(--home-u)) !important;
  grid-template-areas:
    "copy image"
    "icons image"
    "button image" !important;
  gap: calc(8 * var(--home-u)) calc(10 * var(--home-u)) !important;
}

.app-shell.is-home .home-card-copy {
  width: calc(124 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row {
  width: calc(124 * var(--home-u)) !important;
  min-width: calc(124 * var(--home-u)) !important;
  max-width: calc(124 * var(--home-u)) !important;
  align-self: center !important;
  justify-self: start !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-template-rows: repeat(2, auto) !important;
  gap: calc(8 * var(--home-u)) calc(8 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row > div {
  width: calc(58 * var(--home-u)) !important;
  min-width: 0 !important;
  grid-template-rows: calc(31 * var(--home-u)) auto auto !important;
}

.app-shell.is-home .home-service-row strong,
.app-shell.is-home .home-service-row em {
  max-width: calc(58 * var(--home-u)) !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.app-shell.is-home .home-interior-slot {
  min-width: 0 !important;
}

/* Homepage supplied image replacement v126. */
.app-shell.is-home .home-hero-image {
  top: calc(82 * var(--home-u)) !important;
  left: 0 !important;
  width: 100% !important;
  height: calc(122 * var(--home-u)) !important;
  object-fit: cover !important;
  object-position: center bottom !important;
  opacity: 1 !important;
  filter: none !important;
}

.app-shell.is-home .home-logo-slot {
  top: calc(22 * var(--home-u)) !important;
  right: calc(18 * var(--home-u)) !important;
  width: calc(78 * var(--home-u)) !important;
  height: calc(43 * var(--home-u)) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  display: block !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.app-shell.is-home .home-logo-slot::before,
.app-shell.is-home .home-logo-slot::after,
.app-shell.is-home .home-logo-wave,
.app-shell.is-home .home-logo-slot span,
.app-shell.is-home .home-logo-slot strong {
  display: none !important;
  content: none !important;
}

.app-shell.is-home .home-logo-image {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: contain !important;
  object-position: center center !important;
}

.app-shell.is-home .home-interior-slot img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* Final homepage layout correction v127: exterior hero + reference-card proportions. */
.app-shell.is-home .home-hero-image {
  top: calc(74 * var(--home-u)) !important;
  left: calc(118 * var(--home-u)) !important;
  width: calc(257 * var(--home-u)) !important;
  height: calc(137 * var(--home-u)) !important;
  object-fit: cover !important;
  object-position: 44% 55% !important;
  filter: none !important;
}

.app-shell.is-home .home-hero::before {
  top: calc(70 * var(--home-u)) !important;
  height: calc(146 * var(--home-u)) !important;
  background:
    linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0.96) 24%, rgba(255, 255, 255, 0.2) 48%, rgba(255, 255, 255, 0) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0) 66%, rgba(255, 253, 249, 0.96) 100%) !important;
}

.app-shell.is-home .home-logo-slot {
  top: calc(26 * var(--home-u)) !important;
  right: calc(19 * var(--home-u)) !important;
  width: calc(70 * var(--home-u)) !important;
  height: calc(39 * var(--home-u)) !important;
}

.app-shell.is-home .home-selection-card {
  padding: calc(15 * var(--home-u)) !important;
  grid-template-columns: calc(103 * var(--home-u)) minmax(0, 1fr) !important;
  grid-template-rows: calc(55 * var(--home-u)) 1fr calc(24 * var(--home-u)) !important;
  gap: calc(9 * var(--home-u)) calc(15 * var(--home-u)) !important;
}

.app-shell.is-home .home-card-copy,
.app-shell.is-home .home-service-row {
  width: calc(103 * var(--home-u)) !important;
  min-width: calc(103 * var(--home-u)) !important;
  max-width: calc(103 * var(--home-u)) !important;
}

.app-shell.is-home .home-card-copy h2 {
  font-size: calc(19.5 * var(--home-u)) !important;
}

.app-shell.is-home .home-card-copy p {
  font-size: calc(10.2 * var(--home-u)) !important;
  line-height: 1.25 !important;
}

.app-shell.is-home .home-service-row {
  gap: calc(12 * var(--home-u)) calc(9 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row > div {
  width: calc(47 * var(--home-u)) !important;
  grid-template-rows: calc(25 * var(--home-u)) auto auto !important;
  gap: calc(3 * var(--home-u)) !important;
}

.app-shell.is-home .home-mini-icon {
  width: calc(25 * var(--home-u)) !important;
  height: calc(25 * var(--home-u)) !important;
  min-width: calc(25 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row strong,
.app-shell.is-home .home-service-row em {
  max-width: calc(47 * var(--home-u)) !important;
}

.app-shell.is-home .home-service-row strong {
  font-size: calc(7.8 * var(--home-u)) !important;
  line-height: 1.06 !important;
}

.app-shell.is-home .home-service-row em {
  font-size: calc(5.7 * var(--home-u)) !important;
  line-height: 1.04 !important;
}

.app-shell.is-home .home-interior-slot {
  border-radius: calc(12 * var(--home-u)) !important;
}

.app-shell.is-home .home-interior-slot img {
  object-position: 43% center !important;
}

.app-shell.is-home .home-enter-button {
  width: calc(89 * var(--home-u)) !important;
  height: calc(24 * var(--home-u)) !important;
  border-radius: calc(6 * var(--home-u)) !important;
}
