:root {
  --text: #0f172a;
  --brand-primary: #0a7a2f;
  --brand-primary-text: #ffffff;
  --brand-primary-hover: color-mix(in srgb, var(--brand-primary) 82%, #000000);
  --brand-primary-hover-text: var(--brand-primary-text);
  --brand-primary-light: color-mix(in srgb, var(--brand-primary) 72%, white);
  --brand-primary-muted: color-mix(in srgb, var(--brand-primary) 12%, white);
  --brand-primary-border: color-mix(in srgb, var(--brand-primary) 20%, transparent);
  --brand-primary-glow: color-mix(in srgb, var(--brand-primary) 40%, transparent);
  --font-heading: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-body: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

html,
body {
  height: 100%;
}

html{
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  background: #ffffff;
  color: var(--text);
  overflow-x: hidden;
  padding-left: env(safe-area-inset-left, 0px);
  padding-right: env(safe-area-inset-right, 0px);
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: var(--font-heading);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.01em;
}

.navbar,
.btn,
.form-control,
.form-select,
.form-label,
.input-group-text,
.dropdown-menu,
.modal,
.table,
.badge {
  font-family: var(--font-body);
}

img,
video,
iframe {
  max-width: 100%;
}

.skip-link {
  position: absolute;
  left: 12px;
  top: 12px;
  transform: translateY(-200%);
  background: #111827;
  color: #fff;
  padding: 8px 10px;
  border-radius: 10px;
  text-decoration: none;
  z-index: 2000;
}

.skip-link:focus {
  transform: translateY(0);
}

.navbar .nav-link {
  color: rgba(15, 23, 42, 0.8);
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
  color: rgba(15, 23, 42, 0.95);
}

.brand-mark {
  width: 12px;
  height: 12px;
  border-radius: 4px;
  background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-light));
  box-shadow: 0 10px 30px var(--brand-primary-glow);
}

.site-logo {
  height: clamp(42px, 5.5vw, 54px);
  width: auto;
  max-width: min(240px, 42vw);
  display: block;
  object-fit: contain;
}

.site-brand-lockup {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.5vw, 16px);
  margin-right: 0.5rem;
  padding-top: 4px;
  padding-bottom: 4px;
  max-width: min(100%, 520px);
}

.site-brand-fallback {
  font-weight: 600;
  font-size: 1.05rem;
  color: #0f172a;
  white-space: nowrap;
}

.brand-partner-lockup {
  display: flex;
  align-items: stretch;
  flex-shrink: 0;
}

.site-brand-lockup .brand-partner-lockup {
  padding-left: clamp(12px, 1.4vw, 16px);
  margin-left: 2px;
}

.brand-partner-lockup-rule {
  width: 2px;
  flex-shrink: 0;
  border-radius: 1px;
  background: #94a3b8;
  align-self: stretch;
  min-height: 2.75rem;
}

.brand-partner-lockup-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.12rem;
  line-height: 1.15;
  padding-left: clamp(12px, 1.4vw, 16px);
}

.brand-partner-lockup-line1 {
  font-weight: 700;
  font-size: clamp(0.9rem, 1.85vw, 1.0625rem);
  color: #0f172a;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.brand-partner-lockup-line2 {
  font-weight: 400;
  font-size: clamp(0.78rem, 1.45vw, 0.9rem);
  color: #334155;
  letter-spacing: 0;
  white-space: nowrap;
}

.home-hero {
  padding-top: 0;
}

.site-home-wrap {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.site-home-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
}

.site-legal-wrap .site-legal-content {
  flex: 1;
  min-width: 0;
  display: flex;
  justify-content: center;
}

.site-legal-article {
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
  padding-left: clamp(16px, 4vw, 32px);
  padding-right: clamp(16px, 4vw, 32px);
}

.site-legal-title {
  font-family: var(--font-heading);
  font-weight: 600;
  color: var(--text, #0f172a);
  font-size: clamp(1.6rem, 2.2vw + 1rem, 2.25rem);
  margin: 0 0 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.1);
}

.site-legal-body {
  line-height: 1.75;
  color: rgba(15, 23, 42, 0.78);
  font-size: 1rem;
}

.site-legal-body h1,
.site-legal-body h2,
.site-legal-body h3,
.site-legal-body h4 {
  color: rgba(15, 23, 42, 0.92);
  font-family: var(--font-heading);
  font-weight: 600;
  margin: 1.75rem 0 0.75rem;
  line-height: 1.3;
}

.site-legal-body h1 { font-size: 1.75rem; }
.site-legal-body h2 { font-size: 1.4rem; }
.site-legal-body h3 { font-size: 1.2rem; }
.site-legal-body h4 { font-size: 1.05rem; }

.site-legal-body p {
  margin: 0 0 1rem;
}

.site-legal-body ul,
.site-legal-body ol {
  margin: 0 0 1rem;
  padding-left: 1.5rem;
}

.site-legal-body li {
  margin-bottom: 0.4rem;
}

