/* Extracted custom styles from index.html - condensed for caching */
.cta-primary{background:linear-gradient(90deg,#b81b24,#fa5252);color:#fff;padding:1.125rem 1.75rem;border-radius:.875rem;font-weight:700;font-size:1.125rem;letter-spacing:.01em;box-shadow:0 12px 30px rgba(184,27,36,.25);transition:transform .2s ease,box-shadow .3s ease,opacity .2s ease;min-height:56px}
.cta-primary:hover{transform:translateY(-1px);box-shadow:0 18px 40px rgba(184,27,36,.35)}
.cta-primary:active{transform:translateY(0)}.cta-primary:focus-visible{outline:3px solid rgba(184,27,36,.5);outline-offset:3px}
.cta-secondary{background:rgba(255,255,255,.08);backdrop-filter:blur(10px);color:#111827;border:1px solid rgba(17,24,39,.15);padding:1.125rem 1.75rem;border-radius:.875rem;font-weight:700;font-size:1.125rem;transition:border-color .25s ease,transform .2s ease;min-height:56px}
.dark .cta-secondary{color:#F9FAFB;border-color:rgba(255,255,255,.18)}.cta-secondary:hover{transform:translateY(-1px);border-color:rgba(184,27,36,.5)}
.cta-secondary:focus-visible{outline:3px solid rgba(184,27,36,.5);outline-offset:3px}
.cta-tertiary{background:transparent;color:#6B7280;border:1px solid #E5E7EB;padding:1.125rem 1.75rem;border-radius:.875rem;font-weight:600;font-size:1rem;transition:all .25s ease;min-height:56px}
.dark .cta-tertiary{color:#9CA3AF;border-color:#374151}.cta-tertiary:hover{transform:translateY(-1px);color:#374151;border-color:#9CA3AF}
.dark .cta-tertiary:hover{color:#D1D5DB;border-color:#6B7280}.cta-tertiary:focus-visible{outline:3px solid rgba(107,114,128,.5);outline-offset:3px}
.property-marker{background:transparent!important;border:none!important}
.leaflet-popup-content-wrapper{background:transparent!important;border-radius:0!important;box-shadow:none!important;padding:0!important}
.leaflet-popup-content{margin:0!important;padding:0!important;width:auto!important}.leaflet-popup-tip{background:rgba(255,255,255,.95)!important;border:none!important;box-shadow:0 4px 20px rgba(0,0,0,.15)!important}
.dark .leaflet-popup-tip{background:rgba(31,41,55,.95)!important}
.property-info-card{position:relative;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-radius:.75rem;padding:1rem;min-width:260px;max-width:320px;box-shadow:var(--shadow-soft);border:1px solid rgba(0,0,0,.06);transition:all .3s ease;animation:popupFadeIn .3s ease-out}
.dark .property-info-card{background:rgba(31,41,55,.95);border-color:rgba(255,255,255,.1);color:#f9fafb}
.popup-close{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;border-radius:50%;background:rgba(0,0,0,.1);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.popup-close:hover{background:rgba(0,0,0,.2)}
/* Tone down CTA inside the map popup */
.property-info-card .cta-primary{background:transparent;color:#b81b24;border:1px solid rgba(184,27,36,.4);box-shadow:none;min-height:auto;padding:.5rem .75rem;border-radius:.5rem}
.property-info-card .cta-primary:hover{transform:none;box-shadow:none;border-color:rgba(184,27,36,.6)}
@media (max-width:640px){.property-info-card{min-width:260px;max-width:280px;padding:1.25rem}.property-title{font-size:1.125rem}.price{font-size:1.5rem}.popup-close{top:.5rem;right:.5rem;width:1.75rem;height:1.75rem}}
@keyframes popupFadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}100%{opacity:1;transform:translateY(0) scale(1)}}
html{transition:background-color .3s ease,color .3s ease}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes glow{from{box-shadow:0 0 20px rgba(239,68,68,.3)}to{box-shadow:0 0 40px rgba(239,68,68,.6)}}
@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInDown{from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
.glass{background:rgba(255,255,255,.1);backdrop-filter:blur(50px);border:1px solid rgba(255,255,255,.2)}.glass-dark{background:rgba(0,0,0,.1);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1)}
.theme-toggle-btn{position:fixed;top:1.5rem;right:1.5rem;z-index:100;background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(255,255,255,.7));backdrop-filter:blur(20px);border-radius:50%;box-shadow:0 8px 32px rgba(0,0,0,.1),0 0 0 1px rgba(255,255,255,.2);width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;transition:all .4s cubic-bezier(.4,0,.2,1)}
.theme-toggle-btn:hover{background:linear-gradient(135deg,#fff,rgba(248,250,252,.9));transform:scale(1.1) rotate(180deg);box-shadow:0 12px 40px rgba(0,0,0,.15),0 0 0 1px rgba(255,255,255,.3)}.theme-toggle-btn:focus{outline:2px solid rgba(239,68,68,.5);outline-offset:4px}
.dark .theme-toggle-btn{background:linear-gradient(135deg,rgba(31,41,55,.9),rgba(15,23,42,.8));box-shadow:0 8px 32px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.1)}.dark .theme-toggle-btn:hover{background:linear-gradient(135deg,rgba(55,65,81,.95),rgba(30,41,59,.9));box-shadow:0 12px 40px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.2)}
.dark .theme-toggle-btn:focus{outline-color:rgba(248,113,113,.6)}.gradient-luxury{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.gradient-sunset{background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%)}
.gradient-ocean{background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%)}.gradient-fire{background:linear-gradient(135deg,#fa709a 0%,#fee140 100%)}
.luxury-card{background:rgba(255,255,255,.95);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);box-shadow:0 25px 50px -12px rgba(0,0,0,.25);transition:all .4s cubic-bezier(.4,0,.2,1)}.luxury-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 35px 60px -12px rgba(0,0,0,.3)}
.dark .luxury-card{background:rgba(15,23,42,.95);border:1px solid rgba(255,255,255,.1)}.shimmer{position:relative;overflow:hidden}.shimmer::before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 2s infinite}
.btn-luxury{position:relative;overflow:hidden;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:1rem;padding:1rem 2rem;font-weight:700;font-size:1.125rem;box-shadow:0 10px 30px rgba(102,126,234,.3);transition:all .4s cubic-bezier(.4,0,.2,1);cursor:pointer}
.btn-luxury:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 20px 40px rgba(102,126,234,.4)}.btn-luxury::before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}
.float-animation{animation:float 3s ease-in-out infinite}.nav-link{cursor:pointer}.nav-link.active{color:#dc2626!important}.dark .nav-link.active{color:#f87171!important}.nav-link.active .absolute{width:100%!important}
.dark .shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.3),0 4px 6px -2px rgba(0,0,0,.2)}.dark .shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.4),0 10px 10px -5px rgba(0,0,0,.2)}.dark .shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,.5)}.dark .shadow-luxury{box-shadow:0 20px 40px -12px rgba(0,0,0,.4),0 8px 16px -8px rgba(0,0,0,.3)}
@keyframes borderGradient{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}
.card-hover-effect{position:relative;transition:all .3s ease;border:2px solid transparent;background-clip:padding-box}
.card-hover-effect::before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:transparent;border-radius:inherit;opacity:0;transition:opacity .3s ease;z-index:-1}
.card-hover-effect:hover::before{opacity:1;animation:borderGradient 2s ease infinite}
.card-hover-effect:hover{transform:translateY(-2px);background:linear-gradient(135deg,rgba(16,185,129,.08) 0%,rgba(59,130,246,.08) 100%);box-shadow:0 20px 40px -12px rgba(59,130,246,.25),0 8px 25px -8px rgba(59,130,246,.3),0 0 0 1px rgba(59,130,246,.1)}
.card-hover-effect:hover .text-white{color:#0f1729!important}.card-hover-effect:hover .text-gray-300{color:#1e3a8a!important}.card-hover-effect:hover .text-gray-400{color:#1e40af!important}
.card-hover-effect:hover .bg-green-600{background:#fff!important;color:#065f46!important}.card-hover-effect:hover .bg-blue-600{background:#fff!important;color:#1e3a8a!important}.card-hover-effect:hover .bg-gray-600{background:#fff!important;color:#1f2937!important}
/* Dark mode hover text contrast on cards */
.dark .card-hover-effect:hover .text-white{color:#fff!important}
.dark .card-hover-effect:hover .text-gray-300{color:#e5e7eb!important}
.dark .card-hover-effect:hover .text-gray-400{color:#f3f4f6!important}

/* Pleasant, brand‑toned gradient icon badges */
.icon-badge{width:4rem;height:4rem;border-radius:1.25rem;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 28px rgba(0,0,0,.12)}
.icon-badge i{font-size:1.6rem;color:#fff}
.icon-badge--grad{background:linear-gradient(135deg,#ef9a9a 0%, #fa5252 100%)}
.dark .icon-badge--grad{background:linear-gradient(135deg,#7f1d1d 0%, #b81b24 100%)}

/* Location & Community amenity icons (softer gradients + neutral bg) */
.amenity-card .amenity-icon{width:4rem;height:4rem;border-radius:1.25rem;background:linear-gradient(135deg,#F8FAFC 0%,#EEF2FF 100%);box-shadow:0 12px 30px rgba(0,0,0,.16)}
.amenity-card .amenity-icon .fa-solid{font-size:1.6rem;color:#ffffff}
.dark .amenity-card .amenity-icon{background:linear-gradient(135deg,#0b1220 0%,#1f2937 100%)}
.amenity-card .amenity-icon.shopping{background:linear-gradient(135deg,#FFE5E9 0%, #FFC7CF 100%)}
.amenity-card .amenity-icon.transit{background:linear-gradient(135deg,#FFF3CD 0%, #FFE69C 100%)}
.amenity-card .amenity-icon.parks{background:linear-gradient(135deg,#D1FAE5 0%, #A7F3D0 100%)}
.amenity-card .amenity-icon.education{background:linear-gradient(135deg,#EDE9FE 0%, #DDD6FE 100%)}
.amenity-card .amenity-icon.health{background:linear-gradient(135deg,#FFE4E6 0%, #FECDD3 100%)}
.amenity-card .amenity-icon.fitness{background:linear-gradient(135deg,#CCFBF1 0%, #99F6E4 100%)}

/* Savings badge: fall back to inline classes (green pill) from HTML */

/* Brand link colors in content */
.prose a{color:#b81b24;text-decoration:underline}
.prose a:hover{color:#9d1620}
.dark .prose a{color:#f87171}
.dark .prose a:hover{color:#fca5a5}
/* Brand link colors in content */
.prose a{color:#b81b24;text-decoration:underline}
.prose a:hover{color:#9d1620}
.dark .prose a{color:#f87171}
.dark .prose a:hover{color:#fca5a5}
/* Dark mode hover text contrast on cards */
.dark .card-hover-effect:hover .text-white{color:#fff!important}
.dark .card-hover-effect:hover .text-gray-300{color:#e5e7eb!important}
.dark .card-hover-effect:hover .text-gray-400{color:#f3f4f6!important}

/* Pleasant, brand‑toned gradient icon badges */
.icon-badge{width:3.75rem;height:3.75rem;border-radius:1.15rem;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.icon-badge i{font-size:1.5rem;color:#fff}
.icon-badge--grad{background:linear-gradient(135deg,#b81b24 0%,#fa5252 100%)}
.dark .icon-badge--grad{background:linear-gradient(135deg,rgba(184,27,36,.9) 0%,rgba(250,82,82,.9) 100%)}

/* Location & Community amenity icons (softer gradients + neutral bg) */
.amenity-card .amenity-icon{width:3.75rem;height:3.75rem;border-radius:1.15rem;background:linear-gradient(135deg,#ffffff 0%,#f3f4f6 100%);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.amenity-card .amenity-icon .fa-solid{font-size:1.6rem;background:linear-gradient(135deg,#b81b24 0%,#fa5252 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.dark .amenity-card .amenity-icon{background:linear-gradient(135deg,#111827 0%,#1f2937 100%)}
/* Large gradient icons */
.icon-badge{width:4.5rem;height:4.5rem;border-radius:1.25rem;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.icon-badge i{font-size:1.75rem;color:#fff}
.icon-badge--grad{background:linear-gradient(135deg, rgba(184,27,36,.95), rgba(250,82,82,.85));border:1px solid rgba(0,0,0,.04)}
.dark .icon-badge--grad{background:linear-gradient(135deg, rgba(184,27,36,.8), rgba(250,82,82,.7))}
/* 3.1 Nav pointer fix: spans inside anchors must show pointer */
header nav a, header nav a *, .nav-link, .nav-link * { cursor: pointer !important; }

/* Header nav cursor (redundant but explicit per request) */
.nav-link, .nav-link * { cursor: pointer !important; }

/* 3.2 Hero density adjustments */
#hero-card { gap: 0.75rem !important; }
#hero-card .hero__title { margin-bottom: 0.25rem !important; }
#hero-card .hero__subtitle { margin-top: 0.25rem !important; font-size: 1rem !important; }
@media (min-width: 768px){
  #hero-card .hero__subtitle { font-size: 1.125rem !important; }
}
/* hide secondary/tertiary CTA in hero on mobile */
@media (max-width: 640px){
  #hero-card .cta-secondary, #hero-card .cta-tertiary { display: none !important; }
}

.offer-highlight{display:flex;align-items:center;gap:.75rem;padding:.85rem 1.2rem;border-radius:1rem;background:linear-gradient(135deg,#f97316,#ef4444);color:#fff;box-shadow:0 18px 36px rgba(239,68,68,.25);font-weight:600}
.offer-highlight__icon{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:9999px;background:rgba(255,255,255,.2)}
.offer-highlight__icon i{font-size:1.15rem;color:#fff}
.offer-highlight__text{display:flex;flex-direction:column;gap:.2rem;line-height:1.3}
.offer-highlight__label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.offer-highlight__headline{font-size:.95rem;font-weight:700;color:#fff}
@media (min-width:768px){
  .offer-highlight__headline{font-size:1.05rem}
}
.offer-highlight--outline{background:rgba(255,255,255,.92);color:#0f172a;border:1px solid rgba(249,115,22,.3);box-shadow:0 14px 32px rgba(15,23,42,.08)}
.offer-highlight--outline .offer-highlight__icon{background:rgba(249,115,22,.12)}
.offer-highlight--outline .offer-highlight__label{color:rgba(249,115,22,.65)}
.offer-highlight--outline .offer-highlight__headline{color:#0f172a}
.dark .offer-highlight--outline{background:rgba(15,23,42,.88);color:#fde68a;border-color:rgba(253,224,71,.35)}
.dark .offer-highlight--outline .offer-highlight__icon{background:rgba(253,224,71,.16)}
.dark .offer-highlight--outline .offer-highlight__label{color:rgba(253,224,71,.7)}
.dark .offer-highlight--outline .offer-highlight__headline{color:#fde68a}

#offer-ribbon{position:fixed;top:7.5rem;right:1rem;z-index:55;display:none;align-items:center;gap:.5rem;padding:.55rem 1.1rem;border-radius:9999px;background:linear-gradient(135deg,#111827,#1f2937);color:#fde68a;font-weight:700;box-shadow:0 12px 32px rgba(15,23,42,.4);text-decoration:none}
#offer-ribbon i{color:#fde68a;font-size:.95rem}
#offer-ribbon span{font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}
.dark #offer-ribbon{background:linear-gradient(135deg,#fbbf24,#f97316);color:#111827;box-shadow:0 16px 36px rgba(8,11,20,.35)}
.dark #offer-ribbon i,.dark #offer-ribbon span{color:#111827}
#offer-ribbon:focus-visible{outline:3px solid rgba(253,224,71,.6);outline-offset:4px}
@media (min-width:1024px){
  #offer-ribbon{display:flex}
}

.pricing-facts{display:grid;gap:1rem;margin:0}
@media (min-width:640px){
  .pricing-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.pricing-facts div{display:flex;flex-direction:column;gap:.25rem}
.pricing-facts dt{font-weight:700;color:#111827}
.pricing-facts dd{margin:0;color:#4b5563}
.dark .pricing-facts dt{color:#f9fafb}
.dark .pricing-facts dd{color:#d1d5db}

/* 3.3 Primary CTA emphasis */
.cta-primary, .map .cta-primary {
  background: linear-gradient(135deg, #d21f2a, #b81b24) !important;
  color: #fff !important;
  font-weight: 800 !important;
  border: 0 !important;
  box-shadow: 0 14px 36px rgba(210,31,42,.35) !important;
  transform: translateZ(0);
}
.cta-primary:hover { transform: none !important; box-shadow: 0 18px 38px rgba(210,31,42,.35) !important; }

/* 3.4 Video modal header/close positioning */
.video-modal .modal-content{padding-top:0!important;overflow:hidden}
.video-modal .modal-header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:rgba(0,0,0,.55)}
.video-modal .modal-header h3{margin:0;color:#fff;font-weight:700}
.video-modal .modal-close{position:static!important;width:2rem;height:2rem;border-radius:.5rem;background:rgba(255,255,255,.2);color:#fff;border:none}
.video-modal .modal-body{position:relative;z-index:1;background:#000}
.video-modal video{display:block;width:100%;height:auto}
/* Sticky header and close control kept outside the video frame */
.video-modal header{position:sticky;top:0;z-index:20;background:rgba(0,0,0,.6);backdrop-filter:blur(6px)}
.video-modal .close{position:absolute;top:.75rem;right:.75rem;z-index:30}
.video-modal .player{aspect-ratio:16/9;width:100%;height:auto}
/* 3.5 Gallery modal caption resilience */
.gallery-caption{display:block;margin-top:.5rem;font-size:.875rem;line-height:1.3;max-width:64ch;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
@media(min-width:1024px){.gallery-caption{-webkit-line-clamp:3}}
.gallery-caption[title]{text-decoration-thickness:0}
.gallery-item:hover .gallery-caption{overflow:visible}

@media(max-width:640px){.gallery-caption{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}}

/* 3.6 Optional tooltip for full caption on hover */
.gallery-item:hover .gallery-caption { overflow: visible; }

/* 3.7 Minor contrast bump for badges and chips */
.badge { background: #fee2e2; color: #991b1b; }
.badge--value { background:#f59e0b; color:#111827; }
.card-hover-effect:hover .badge--value { background:#d97706; color:#111827; }
.dark .badge--value { background:#f59e0b; color:#111827; }
.dark .card-hover-effect:hover .badge--value { background:#d97706; color:#111827; }

/* Video modal requested layout helpers */
.video-modal header{position:sticky;top:0;z-index:20;background:rgba(0,0,0,.6);backdrop-filter:blur(6px)}
.video-modal .close{position:absolute;top:.75rem;right:.75rem;z-index:30}
.video-modal .player{aspect-ratio:16/9;width:100%;height:auto}

/* 3.8 Sound rating highlight badge */
.sound-badge { background: #e0f2fe; color: #075985; padding: .25rem .5rem; border-radius: .5rem; font-weight: 600; }

/* Pricing commitment labels: remove div-inside-label issues by allowing spans */
.commitment-option-label span { display: inline-block;}

/* Commitment radio visual */
.commitment-radio{width:1rem;height:1rem;border:2px solid #9ca3af;border-radius:9999px;display:inline-block;position:relative}
.commitment-radio::after{content:"";position:absolute;inset:3px;border-radius:9999px;background:#2563eb;transform:scale(0);transition:transform .15s ease}
.commitment-option-label:has(input[name="commitment-option"]:checked) .commitment-radio{border-color:#2563eb}
.commitment-option-label:has(input[name="commitment-option"]:checked) .commitment-radio::after{transform:scale(1.5)}
.dark .commitment-option-label:has(input[name="commitment-option"]:checked) .commitment-radio{border-color:#60a5fa}
.dark .commitment-option-label:has(input[name="commitment-option"]:checked) .commitment-radio::after{background:#60a5fa}

/* WCAG-compliant value badge colors, including hover */
.badge--value { background:#f59e0b; color:#111827; }
.card-hover-effect:hover .badge--value { background:#d97706; color:#111827; }
.dark .badge--value { background:#f59e0b; color:#111827; }
.dark .card-hover-effect:hover .badge--value { background:#d97706; color:#111827; }

/* Pricing card icon overlap fixes */
.pricing-card .top-label { z-index: 2; }
.pricing-card .icon-circle { position: relative; z-index: 1; }
.pricing-card .icon-circle i { line-height: 1; }

/* Consistent, softened shadows/glows */
:root {
  --shadow-soft: 0 18px 48px rgba(0,0,0,0.12);
  --shadow-soft-lg: 0 24px 64px rgba(0,0,0,0.14);
}

.shadow-lg,
.shadow-xl,
.shadow-2xl,
.shadow-luxury,
.shadow-luxury-xl,
.shadow-colored,
.shadow-glow {
  box-shadow: var(--shadow-soft) !important;
}

.hover\:shadow-glow:hover,
.hover\:shadow-glow-lg:hover,
.shadow-colored:hover,
.card-hover-effect:hover {
  box-shadow: var(--shadow-soft-lg) !important;
}

/* Reduce close-offset hard shadows on badges/icons/cards */
.icon-badge,
.amenity-card .amenity-icon,
.luxury-card,
.card,
.neigh-card,
.chat-widget,
.modal-content {
  box-shadow: var(--shadow-soft) !important;
}

.scroll-progress{position:fixed;top:0;left:0;right:0;height:4px;z-index:60;pointer-events:none;background:transparent;opacity:0;transition:opacity .2s ease-out}
.scroll-progress.is-visible{opacity:1}
.scroll-progress__bar{width:0;height:100%;background:linear-gradient(90deg,#ef4444,#f97316,#fbbf24);transition:width .15s ease-out}
.dark .scroll-progress__bar{background:linear-gradient(90deg,#f97316,#facc15,#fbbf24)}

/* FAQ category headings are replaced by tabs */
#faq-accordion > h3 { display: none; }

/* Slight card spacing within FAQ to avoid blocky feel */
#faq-accordion > .bg-white,
.dark #faq-accordion > .dark\:bg-gray-900 {
  border: 1px solid rgba(0,0,0,.06);
}
.dark #faq-accordion > .dark\:bg-gray-900 { border-color: rgba(255,255,255,.08); }
/* Pricing chips in hero and sticky badge */
.chip-price{display:inline-flex;align-items:center;gap:.5rem;background:#1118270d;padding:.5rem .75rem;border-radius:9999px;border:1px solid rgba(17,24,39,.1);backdrop-filter:saturate(150%) blur(2px);transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease}
.dark .chip-price{background:#ffffff12;border-color:rgba(255,255,255,.12)}
.chip-price i{opacity:.9}
.chip-price:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.12)}

/* Dark-mode readability for badges incl. savings */
.badge{background:#f1f5f9;color:#0f172a}
.dark .badge{background:#1f2937;color:#e5e7eb}
.sound-badge{background:#e0f2fe;color:#075985}
.dark .sound-badge{background:#0b3a53;color:#cdeaff}
.savings-badge{background:#ecfdf5;color:#065f46}
.dark .savings-badge{background:#064e3b;color:#d1fae5}

/* CTA motion consistency; reduce “jump” */
.cta-primary{transform:translateY(0);transition:transform .15s ease, box-shadow .15s ease}
.cta-primary:hover{transform:translateY(-1px)}
.cta-secondary{transition:transform .15s ease, box-shadow .15s ease}
.cta-secondary:hover{transform:translateY(-1px)}

/* Card hover consistency */
.card{transition:transform .2s ease, box-shadow .2s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12)}
.shadow-soft{box-shadow:0 8px 20px rgba(0,0,0,.08)}

/* Desktop sticky price badge */
.sticky-price-desktop{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:40;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:.5rem;gap:.5rem;box-shadow:0 12px 30px rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:opacity .2s ease, transform .2s ease}
.dark .sticky-price-desktop{background:rgba(17,24,39,.92);border-color:rgba(255,255,255,.08)}
.sticky-price-desktop.show{opacity:1;pointer-events:auto}
.sticky-price-desktop .chip-price{background:transparent;border-color:rgba(0,0,0,.12)}
.dark .sticky-price-desktop .chip-price{border-color:rgba(255,255,255,.16)}

/* Verified owner alignment (hook class if used) */
.verified-owner-badge{display:inline-flex;align-items:center;gap:.5rem;line-height:1}
/* === UI hotfixes 2025-09-12 === */
/* Savings badge spacing + dark mode contrast */
.savings-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .6rem;border-radius:9999px;font-weight:700;letter-spacing:.01em;background:#E6F6EE;color:#106B41}
.dark .savings-badge{background:#093826;color:#BBF7D0}

/* Plan card radio alignment + consistent layout */
.plan-card input[type="radio"], .lease-option input[type="radio"]{position:relative;top:0;transform:none;margin-top:0;vertical-align:middle}
.plan-card,.lease-option{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.75rem}

/* Price typography alignment */
.price-primary{font-variant-numeric:tabular-nums;letter-spacing:.01em}
.price-strike{opacity:.6;text-decoration:line-through}

/* Dark-mode shadows + hover clarity */
.card{transition:box-shadow .25s,transform .2s}
.card:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.dark .card{box-shadow:0 1px 0 rgba(255,255,255,.04)}
.dark .card:hover{box-shadow:0 10px 28px rgba(0,0,0,.5)}

/* Amenity/location card hover parity */
.amenity-card{transition:box-shadow .25s,transform .2s}
.amenity-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12)}
.dark .amenity-card:hover{box-shadow:0 10px 28px rgba(0,0,0,.55)}

/* FAQ accordion: squarer, tighter, accessible */
.faq-accordion .item{border-radius:.5rem;margin-bottom:.5rem}
.faq-accordion .item:last-child{margin-bottom:0}
.faq-accordion .trigger{border-radius:.5rem}
.faq-accordion .trigger:focus-visible{outline:2px solid #2563EB;outline-offset:2px}
.dark .faq-accordion .trigger:focus-visible{outline-color:#60A5FA}
.faq-accordion .trigger:hover{background:rgba(37,99,235,.06)}
.dark .faq-accordion .trigger:hover{background:rgba(59,130,246,.15)}

/* Tabs: brand-consistent active state */
.tab-button{outline:0}
.tab-button.tab-active{background:#DBEAFE;color:#0B3B7A;border-color:#2563EB}
.dark .tab-button.tab-active{background:rgba(59,130,246,.15);color:#93C5FD;border-color:#60A5FA}

/* Sticky desktop price badge: affordance + contrast */
.sticky-price-desktop{cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.dark .sticky-price-desktop{box-shadow:0 12px 28px rgba(0,0,0,.6)}
.sticky-price-desktop:hover{transform:translateY(-1px)}

#sticky-price-desktop [data-analytics-id="sticky-watch-tour"],
#mobile-cta [data-analytics-id="mobile-watch-tour"]{
  background:linear-gradient(135deg,#f97316,#ea580c);
  color:#fff;
  border:none;
  box-shadow:0 12px 26px rgba(234,88,12,.35);
  backdrop-filter:none;
}
#sticky-price-desktop [data-analytics-id="sticky-watch-tour"] span,
#mobile-cta [data-analytics-id="mobile-watch-tour"] span,
#sticky-price-desktop [data-analytics-id="sticky-watch-tour"] i,
#mobile-cta [data-analytics-id="mobile-watch-tour"] i{
  color:inherit;
}
.dark #sticky-price-desktop [data-analytics-id="sticky-watch-tour"],
.dark #mobile-cta [data-analytics-id="mobile-watch-tour"]{
  background:linear-gradient(135deg,#fb923c,#f97316);
  color:#111827;
  box-shadow:0 12px 26px rgba(15,23,42,.45);
}
.dark #sticky-price-desktop [data-analytics-id="sticky-watch-tour"] i,
.dark #sticky-price-desktop [data-analytics-id="sticky-watch-tour"] span,
.dark #mobile-cta [data-analytics-id="mobile-watch-tour"] i,
.dark #mobile-cta [data-analytics-id="mobile-watch-tour"] span{
  color:inherit;
}

#mobile-cta{
  padding-bottom:calc(1rem + env(safe-area-inset-bottom));
}
@supports(padding-bottom: constant(safe-area-inset-bottom)){
  #mobile-cta{padding-bottom:calc(1rem + constant(safe-area-inset-bottom));}
}

@media (max-width:768px){
  #footer{padding-bottom:7rem;}
}

/* Video modal header/footer fixes */
/*#video-modal .modal-content{background:transparent;overflow:hidden}*/
/*#video-modal .modal-body{padding:0;background:#000}*/
/*#video-modal .modal-body video{display:block;max-height:calc(90vh - 4.5rem);width:100%;height:auto}*/
/*#video-modal .modal-body+#video-caption{background:#0b0f19}*/
/*#video-modal .modal-content .flex-shrink-0{position:sticky;top:0;z-index:2}*/
#video-modal .modal-body .player{object-fit:contain}
/*#video-caption{white-space:normal}*/

/* Map chips on dark tiles */
.chip-price{background:#F1F5F9;color:#0B1324}
.dark .chip-price{background:rgba(255,255,255,.10);color:#E5E7EB;border:1px solid rgba(255,255,255,.12)}
.chip-price:hover{filter:brightness(1.05)}
.sticky-price-desktop:hover{transform:translateX(-50%)}
@media (prefers-reduced-motion:no-preference){
  .sticky-price-desktop{transition:opacity .2s ease}
}
.theme-toggle-btn{position:fixed}
@media (max-width:1024px){
  .theme-toggle-btn{position:static;top:auto;right:auto;width:2.5rem;height:2.5rem;box-shadow:none}
}
.verified-owner-fix{line-height:1;display:inline-flex;align-items:center;gap:.5rem;vertical-align:middle}
.verified-owner-fix .fas{font-size:.95rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;color:#fff}
.faq-accordion{border-radius:0}
.faq-accordion .item{margin:0;border-radius:0}
.faq-accordion .trigger{border-radius:0}
.faq-accordion .trigger[aria-expanded="true"]{background:rgba(37,99,235,.10);color:#0B3B7A}
.dark .faq-accordion .trigger[aria-expanded="true"]{background:rgba(59,130,246,.22);color:#93C5FD}
.faq-accordion .trigger:hover{background:rgba(37,99,235,.08)}
.dark .faq-accordion .trigger:hover{background:rgba(59,130,246,.18)}
.faq-accordion .group{border-top:1px solid rgba(107,114,128,.3)}
.dark .faq-accordion .group{border-top:1px solid rgba(156,163,175,.3)}
#footer a{cursor:pointer}
