:root {
  --plum: #24172e;
  --violet: #542d72;
  --lime: #ddf780;
  --lilac: #f0eaf8;
  --ink: #24172e;
  --navy: #24172e;
  --paper: #faf8fd;
  --gold: #67427f;
}
body { background: var(--paper); color: var(--ink); }
button:focus-visible, a:focus-visible { outline-color: #8653ad; }
header { background: #faf8fdfa; border-color: #ddd1e8; }
header .brand, header .brand b, header nav a { color: var(--plum); }
header .header-phone { background: var(--plum); color: white; border-color: var(--plum); border-radius: 0; }
header nav { border-color: #ddd1e8; }
header nav a:hover { color: var(--violet); }
.progress { background: #ab7cd0; }
.hero {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 6fr);
  grid-template-rows: 1fr auto;
  min-height: 570px;
  height: min(680px, 76svh);
  max-height: none;
  color: white;
  background: var(--plum);
}
.hero-media { grid-column: 2; grid-row: 1 / 3; position: relative; isolation: isolate; overflow: hidden; }
.hero-bg { background-position: 41% center; }
.hero-media::after { content: ""; position: absolute; inset: 60% 0 0; background: linear-gradient(transparent, #150d24af); pointer-events: none; }
.hero-copy { grid-area: 1 / 1; align-self: center; margin: 0; max-width: none; padding: 48px clamp(30px,5vw,92px); }
.hero .eyebrow { color: var(--lime); letter-spacing: .24em; font-size: 11px; }
.hero h1 {
  font-family: inherit;
  font-size: clamp(32px, 3.7vw, 64px);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -.065em;
  margin: 25px 0 15px;
  text-shadow: none;
}
.hero h1 em { color: var(--lime); font-style: normal; display: block; font-size: 1.3em; margin-top: 6px; }
.hero-copy p { color: #e6d9ef; font-size: clamp(15px,1.45vw,20px); margin: 0; }
.hero-offer { color: white; font-size: 16px; margin: 24px 0 18px; }
.hero-offer small { color: #d7c6e2; font-size: 10px; display: block; font-weight: 400; margin-top: 5px; }
.hero-copy .button, .visit .light, .button.light, .gb-lead-form button { background: var(--lime); color: var(--plum); border-radius: 0; font-weight: 750; }
.hero-secondary { display: inline-block; color: #efe6f4; font-size: 13px; margin: 12px 0 0; padding: 9px 0; text-decoration: underline; text-underline-offset: 5px; }
.hero-bottom { grid-area: 2 / 2; align-self: end; position: relative; inset: auto; padding: 0 26px 27px; }
.hero-bottom > span { color: white; font-size: 11px; }
.hero .cg { right: 26px; bottom: 9px; color: white; }
.numbers { background: var(--lime); color: var(--plum); max-width: none; padding: 30px max(15px,calc((100vw - 1140px)/2)); border: 0; }
.numbers div { border-color: #a4b65c; }
.numbers strong { font-family: inherit; font-weight: 750; font-size: clamp(21px,3vw,40px); letter-spacing: -.045em; }
.numbers span { color: #414628; }
.section h2, .gallery-heading h2, .design-copy h2, .lead-copy h2 { font-family: inherit; font-weight: 780; letter-spacing: -.055em; line-height: 1.24; }
.section-top .eyebrow, .eyebrow, .gallery-heading .eyebrow { color: var(--violet); letter-spacing: .14em; }
.section-top > p, .life-grid p, .note, .gallery-section .note { color: #645870; }
.benefits .benefit-grid { gap: 12px; }
.benefits .benefit-grid article:nth-child(n) { background: var(--lilac); border: 0; border-top: 3px solid #8a5bad; border-radius: 0; box-shadow: none; color: var(--plum); }
.benefit-grid article h3, .benefit-grid article b, .benefit-grid article span, .benefit-grid article p { color: var(--plum); }
.benefit-grid article h3 { font-weight: 750; }
.benefits .benefit-total { background: var(--plum); color: white; border-radius: 0; }
.benefit-total h3, .benefit-total p, .benefit-total .text-btn { color: white; }
.benefit-total h3 em { color: var(--lime); font-family: inherit; font-weight: 800; }
.lead-section, .visit { background: var(--plum); color: white; }
.lead-copy h2, .lead-copy small, .lead-copy .lead-phone, .lead-copy .eyebrow, .lead-copy .deposit-label { color: white; }
.lead-copy .lead-phone, .lead-copy .eyebrow { color: var(--lime); }
.lead-card { border-radius: 0; color: var(--plum); }
.lead-card h3 { color: var(--plum); }
.gb-consent label { display: flex; align-items: flex-start; gap: 8px; margin-top: 8px; }
.gb-consent input[type=checkbox] { flex: none; width: 16px; height: 16px; margin: 3px 0 0; accent-color: var(--violet); }
.gb-consent details a { text-decoration: underline; }
.gallery-section, .overview, .units { background: var(--lilac); color: var(--plum); }
.gallery-heading h2, .gallery-heading p, .section h2, .life-grid h3, .life-grid article > span, .specs dt, .plan-title h3, .plan-title p, .complex-caption h3, .complex-caption p { color: var(--plum); }
.gallery-stage, .gallery-thumbs button, .plan, .complex-caption { border-radius: 0; }
.gallery-thumbs button.active, .tabs .selected, .unit-links a.current, .unit-links a:hover, .image-button > span { background: var(--plum); color: white; border-color: var(--plum); }
.design-copy { background: #e6d7f0; color: var(--plum); }
.design-copy h2, .design-copy p, .design-copy strong, .design-copy .story-link, .design-copy small { color: var(--plum); }
.visit h2, .visit p, .visit .eyebrow, .visit a, .visit small { color: white; }
.visit .eyebrow { color: var(--lime); }
.visit .light { color: var(--plum); }
.quick a:first-child, .mobile-bar a:last-child { background: var(--plum); color: white; }
.quick a, .quick a:hover { color: var(--plum); border-color: #ddd1e8; }
.quick a:hover, .mobile-bar a:first-child { background: var(--lime); color: var(--plum); }
footer { color: #574865; }
@media (max-width: 767px) {
  .hero { grid-template-columns: minmax(0,1fr); grid-template-rows: auto clamp(260px, 82vw, 385px); height: auto; min-height: 0; }
  .hero-media { grid-area: 2 / 1; }
  .hero-copy { padding: 34px 24px 27px; }
  .hero h1 { font-size: clamp(29px,8vw,44px); line-height: 1.12; margin: 16px 0 11px; }
  .hero-offer { margin: 16px 0 13px; }
  .hero-secondary { margin-left: 12px; }
  .hero-bottom { grid-area: 2 / 1; padding: 0 18px 24px; }
  .hero .cg { right: 18px; }
  .numbers { padding: 18px 10px; }
  .numbers span { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-bg { transition: none; transform: none; }
}
.numbers strong { color: var(--plum); }
.unit-links { background: var(--lilac); }
.independent-popups-group { align-items: center; }
.independent-popup.feature-popup { background: var(--plum); color: white; border: 1px solid #6f4e85; border-radius: 0; }
.feature-popup .independent-popup-head, .feature-popup .independent-popup-bottom, .feature-popup .independent-popup-link { background: var(--plum); color: white; border-color: #6f4e85; }
.feature-popup picture img { aspect-ratio: 2.35; object-fit: cover; max-height: 23svh; }
.feature-popup-copy { padding: 20px clamp(16px,3vw,34px); }
.feature-popup-copy h2 { margin: 0 0 12px; color: var(--lime); font-size: clamp(19px,3.2vw,34px); line-height: 1.2; letter-spacing: -.05em; }
.feature-popup-copy p { margin: 5px 0; font-size: clamp(12px,1.4vw,15px); line-height: 1.55; }
.feature-popup-copy small { display: block; margin: 9px 0 12px; color: #e6d9ef; font-size: 11px; }
.feature-popup-copy > span { display: inline-block; background: var(--lime); color: var(--plum); padding: 9px 13px; font-size: 12px; font-weight: 750; }
header nav { background: var(--lilac); border-bottom: 1px solid #ddd1e8; }
header nav a:hover { background: #e5d5f1; }
html { scroll-padding-top: 140px; }
#consultation { scroll-margin-top: 0; }
@media (max-width: 767px) { html { scroll-padding-top: 118px; } }