.site-legal-body a {
  color: var(--brand-primary, #0a7a2f);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.site-legal-body a:hover {
  color: var(--brand-primary-hover, var(--brand-primary, #0a7a2f));
}

.site-legal-body blockquote {
  margin: 1rem 0;
  padding: 0.75rem 1rem;
  border-left: 3px solid var(--brand-primary, #0a7a2f);
  background: rgba(15, 23, 42, 0.04);
  border-radius: 0 8px 8px 0;
  color: rgba(15, 23, 42, 0.78);
}

.site-legal-body pre,
.site-legal-body code {
  background: rgba(15, 23, 42, 0.06);
  border-radius: 6px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.site-legal-body pre {
  padding: 0.85rem 1rem;
  overflow-x: auto;
  font-size: 0.9rem;
}

.site-legal-body code {
  padding: 0.1rem 0.35rem;
  font-size: 0.92em;
}

.site-legal-body img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}

.site-legal-body .ql-align-center { text-align: center; }
.site-legal-body .ql-align-right  { text-align: right; }
.site-legal-body .ql-align-justify { text-align: justify; }

@media (min-width: 1200px) {
  .site-legal-wrap.site-home-wrap:has(.home-lead-rail) .site-home-main {
    padding-right: 380px;
  }
}

@media (max-width: 1199.98px) {
  .site-legal-wrap .home-lead-rail {
    position: static;
    width: 100%;
    max-width: none;
    height: auto;
    max-height: none;
    flex: 0 0 auto;
  }

  .site-legal-wrap .rail-form-card {
    min-height: 0;
    box-shadow: none;
  }
}

.site-home-layout {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}

.home-hero-full {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  padding: 0;
}

.hero-carousel-full {
  flex: 1;
  display: flex;
  flex-direction: column;
  border-radius: 0;
  border-left: 0;
  border-right: 0;
  border-top: 0;
  box-shadow: none;
  min-height: calc(100svh - var(--site-nav-h, 56px));
}

@media (max-width: 1199.98px) {
  .hero-carousel-full {
    min-height: min(50vw, 380px);
    max-height: 420px;
  }

  .slider-widget-wrap--desktop {
    display: none !important;
  }

  .site-home-layout {
    display: flex;
    flex-direction: column;
  }

  .slider-widget-slot-mobile {
    display: block !important;
    background: #fff;
    flex: 0 0 auto;
    order: 1;
    width: 100%;
  }

  .site-home-body {
    order: 3;
  }

  .home-hero-full {
    order: 0;
  }

  .slider-widget-slot-mobile .slider-widget-wrap {
    position: static !important;
    inset: auto;
    pointer-events: auto;
    padding: 12px 12px 16px;
    width: 100%;
    height: auto;
  }

  .slider-widget-slot-mobile .slider-widget {
    position: static !important;
    left: auto;
    top: auto;
    transform: none;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.12);
    border: 1px solid rgba(15, 23, 42, 0.1);
  }

  .home-lead-rail {
    order: 2;
    position: static;
    width: 100%;
    max-width: none;
    height: auto;
    max-height: none;
    flex: 0 0 auto;
    border-top: 0;
    box-shadow: none;
    z-index: auto;
  }

  .rail-form-card {
    border-top: 1px solid rgba(15, 23, 42, 0.08);
  }
}

@media (min-width: 1200px) {
  .slider-widget-slot-mobile {
    display: none !important;
  }

  .site-home-main:has(.home-lead-rail) {
    padding-right: 380px;
  }

  .home-lead-rail {
    position: fixed;
    right: 0;
    top: 0;
    width: 380px;
    max-width: min(380px, 100vw);
    height: 100vh;
    max-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    z-index: 1030;
    border-top: 0;
    border-left: 0;
    box-shadow: none;
    background: #fff;
  }

  .rail-form-card {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    border-top: 0;
    box-shadow: -12px 0 40px rgba(0, 0, 0, 0.08);
  }

  .hero-carousel-full {
    min-height: calc(100svh - var(--site-nav-h, 56px));
    max-height: none;
  }

  .site-home-wrap:has(.home-lead-rail) .wa-float {
    right: calc(380px + 24px + env(safe-area-inset-right, 0px));
    bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  }

  .rail-topbar {
    min-height: var(--site-nav-h, 56px);
    font-size: 0.875rem;
  }

  .rail-topbar-item {
    min-height: var(--site-nav-h, 56px);
    padding: 0 12px;
  }

  .rail-ico {
    width: 16px;
    height: 16px;
  }
}

.hero-carousel-full .carousel-inner,
.hero-carousel-full .carousel-item,
.hero-carousel-full .hero-slide-wrap {
  height: 100%;
  min-height: inherit;
}

.hero-slide-wrap {
  position: relative;
  min-height: inherit;
}

.hero-slide-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 24px 16px 80px;
  pointer-events: none;
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.45);
}

.hero-overlay-kicker {
  font-size: clamp(0.95rem, 2vw, 1.15rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 8px;
  opacity: 0.95;
}

.hero-overlay-script {
  font-family: "Dancing Script", cursive;
  font-size: clamp(3rem, 10vw, 5.5rem);
  line-height: 1;
  margin: 0;
  font-weight: 700;
}

.hero-overlay-foot {
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(44px, 12vw, 56px);
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 0 clamp(12px, 3vw, 32px);
  font-weight: 800;
  font-size: clamp(0.65rem, 1.5vw, 0.85rem);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.hero-overlay-foot span:empty {
  display: none;
}

.home-lead-rail {
  width: 100%;
  background: transparent;
  border-top: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
}

.rail-inner {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0;
}

.rail-form-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  overflow: hidden;
}

.rail-topbar {
  display: flex;
  flex-shrink: 0;
  margin: 0;
  background: #0a0a0a;
  color: #f3f4f6;
  font-size: clamp(0.8rem, 2.5vw, 0.875rem);
  font-weight: 700;
  min-height: var(--site-nav-h, 56px);
}

.rail-form-block {
  flex: 0 0 auto;
  margin: 0;
  padding: 0 0 8px;
  background: #fff;
}

.rail-topbar-item {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--site-nav-h, 56px);
  padding: 0 10px;
  text-align: center;
  line-height: 1.25;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

button.rail-topbar-item:hover {
  background: rgba(255, 255, 255, 0.06);
}

.rail-topbar-phone {
  color: #f3f4f6;
  text-decoration: none;
  border-left: 1px solid rgba(255, 255, 255, 0.12);
}

.rail-topbar-phone:hover {
  color: #fff;
}

.rail-ico {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  opacity: 0.9;
}

.rail-ico-cal {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM5 8V6h14v2H5z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.rail-ico-phone {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.21z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.rail-form-title {
  font-size: 1.05rem;
  font-weight: 800;
  text-align: center;
  margin: 0;
  padding: 18px 20px 14px;
  color: #0f172a;
  line-height: 1.35;
}

.rail-form {
  padding: 4px 20px 22px;
}

.rail-form .mb-2 {
  margin-bottom: 1rem !important;
}

.rail-form .form-check {
  margin-bottom: 1.1rem !important;
  padding-top: 2px;
}

.rail-input,
.rail-cc {
  border-radius: 8px;
  border-color: rgba(15, 23, 42, 0.14);
  padding: 0.55rem 0.75rem;
}

.rail-cc {
  max-width: 88px;
  flex-shrink: 0;
}

.rail-consent .form-check-label {
  color: rgba(15, 23, 42, 0.72);
  line-height: 1.35;
}

.rail-btn {
  border-radius: 10px;
  font-weight: 800;
  padding: 12px 16px;
}

.rail-btn-dark {
  filter: brightness(0.92);
  border-color: rgba(0, 0, 0, 0.15);
  margin-top: 0.25rem;
}

.rail-features-in-form {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 18px 0 16px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  margin-top: 6px;
}

.rail-feat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  font-size: 0.68rem;
  font-weight: 700;
  color: rgba(15, 23, 42, 0.75);
  text-align: center;
  max-width: 90px;
}

.rail-feat-ico {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--brand-primary-muted);
  border: 1px solid var(--brand-primary-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.rail-feat-ico img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (max-width: 1199.98px) {
  .home-lead-rail .rail-form-card {
    min-height: 0;
  }
}

.wa-float {
  position: fixed;
  right: calc(18px + env(safe-area-inset-right, 0px));
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  z-index: 1080;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #25d366;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
  text-decoration: none;
}

.wa-float:hover {
  color: #fff;
  filter: brightness(1.05);
}

@media (min-width: 1200px) {
  .wa-float {
    right: calc(24px + env(safe-area-inset-right, 0px));
    bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  }
}

.hero {
  padding-top: 12px;
}

.hero-carousel {
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.12);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.18);
  background: #ffffff;
  position: relative;
}

.hero-carousel .carousel-indicators {
  margin-bottom: 10px;
}

.hero-slide {
  min-height: 560px;
  background:
    linear-gradient(135deg, rgba(7, 16, 28, 0.55), rgba(7, 16, 28, 0.15)),
    var(--hero-image);
  background-size: cover;
  background-position: var(--hero-pos, center);
  position: relative;
}

.hero-slide.hero-slide-tall {
  min-height: inherit;
  border-radius: 0;
}

.hero-slide-scrim {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 420px at 20% 10%, rgba(124, 58, 237, 0.18), transparent 60%),
    radial-gradient(900px 420px at 80% 0%, rgba(34, 197, 94, 0.18), transparent 60%);
  pointer-events: none;
}

.hero-facts-strip {
  margin-top: 16px;
  background: #fff;
  border-top: 1px solid rgba(15, 23, 42, 0.1);
  border-bottom: 1px solid rgba(15, 23, 42, 0.1);
}

.hero-facts-inner {
  display: flex;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.hero-fact-cell {
  flex: 1 1 0;
  min-width: 132px;
  padding: 16px 12px 18px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  border-right: 1px solid rgba(15, 23, 42, 0.1);
}

.hero-fact-cell:last-child {
  border-right: 0;
}

.hero-fact-icon-wrap {
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-fact-icon {
  max-height: 30px;
  max-width: 40px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.hero-fact-icon-ph {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-light));
  opacity: 0.4;
}

.hero-fact-title {
  font-weight: 700;
  font-size: 0.92rem;
  color: #0f172a;
  line-height: 1.25;
}

.hero-fact-value {
  font-size: 0.78rem;
  font-weight: 500;
  color: rgba(15, 23, 42, 0.58);
  line-height: 1.4;
  max-width: 24ch;
}

.youtube-section .ratio {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
  border: 1px solid rgba(15, 23, 42, 0.08);
}

.youtube-section iframe {
  border: 0;
}

.slider-widget-wrap {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.slider-widget {
  width: min(370px, calc(100% - 28px));
  border-radius: 22px;
  overflow: hidden;
  background: #ffffff;
  color: #111827;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.55);
  border: 1px solid rgba(0, 0, 0, 0.1);
  position: absolute;
  left: 16px;
  top: 16px;
  pointer-events: auto;
}

@media (min-width: 1200px) {
  .slider-widget-wrap--desktop .slider-widget {
    left: 16px;
    top: 16px;
    transform: none;
  }
}

.sw-top {
  background: var(--brand-primary);
  color: var(--brand-primary-text);
  text-align: center;
  padding: 10px 12px;
  font-weight: 800;
  letter-spacing: 0.2px;
}

.sw-body {
  padding: 14px 16px 10px;
  background:
    radial-gradient(700px 260px at 20% 0%, rgba(0, 0, 0, 0.04), transparent 60%),
    #fff;
}

.sw-title {
  font-family: var(--font-heading);
  text-align: center;
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1.15;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.sw-by {
  text-align: center;
  margin-top: 8px;
  font-weight: 700;
  color: rgba(17, 24, 39, 0.8);
}

.sw-loc {
  text-align: center;
  margin-top: 4px;
  color: rgba(17, 24, 39, 0.65);
}

.sw-stats {
  margin-top: 12px;
  background: rgba(17, 24, 39, 0.06);
  border: 1px solid rgba(17, 24, 39, 0.08);
  border-radius: 12px;
  padding: 10px 12px;
}

.sw-stat {
  color: rgba(17, 24, 39, 0.82);
  font-size: 0.95rem;
}

.sw-stat + .sw-stat {
  margin-top: 6px;
}

.sw-strips {
  background: var(--brand-primary);
  color: var(--brand-primary-text);
}

.sw-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 12px;
  font-weight: 800;
  border-top: 1px dashed rgba(255, 255, 255, 0.45);
}

.sw-strip:first-child {
  border-top: 0;
}

.sw-diamond {
  width: 8px;
  height: 8px;
  background: var(--brand-primary-text);
  transform: rotate(45deg);
  border-radius: 1px;
}

.sw-bottom {
  padding: 14px 16px 16px;
  text-align: center;
}

.sw-unit {
  font-size: 1.05rem;
  font-weight: 700;
}

.sw-price {
  margin-top: 8px;
  font-size: 1.35rem;
  font-weight: 950;
  color: var(--brand-primary);
}

.sw-price-suffix {
  margin-left: 6px;
  font-weight: 900;
  font-size: 1rem;
}

.sw-cta {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-top: 12px;
  width: 100%;
  padding: 12px 14px;
  border-radius: 14px;
  background: var(--brand-primary);
  color: var(--brand-primary-text);
  text-decoration: none;
  font-weight: 900;
  border: 2px solid rgba(0, 0, 0, 0.12);
}

.sw-cta:hover,
.sw-cta:focus {
  background: var(--brand-primary-hover);
  border-color: var(--brand-primary-hover);
  color: var(--brand-primary-hover-text);
}

.btn-brand,
a.btn-brand {
  --bs-btn-color: var(--brand-primary-text);
  --bs-btn-bg: var(--brand-primary);
  --bs-btn-border-color: var(--brand-primary);
  --bs-btn-hover-color: var(--brand-primary-hover-text);
  --bs-btn-hover-bg: var(--brand-primary-hover);
  --bs-btn-hover-border-color: var(--brand-primary-hover);
  --bs-btn-active-color: var(--brand-primary-hover-text);
  --bs-btn-active-bg: var(--brand-primary-hover);
  --bs-btn-active-border-color: var(--brand-primary-hover);
  --bs-btn-disabled-color: var(--brand-primary-text);
  --bs-btn-disabled-bg: var(--brand-primary);
  --bs-btn-disabled-border-color: var(--brand-primary);
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
  color: var(--brand-primary-text) !important;
}

.btn-brand:hover,
.btn-brand:focus,
.btn-brand:focus-visible,
.btn-brand:active,
.btn-brand.active,
.btn-check:checked + .btn-brand,
a.btn-brand:hover,
a.btn-brand:focus,
a.btn-brand:focus-visible,
a.btn-brand:active {
  background-color: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
  color: var(--brand-primary-hover-text) !important;
  box-shadow: none;
}

.pricing-table .btn-brand,
.pricing-mobile-cta.btn-brand {
  --bs-btn-hover-bg: var(--brand-primary-hover);
  --bs-btn-hover-border-color: var(--brand-primary-hover);
  --bs-btn-hover-color: var(--brand-primary-hover-text);
}

/* Make Bootstrap primary follow brand color (site-wide) */
.btn-primary {
  --bs-btn-bg: var(--brand-primary);
  --bs-btn-border-color: var(--brand-primary);
  --bs-btn-color: var(--brand-primary-text);
  --bs-btn-hover-bg: var(--brand-primary-hover);
  --bs-btn-hover-border-color: var(--brand-primary-hover);
  --bs-btn-hover-color: var(--brand-primary-hover-text);
  --bs-btn-active-bg: var(--brand-primary-hover);
  --bs-btn-active-border-color: var(--brand-primary-hover);
  --bs-btn-active-color: var(--brand-primary-hover-text);
  --bs-btn-disabled-bg: var(--brand-primary);
  --bs-btn-disabled-border-color: var(--brand-primary);
  background: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
  color: var(--brand-primary-text) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
  color: var(--brand-primary-hover-text) !important;
}

.btn-outline-primary {
  --bs-btn-color: var(--brand-primary);
  --bs-btn-border-color: var(--brand-primary);
  --bs-btn-hover-bg: var(--brand-primary-hover);
  --bs-btn-hover-border-color: var(--brand-primary-hover);
  --bs-btn-hover-color: var(--brand-primary-hover-text);
  --bs-btn-active-bg: var(--brand-primary-hover);
  --bs-btn-active-border-color: var(--brand-primary-hover);
  --bs-btn-active-color: var(--brand-primary-hover-text);
  border-color: var(--brand-primary) !important;
  color: var(--brand-primary) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
  background: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
  color: var(--brand-primary-hover-text) !important;
}

.about-section {
  padding-top: 2.25rem;
  padding-bottom: 2.25rem;
}

.about-title {
  color: var(--brand-primary);
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: clamp(1.35rem, 3.2vw, 1.85rem);
}

.about-body {
  line-height: 1.7;
}

.about-body[data-collapsed="true"] {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.about-toggle {
  color: rgba(15, 23, 42, 0.72);
  text-decoration: none;
  font-weight: 700;
}

.about-toggle:hover {
  color: rgba(15, 23, 42, 0.92);
  text-decoration: underline;
}

.about-image-wrap {
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.10);
  overflow: hidden;
  background: #fff;
}

.about-image {
  width: 100%;
  height: auto;
  display: block;
}

.section-head {
  margin-bottom: 0.25rem;
}

.section-title {
  color: var(--brand-primary);
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: clamp(1.35rem, 3.2vw, 1.85rem);
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.section-underline {
  width: 140px;
  height: 2px;
  background: rgba(15, 23, 42, 0.22);
  margin: 0 auto;
  position: relative;
}

.section-underline::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -1px;
  width: 40px;
  height: 4px;
  background: var(--brand-primary);
  transform: translateX(-50%);
  border-radius: 10px;
}

.highlights-section {
  background: linear-gradient(90deg, #f3f4f6 0%, #ffffff 50%, #f3f4f6 100%);
}

.highlights-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(14px, 2.5vw, 24px);
  max-width: 72rem;
  margin: 1.75rem auto 0;
}

@media (min-width: 768px) {
  .highlights-grid {
    grid-template-columns: 1fr 1fr;
    gap: clamp(18px, 3vw, 40px);
  }
}

.highlights-column {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 2.2vw, 22px);
}

.hl-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: clamp(14px, 2.5vw, 20px) clamp(16px, 3vw, 22px);
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease,
    background 0.3s ease;
  cursor: default;
}

.hl-card:hover {
  transform: translateY(-4px) scale(1.03);
  background: #ffffff;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.14);
}

.hl-card-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--brand-primary);
  color: var(--brand-primary-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px var(--brand-primary-glow);
  transition:
    transform 0.3s ease,
    background 0.3s ease,
    box-shadow 0.3s ease;
}

