/* v1.3.0 — bulletproof reset to defeat theme + FlyingPress overrides.
   Themes often force uppercase on h1/h2 and substitute their own fonts;
   this block neutralizes those before our own rules take over. */
.tav-wrap, .tav-wrap *, .tav-wrap *::before, .tav-wrap *::after {
  text-transform: none !important;
  font-style: normal !important;
  letter-spacing: normal !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
}
.tav-wrap, .tav-wrap p, .tav-wrap div, .tav-wrap span, .tav-wrap button,
.tav-wrap input, .tav-wrap select, .tav-wrap label, .tav-wrap a {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  color: #1A2332 !important;
  text-align: initial !important;
}
.tav-wrap h1, .tav-wrap h2, .tav-wrap h3, .tav-wrap .serif {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  text-transform: none !important;
  font-weight: 500 !important;
}
.tav-wrap em { font-style: italic !important; }
/* Targeted re-uppercasing for the few elements that SHOULD be caps */
.tav-wrap .tav-eyebrow,
.tav-wrap .tav-card .left .neighborhood,
.tav-wrap .tav-filter label,
.tav-wrap .tav-summary .meta-item .label,
.tav-wrap .tav-leadcard .reveal-count { text-transform: uppercase !important; }

.tav-wrap{--ivory:#FAF7F2 !important;--sand:#F1ECE0 !important;--hairline:#DCD4C2 !important;--navy:#1A2332 !important;--navy-soft:#4A5468 !important;--gold:#B08D57 !important;--gold-deep:#8C6F40 !important;--rose:#C97B5C !important;--shadow:0 1px 2px rgba(26,35,50,.04),0 8px 24px rgba(26,35,50,.06) !important;--shadow-lift:0 2px 4px rgba(26,35,50,.06),0 16px 40px rgba(26,35,50,.10) !important;max-width:1180px !important;margin:0 auto !important;padding:0 28px !important;background:var(--ivory) !important;color:var(--navy) !important;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif !important;font-weight:400 !important;line-height:1.55 !important;-webkit-font-smoothing:antialiased !important;}
.tav-wrap *,.tav-wrap *::before,.tav-wrap *::after{box-sizing:border-box !important;}
.tav-wrap .serif{font-family:'Cormorant Garamond',Georgia,serif !important;font-weight:500 !important;letter-spacing:-0.01em !important;}
.tav-wrap .hidden{display:none!important !important;}

.tav-wrap .tav-hero{padding:48px 0 24px !important;text-align:center !important;}
.tav-wrap .tav-eyebrow{font-size:12px !important;font-weight:500 !important;letter-spacing:.18em !important;text-transform:uppercase !important;color:var(--gold-deep) !important;margin-bottom:14px !important;}
.tav-wrap .tav-hero h1{font-size:clamp(34px,5vw,52px) !important;line-height:1.05 !important;margin-bottom:14px !important;}
.tav-wrap .tav-hero h1 em{font-style:italic !important;color:var(--gold-deep) !important;font-weight:400 !important;}
.tav-wrap .tav-hero p.lede{font-size:17px !important;color:var(--navy-soft) !important;max-width:580px !important;margin:0 auto !important;}
.tav-wrap .tav-source{display:inline-flex !important;align-items:center !important;gap:8px !important;margin-top:18px !important;font-size:13px !important;color:var(--navy-soft) !important;padding:7px 14px !important;border:1px solid var(--hairline) !important;border-radius:100px !important;background:rgba(255,255,255,.4) !important;}
.tav-wrap .tav-dot{width:6px !important;height:6px !important;border-radius:50% !important;background:#4ca77a !important;box-shadow:0 0 0 4px rgba(76,167,122,.15) !important;}

.tav-wrap .tav-steps{display:flex !important;justify-content:center !important;gap:32px !important;margin:36px 0 16px !important;flex-wrap:wrap !important;}
.tav-wrap .tav-step{display:flex !important;align-items:center !important;gap:10px !important;font-size:13px !important;color:var(--navy-soft) !important;}
.tav-wrap .tav-step .num{width:24px !important;height:24px !important;border-radius:50% !important;border:1px solid var(--hairline) !important;display:grid !important;place-items:center !important;font-size:12px !important;font-weight:500 !important;background:#fff !important;}
.tav-wrap .tav-step.active .num{background:var(--navy) !important;color:var(--ivory) !important;border-color:var(--navy) !important;}
.tav-wrap .tav-step.active{color:var(--navy) !important;font-weight:500 !important;}
.tav-wrap .tav-step.done .num{background:var(--gold) !important;color:#fff !important;border-color:var(--gold) !important;font-size:0 !important;}
.tav-wrap .tav-step.done .num::after{content:'✓' !important;font-size:12px !important;}

.tav-wrap .tav-neighborhoods{display:flex !important;gap:10px !important;flex-wrap:wrap !important;justify-content:center !important;margin:24px 0 20px !important;}
.tav-wrap .tav-neighborhood{padding:10px 20px !important;background:#fff !important;border:1px solid var(--hairline) !important;border-radius:100px !important;font-size:14px !important;cursor:pointer !important;transition:all .2s ease !important;color:var(--navy) !important;font-family:inherit !important;}
.tav-wrap .tav-neighborhood:hover{border-color:var(--gold) !important;transform:translateY(-1px) !important;box-shadow:var(--shadow) !important;}
.tav-wrap .tav-neighborhood.active{background:var(--navy) !important;color:var(--ivory) !important;border-color:var(--navy) !important;}
.tav-wrap .tav-neighborhood .count{color:var(--navy-soft) !important;font-size:12px !important;margin-left:6px !important;}
.tav-wrap .tav-neighborhood.active .count{color:rgba(250,247,242,.6) !important;}

.tav-wrap .tav-filters{background:#fff !important;border:1px solid var(--hairline) !important;border-radius:16px !important;padding:20px 24px !important;margin:18px 0 !important;display:grid !important;grid-template-columns:2fr 1fr 1fr 1fr !important;gap:24px !important;align-items:end !important;box-shadow:var(--shadow) !important;}
.tav-wrap .tav-filter label{display:block !important;font-size:11px !important;font-weight:500 !important;letter-spacing:.12em !important;text-transform:uppercase !important;color:var(--navy-soft) !important;margin-bottom:8px !important;}
.tav-wrap .tav-filter select{width:100% !important;padding:10px 12px !important;border:1px solid var(--hairline) !important;border-radius:8px !important;background:var(--ivory) !important;font-family:inherit !important;font-size:14px !important;color:var(--navy) !important;cursor:pointer !important;}
.tav-wrap .tav-filter select:focus{outline:none !important;border-color:var(--gold) !important;}
.tav-wrap .tav-price-display{font-size:14px !important;color:var(--navy) !important;margin-bottom:6px !important;}
.tav-wrap .tav-price-display strong{color:var(--gold-deep) !important;font-weight:500 !important;}
.tav-wrap .tav-slider-track{position:relative !important;height:4px !important;background:var(--sand) !important;border-radius:2px !important;margin:12px 0 !important;}
.tav-wrap .tav-slider-fill{position:absolute !important;height:4px !important;background:var(--gold) !important;border-radius:2px !important;}
.tav-wrap .tav-slider-track input[type=range]{position:absolute !important;width:100% !important;height:4px !important;-webkit-appearance:none !important;appearance:none !important;background:transparent !important;pointer-events:none !important;top:0 !important;}
.tav-wrap .tav-slider-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none !important;appearance:none !important;width:18px !important;height:18px !important;border-radius:50% !important;background:#fff !important;border:2px solid var(--gold) !important;cursor:pointer !important;pointer-events:auto !important;box-shadow:0 2px 6px rgba(0,0,0,.12) !important;}
.tav-wrap .tav-slider-track input[type=range]::-moz-range-thumb{width:18px !important;height:18px !important;border-radius:50% !important;background:#fff !important;border:2px solid var(--gold) !important;cursor:pointer !important;pointer-events:auto !important;}

.tav-wrap .tav-summary{display:flex !important;justify-content:space-between !important;align-items:center !important;padding:16px 4px !important;font-size:14px !important;color:var(--navy-soft) !important;}
.tav-wrap .tav-summary strong{color:var(--navy) !important;font-weight:500 !important;}
.tav-wrap .tav-summary .meta{display:flex !important;gap:24px !important;}
.tav-wrap .tav-summary .meta-item{display:flex !important;flex-direction:column !important;align-items:flex-end !important;}
.tav-wrap .tav-summary .meta-item .label{font-size:11px !important;letter-spacing:.1em !important;text-transform:uppercase !important;color:var(--navy-soft) !important;}
.tav-wrap .tav-summary .meta-item .value{font-size:18px !important;color:var(--navy) !important;font-family:'Cormorant Garamond',serif !important;font-weight:500 !important;}

.tav-wrap .tav-results{display:grid !important;gap:14px !important;margin-top:8px !important;}
/* v1.5.46: elegant loading state with gold spinner. */
.tav-wrap .tav-loading{text-align:center !important;padding:80px 20px !important;color:var(--navy-soft) !important;font-size:14px !important;letter-spacing:.02em !important;}
.tav-wrap .tav-loading .tav-spinner{display:inline-block !important;width:36px !important;height:36px !important;border:2.5px solid rgba(176,141,87,.18) !important;border-top-color:var(--gold) !important;border-radius:50% !important;animation:tav-spin .85s linear infinite !important;margin:0 auto 16px !important;}
@keyframes tav-spin{to{transform:rotate(360deg)}}
.tav-wrap .tav-card{background:#fff !important;border:1px solid var(--hairline) !important;border-radius:14px !important;padding:22px 26px !important;display:grid !important;grid-template-columns:1fr auto !important;gap:24px !important;align-items:center !important;transition:all .25s ease !important;position:relative !important;}
.tav-wrap .tav-card:hover{box-shadow:var(--shadow-lift) !important;transform:translateY(-1px) !important;border-color:rgba(176,141,87,.4) !important;}
.tav-wrap .tav-card .left h3{font-family:'Cormorant Garamond',serif !important;font-weight:500 !important;font-size:22px !important;color:var(--navy) !important;margin-bottom:4px !important;}
.tav-wrap .tav-card .left .neighborhood{display:inline-block !important;font-size:11px !important;letter-spacing:.12em !important;text-transform:uppercase !important;color:var(--gold-deep) !important;margin-bottom:12px !important;}
.tav-wrap .tav-card .left .neighborhood::before{content:'◆ ' !important;opacity:.6 !important;}
.tav-wrap .tav-card .facts{display:flex !important;gap:24px !important;font-size:13px !important;color:var(--navy-soft) !important;flex-wrap:wrap !important;}
.tav-wrap .tav-card .facts span strong{color:var(--navy) !important;font-weight:500 !important;}
.tav-wrap .tav-card .right{text-align:right !important;}
.tav-wrap .tav-card .price{font-family:'Cormorant Garamond',serif !important;font-size:30px !important;font-weight:500 !important;color:var(--navy) !important;line-height:1 !important;}
.tav-wrap .tav-card .price-usd{font-size:13px !important;color:var(--navy-soft) !important;margin-top:4px !important;}
.tav-wrap .tav-card .date{font-size:12px !important;color:var(--navy-soft) !important;margin-top:10px !important;letter-spacing:.04em !important;}

/* v1.5.13: compact preview cards. Used for the free rows above the lead
   gate so the form lands above the fold. Same data, ~60% the height. */
.tav-wrap .tav-card.tav-card-compact{padding:12px 18px !important;border-radius:10px !important;gap:14px !important;}
.tav-wrap .tav-card.tav-card-compact .left{display:flex !important;align-items:baseline !important;flex-wrap:wrap !important;gap:8px 14px !important;}
.tav-wrap .tav-card.tav-card-compact .left .neighborhood{font-size:10px !important;margin-bottom:0 !important;letter-spacing:.10em !important;order:-1 !important;flex-basis:100% !important;}
.tav-wrap .tav-card.tav-card-compact .left h3{font-size:17px !important;margin-bottom:0 !important;line-height:1.2 !important;}
.tav-wrap .tav-card.tav-card-compact .facts{font-size:12px !important;gap:12px !important;}
.tav-wrap .tav-card.tav-card-compact .facts span{display:inline-block !important;}
.tav-wrap .tav-card.tav-card-compact .right{display:flex !important;flex-direction:row !important;align-items:baseline !important;gap:10px !important;}
.tav-wrap .tav-card.tav-card-compact .price{font-size:21px !important;line-height:1 !important;}
.tav-wrap .tav-card.tav-card-compact .price-usd{font-size:12px !important;margin-top:0 !important;}
.tav-wrap .tav-card.tav-card-compact .date{font-size:11px !important;margin-top:0 !important;}
@media (max-width: 640px){
  .tav-wrap .tav-card.tav-card-compact{padding:10px 14px !important;}
  .tav-wrap .tav-card.tav-card-compact .right{flex-direction:column !important;align-items:flex-end !important;gap:2px !important;}
  .tav-wrap .tav-card.tav-card-compact .date{display:none !important;}
}

/* v1.5.14: Gate becomes an overlay container. Blurred cards = backdrop;
   lead card sits centered on top, intercepting the scroll. */
.tav-wrap .tav-gate{position:relative !important;margin-top:18px !important;min-height:540px !important;max-height:600px !important;overflow:hidden !important;}
.tav-wrap .tav-gate-blur{position:relative !important;display:flex !important;flex-direction:column !important;gap:10px !important;max-height:540px !important;overflow:hidden !important;}
.tav-wrap .tav-gate-blur .tav-card{filter:blur(8px) !important;pointer-events:none !important;opacity:.55 !important;}
.tav-wrap .tav-gate-overlay{background:linear-gradient(180deg,rgba(250,247,242,0) 0%,rgba(250,247,242,.85) 30%,var(--ivory) 60%) !important;position:absolute !important;inset:0 !important;pointer-events:none !important;}

/* v1.5.14: leadcard floats over the blurred gate. */
.tav-wrap .tav-gate .tav-leadcard{background:#fff !important;border-radius:18px !important;padding:32px 36px !important;box-shadow:0 24px 60px rgba(13,27,42,.18), 0 8px 20px rgba(13,27,42,.08) !important;border:1px solid var(--hairline) !important;position:absolute !important;top:30px !important;left:50% !important;transform:translateX(-50%) !important;width:min(680px, calc(100% - 32px)) !important;overflow:hidden !important;margin-top:0 !important;z-index:5 !important;}
.tav-wrap .tav-leadcard{background:#fff !important;border-radius:18px !important;padding:36px 40px !important;box-shadow:var(--shadow-lift) !important;border:1px solid var(--hairline) !important;position:relative !important;overflow:hidden !important;margin-top:8px !important;}
.tav-wrap .tav-leadcard::before{content:'' !important;position:absolute !important;top:0 !important;left:0 !important;right:0 !important;height:3px !important;background:linear-gradient(90deg,var(--gold) 0%,var(--rose) 100%) !important;}
.tav-wrap .tav-leadcard h2{font-family:'Cormorant Garamond',serif !important;font-size:32px !important;font-weight:500 !important;margin-bottom:8px !important;}
.tav-wrap .tav-leadcard h2 em{font-style:italic !important;color:var(--gold-deep) !important;font-weight:400 !important;}
.tav-wrap .tav-leadcard .sub{color:var(--navy-soft) !important;font-size:15px !important;margin-bottom:24px !important;max-width:520px !important;}
.tav-wrap .tav-leadcard .reveal-count{display:inline-flex !important;align-items:center !important;gap:8px !important;padding:6px 12px !important;background:var(--sand) !important;color:var(--gold-deep) !important;border-radius:100px !important;font-size:12px !important;font-weight:500 !important;letter-spacing:.06em !important;margin-bottom:14px !important;}

/* v1.5.15: 2x2 form layout — row 1: name + email; row 2: phone + submit.
   Previous single-row 4-column layout truncated placeholders on desktop. */
.tav-wrap .tav-leadform{display:grid !important;grid-template-columns:1fr 1fr !important;gap:12px !important;}
.tav-wrap .tav-leadform .field{position:relative !important;}
.tav-wrap .tav-leadform input{width:100% !important;padding:14px 16px !important;border:1px solid var(--hairline) !important;border-radius:10px !important;font-family:inherit !important;font-size:14px !important;background:var(--ivory) !important;color:var(--navy) !important;transition:border-color .2s !important;}
.tav-wrap .tav-leadform input::placeholder{color:var(--navy-soft) !important;opacity:.6 !important;}
.tav-wrap .tav-leadform input:focus{outline:none !important;border-color:var(--gold) !important;background:#fff !important;}
.tav-wrap .tav-leadform button{background:var(--navy) !important;color:var(--ivory) !important;border:none !important;border-radius:10px !important;padding:14px 28px !important;font-family:inherit !important;font-size:14px !important;font-weight:500 !important;letter-spacing:.04em !important;cursor:pointer !important;transition:all .2s !important;white-space:nowrap !important;}
.tav-wrap .tav-leadform button:hover{background:#2A3445 !important;transform:translateY(-1px) !important;}
.tav-wrap .tav-leadform button:disabled{opacity:.5 !important;cursor:wait !important;}
.tav-wrap .tav-privacy{font-size:12px !important;color:var(--navy-soft) !important;margin-top:14px !important;display:flex !important;gap:6px !important;align-items:center !important;}
.tav-wrap .tav-privacy::before{content:'🔒' !important;opacity:.5 !important;font-size:11px !important;}
.tav-wrap .tav-error{margin-top:12px !important;padding:10px 14px !important;background:#fdecea !important;color:#9b2c2c !important;border-radius:8px !important;font-size:13px !important;}

.tav-wrap .tav-thanks{background:#fff !important;border-radius:18px !important;padding:32px 36px !important;border:1px solid var(--hairline) !important;display:flex !important;gap:20px !important;align-items:center !important;box-shadow:var(--shadow) !important;animation:tavSlideUp .4s ease !important;margin-top:14px !important;}
@keyframes tavSlideUp{from{opacity:0 !important;transform:translateY(8px) !important;}to{opacity:1 !important;transform:translateY(0) !important;}}
.tav-wrap .tav-thanks .icon{width:48px !important;height:48px !important;border-radius:50% !important;background:linear-gradient(135deg,var(--gold) 0%,var(--rose) 100%) !important;display:grid !important;place-items:center !important;color:#fff !important;font-size:22px !important;flex-shrink:0 !important;}
.tav-wrap .tav-thanks h3{font-family:'Cormorant Garamond',serif !important;font-size:22px !important;font-weight:500 !important;margin-bottom:4px !important;}
.tav-wrap .tav-thanks p{color:var(--navy-soft) !important;font-size:14px !important;}

.tav-wrap .tav-empty{text-align:center !important;padding:60px 20px !important;color:var(--navy-soft) !important;}
.tav-wrap .tav-empty h3{font-family:'Cormorant Garamond',serif !important;font-size:24px !important;color:var(--navy) !important;margin-bottom:6px !important;}

/* v1.5.35: pagination (10 per page) */
.tav-wrap .tav-page-status{margin:28px 0 12px !important;text-align:center !important;font-size:13px !important;color:var(--navy-soft) !important;letter-spacing:.02em !important;}
.tav-wrap .tav-page-status strong{color:var(--navy) !important;font-weight:500 !important;}
.tav-wrap .tav-pagination{display:flex !important;justify-content:center !important;align-items:center !important;gap:6px !important;margin:0 0 12px !important;flex-wrap:wrap !important;}
.tav-wrap .tav-page-btn{min-width:40px !important;height:40px !important;padding:0 12px !important;border:1px solid var(--hairline) !important;background:#fff !important;color:var(--navy) !important;border-radius:8px !important;font-family:inherit !important;font-size:14px !important;font-weight:500 !important;cursor:pointer !important;transition:all .15s !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;}
.tav-wrap .tav-page-btn:hover:not(:disabled):not(.active){border-color:var(--gold) !important;background:var(--ivory) !important;color:var(--gold-deep) !important;}
.tav-wrap .tav-page-btn.active{background:var(--navy) !important;color:var(--ivory) !important;border-color:var(--navy) !important;cursor:default !important;}
.tav-wrap .tav-page-btn:disabled{opacity:.35 !important;cursor:not-allowed !important;}
.tav-wrap .tav-page-ellipsis{padding:0 4px !important;color:var(--navy-soft) !important;font-size:14px !important;}
@media (max-width:540px){
  .tav-wrap .tav-page-btn{min-width:36px !important;height:36px !important;padding:0 8px !important;font-size:13px !important;}
}

.tav-wrap .tav-footer{margin-top:48px !important;padding:24px 0 !important;border-top:1px solid var(--hairline) !important;text-align:center !important;color:var(--navy-soft) !important;font-size:12px !important;}
.tav-wrap .tav-footer a{color:var(--gold-deep) !important;text-decoration:none !important;}
.tav-wrap .tav-footer a:hover{text-decoration:underline !important;}
.tav-wrap .tav-fx-note{display:inline-block !important;margin-top:8px !important;font-size:11px !important;opacity:.8 !important;letter-spacing:.02em !important;}

@media (max-width:860px){
  .tav-wrap .tav-filters{grid-template-columns:1fr 1fr !important;}
  .tav-wrap .tav-card{grid-template-columns:1fr !important;}
  .tav-wrap .tav-card .right{text-align:left !important;}
  .tav-wrap .tav-leadform{grid-template-columns:1fr !important;}
  .tav-wrap .tav-summary{flex-direction:column !important;align-items:flex-start !important;gap:12px !important;}
}
@media (max-width:540px){
  .tav-wrap .tav-filters{grid-template-columns:1fr !important;padding:16px !important;}
  .tav-wrap .tav-leadcard{padding:24px 20px !important;}
  .tav-wrap .tav-card .facts{gap:14px !important;font-size:12px !important;}
  .tav-wrap .tav-steps{gap:16px !important;}
}

/* v1.5.64: Lead-capture mobile fix.
   Issues addressed:
   - .tav-gate had max-height:600px + overflow:hidden, clipping the form fields
   - .tav-leadcard was position:absolute inside the gate, so it couldn't grow
     past the gate's height
   - On mobile devices with a floating contact bar (WhatsApp/email/phone),
     the bottom of the card was further obscured
   Fix: at <=640px we release the gate height cap, flip the leadcard to
   relative positioning so it sizes to its own content, and add extra bottom
   padding to clear any floating contact bar overlay. */
@media (max-width:640px){
  .tav-wrap .tav-gate{
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
  }
  .tav-wrap .tav-gate-blur{
    max-height:320px !important;
  }
  .tav-wrap .tav-gate .tav-leadcard{
    position:relative !important;
    top:0 !important;
    left:0 !important;
    transform:none !important;
    width:100% !important;
    margin-top:-60px !important;            /* pull up slightly so it overlaps the blurred preview behind */
    padding:24px 18px 32px !important;
    box-shadow:0 12px 36px rgba(13,27,42,.18), 0 4px 12px rgba(13,27,42,.08) !important;
  }
  .tav-wrap .tav-leadcard h2{
    font-size:22px !important;
    line-height:1.25 !important;
    margin-bottom:6px !important;
  }
  .tav-wrap .tav-leadcard .sub{
    font-size:13.5px !important;
    line-height:1.55 !important;
    margin-bottom:18px !important;
  }
  .tav-wrap .tav-leadcard .reveal-count{
    font-size:10.5px !important;
    padding:5px 10px !important;
    margin-bottom:10px !important;
  }
  .tav-wrap .tav-leadform input,
  .tav-wrap .tav-leadform button{
    padding:13px 14px !important;
    font-size:15px !important;       /* keep ≥16px ideal, 15px tolerable; prevents iOS zoom on focus when ≥16 */
  }
  /* Bottom space so the form's submit button clears any sticky/floating
     contact bar (WhatsApp/email/phone) the site may render on mobile. */
  .tav-wrap{
    padding-bottom:96px !important;
  }
}
/* Prevent iOS auto-zoom on input focus: 16px minimum font-size */
@media (max-width:480px){
  .tav-wrap .tav-leadform input{
    font-size:16px !important;
  }
}

/* ── v1.5.17: clickable card affordance + Mapbox modal ─────────────── */
.tav-wrap .tav-card-clickable{cursor:pointer !important;}
.tav-wrap .tav-card-clickable:focus-visible{outline:2px solid var(--gold) !important;outline-offset:3px !important;}
.tav-wrap .tav-card .tav-card-pin{position:absolute !important;top:14px !important;right:18px !important;font-size:13px !important;opacity:.45 !important;transition:opacity .2s, transform .2s !important;pointer-events:none !important;}
.tav-wrap .tav-card-clickable:hover .tav-card-pin{opacity:1 !important;transform:translateY(-2px) !important;}

/* Modal — always rendered, hidden via .hidden. */
.tav-wrap .tav-modal{position:fixed !important;inset:0 !important;z-index:9999 !important;display:flex !important;align-items:center !important;justify-content:center !important;padding:24px !important;animation:tavFadeIn .2s ease !important;}
.tav-wrap .tav-modal.hidden{display:none !important;}
@keyframes tavFadeIn{from{opacity:0}to{opacity:1}}
.tav-wrap .tav-modal-backdrop{position:absolute !important;inset:0 !important;background:rgba(13,27,42,.55) !important;backdrop-filter:blur(4px) !important;-webkit-backdrop-filter:blur(4px) !important;cursor:pointer !important;}
.tav-wrap .tav-modal-card{position:relative !important;background:#fff !important;border-radius:18px !important;box-shadow:0 30px 80px rgba(0,0,0,.35) !important;width:min(960px, 100%) !important;max-height:calc(100vh - 48px) !important;overflow:hidden !important;display:flex !important;flex-direction:column !important;animation:tavSlideUp .25s ease !important;}
@keyframes tavSlideUp{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}
.tav-wrap .tav-modal-close{position:absolute !important;top:14px !important;right:18px !important;width:36px !important;height:36px !important;border-radius:18px !important;border:1px solid var(--hairline) !important;background:#fff !important;color:var(--navy) !important;font-size:22px !important;line-height:1 !important;cursor:pointer !important;z-index:3 !important;display:flex !important;align-items:center !important;justify-content:center !important;transition:background .15s !important;}
.tav-wrap .tav-modal-close:hover{background:var(--ivory) !important;}

.tav-wrap .tav-modal-grid{display:grid !important;grid-template-columns:1.4fr 1fr !important;min-height:520px !important;overflow:hidden !important;}
.tav-wrap .tav-modal-map{position:relative !important;background:var(--ivory) !important;min-height:520px !important;}
.tav-wrap .tav-modal-map-el{position:absolute !important;inset:0 !important;}
.tav-wrap .tav-modal-map-el .mapboxgl-canvas{outline:none !important;}
/* v1.5.23: more transparent so the map shows through during the brief
   moment the overlay is visible. Pointer-events none so even if it sticks
   around longer than expected the map is still draggable underneath. */
.tav-wrap .tav-modal-map-loading{position:absolute !important;inset:0 !important;display:flex !important;align-items:center !important;justify-content:center !important;gap:10px !important;color:var(--navy-soft) !important;font-size:13px !important;background:rgba(250,247,242,.45) !important;z-index:2 !important;pointer-events:none !important;}
.tav-wrap .tav-modal-map-loading .spinner{width:14px !important;height:14px !important;border:2px solid var(--hairline) !important;border-top-color:var(--gold) !important;border-radius:50% !important;animation:tavSpin .8s linear infinite !important;}
@keyframes tavSpin{to{transform:rotate(360deg)}}

.tav-wrap .tav-modal-details{padding:32px 32px 28px !important;display:flex !important;flex-direction:column !important;gap:14px !important;overflow-y:auto !important;}
.tav-wrap .tav-modal-details .neighborhood{font-size:11px !important;letter-spacing:.14em !important;text-transform:uppercase !important;color:var(--gold-deep) !important;}
.tav-wrap .tav-modal-details .neighborhood::before{content:'◆ ' !important;opacity:.6 !important;}
.tav-wrap .tav-modal-details h2{font-family:'Cormorant Garamond',serif !important;font-size:28px !important;font-weight:500 !important;color:var(--navy) !important;line-height:1.15 !important;margin:0 !important;}
.tav-wrap .tav-modal-details .price-row{display:flex !important;align-items:baseline !important;gap:12px !important;margin-top:6px !important;}
.tav-wrap .tav-modal-details .price{font-family:'Cormorant Garamond',serif !important;font-size:32px !important;font-weight:500 !important;color:var(--navy) !important;line-height:1 !important;}
.tav-wrap .tav-modal-details .price-usd{font-size:13px !important;color:var(--navy-soft) !important;}
.tav-wrap .tav-modal-details .ppm{font-size:13px !important;color:var(--gold-deep) !important;letter-spacing:.04em !important;}
.tav-wrap .tav-modal-details .facts{margin:8px 0 !important;display:grid !important;grid-template-columns:repeat(2,1fr) !important;gap:10px 18px !important;padding:0 !important;}
.tav-wrap .tav-modal-details .facts .fact{display:flex !important;flex-direction:column !important;}
.tav-wrap .tav-modal-details .facts dt{font-size:11px !important;letter-spacing:.08em !important;text-transform:uppercase !important;color:var(--navy-soft) !important;margin:0 !important;}
.tav-wrap .tav-modal-details .facts dd{font-size:14px !important;color:var(--navy) !important;margin:2px 0 0 !important;}
.tav-wrap .tav-modal-details .date{font-size:12px !important;color:var(--navy-soft) !important;letter-spacing:.04em !important;}
/* v1.5.18: Property-interest CTA (replaces WhatsApp button).
   v1.5.29: redesigned with eyebrow label + gold serif neighborhood + arrow.
   v1.5.30: positioned absolutely over the bottom of the map area. */
.tav-wrap .tav-modal-map .tav-pi{position:absolute !important;left:16px !important;right:16px !important;bottom:16px !important;z-index:6 !important;margin-top:0 !important;}
.tav-wrap .tav-pi-btn{display:flex !important;align-items:center !important;justify-content:space-between !important;gap:14px !important;width:100% !important;background:var(--navy) !important;color:var(--ivory) !important;border:none !important;padding:16px 20px !important;border-radius:10px !important;font-family:inherit !important;cursor:pointer !important;transition:background .15s, transform .15s, box-shadow .15s !important;text-align:left !important;}
.tav-wrap .tav-pi-btn:hover{background:#2A3445 !important;transform:translateY(-1px) !important;box-shadow:0 6px 16px rgba(13,27,42,.20) !important;}
.tav-wrap .tav-pi-btn:disabled{opacity:.6 !important;cursor:wait !important;transform:none !important;}
.tav-wrap .tav-pi-btn .tav-pi-cta-label{display:block !important;font-size:11px !important;letter-spacing:.14em !important;text-transform:uppercase !important;color:rgba(250,247,242,.65) !important;font-weight:500 !important;line-height:1.1 !important;}
.tav-wrap .tav-pi-btn .tav-pi-hood{display:block !important;flex:1 1 auto !important;font-family:'Cormorant Garamond',serif !important;font-size:22px !important;font-weight:500 !important;color:var(--gold) !important;line-height:1.1 !important;letter-spacing:.01em !important;margin-top:2px !important;}
.tav-wrap .tav-pi-btn .tav-pi-cta-arrow{display:flex !important;align-items:center !important;justify-content:center !important;width:32px !important;height:32px !important;border-radius:50% !important;background:rgba(176,141,87,.18) !important;color:var(--gold) !important;font-size:16px !important;transition:background .15s, transform .15s !important;flex-shrink:0 !important;}
.tav-wrap .tav-pi-btn:hover .tav-pi-cta-arrow{background:var(--gold) !important;color:var(--navy) !important;transform:translateX(2px) !important;}
/* Reorganize: label and hood on the left, arrow on the right.
   The label-hood pair is stacked vertically via flex direction trick. */
.tav-wrap .tav-pi-btn{flex-wrap:wrap !important;}
.tav-wrap .tav-pi-btn .tav-pi-cta-label{flex-basis:100% !important;order:1 !important;}
.tav-wrap .tav-pi-btn .tav-pi-hood{order:2 !important;}
.tav-wrap .tav-pi-btn .tav-pi-cta-arrow{order:3 !important;}
/* v1.5.30: form now lives over the map; needs an opaque white card. */
.tav-wrap .tav-pi-form{display:grid !important;gap:8px !important;animation:tavFadeIn .2s ease !important;background:#fff !important;border-radius:10px !important;padding:14px !important;box-shadow:0 12px 32px rgba(13,27,42,.25) !important;border:1px solid var(--hairline) !important;}
.tav-wrap .tav-pi-row{display:grid !important;grid-template-columns:1fr 1fr !important;gap:8px !important;}
.tav-wrap .tav-pi input[type='text'],
.tav-wrap .tav-pi input[type='email'],
.tav-wrap .tav-pi input[type='tel']{width:100% !important;padding:11px 14px !important;border:1px solid var(--hairline) !important;border-radius:9px !important;font-family:inherit !important;font-size:13px !important;background:var(--ivory) !important;color:var(--navy) !important;}
.tav-wrap .tav-pi input:focus{outline:none !important;border-color:var(--gold) !important;background:#fff !important;}
.tav-wrap .tav-pi button[type='submit']{background:var(--navy) !important;color:var(--ivory) !important;border:none !important;border-radius:9px !important;padding:11px 16px !important;font-family:inherit !important;font-size:13px !important;font-weight:500 !important;cursor:pointer !important;white-space:nowrap !important;transition:background .15s !important;}
.tav-wrap .tav-pi button[type='submit']:hover{background:#2A3445 !important;}
.tav-wrap .tav-pi button[type='submit']:disabled{opacity:.6 !important;cursor:wait !important;}
.tav-wrap .tav-pi-error{color:#b34030 !important;font-size:12px !important;}
.tav-wrap .tav-pi-success{background:#fff !important;color:var(--navy) !important;border:1px solid rgba(176,141,87,.40) !important;border-radius:10px !important;padding:14px 16px !important;font-size:14px !important;animation:tavFadeIn .2s ease !important;box-shadow:0 12px 32px rgba(13,27,42,.20) !important;}
.tav-wrap .tav-modal-details .gmaps-link{font-size:12px !important;color:var(--navy-soft) !important;text-decoration:none !important;letter-spacing:.04em !important;margin-top:-2px !important;}
.tav-wrap .tav-modal-details .gmaps-link:hover{color:var(--gold-deep) !important;}
@media (max-width: 760px){
  .tav-wrap .tav-pi-row{grid-template-columns:1fr !important;}
}

@media (max-width: 760px){
  .tav-wrap .tav-modal{padding:0 !important;}
  .tav-wrap .tav-modal-card{width:100% !important;max-height:100vh !important;height:100vh !important;border-radius:0 !important;}
  .tav-wrap .tav-modal-grid{grid-template-columns:1fr !important;grid-template-rows:auto 1fr !important;min-height:0 !important;height:100% !important;}
  .tav-wrap .tav-modal-map{min-height:320px !important;height:46vh !important;order:1 !important;}
  .tav-wrap .tav-modal-details{order:2 !important;padding:24px 22px !important;}
  .tav-wrap .tav-modal-details h2{font-size:24px !important;}
  .tav-wrap .tav-modal-details .price{font-size:28px !important;}
  .tav-wrap .tav-modal-map .tav-pi{left:12px !important;right:12px !important;bottom:12px !important;}
}

/* ── v1.5.25: address search bar + autocomplete + active-filter chip ── */
/* v1.5.47: use PADDING (not margin) so the inset survives even when Elementor
   strips the parent .tav-wrap's horizontal padding. Padding stays inside the
   row's own box and pushes the pill in by 28px on each side. */
.tav-wrap .tav-search-row{position:relative !important;margin:20px 0 8px !important;padding:28px !important;box-sizing:border-box !important;}
@media (max-width: 640px){
  .tav-wrap .tav-search-row{padding:16px !important;}
}
.tav-wrap .tav-search-input-wrap{position:relative !important;}
.tav-wrap .tav-search-input-wrap input{width:100% !important;padding:14px 44px 14px 44px !important;border:1px solid var(--hairline) !important;border-radius:12px !important;background:#fff !important;font-family:inherit !important;font-size:14px !important;color:var(--navy) !important;transition:border-color .15s, box-shadow .15s !important;box-sizing:border-box !important;}
.tav-wrap .tav-search-input-wrap input:focus{outline:none !important;border-color:var(--gold) !important;box-shadow:0 0 0 3px rgba(176,141,87,.15) !important;}
.tav-wrap .tav-search-input-wrap input::placeholder{color:var(--navy-soft) !important;opacity:.7 !important;}
.tav-wrap .tav-search-icon{position:absolute !important;left:14px !important;top:50% !important;transform:translateY(-50%) !important;color:var(--navy-soft) !important;pointer-events:none !important;}
.tav-wrap .tav-search-clear{position:absolute !important;right:8px !important;top:50% !important;transform:translateY(-50%) !important;width:28px !important;height:28px !important;border:none !important;background:transparent !important;cursor:pointer !important;font-size:20px !important;line-height:1 !important;color:var(--navy-soft) !important;border-radius:50% !important;display:flex !important;align-items:center !important;justify-content:center !important;}
.tav-wrap .tav-search-clear:hover{background:var(--ivory) !important;color:var(--navy) !important;}
/* v1.5.47: align the suggestions dropdown with the inset input pill — the
   row now has 28px (16px on mobile) horizontal padding. */
.tav-wrap .tav-search-suggestions{position:absolute !important;top:100% !important;left:28px !important;right:28px !important;background:#fff !important;border:1px solid var(--hairline) !important;border-radius:12px !important;box-shadow:var(--shadow-lift) !important;margin-top:6px !important;z-index:50 !important;max-height:320px !important;overflow-y:auto !important;}
@media (max-width: 640px){
  .tav-wrap .tav-search-suggestions{left:16px !important;right:16px !important;}
}
.tav-wrap .tav-search-suggestions .item{padding:12px 16px !important;cursor:pointer !important;font-size:14px !important;color:var(--navy) !important;border-bottom:1px solid var(--hairline) !important;transition:background .12s !important;}
.tav-wrap .tav-search-suggestions .item:last-child{border-bottom:none !important;}
.tav-wrap .tav-search-suggestions .item:hover,
.tav-wrap .tav-search-suggestions .item.active{background:var(--ivory) !important;}
.tav-wrap .tav-search-suggestions .item .place{display:block !important;font-weight:500 !important;}
.tav-wrap .tav-search-suggestions .item .ctx{display:block !important;font-size:12px !important;color:var(--navy-soft) !important;margin-top:2px !important;}
.tav-wrap .tav-search-suggestions .empty{padding:14px 16px !important;font-size:13px !important;color:var(--navy-soft) !important;font-style:italic !important;}

.tav-wrap .tav-search-active{display:inline-flex !important;align-items:center !important;gap:12px !important;padding:8px 14px !important;background:rgba(176,141,87,.10) !important;border:1px solid rgba(176,141,87,.30) !important;border-radius:20px !important;font-size:13px !important;color:var(--navy) !important;margin:6px 0 8px !important;}
.tav-wrap .tav-chip-clear{border:none !important;background:transparent !important;cursor:pointer !important;color:var(--navy-soft) !important;font-size:12px !important;font-family:inherit !important;letter-spacing:.04em !important;padding:0 !important;}
.tav-wrap .tav-chip-clear:hover{color:var(--navy) !important;}

/* v1.5.25: hard override of .hidden specificity. Several .tav-* rules
   defined later in this file use !important without scoping for .hidden,
   so .hidden was losing the cascade. These compound selectors raise the
   specificity (3 classes) so they beat the 2-class rules above. */
.tav-wrap .tav-pi-form.hidden,
.tav-wrap .tav-pi-success.hidden,
.tav-wrap .tav-search-suggestions.hidden,
.tav-wrap .tav-search-active.hidden,
.tav-wrap .tav-search-clear.hidden,
.tav-wrap .tav-pi-btn.hidden{display:none !important;}

/* v1.5.36: nuke the gate/leadcard/thanks when they're hidden. Without these
   compound selectors, the more-specific rules on .tav-gate / .tav-leadcard
   keep min-height and position:absolute applied even when .hidden is added,
   producing an enormous block of empty space below the success message. */
.tav-wrap .tav-gate.hidden,
.tav-wrap .tav-gate .tav-leadcard.hidden,
.tav-wrap .tav-leadcard.hidden,
.tav-wrap .tav-thanks.hidden{
  display:none !important;
  min-height:0 !important;
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
}