.hl-card:hover .hl-card-icon {
  transform: scale(1.1) rotate(-6deg);
  background: var(--brand-primary-light);
  box-shadow: 0 6px 16px var(--brand-primary-glow);
}

.hl-card-text {
  font-size: clamp(0.92rem, 2.1vw, 1.05rem);
  font-weight: 500;
  color: rgba(15, 23, 42, 0.88);
  line-height: 1.4;
  text-align: left;
}

@media (prefers-reduced-motion: reduce) {
  .hl-card,
  .hl-card-icon {
    transition: none;
  }

  .hl-card:hover {
    transform: none;
  }

  .hl-card:hover .hl-card-icon {
    transform: none;
  }
}

.pricing-card {
  border-radius: 18px;
  overflow: hidden;
  border: 2px solid rgba(15, 23, 42, 0.12);
  background: rgba(15, 23, 42, 0.04);
}

.pricing-card .table-responsive {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

.pricing-table {
  width: 100%;
  table-layout: fixed;
  min-width: 560px;
  font-size: clamp(0.78rem, 2.2vw, 1rem);
}

.pricing-table th:nth-child(1),
.pricing-table td:nth-child(1) {
  width: 22%;
}

.pricing-table th:nth-child(2),
.pricing-table td:nth-child(2) {
  width: 34%;
}

.pricing-table th:nth-child(3),
.pricing-table td:nth-child(3) {
  width: 44%;
}

.pricing-col-action {
  text-align: left;
}

.pricing-row-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 2vw, 20px);
  min-width: 0;
}

.pricing-row-price {
  font-weight: 800;
  flex: 0 1 auto;
  min-width: 0;
  line-height: 1.35;
}

.pricing-row-action .btn {
  flex: 0 0 auto;
  max-width: 100%;
  white-space: nowrap;
}

@media (max-width: 1199.98px) {
  .pricing-row-action .btn {
    white-space: normal;
    text-align: center;
    line-height: 1.25;
    padding-left: 12px;
    padding-right: 12px;
  }
}

.pricing-table thead th {
  background: var(--brand-primary);
  color: var(--brand-primary-text);
  font-weight: 900;
  border: 0 !important;
  padding: clamp(10px, 2.2vw, 14px) clamp(8px, 2vw, 16px);
}

.pricing-table tbody td {
  padding: clamp(10px, 2.2vw, 14px) clamp(8px, 2vw, 16px);
  vertical-align: middle;
  border-color: rgba(15, 23, 42, 0.08);
}

.pricing-table tbody tr:nth-child(even) td {
  background: rgba(255, 255, 255, 0.65);
}

.pricing-mobile-stack {
  display: none;
}

@media (max-width: 991.98px) {
  .pricing-desktop-table {
    display: none !important;
  }

  .pricing-card {
    border: 2px solid var(--brand-primary);
    background: #f3f4f6;
    border-radius: 14px;
    overflow: hidden;
    padding: 0;
  }

  .pricing-mobile-stack {
    display: flex;
    flex-direction: column;
  }

  .pricing-mobile-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    padding: 18px 16px 20px;
    background: #fff;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  }

  .pricing-mobile-card:last-child {
    border-bottom: 0;
  }

  .pricing-mobile-card:nth-child(even) {
    background: #f8faf9;
  }

  .pricing-mobile-type {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.25;
  }

  .pricing-mobile-area {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 500;
    color: rgba(15, 23, 42, 0.62);
    line-height: 1.35;
  }

  .pricing-mobile-price {
    margin: 4px 0 10px;
    font-size: 1rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.3;
  }

  .pricing-mobile-cta {
    width: 100%;
    max-width: 320px;
    margin-top: 4px;
    padding: 11px 16px;
    border-radius: 10px;
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    white-space: normal;
    line-height: 1.25;
  }

  .pricing-mobile-cta:hover,
  .pricing-mobile-cta:focus,
  .pricing-mobile-cta:active {
    background-color: var(--brand-primary-hover) !important;
    border-color: var(--brand-primary-hover) !important;
    color: var(--brand-primary-hover-text) !important;
  }
}

.pricing-table tbody tr:hover .btn-brand {
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
  color: var(--brand-primary-text) !important;
}

.pricing-table tbody tr:hover .btn-brand:hover {
  background-color: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
  color: var(--brand-primary-hover-text) !important;
}

.amenities-section {
  background: #f4f5f7;
}

.amenities-title {
  color: #0f172a;
}

.amenities-subtitle {
  color: rgba(15, 23, 42, 0.62);
  font-size: clamp(0.9rem, 2.2vw, 1rem);
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}

.amenities-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 2.5vw, 24px);
  margin-top: 1.5rem;
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 576px) {
  .amenities-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 992px) {
  .amenities-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.5rem;
  }
}

.amenity-card {
  position: relative;
  background: #ffffff;
  border: 0;
  border-radius: 12px;
  padding: clamp(14px, 2.5vw, 20px) clamp(10px, 2vw, 14px);
  text-align: center;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
  height: 100%;
  max-width: none;
  margin: 0;
  cursor: pointer;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.amenity-card:hover {
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.14);
}

.amenity-card-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.amenity-icon {
  width: 34px;
  height: 34px;
  object-fit: contain;
  margin-bottom: 0;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.06));
  transition: transform 0.3s ease, filter 0.3s ease;
}

.amenity-card:hover .amenity-icon {
  transform: scale(1.08);
  filter: drop-shadow(0 6px 14px var(--brand-primary-glow));
}

.amenity-icon-placeholder {
  width: 34px;
  height: 34px;
  margin: 0;
  color: var(--brand-primary);
  font-weight: 900;
  font-size: 1.25rem;
  line-height: 34px;
  transition: transform 0.3s ease, color 0.3s ease;
}

.amenity-card:hover .amenity-icon-placeholder {
  transform: scale(1.08);
  color: var(--brand-primary-light);
}

.amenity-name {
  font-weight: 600;
  color: rgba(15, 23, 42, 0.9);
  font-size: clamp(0.78rem, 2vw, 0.9rem);
  line-height: 1.25;
  letter-spacing: 0.02em;
}

@media (prefers-reduced-motion: reduce) {
  .amenity-card,
  .amenity-icon,
  .amenity-icon-placeholder {
    transition: none;
  }

  .amenity-card:hover {
    transform: none;
  }

  .amenity-card:hover .amenity-icon,
  .amenity-card:hover .amenity-icon-placeholder {
    transform: none;
  }
}

.plans-section .section-head {
  margin-bottom: 0;
}

.plans-tabs-wrap {
  display: flex;
  justify-content: center;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 4px;
}

.plans-tabs {
  --plans-tab-active: #6d1f3c;
  display: inline-flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  gap: 0 32px;
  width: auto;
  max-width: 100%;
  margin: 0 auto;
  border-bottom: 0;
  padding: 0;
}

.plans-tabs .nav-item {
  flex: 0 0 auto;
}

.plans-tabs .nav-link {
  border: 0;
  border-radius: 0;
  color: rgba(15, 23, 42, 0.55);
  font-weight: 700;
  font-size: 1rem;
  white-space: nowrap;
  padding: 10px 2px 14px;
  background: transparent;
  margin-bottom: 0;
}

.plans-tabs .nav-link:hover,
.plans-tabs .nav-link:focus {
  color: var(--plans-tab-active);
  border-color: transparent;
  isolation: isolate;
}

.plans-tabs .nav-link.active {
  color: var(--plans-tab-active);
  border-bottom: 2px solid var(--plans-tab-active);
  background: transparent;
}

.plans-tabcontent-wrap {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}

.plans-tabcontent {
  padding-top: 4px;
}

.plans-tabcontent > .tab-pane {
  width: 100%;
}

.plans-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px 24px;
  width: 100%;
  max-width: 1260px;
  margin: 0 auto;
  padding: 12px 0 24px;
  align-items: stretch;
  justify-items: center;
}

/* Master / single plan: card same height as floor plan cards, just wider */
.plans-grid:has(> .plans-card:only-child) {
  grid-template-columns: minmax(0, 820px);
  justify-content: center;
}

/* Two plans: equal halves, centered */
.plans-grid:has(> .plans-card:nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 880px;
}

@media (max-width: 991.98px) {
  .plans-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 16px;
  }
}

@media (max-width: 575.98px) {
  .plans-grid {
    grid-template-columns: 1fr;
    gap: 28px 0;
    max-width: 360px;
    margin-left: auto;
    margin-right: auto;
  }

  .plans-tabs {
    gap: 0 20px;
  }

  .plans-tabs .nav-link {
    font-size: 0.92rem;
  }
}

.plans-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 14px;
  width: 100%;
  min-width: 0;
}

.plans-card-label {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 4px;
  background: #f5d000;
  color: #111827;
  font-weight: 800;
  font-size: 0.82rem;
  line-height: 1.25;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
  max-width: 100%;
}

.plans-card-media {
  width: 100%;
  max-width: 520px;
  display: flex;
  justify-content: center;
  align-items: center;
  height: clamp(260px, 24vw + 60px, 380px);
  padding: 10px;
  border: 1px solid rgba(15, 23, 42, 0.14);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}

/* Single plan card can stretch wider for landscape master plan, same height */
.plans-grid:has(> .plans-card:only-child) .plans-card-media {
  max-width: 100%;
}

.plans-card .plans-img-btn {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.plans-img-placeholder {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(15, 23, 42, 0.45);
  font-weight: 600;
  background: rgba(15, 23, 42, 0.04);
  border: 1px dashed rgba(15, 23, 42, 0.12);
  border-radius: 8px;
}

.plans-card .plans-img {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  display: block;
  object-fit: contain;
  background: #fff;
}

@media (max-width: 991.98px) {
  .plans-card-media {
    height: clamp(220px, 30vw + 20px, 320px);
  }
}

@media (max-width: 575.98px) {
  .plans-grid:has(> .plans-card:nth-child(2):last-child) {
    grid-template-columns: 1fr;
    max-width: 360px;
  }

  .plans-grid:has(> .plans-card:only-child) {
    grid-template-columns: minmax(0, 1fr);
  }

  .plans-card-media {
    height: clamp(200px, 56vw, 280px);
  }
}

.gallery-tile{
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.10);
  box-shadow: 0 14px 30px rgba(0,0,0,0.08);
  background: #fff;
  height: 210px;
}

.gallery-tile-btn,
.plans-img-btn {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
  position: relative;
  text-align: inherit;
}

.plans-img-btn {
  height: auto;
}

.gallery-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease, filter 0.35s ease;
}


.lightbox-zoom-hint {
  position: absolute;
  right: 12px;
  top: 12px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: var(--brand-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.18);
  opacity: 0;
  transform: scale(0.85);
  transition: opacity 0.25s ease, transform 0.25s ease;
  pointer-events: none;
}

.gallery-tile-btn:hover .lightbox-zoom-hint,
.gallery-tile-btn:focus-visible .lightbox-zoom-hint,
.plans-img-btn:hover .lightbox-zoom-hint,
.plans-img-btn:focus-visible .lightbox-zoom-hint {
  opacity: 1;
  transform: scale(1);
}

.gallery-tile-btn:hover img,
.gallery-tile-btn:focus-visible img,
.plans-img-btn:hover .plans-img,
.plans-img-btn:focus-visible .plans-img {
  transform: scale(1.03);
  filter: brightness(0.92);
}

.gallery-tile-btn:focus-visible,
.plans-img-btn:focus-visible {
  outline: 2px solid var(--brand-primary);
  outline-offset: 2px;
}
.gallery-label{
  position:absolute;
  left:12px;
  bottom:12px;
  background: rgba(0,0,0,0.65);
  color:#fff;
  font-weight: 900;
  font-size: 0.78rem;
  letter-spacing: .3px;
  padding: 6px 10px;
  border-radius: 999px;
  text-transform: uppercase;
}

.location-card{
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 18px;
  overflow:hidden;
  background: rgba(15,23,42,0.03);
}

/* FAQs (below location) */
.faq-block {
  margin-top: 2rem;
}

.faq-head {
  margin-bottom: 1rem;
}

.faq-accordion {
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05);
}

.faq-accordion-item {
  border: 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.faq-accordion-item:last-child {
  border-bottom: 0;
}

.faq-accordion .accordion-button {
  padding: 16px 18px;
  font-weight: 800;
  font-size: 0.95rem;
  line-height: 1.4;
  color: #0f172a;
  background: #fff;
  box-shadow: none;
}

.faq-accordion .accordion-button:not(.collapsed) {
  background: var(--brand-primary);
  color: var(--brand-primary-text);
}

.faq-accordion .accordion-button:not(.collapsed)::after {
  filter: brightness(0) invert(1);
}

.faq-accordion .accordion-button:focus {
  box-shadow: inset 0 0 0 2px rgba(15, 23, 42, 0.12);
  border-color: transparent;
}

.faq-accordion-body {
  padding: 14px 18px 18px;
  font-size: 0.92rem;
  line-height: 1.6;
  color: rgba(15, 23, 42, 0.78);
  background: rgba(15, 23, 42, 0.02);
}

@media (max-width: 575.98px) {
  .faq-block {
    margin-top: 1.5rem;
  }

  .faq-accordion .accordion-button {
    padding: 14px 14px;
    font-size: 0.88rem;
  }

  .faq-accordion-body {
    padding: 12px 14px 16px;
    font-size: 0.86rem;
  }
}
.location-map{
  position:relative;
  background:#fff;
}
.location-open{
  position:absolute;
  left:12px;
  top:12px;
  background:#fff;
  border:1px solid rgba(15,23,42,0.12);
  padding:8px 10px;
  border-radius:12px;
  font-weight: 800;
  color: rgba(15,23,42,.85);
  text-decoration:none;
}
.location-open:hover{color: rgba(15,23,42,.95); text-decoration: underline;}
.location-map-placeholder{
  height:320px;
  display:flex;
  align-items:center;
  justify-content:center;
  color: rgba(15,23,42,.60);
}
.location-tabs{
  padding: 10px 10px 0;
  gap: 8px;
  background: rgba(15,23,42,0.02);
  border-top: 1px solid rgba(15,23,42,0.10);
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
}

.location-tabs .nav-item {
  flex-shrink: 0;
}
.location-tabs .nav-link{
  border-radius: 12px;
  font-weight: 900;
  color: rgba(15,23,42,.78);
  border: 1px solid rgba(15,23,42,0.10);
  background:#fff;
  white-space: nowrap;
}
.location-tabs .nav-link.active{
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: var(--brand-primary-text);
}
.loc-item{
  display:flex;
  gap: 10px;
  align-items:center;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,0.7);
  border: 1px solid rgba(15,23,42,0.08);
}
.loc-pin{
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background: var(--brand-primary);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2c-3.866 0-7 3.134-7 7c0 5.25 7 13 7 13s7-7.75 7-13c0-3.866-3.134-7-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2c-3.866 0-7 3.134-7 7c0 5.25 7 13 7 13s7-7.75 7-13c0-3.866-3.134-7-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.loc-text{font-weight: 800; color: rgba(15,23,42,0.85);}
.loc-time{color: rgba(15,23,42,0.60); font-weight: 700;}

/* Location — mobile category grid (desktop tabs unchanged) */
.location-panel-mobile {
  display: none;
}

.location-items-mobile {
  display: none;
}

.location-cat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 12px 12px 0;
  background: rgba(15, 23, 42, 0.02);
  border-top: 1px solid rgba(15, 23, 42, 0.1);
}

.location-cat-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 72px;
  padding: 10px 8px;
  border: 1.5px solid var(--brand-primary);
  border-radius: 10px;
  background: #f8faf8;
  color: var(--brand-primary);
  font-weight: 800;
  font-size: 0.78rem;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.location-cat-btn:hover,
.location-cat-btn:focus-visible {
  background: var(--brand-primary-hover);
  border-color: var(--brand-primary-hover);
  color: var(--brand-primary-hover-text);
  outline: none;
}

.location-cat-btn:hover .location-cat-icon,
.location-cat-btn:focus-visible .location-cat-icon {
  background: var(--brand-primary-hover-text);
}

.location-cat-btn.active {
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: var(--brand-primary-text);
}

.location-cat-label {
  display: block;
}

.location-cat-icon {
  display: none;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  background: var(--brand-primary);
  -webkit-mask: center / contain no-repeat;
  mask: center / contain no-repeat;
}

.location-cat-btn.active .location-cat-icon {
  background: var(--brand-primary-text);
}

.location-cat-btn--healthcare .location-cat-icon,
.location-cat-btn--malls-shopping .location-cat-icon,
.location-cat-btn--malls .location-cat-icon,
.location-cat-btn--tech-park .location-cat-icon,
.location-cat-btn--restaurants-dining .location-cat-icon,
.location-cat-btn--restaurant .location-cat-icon,
.location-cat-btn--hotel .location-cat-icon {
  display: block;
}

.location-cat-btn--healthcare .location-cat-icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M10.5 4a1.5 1.5 0 0 1 3 0v1.09A5.5 5.5 0 0 1 19 10.5V12h1.5a1.5 1.5 0 0 1 0 3H19v1.5a1.5 1.5 0 0 1-3 0V15h-2v1.5a1.5 1.5 0 0 1-3 0V15H9v1.5a1.5 1.5 0 0 1-3 0V15H4.5a1.5 1.5 0 0 1 0-3H6v-1.5A5.5 5.5 0 0 1 10.5 5.09V4Zm1.5 7.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M10.5 4a1.5 1.5 0 0 1 3 0v1.09A5.5 5.5 0 0 1 19 10.5V12h1.5a1.5 1.5 0 0 1 0 3H19v1.5a1.5 1.5 0 0 1-3 0V15h-2v1.5a1.5 1.5 0 0 1-3 0V15H9v1.5a1.5 1.5 0 0 1-3 0V15H4.5a1.5 1.5 0 0 1 0-3H6v-1.5A5.5 5.5 0 0 1 10.5 5.09V4Zm1.5 7.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z'/%3E%3C/svg%3E");
}

.location-cat-btn--malls-shopping .location-cat-icon,
.location-cat-btn--malls .location-cat-icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 8.5 6 3h12l2 5.5H4Zm2.2 2v9a1.5 1.5 0 0 0 1.5 1.5h2.8v-5h2.5v5h2.8a1.5 1.5 0 0 0 1.5-1.5v-9H6.2Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 8.5 6 3h12l2 5.5H4Zm2.2 2v9a1.5 1.5 0 0 0 1.5 1.5h2.8v-5h2.5v5h2.8a1.5 1.5 0 0 0 1.5-1.5v-9H6.2Z'/%3E%3C/svg%3E");
}

.location-cat-btn--tech-park .location-cat-icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M8 7V4h8v3h3v13a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V7h3Zm2 0h4V6h-4v1Zm-1 5h2v2H9v-2Zm4 0h2v2h-2v-2Zm-4 4h2v2H9v-2Zm4 0h2v2h-2v-2Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M8 7V4h8v3h3v13a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V7h3Zm2 0h4V6h-4v1Zm-1 5h2v2H9v-2Zm4 0h2v2h-2v-2Zm-4 4h2v2H9v-2Zm4 0h2v2h-2v-2Z'/%3E%3C/svg%3E");
}

.location-cat-btn--restaurants-dining .location-cat-icon,
.location-cat-btn--restaurant .location-cat-icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M5 3h2v8a2 2 0 1 1-4 0V3Zm6 0h2v18h-2V3Zm6 0h2v5a3 3 0 1 1-2.83 2.995L15 8V3Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M5 3h2v8a2 2 0 1 1-4 0V3Zm6 0h2v18h-2V3Zm6 0h2v5a3 3 0 1 1-2.83 2.995L15 8V3Z'/%3E%3C/svg%3E");
}

.location-cat-btn--hotel .location-cat-icon {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 10V4h16v6h2v10H2V10h2Zm4-4v4h8V6H8Zm-2 8h2v2H6v-2Zm4 0h2v2h-2v-2Zm4 0h2v2h-2v-2Zm4 0h2v2h-2v-2Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 10V4h16v6h2v10H2V10h2Zm4-4v4h8V6H8Zm-2 8h2v2H6v-2Zm4 0h2v2h-2v-2Zm4 0h2v2h-2v-2Zm4 0h2v2h-2v-2Z'/%3E%3C/svg%3E");
}

.location-mobile-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1.5px solid var(--brand-primary);
  border-radius: 10px;
  background: #f8faf8;
}

.location-mobile-bar + .location-mobile-bar {
  margin-top: 10px;
}

.location-mobile-pin {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  background: #111827;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2c-3.866 0-7 3.134-7 7c0 5.25 7 13 7 13s7-7.75 7-13c0-3.866-3.134-7-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2c-3.866 0-7 3.134-7 7c0 5.25 7 13 7 13s7-7.75 7-13c0-3.866-3.134-7-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5Z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.location-mobile-text {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
  min-width: 0;
}

.location-mobile-label {
  font-weight: 800;
  color: #111827;
  word-break: break-word;
}

.location-mobile-time {
  font-weight: 600;
  color: rgba(15, 23, 42, 0.55);
}

@media (max-width: 767.98px) {
  .location-panel-desktop {
    display: none;
  }

  .location-panel-mobile {
    display: block;
  }

  .location-items-desktop {
    display: none !important;
  }

  .location-items-mobile {
    display: block;
  }

  .location-tab-content {
    padding: 10px 12px 14px !important;
  }

  .location-tab-content .tab-pane {
    padding-top: 2px;
  }
}

@media (min-width: 768px) {
  .location-panel-mobile {
    display: none !important;
  }

  .location-items-mobile {
    display: none !important;
  }
}

.py-lg-6 {
  padding-top: 4rem !important;
  padding-bottom: 4rem !important;
}

.kicker {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  padding: 6px 10px;
  background: rgba(15, 23, 42, 0.04);
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 999px;
  font-size: 0.9rem;
  color: rgba(15, 23, 42, 0.85);
}

.card-soft {
  background: rgba(255, 255, 255, 0.92);
  color: var(--text);
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.35);
}

.hero-card {
  position: relative;
  overflow: hidden;
}

.hero-card::after {
  content: "";
  position: absolute;
  inset: -40% -40% auto auto;
  width: 260px;
  height: 260px;
  background: radial-gradient(circle at 30% 30%, rgba(34, 197, 94, 0.35), transparent 60%);
  transform: rotate(20deg);
  pointer-events: none;
}

.metric {
  padding: 12px 12px;
  background: rgba(15, 23, 42, 0.04);
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.06);
}

.metric-label {
  font-size: 0.8rem;
  color: rgba(15, 23, 42, 0.7);
}

.metric-value {
  font-weight: 600;
}

.section {
  padding: clamp(2rem, 5vw, 3.5rem) 0;
}

.section-muted {
  background: rgba(15, 23, 42, 0.03);
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.feature-title {
  font-weight: 600;
  margin-bottom: 6px;
}

.listing-card .badge {
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.listing-meta {
  color: rgba(15, 23, 42, 0.7);
  font-size: 0.9rem;
}

.footer {
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  background: #ffffff;
}

.site-footer a{
  color: var(--footer-text);
  opacity: .9;
}
.site-footer a:hover{
  opacity: 1;
  text-decoration: underline;
}
.site-footer .footer-logo{
  height: 48px;
  width: auto;
  display: block;
}
.site-footer .footer-brand-block {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.site-footer .brand-partner-lockup-rule {
  background: color-mix(in srgb, var(--footer-text) 42%, transparent);
}

.site-footer .brand-partner-lockup-line1 {
  color: var(--footer-text);
  font-size: clamp(0.9rem, 1.6vw, 1.05rem);
}

.site-footer .brand-partner-lockup-line2 {
  color: var(--footer-text);
  opacity: 0.78;
  font-size: clamp(0.78rem, 1.35vw, 0.9rem);
}
.site-footer .footer-meta,
.site-footer .footer-copy,
.site-footer .footer-disclaimer{
  color: var(--footer-text);
  opacity: .85;
}
.site-footer .footer-sep{
  border-color: rgba(255,255,255,.18);
  opacity: 1;
}

.schedule-card{
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
}
.schedule-media{
  background: #f3f4f6;
}
.schedule-img{
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  display: block;
}
.schedule-img.placeholder{
  width: 100%;
  min-height: 320px;
}

/* --------------------------------------------------------------------------
   Responsive landing (mobile / tablet / desktop) — full-width safe layout
   -------------------------------------------------------------------------- */

.site-home-nav.navbar {
  min-height: var(--site-nav-h, 72px);
  z-index: 1030;
  background: #fff !important;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.08);
}

.site-home-nav .site-brand-lockup {
  flex: 0 1 auto;
  min-width: 0;
}

@media (max-width: 991.98px) {
  .site-home-nav .site-brand-lockup {
    max-width: calc(100% - 52px);
  }

  .site-home-nav .navbar-collapse {
    padding-bottom: 0.75rem;
  }

  .site-home-nav .navbar-nav .btn {
    width: 100%;
    margin-top: 0.35rem;
  }
}

@media (max-width: 575.98px) {
  .site-logo {
    height: 38px;
    max-width: min(160px, 38vw);
  }

  .brand-partner-lockup-line1 {
    font-size: 0.82rem;
  }

  .brand-partner-lockup-line2 {
    font-size: 0.72rem;
  }

  .brand-partner-lockup-rule {
    min-height: 2.35rem;
    width: 2px;
  }

  .brand-partner-lockup-text {
    padding-left: 10px;
  }

  .site-brand-lockup .brand-partner-lockup {
    padding-left: 10px;
  }
}

@media (max-width: 380px) {
  .brand-partner-lockup-line1,
  .brand-partner-lockup-line2 {
    white-space: normal;
    max-width: 7.5rem;
    line-height: 1.2;
  }
}

.site-home-nav .navbar-toggler {
  padding: 0.55rem 0.65rem;
  border-radius: 10px;
}

.site-home-nav .nav-link {
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
}

.hero-carousel-full .carousel-control-prev,
.hero-carousel-full .carousel-control-next,
.gallery-carousel .carousel-control-prev,
.gallery-carousel .carousel-control-next,
.plans-carousel .carousel-control-prev,
.plans-carousel .carousel-control-next {
  width: 44px;
  height: 44px;
  opacity: 0.92;
}

@media (pointer: coarse) {
  .hero-carousel-full .carousel-control-prev,
  .hero-carousel-full .carousel-control-next {
    width: 48px;
    height: 48px;
  }
}

.hero-carousel-full .carousel-indicators {
  margin-bottom: max(8px, env(safe-area-inset-bottom, 0px));
}

@media (max-width: 480px) {
  .hero-overlay-foot {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
  }

  .hero-overlay-foot span {
    max-width: 100%;
  }
}

@media (min-width: 992px) {
  .hero-facts-inner {
    scroll-snap-type: x proximity;
  }

  .hero-fact-cell {
    scroll-snap-align: start;
  }
}

@media (max-width: 991.98px) {
  .hero-facts-inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow-x: visible;
  }

  .hero-fact-cell {
    flex: none;
    min-width: 0;
    border-right: 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.1);
    padding: 14px 10px 16px;
  }

  .hero-fact-cell:nth-child(odd) {
    border-right: 1px solid rgba(15, 23, 42, 0.1);
  }

  .hero-fact-cell:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .hero-fact-title {
    font-size: 0.85rem;
  }

  .hero-fact-value {
    font-size: 0.72rem;
    max-width: none;
  }
}

.youtube-section .container {
  padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
  padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
}

@media (max-width: 575.98px) {
  .gallery-tile {
    height: clamp(150px, 42vw, 210px);
  }

  .gallery-label {
    font-size: 0.68rem;
    left: 8px;
    bottom: 8px;
    padding: 5px 8px;
  }
}

@media (max-width: 575.98px) {
  .amenity-card {
    padding: 12px 8px;
  }

  .amenity-card:hover {
    transform: translateY(-2px) scale(1.03);
  }

  .amenity-name {
    font-size: 0.82rem;
  }
}

.location-map iframe {
  min-height: 240px;
  height: clamp(240px, 55vw, 320px);
}

.loc-item {
  flex-wrap: wrap;
}

.loc-text {
  word-break: break-word;
}

@media (max-width: 575.98px) {
  .schedule-img,
  .schedule-img.placeholder {
    min-height: 220px;
  }
}

.site-footer .footer-disclaimer,
.site-footer .footer-meta,
.site-footer .footer-copy {
  word-break: break-word;
  overflow-wrap: anywhere;
}

.site-footer .d-flex.flex-lg-row {
  gap: 1rem !important;
}

@media (min-width: 992px) {
  .pricing-mobile-stack {
    display: none !important;
  }
}

#home,
.site-home-main main section[id] {
  scroll-margin-top: calc(var(--site-nav-h, 56px) + 12px);
}

/* Enquire popup (CTA modal) */
.enquire-modal {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  padding-top: max(16px, env(safe-area-inset-top));
  padding-bottom: max(16px, env(safe-area-inset-bottom));
}

.enquire-modal[hidden] {
  display: none !important;
}

.enquire-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(4px);
}

.enquire-modal-dialog {
  position: relative;
  width: min(440px, 100%);
  max-height: min(92vh, 720px);
  overflow: auto;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
  animation: enquire-modal-in 0.28s ease;
}

@keyframes enquire-modal-in {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.enquire-modal-header {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 14px 48px;
  background: var(--brand-primary);
  color: var(--brand-primary-text);
}

.enquire-modal-title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.enquire-modal-close {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.14);
  color: var(--brand-primary-text);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.enquire-modal-close:hover {
  background: rgba(255, 255, 255, 0.22);
}

.enquire-modal-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 18px 20px 8px;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.enquire-modal-logos img {
  max-height: 44px;
  width: auto;
  object-fit: contain;
}

.enquire-modal-logos .enquire-logo-divider {
  width: 1px;
  height: 36px;
  background: rgba(15, 23, 42, 0.12);
}

.enquire-modal-body {
  padding: 16px 20px 20px;
}

.enquire-field {
  position: relative;
  margin-bottom: 12px;
}

.enquire-field-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  opacity: 0.45;
  pointer-events: none;
}

.enquire-field .form-control,
.enquire-field .form-select {
  padding-left: 40px;
  border-radius: 10px;
  border-color: rgba(15, 23, 42, 0.14);
  min-height: 44px;
}

.enquire-phone-row {
  display: flex;
  gap: 8px;
}

.enquire-phone-row .form-select {
  max-width: 100px;
  flex-shrink: 0;
  padding-left: 10px;
}

.enquire-phone-row .form-control {
  flex: 1;
  padding-left: 12px;
}

.enquire-consent {
  margin: 14px 0 16px;
  font-size: 0.72rem;
  line-height: 1.45;
  color: rgba(15, 23, 42, 0.72);
}

.enquire-consent a {
  color: var(--brand-primary);
  font-weight: 600;
}

.enquire-submit {
  width: 100%;
  padding: 12px 16px;
  border-radius: 999px;
  font-weight: 800;
  border: 0;
  background: linear-gradient(180deg, var(--brand-primary-light), var(--brand-primary));
  color: var(--brand-primary-text);
  box-shadow: 0 8px 20px var(--brand-primary-glow);
}

.enquire-submit:hover,
.enquire-submit:focus {
  background: linear-gradient(180deg, var(--brand-primary-hover), var(--brand-primary-hover));
  color: var(--brand-primary-hover-text);
}

.enquire-or {
  text-align: center;
  margin: 12px 0;
  font-size: 0.8rem;
  font-weight: 700;
  color: rgba(15, 23, 42, 0.45);
}

.enquire-wa-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 12px 16px;
  border-radius: 999px;
  font-weight: 800;
  background: #25d366;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(37, 211, 102, 0.35);
}

.enquire-wa-btn:hover {
  color: #fff;
  filter: brightness(1.05);
}

body.enquire-modal-open {
  overflow: hidden;
}

/* Form submit success popup (uses .enquire-modal shell) */
.form-ack-modal .enquire-modal-dialog {
  max-width: 420px;
}

.form-ack-body {
  text-align: center;
  padding-top: 20px;
  padding-bottom: 24px;
}

.form-ack-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: rgba(34, 197, 94, 0.12);
  color: #16a34a;
}

.form-ack-message {
  margin: 0 0 20px;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #334155;
}

.form-ack-btn {
  max-width: 200px;
  margin-left: auto;
  margin-right: auto;
}

/* Image lightbox (plans & gallery) */
.image-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right))
    max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
}

.image-lightbox[hidden] {
  display: none !important;
}

.image-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.82);
  backdrop-filter: blur(6px);
}

.image-lightbox-panel {
  position: relative;
  z-index: 1;
  width: min(1100px, 100%);
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  animation: image-lightbox-in 0.28s ease;
}

@keyframes image-lightbox-in {
  from {
    opacity: 0;
    transform: scale(0.96);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.image-lightbox-close {
  position: absolute;
  top: -8px;
  right: 0;
  z-index: 3;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  color: #0f172a;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

.image-lightbox-close:hover {
  background: #fff;
}

.image-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  color: #0f172a;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.image-lightbox-nav:hover {
  background: #fff;
}

.image-lightbox-prev {
  left: -12px;
}

.image-lightbox-next {
  right: -12px;
}

.image-lightbox-figure {
  margin: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.image-lightbox-img-wrap {
  width: 100%;
  max-height: min(78vh, 720px);
  border-radius: 12px;
  overflow: hidden;
  background: #0f172a;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45);
}

.image-lightbox-img {
  display: block;
  width: 100%;
  max-height: min(78vh, 720px);
  object-fit: contain;
  margin: 0 auto;
}

.image-lightbox-caption {
  margin: 0;
  padding: 8px 16px;
  max-width: 100%;
  text-align: center;
  font-size: 0.95rem;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);
}

.image-lightbox-counter {
  position: absolute;
  top: -8px;
  left: 0;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: rgba(15, 23, 42, 0.75);
  font-size: 0.78rem;
  font-weight: 800;
}

body.image-lightbox-open {
  overflow: hidden;
}

@media (max-width: 767.98px) {
  .image-lightbox-prev {
    left: 4px;
  }

  .image-lightbox-next {
    right: 4px;
  }

  .image-lightbox-close {
    top: 4px;
    right: 4px;
  }

  .image-lightbox-counter {
    top: 4px;
    left: 4px;
  }

  .image-lightbox-nav {
    width: 40px;
    height: 40px;
  }
}
