  /* ============ TOKENS ============ */
  :root{
    --violet: #6B38B5;
    --violet-deep: #4E278A;
    --blue: #3B25F0;
    --orange: #FFA535;
    --orange-deep: #F0871C;

    --ink: #221733;
    --ink-soft: #4A3F5C;
    --muted: #746a87;
    --line: #E6DEF4;
    --line-soft: #F0EAF9;

    --surface: #FFFFFF;
    --surface-soft: #FAF7FD;
    --surface-violet: #F4EEFC;
    --surface-deep: #170C2B;
    --surface-deep-2: #221238;

    --grad-brand: linear-gradient(120deg, var(--violet) 0%, var(--blue) 100%);
    --grad-brand-soft: linear-gradient(120deg, rgba(107,56,181,.14), rgba(59,37,240,.14));
    --grad-hero: radial-gradient(circle at 14% 18%, rgba(255,165,53,.20), transparent 42%),
                 radial-gradient(circle at 82% 8%, rgba(59,37,240,.55), transparent 46%),
                 radial-gradient(circle at 92% 78%, rgba(107,56,181,.5), transparent 50%),
                 linear-gradient(160deg, #1B0E32 0%, #241141 46%, #2C1050 100%);

    --font-display: 'Manrope', 'Segoe UI', system-ui, sans-serif;
    --font-body: 'Plus Jakarta Sans', 'Segoe UI', system-ui, sans-serif;

    --shadow-sm: 0 2px 10px rgba(34,23,51,.06);
    --shadow-md: 0 14px 34px rgba(43,20,90,.14);
    --shadow-lg: 0 30px 70px rgba(23,12,43,.35);

    --radius-sm: 10px;
    --radius-md: 18px;
    --radius-lg: 28px;

    --container: 1240px;
  }

  *,*::before,*::after{ box-sizing: border-box; }
  html{ scroll-behavior: smooth; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior: auto; }
    *,*::before,*::after{ animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  }

  body{
    margin: 0;
    font-family: var(--font-body);
    color: var(--ink);
    background: var(--surface);
    -webkit-font-smoothing: antialiased;
    line-height: 1.55;
  }

  img,svg{ display:block; max-width:100%; }
  a{ color: inherit; text-decoration: none; }
  button{ font: inherit; cursor: pointer; }
  input,select{ font: inherit; }
  ul{ margin:0; padding:0; list-style:none; }
  h1,h2,h3,h4,p{ margin:0; }

  h1,h2,h3,h4{
    font-family: var(--font-display);
    color: var(--ink);
    text-wrap: balance;
    letter-spacing: -0.01em;
  }

  .container{
    width: 100%;
    max-width: var(--container);
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 4vw, 2.5rem);
  }

  .skip-link{
    position:absolute; left:-999px; top:auto;
    background: var(--ink); color:#fff; padding: .75rem 1.25rem; border-radius: 0 0 8px 0; z-index: 999;
  }
  .skip-link:focus{ left:0; top:0; }

  :focus-visible{ outline: 2.5px solid var(--orange); outline-offset: 3px; border-radius: 4px; }

  .eyebrow{
    display:inline-flex; align-items:center; gap:.5rem;
    font-family: var(--font-display); font-weight: 700; font-size: .78rem;
    letter-spacing: .11em; text-transform: uppercase; color: var(--violet);
  }
  .eyebrow .chev{ width: 13px; height: 13px; color: var(--orange); }
  .eyebrow.on-dark{ color: #C9B4F2; }
  .eyebrow.on-dark .chev{ color: var(--orange); }

  .demo-tag{
    display:inline-flex; align-items:center; gap:.4rem;
    font-size: .74rem; font-weight: 600; color: var(--muted);
    background: var(--surface-violet); border: 1px solid var(--line);
    padding: .3rem .7rem; border-radius: 100px;
  }
  .demo-tag svg{ width: 13px; height: 13px; color: var(--violet); flex-shrink:0; }

  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
    font-family: var(--font-display); font-weight: 700; font-size: .95rem;
    padding: .85rem 1.5rem; border-radius: 100px; border: 1px solid transparent;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
    white-space: nowrap;
  }
  .btn svg{ width: 17px; height: 17px; }
  .btn-primary{ background: var(--orange); color: #2A1500; box-shadow: 0 10px 24px rgba(255,165,53,.35); }
  .btn-primary:hover{ background: var(--orange-deep); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(255,165,53,.42); }
  .btn-ghost-light{ background: rgba(255,255,255,.08); color:#fff; border-color: rgba(255,255,255,.28); backdrop-filter: blur(6px); }
  .btn-ghost-light:hover{ background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.5); transform: translateY(-2px); }
  .btn-outline{ background: transparent; color: var(--violet); border-color: var(--violet); }
  .btn-outline:hover{ background: var(--surface-violet); transform: translateY(-2px); }
  .btn-text{ color: var(--violet); font-family: var(--font-display); font-weight: 700; font-size: .9rem; display:inline-flex; align-items:center; gap:.4rem; }
  .btn-text svg{ width:14px; height:14px; transition: transform .18s ease; }
  .btn-text:hover svg{ transform: translateX(3px); }
  .btn-block{ width: 100%; }

  /* ============ BRAND MARK ============ */
  .mark{ display:block; }
  .logo{ display:inline-flex; align-items:center; gap:.65rem; }
  .logo .mark{ width: 30px; height: 30px; }
  .logo-word{ font-family: var(--font-display); font-weight: 800; font-size: 1.28rem; color: var(--ink); letter-spacing: -0.01em; }
  .logo-word span{ color: var(--violet); }
  .logo.on-dark .logo-word{ color:#fff; }
  .logo.on-dark .logo-word span{ color: var(--orange); }

  /* ============ TOPBAR ============ */
  .topbar{
    background: var(--surface-deep);
    color: #C9B7E8;
    font-size: .82rem;
  }
  .topbar .container{
    display:flex; align-items:center; justify-content:space-between;
    padding-top:.55rem; padding-bottom:.55rem; gap:1rem;
  }
  .topbar-left{ display:flex; align-items:center; gap:1.4rem; }
  .topbar-item{ display:flex; align-items:center; gap:.45rem; white-space:nowrap; }
  .topbar-item svg{ width:14px; height:14px; color: var(--orange); flex-shrink:0; }
  .topbar-right{ display:flex; align-items:center; gap:.9rem; }
  .topbar-right a{ display:flex; width:28px; height:28px; align-items:center; justify-content:center; border-radius:50%; background: rgba(255,255,255,.08); transition: background .18s ease, transform .18s ease; }
  .topbar-right a:hover{ background: var(--orange); transform: translateY(-2px); }
  .topbar-right svg{ width:14px; height:14px; }

  /* ============ HEADER ============ */
  .site-header{
    position: sticky; top:0; z-index: 60;
    background: rgba(255,255,255,.9);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line-soft);
    transition: box-shadow .25s ease, padding .25s ease;
  }
  .site-header.scrolled{ box-shadow: var(--shadow-sm); }
  .header-inner{
    display:flex; align-items:center; justify-content:space-between;
    padding-block: 1rem; gap: 1.5rem;
    transition: padding .25s ease;
  }
  .site-header.scrolled .header-inner{ padding-block: .68rem; }

  .main-nav{ display:flex; align-items:center; gap: 2.1rem; }
  .main-nav a{
    font-weight: 600; font-size: .95rem; color: var(--ink-soft);
    position:relative; padding-block:.3rem;
  }
  .main-nav a::after{
    content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px;
    background: var(--grad-brand); transform: scaleX(0); transform-origin: left;
    transition: transform .22s ease;
  }
  .main-nav a:hover{ color: var(--violet); }
  .main-nav a:hover::after{ transform: scaleX(1); }

  .header-actions{ display:flex; align-items:center; gap: .9rem; }
  .link-login{ font-weight: 700; font-size:.9rem; color: var(--ink-soft); display:flex; align-items:center; gap:.4rem; }
  .link-login:hover{ color: var(--violet); }
  .link-login svg{ width:16px; height:16px; }

  .nav-toggle{
    display:none; width:42px; height:42px; border-radius: 10px; border:1px solid var(--line);
    background: var(--surface-soft); align-items:center; justify-content:center;
  }
  .nav-toggle svg{ width:20px; height:20px; color: var(--violet); }

  .mobile-nav{
    max-height:0; overflow:hidden; transition: max-height .3s ease;
  }

  /* ============ HERO ============ */
  .hero{
    position: relative; overflow: hidden;
    background: var(--grad-hero);
    color: #fff;
    padding-top: clamp(2.8rem, 6vw, 4.6rem);
    padding-bottom: 0;
  }
  .hero-watermark{
    position:absolute; top: -14%; right: -8%;
    width: min(60vw, 620px); height: auto; opacity: .1;
    transform: rotate(-8deg);
  }
  .hero-skyline{ position:absolute; left:0; right:0; bottom:-2px; width:100%; height:auto; color: var(--surface); }
  .hero-inner{ position:relative; z-index:2; }
  .hero-grid{
    display:grid; grid-template-columns: 1.05fr .95fr; gap: 3rem; align-items:center;
    padding-bottom: 4.5rem;
  }
  .hero-copy .eyebrow{ margin-bottom: 1.1rem; }
  .hero-copy h1{
    font-size: clamp(2.35rem, 1.2rem + 3.1vw, 3.7rem);
    line-height: 1.06; font-weight: 800; color: #fff;
  }
  .hero-copy h1 em{ font-style: normal; color: var(--orange); }
  .hero-copy p{
    margin-top: 1.3rem; font-size: 1.08rem; color: #D9CCF1; max-width: 46ch;
  }
  .hero-cta-row{ display:flex; flex-wrap:wrap; align-items:center; gap: 1rem; margin-top: 2rem; }
  .hero-proof{ display:flex; align-items:center; gap: .8rem; margin-top: 2.4rem; }
  .avatar-stack{ display:flex; }
  .avatar-stack span{
    width: 34px; height:34px; border-radius:50%; border: 2px solid #2C1050;
    display:flex; align-items:center; justify-content:center; font-size:.7rem; font-weight:700;
    color:#fff; margin-left:-10px; font-family: var(--font-display);
  }
  .avatar-stack span:first-child{ margin-left:0; }
  .hero-proof-text{ font-size: .86rem; color: #C9B7E8; }
  .hero-proof-text strong{ color:#fff; }

  .hero-art{ position: relative; }
  .hero-art-card{
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: var(--radius-lg);
    padding: 1.4rem;
    backdrop-filter: blur(6px);
    box-shadow: var(--shadow-lg);
  }
  .hero-photo{
    border-radius: var(--radius-md);
    aspect-ratio: 4/3.1;
    overflow:hidden;
    position:relative;
    background:
      linear-gradient(200deg, rgba(255,165,53,.9), transparent 55%),
      linear-gradient(20deg, var(--blue), var(--violet));
  }
  .hero-photo svg{ position:absolute; inset:0; width:100%; height:100%; }
  .hero-photo-tag{
    position:absolute; left: 1rem; top: 1rem;
    background: rgba(23,12,43,.55); backdrop-filter: blur(4px);
    color:#fff; font-size:.74rem; font-weight:700; padding:.4rem .75rem; border-radius: 100px;
    display:flex; align-items:center; gap:.4rem;
  }
  .hero-photo-tag i{ width:7px; height:7px; border-radius:50%; background:#42E08A; display:block; box-shadow:0 0 0 3px rgba(66,224,138,.25); }
  .hero-float-card{
    position:absolute; left:-1.6rem; bottom:-1.6rem;
    background:#fff; color: var(--ink); border-radius: var(--radius-md);
    padding: 1rem 1.2rem; box-shadow: var(--shadow-lg);
    display:flex; align-items:center; gap:.85rem;
    max-width: 250px;
  }
  .hero-float-card .icon-badge{ background: var(--grad-brand-soft); color: var(--violet); }
  .hero-float-card strong{ display:block; font-family: var(--font-display); font-size: 1rem; }
  .hero-float-card span{ font-size: .78rem; color: var(--muted); }

  .icon-badge{
    width: 42px; height:42px; border-radius: 12px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    background: var(--grad-brand-soft); color: var(--violet);
  }
  .icon-badge svg{ width:20px; height:20px; }
  .icon-badge.solid{ background: var(--grad-brand); color:#fff; }
  .icon-badge.orange{ background: rgba(255,165,53,.16); color: var(--orange-deep); }

  /* ============ SEARCH WIDGET ============ */
  .search-widget{
    position: relative; z-index: 5;
    background: #fff; border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 1.5rem 1.5rem 1.7rem;
    margin-top: -3.6rem;
    border: 1px solid var(--line-soft);
  }
  .search-tabs{ display:flex; gap:.4rem; margin-bottom: 1.2rem; flex-wrap:wrap; }
  .search-tab{
    border:none; background: var(--surface-soft); color: var(--ink-soft);
    padding: .62rem 1.15rem; border-radius: 100px; font-weight:700; font-size:.88rem;
    display:flex; align-items:center; gap:.45rem; transition: all .18s ease;
  }
  .search-tab svg{ width:15px; height:15px; }
  .search-tab[aria-selected="true"]{ background: var(--grad-brand); color:#fff; box-shadow: 0 8px 18px rgba(75,40,170,.28); }
  .search-tab:hover:not([aria-selected="true"]){ background: var(--surface-violet); color: var(--violet); }

  .search-fields{
    display:grid; grid-template-columns: repeat(4, 1fr) auto; gap: .9rem; align-items:end;
  }
  .field label{
    display:block; font-size: .76rem; font-weight: 700; color: var(--muted);
    text-transform: uppercase; letter-spacing: .06em; margin-bottom: .4rem;
  }
  .field .select-wrap{ position:relative; }
  .field select{
    width:100%; appearance:none; background: var(--surface-soft);
    border: 1.5px solid var(--line); border-radius: var(--radius-sm);
    padding: .78rem 2.2rem .78rem .9rem; color: var(--ink); font-weight:600; font-size:.92rem;
    transition: border-color .18s ease, background .18s ease;
  }
  .field select:hover{ border-color: var(--violet); }
  .field select:focus{ border-color: var(--violet); background:#fff; }
  .field .select-wrap svg{
    position:absolute; right: .8rem; top:50%; transform: translateY(-50%);
    width: 14px; height:14px; color: var(--violet); pointer-events:none;
  }
  .search-submit{ height: 47px; padding-inline: 1.6rem; }

  .search-foot{
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.7rem;
    margin-top: 1.15rem; padding-top: 1.05rem; border-top: 1px dashed var(--line);
  }
  .sync-badge{ display:flex; align-items:center; gap:.55rem; font-size:.82rem; color: var(--ink-soft); font-weight:600; }
  .sync-dot{ width:8px; height:8px; border-radius:50%; background:#33C56A; box-shadow: 0 0 0 4px rgba(51,197,106,.18); position:relative; }
  .sync-dot::after{
    content:""; position:absolute; inset:-4px; border-radius:50%; border:1.5px solid #33C56A; opacity:.6;
    animation: pulse-ring 2.2s ease-out infinite;
  }
  @keyframes pulse-ring{ 0%{ transform:scale(.6); opacity:.7;} 100%{ transform:scale(1.9); opacity:0;} }
  .quick-links{ display:flex; gap: 1.1rem; flex-wrap:wrap; }
  .quick-links a{ font-size:.82rem; font-weight:700; color: var(--violet); }
  .quick-links a:hover{ text-decoration: underline; }

  /* ============ SECTION LAYOUT ============ */
  section{ padding-block: clamp(3.4rem, 6vw, 5.8rem); }
  .section-soft{ background: var(--surface-soft); }
  .section-head{
    display:flex; align-items:flex-end; justify-content:space-between; gap: 2rem;
    margin-bottom: 2.6rem; flex-wrap:wrap;
  }
  .section-head h2{ font-size: clamp(1.7rem, 1.1rem + 1.7vw, 2.4rem); margin-top:.6rem; font-weight:800; }
  .section-head p{ color: var(--muted); margin-top:.7rem; max-width: 52ch; }
  .section-head-tags{ display:flex; align-items:center; gap:.7rem; margin-top:.6rem; }

  .reveal{ opacity:0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }
  .reveal.in-view{ opacity:1; transform: translateY(0); }

  /* ============ STATS ============ */
  .stats{ padding-block: 2.6rem; background: var(--surface-deep); color:#fff; }
  .stats-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 1.5rem; }
  .stat{ text-align:center; padding-inline:1rem; border-right: 1px solid rgba(255,255,255,.1); }
  .stat:last-child{ border-right:none; }
  .stat-num{
    font-family: var(--font-display); font-weight: 800; font-size: clamp(1.7rem, 1.1rem + 1.6vw, 2.5rem);
    color:#fff; font-variant-numeric: tabular-nums;
  }
  .stat-num span{ color: var(--orange); }
  .stat-label{ font-size: .82rem; color: #B9A6DD; margin-top:.35rem; font-weight:600; }
  .stats-note{ text-align:center; font-size:.75rem; color:#8875AC; margin-top: 1.6rem; }

  /* ============ OPERATIONS ============ */
  .ops-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 1.2rem; }
  .op-card{
    border: 1px solid var(--line); border-radius: var(--radius-md);
    padding: 1.6rem; background:#fff; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .op-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-md); border-color: transparent; }
  .op-card h3{ font-size: 1.08rem; margin-top: 1rem; }
  .op-card p{ color: var(--muted); font-size: .88rem; margin-top:.4rem; }
  .op-card .btn-text{ margin-top: 1rem; }

  /* ============ FEATURED PROPERTIES ============ */
  .prop-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
  .prop-card{
    border-radius: var(--radius-md); overflow:hidden; background:#fff;
    border: 1px solid var(--line); transition: transform .22s ease, box-shadow .22s ease;
  }
  .prop-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
  .prop-media{ position:relative; aspect-ratio: 4/3; overflow:hidden; background: var(--surface-violet); }
  .prop-media svg{ position:absolute; inset:0; width:100%; height:100%; }
  .prop-media img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit: cover; object-position: center;
    color: transparent; /* si la foto no carga, oculta el texto alternativo en vez de desbordarlo sobre el badge */
    font-size: 0;
  }
  .prop-badge{
    position:absolute; top:.85rem; left:.85rem; z-index:2;
    background: var(--violet); color:#fff; font-size:.72rem; font-weight:800;
    padding:.32rem .7rem; border-radius:100px; letter-spacing:.02em;
  }
  .prop-badge.rent{ background: var(--orange); color:#2A1500; }
  .fav-btn{
    position:absolute; top:.75rem; right:.75rem; z-index:2;
    width:36px; height:36px; border-radius:50%; border:none; padding:0; line-height:0;
    background: rgba(255,255,255,.92); display:grid; place-items:center;
    transition: transform .18s ease;
  }
  .fav-btn:hover{ transform: scale(1.08); }
  .fav-btn svg{
    width:17px; height:17px; color: var(--ink-soft); transition: color .18s ease, fill .18s ease;
    display:block;
    /* El path del corazón no es perfectamente simétrico dentro de su
       viewBox 24x24 (queda un poco más "alto" que "ancho") — este ajuste
       fino lo recentra visualmente dentro del círculo del botón. */
    transform: translate(0, 0.5px);
  }
  .fav-btn.active svg{ color: var(--orange); fill: var(--orange); }
  .prop-price-tag{
    position:absolute; bottom:.85rem; left:.85rem; z-index:2;
    background: rgba(23,12,43,.72); backdrop-filter: blur(3px); color:#fff;
    font-family: var(--font-display); font-weight:800; font-size:1rem;
    padding: .4rem .8rem; border-radius: var(--radius-sm);
  }
  .prop-body{ padding: 1.15rem 1.25rem 1.35rem; }
  .prop-loc{ display:flex; align-items:center; gap:.4rem; font-size:.8rem; color: var(--muted); font-weight:600; }
  .prop-loc svg{ width:13px; height:13px; color: var(--violet); }
  .prop-title{ font-size: 1.06rem; margin-top:.5rem; font-weight:700; }
  .prop-feats{ display:flex; gap: 1rem; margin-top: .9rem; padding-top:.9rem; border-top: 1px solid var(--line-soft); }
  .prop-feat{ display:flex; align-items:center; gap:.35rem; font-size:.8rem; color: var(--ink-soft); font-weight:600; }
  .prop-feat svg{ width:15px; height:15px; color: var(--violet); }
  .prop-cta{ margin-top: 1.15rem; }

  .featured-foot{ display:flex; justify-content:center; margin-top: 2.6rem; }

  /* ============ ZONES ============ */
  .zones-wrap{ display:flex; flex-wrap:wrap; gap: .8rem; }
  .zone-chip{
    display:flex; align-items:center; gap:.6rem;
    border: 1.5px solid var(--line); border-radius: 100px; padding: .7rem 1.1rem 0.7rem .7rem;
    background:#fff; transition: all .18s ease;
  }
  .zone-chip .icon-badge{ width:34px; height:34px; border-radius:50%; }
  .zone-chip .icon-badge svg{ width:16px; height:16px; }
  .zone-chip strong{ display:block; font-size:.92rem; font-family: var(--font-display); }
  .zone-chip span{ display:block; font-size:.74rem; color: var(--muted); }
  .zone-chip:hover, .zone-chip.active{ border-color: var(--violet); background: var(--surface-violet); transform: translateY(-3px); }

  /* ============ WHY US ============ */
  .why-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; }
  .why-card{ padding: 1.7rem 1.5rem; border-radius: var(--radius-md); background:#fff; border:1px solid var(--line); }
  .why-card h3{ font-size: 1.05rem; margin-top: 1.1rem; }
  .why-card p{ font-size: .87rem; color: var(--muted); margin-top:.5rem; }

  /* ============ TEAM ============ */
  .team-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; }
  .team-card{
    text-align:center; padding: 1.8rem 1.3rem; border-radius: var(--radius-md);
    background:#fff; border:1px solid var(--line); transition: transform .2s ease, box-shadow .2s ease;
  }
  .team-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-md); }
  .team-avatar{
    width: 78px; height:78px; border-radius:50%; margin-inline:auto;
    display:flex; align-items:center; justify-content:center;
    color:#fff; overflow:hidden; position:relative;
    background: var(--grad-brand);
  }
  .team-avatar svg{ width: 36px; height:36px; }
  .team-avatar img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position: center top;
    color:transparent; font-size:0;
  }
  .team-card h3{ font-size:1.02rem; margin-top:1rem; }
  .team-role{ font-size:.8rem; color: var(--violet); font-weight:700; margin-top:.2rem; }
  .team-zone{ font-size:.78rem; color: var(--muted); margin-top:.3rem; }
  .team-links{ display:flex; justify-content:center; gap:.55rem; margin-top: 1.1rem; }
  .team-links a{
    width:32px; height:32px; border-radius:50%; background: var(--surface-soft);
    display:flex; align-items:center; justify-content:center; transition: background .18s ease, transform .18s ease;
  }
  .team-links a svg{ width:14px; height:14px; color: var(--violet); }
  .team-links a:hover{ background: var(--grad-brand); transform: translateY(-2px); }
  .team-links a:hover svg{ color:#fff; }

  /* ============ CTA BAND ============ */
  .cta-band{
    background: var(--grad-hero);
    color:#fff; position:relative; overflow:hidden;
  }
  .cta-band .hero-watermark{ opacity:.08; top:-30%; right:-10%; }
  .cta-grid{ display:grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items:center; position:relative; z-index:2; }
  .cta-copy h2{ color:#fff; font-size: clamp(1.7rem, 1rem + 2vw, 2.5rem); font-weight:800; }
  .cta-copy p{ color:#D9CCF1; margin-top: 1rem; max-width: 46ch; }
  .cta-points{ display:flex; flex-direction:column; gap:.7rem; margin-top: 1.5rem; }
  .cta-point{ display:flex; align-items:center; gap:.6rem; font-size:.92rem; color:#EFE7FA; font-weight:600; }
  .cta-point svg{ width:16px; height:16px; color: var(--orange); flex-shrink:0; }

  .tasacion-card{
    background: rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18);
    backdrop-filter: blur(8px); border-radius: var(--radius-lg); padding: 1.8rem;
  }
  .tasacion-card h3{ color:#fff; font-size:1.15rem; }
  .tasacion-card > p{ color:#C9B7E8; font-size:.85rem; margin-top:.35rem; }
  .form-row{ display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: .8rem; margin-top: 1.3rem; }
  .form-field{ display:flex; flex-direction:column; gap:.4rem; min-width:0; }
  .form-field.full{ grid-column: 1 / -1; }
  .form-field input, .form-field select, .form-field textarea{ width:100%; min-width:0; }
  .form-field label{ font-size:.74rem; font-weight:700; color:#C9B7E8; text-transform:uppercase; letter-spacing:.05em; }
  .form-field input, .form-field select{
    background: rgba(255,255,255,.08); border: 1.5px solid rgba(255,255,255,.2); border-radius: var(--radius-sm);
    padding: .72rem .85rem; color:#fff; font-weight:600;
  }
  .form-field select option{ color: #221733; }
  .form-field input::placeholder{ color: #B9A6DD; }
  .form-field input:focus, .form-field select:focus{ border-color: var(--orange); background: rgba(255,255,255,.13); }
  .tasacion-card .btn{ margin-top: 1.3rem; }
  .form-success{ display:none; text-align:center; padding: 1.5rem 0; }
  .form-success.show{ display:block; }
  .form-success .icon-badge{ margin-inline:auto; background: rgba(66,224,138,.18); color:#42E08A; }
  .form-success h4{ color:#fff; margin-top:1rem; }
  .form-success p{ color:#C9B7E8; font-size:.88rem; margin-top:.4rem; }

  /* ============ CAREERS (TRABAJÁ CON NOSOTROS) ============ */
  .careers-grid{ align-items:start; }
  .careers-copy p{ color: var(--muted); margin-top: 1rem; max-width: 46ch; }
  .careers-points{ margin-top: 1.6rem; }
  .careers-points .cta-point{ color: var(--ink-soft); }
  .careers-mailto{ margin-top: 1.7rem; }

  .apply-card{
    background:#fff; border: 1px solid var(--line); border-radius: var(--radius-lg);
    padding: 1.8rem; box-shadow: var(--shadow-md);
  }
  .apply-card h3{ font-size: 1.15rem; }
  .apply-card > form > p{ color: var(--muted); font-size:.85rem; margin-top:.35rem; }
  .apply-card .form-field label{ color: var(--muted); }
  .apply-card .form-field input,
  .apply-card .form-field select,
  .apply-card .form-field textarea{
    background: var(--surface-soft); border: 1.5px solid var(--line); color: var(--ink);
  }
  .apply-card .form-field input::placeholder,
  .apply-card .form-field textarea::placeholder{ color: var(--muted); }
  .apply-card .form-field input:focus,
  .apply-card .form-field select:focus,
  .apply-card .form-field textarea:focus{ border-color: var(--violet); background:#fff; }
  .apply-card .form-field select option{ color: var(--ink); }
  .apply-card .form-success h4{ color: var(--ink); }
  .apply-card .form-success p{ color: var(--muted); }
  .form-field textarea{ resize: vertical; min-height: 84px; font-family: inherit; }

  /* ============ FOOTER ============ */
  .site-footer{ background: #100820; color: #B9A6DD; padding-top: 4rem; }
  .footer-grid{ display:grid; grid-template-columns: 1.4fr .8fr .8fr 1.1fr; gap: 2.5rem; padding-bottom: 3rem; border-bottom: 1px solid rgba(255,255,255,.08); }
  .footer-about p{ font-size:.88rem; margin-top: 1rem; max-width: 34ch; color:#A594C6; }
  .footer-social{ display:flex; gap:.6rem; margin-top: 1.4rem; }
  .footer-social a{ width:34px; height:34px; border-radius:50%; background: rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; transition: background .18s ease, transform .18s ease; }
  .footer-social a svg{ width:15px; height:15px; color:#D9CCF1; }
  .footer-social a:hover{ background: var(--grad-brand); transform: translateY(-2px); }
  .footer-col h4{ color:#fff; font-size: .9rem; margin-bottom: 1.1rem; }
  .footer-col ul{ display:flex; flex-direction:column; gap: .7rem; }
  .footer-col a{ font-size: .87rem; transition: color .18s ease; }
  .footer-col a:hover{ color: var(--orange); }
  .footer-contact li{ font-size:.87rem; }
  .footer-contact li a{ display:flex; align-items:flex-start; gap:.6rem; transition: color .18s ease; }
  .footer-contact li a:hover{ color: var(--orange); }
  .topbar-item:hover{ color:#fff; }
  .footer-contact svg{ width:15px; height:15px; color: var(--orange); flex-shrink:0; margin-top: .15rem; }
  .footer-bottom{
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem;
    padding-block: 1.5rem; font-size:.8rem; color:#8875AC;
  }
  .footer-bottom .tokko{ display:flex; align-items:center; gap:.45rem; }
  .footer-bottom .tokko svg{ width:14px; height:14px; color: var(--orange); }

  /* ============ WHATSAPP FLOAT ============ */
  .wa-float{
    position: fixed; right: 1.6rem; bottom: 1.6rem; z-index: 70;
    width: 58px; height:58px; border-radius:50%; border:none;
    background: #25D366; box-shadow: 0 12px 26px rgba(37,211,102,.45);
    display:flex; align-items:center; justify-content:center;
    transition: transform .2s ease;
  }
  .wa-float:hover{ transform: scale(1.08); }
  .wa-float svg{ width:28px; height:28px; color:#fff; }

  /* ============ RESPONSIVE ============ */
  @media (max-width: 1080px){
    .hero-grid{ grid-template-columns: minmax(0,1fr); }
    .hero-art{ max-width: 480px; }
    .search-fields{ grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
    .search-submit{ grid-column: 1 / -1; }
    .ops-grid, .why-grid, .team-grid{ grid-template-columns: repeat(2,minmax(0,1fr)); }
    .prop-grid{ grid-template-columns: repeat(2,minmax(0,1fr)); }
    .cta-grid{ grid-template-columns: minmax(0,1fr); }
    .footer-grid{ grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
    .stats-grid{ grid-template-columns: repeat(2,1fr); row-gap: 1.6rem; }
    .stat:nth-child(2){ border-right:none; }
  }

  @media (max-width: 760px){
    .topbar-left .topbar-item:nth-child(2){ display:none; }
    .topbar-left .topbar-item:nth-child(3){ display:none; }
    .topbar-right{ display:none; }
    .main-nav{ display:none; }
    .header-actions .link-login{ display:none; }
    .nav-toggle{ display:flex; }
    .header-inner.menu-open + .mobile-nav{ max-height: 420px; border-top: 1px solid var(--line-soft); }
    .mobile-nav ul{ display:flex; flex-direction:column; padding: 1rem clamp(1.25rem,4vw,2.5rem) 1.4rem; gap:.3rem; }
    .mobile-nav a{ display:block; padding:.7rem .2rem; font-weight:700; color: var(--ink); border-bottom:1px solid var(--line-soft); }
    .mobile-nav .mobile-cta{ margin-top:.8rem; }

    .hero-copy p{ max-width: none; }
    .hero-float-card{ position:static; margin-top: 1rem; max-width:none; }
    .hero-art-card{ padding-bottom: 1rem; }
    .search-widget{ margin-top: 1.6rem; padding: 1.2rem; }
    .search-fields{ grid-template-columns: minmax(0,1fr); }
    .search-foot{ flex-direction:column; align-items:flex-start; }

    .ops-grid, .why-grid, .team-grid, .prop-grid{ grid-template-columns: minmax(0,1fr); }
    .stats-grid{ grid-template-columns: 1fr 1fr; }
    .footer-grid{ grid-template-columns: minmax(0,1fr); gap: 2.2rem; }
    .footer-bottom{ flex-direction:column; align-items:flex-start; }
    .cta-band .container, .hero .container{ padding-inline: 1.25rem; }
    section{ padding-block: 3rem; }
    .form-row{ grid-template-columns: minmax(0,1fr); }
    .btn{ white-space: normal; text-align:center; }
    .form-field.full{ grid-column: 1; }
  }

  /* ============ PÁGINA DE RESULTADOS ============ */
  .results-hero{
    background: var(--grad-hero); color:#fff; padding-block: 2.2rem 2.6rem; position:relative; overflow:hidden;
  }
  .results-hero .hero-watermark{ opacity:.08; }
  .breadcrumb{ font-size:.82rem; color:#C9B7E8; display:flex; gap:.4rem; align-items:center; position:relative; z-index:2; }
  .breadcrumb a{ color:#C9B7E8; }
  .breadcrumb a:hover{ color:#fff; }
  .results-hero h1{ color:#fff; font-size: clamp(1.5rem, 1rem + 1.6vw, 2.1rem); margin-top:.6rem; position:relative; z-index:2; }
  .results-hero p{ color:#D9CCF1; margin-top:.4rem; position:relative; z-index:2; }

  .results-layout{ display:grid; grid-template-columns: 280px 1fr; gap: 2rem; align-items:start; padding-block: 2.6rem; }
  .filters-panel{
    position:sticky; top: 90px; background:#fff; border:1px solid var(--line); border-radius: var(--radius-md);
    padding: 1.4rem; display:flex; flex-direction:column; gap:1.3rem;
  }
  .filters-panel h3{ font-size:.98rem; }
  .filter-group{ display:flex; flex-direction:column; gap:.6rem; }
  .filter-group .label{ font-size:.76rem; font-weight:700; color: var(--muted); text-transform:uppercase; letter-spacing:.05em; }
  .filter-chip-list{ display:flex; flex-wrap:wrap; gap:.4rem; }
  .filter-chip{
    border:1.5px solid var(--line); background:#fff; color: var(--ink-soft); font-size:.8rem; font-weight:600;
    padding:.4rem .75rem; border-radius:100px; transition: all .15s ease;
  }
  .filter-chip[aria-pressed="true"]{ background: var(--grad-brand); border-color:transparent; color:#fff; }
  .filter-chip:hover:not([aria-pressed="true"]){ border-color: var(--violet); color: var(--violet); }
  .filters-panel select, .filters-panel input[type="number"]{
    width:100%; border:1.5px solid var(--line); border-radius: var(--radius-sm); padding:.6rem .75rem;
    background: var(--surface-soft); font-weight:600; color: var(--ink); font-size:.88rem;
  }
  .filters-clear{ font-size:.82rem; color: var(--violet); font-weight:700; text-align:left; background:none; border:none; padding:0; }

  .results-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom: 1.4rem; flex-wrap:wrap; }
  .results-count{ font-size:.92rem; color: var(--ink-soft); font-weight:600; }
  .results-count strong{ color: var(--violet); }
  .results-sort select{
    border:1.5px solid var(--line); border-radius: var(--radius-sm); padding:.55rem .8rem; font-weight:600; font-size:.85rem; background:#fff;
  }

  .pagination{ display:flex; justify-content:center; gap:.5rem; margin-top: 2.4rem; }
  .pagination button{
    width:38px; height:38px; border-radius:10px; border:1.5px solid var(--line); background:#fff; font-weight:700; color: var(--ink-soft);
  }
  .pagination button[aria-current="true"]{ background: var(--grad-brand); border-color:transparent; color:#fff; }
  .pagination button:disabled{ opacity:.4; cursor:not-allowed; }

  .empty-state{ text-align:center; padding: 3.5rem 1rem; color: var(--muted); }
  .empty-state .icon-badge{ margin-inline:auto; width:56px; height:56px; }
  .empty-state h3{ margin-top:1rem; color: var(--ink); }
  .empty-state p{ margin-top:.4rem; }

  .skeleton-card{ border-radius: var(--radius-md); overflow:hidden; border:1px solid var(--line); background:#fff; }
  .skeleton-media{ aspect-ratio:4/3; background: linear-gradient(100deg, var(--surface-soft) 30%, var(--line-soft) 50%, var(--surface-soft) 70%); background-size:200% 100%; animation: shimmer 1.4s infinite; }
  .skeleton-line{ height:12px; border-radius:6px; margin:.9rem 1.1rem; background: linear-gradient(100deg, var(--surface-soft) 30%, var(--line-soft) 50%, var(--surface-soft) 70%); background-size:200% 100%; animation: shimmer 1.4s infinite; }
  .skeleton-line.w60{ width:60%; }
  .skeleton-line.w40{ width:40%; }
  @keyframes shimmer{ 0%{ background-position: 200% 0; } 100%{ background-position: -200% 0; } }
  @media (prefers-reduced-motion: reduce){ .skeleton-media, .skeleton-line{ animation:none; } }

  @media (max-width: 900px){
    .results-layout{ grid-template-columns: minmax(0,1fr); }
    .filters-panel{ position:static; }
  }

  /* ============ FICHA DE PROPIEDAD ============ */
  .property-gallery{ display:grid; grid-template-columns: 1fr 120px; gap: .8rem; }
  .property-gallery-main{
    grid-row: span 2; border-radius: var(--radius-lg); overflow:hidden; aspect-ratio: 4/3; background: var(--surface-violet);
    position:relative;
  }
  .property-gallery-main img{ width:100%; height:100%; object-fit:cover; object-position:center; color:transparent; font-size:0; display:block; }
  .property-gallery-thumbs{
    display:flex; flex-direction:column; gap:.6rem; max-height: 460px; overflow-y:auto;
  }
  .property-gallery-thumbs button{
    /* Alto FIJO en píxeles (en vez de aspect-ratio): en producción el
       aspect-ratio dejaba la miniatura mucho más baja de lo debido y las
       fotos quedaban apretadas unas contra otras, pareciendo superpuestas.
       Alto fijo + imagen en position:absolute es el mismo patrón "a prueba
       de balas" que ya usamos en .prop-media/.team-avatar y no depende de
       que el navegador soporte/calcule bien aspect-ratio dentro de un
       contenedor con scroll. */
    position:relative; width:100%; height:84px; flex-shrink:0;
    border:2px solid transparent; border-radius: var(--radius-sm); overflow:hidden;
    padding:0; margin:0; background: var(--surface-violet); display:block; line-height:0;
  }
  .property-gallery-thumbs button.active{ border-color: var(--violet); }
  .property-gallery-thumbs img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center;
    display:block; color:transparent; font-size:0;
  }

  /* ============ MAPA DE UBICACIÓN (ficha de propiedad) ============ */
  .property-map-wrap{ margin-top: 1.8rem; }
  .property-map-wrap h3{ font-size: 1.05rem; margin-bottom: .8rem; }
  .property-map{
    width:100%; height: 320px; border-radius: var(--radius-md); overflow:hidden;
    border: 1px solid var(--line); background: var(--surface-violet);
  }
  .property-map-note{ font-size:.78rem; color: var(--muted); margin-top:.6rem; }
  .price-alert-btn{ margin-top:.9rem; }

  .property-layout{ display:grid; grid-template-columns: 1fr 340px; gap: 2.6rem; align-items:start; padding-block: 2.4rem 4rem; }
  .property-main h1{ font-size: clamp(1.5rem, 1rem + 1.6vw, 2rem); }
  .property-meta{ display:flex; flex-wrap:wrap; gap: 1.4rem; margin-top: 1.2rem; padding: 1.2rem 0; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); }
  .property-meta .item{ display:flex; align-items:center; gap:.5rem; font-size:.92rem; color: var(--ink-soft); font-weight:600; }
  .property-meta .item svg{ width:18px; height:18px; color: var(--violet); }
  .property-desc{ margin-top: 1.6rem; color: var(--ink-soft); line-height:1.75; white-space:pre-line; }
  .property-tags{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top: 1.6rem; }
  .property-tags span{ background: var(--surface-violet); color: var(--violet); font-size:.8rem; font-weight:700; padding:.4rem .8rem; border-radius:100px; }

  .property-sidebar{ position:sticky; top:90px; display:flex; flex-direction:column; gap:1.2rem; }
  .property-price-card{ background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); padding:1.6rem; box-shadow: var(--shadow-md); }
  .property-price-card .price{ font-family: var(--font-display); font-weight:800; font-size:1.8rem; color: var(--ink); }
  .property-price-card .ref{ font-size:.78rem; color: var(--muted); margin-top:.3rem; }
  .agent-card{ display:flex; align-items:center; gap:.9rem; margin-top:1.4rem; padding-top:1.4rem; border-top:1px solid var(--line-soft); }
  .agent-card .team-avatar{ width:52px; height:52px; flex-shrink:0; }
  .agent-card .team-avatar svg{ width:26px; height:26px; }
  .agent-card strong{ display:block; font-size:.92rem; }
  .agent-card span{ font-size:.78rem; color: var(--muted); }
  .property-price-card .btn{ margin-top:1.3rem; }

  @media (max-width: 900px){
    .property-layout{ grid-template-columns: minmax(0,1fr); }
    .property-sidebar{ position:static; }
    .property-gallery{ grid-template-columns: minmax(0,1fr); }
    .property-gallery-thumbs{ flex-direction:row; max-height:none; overflow-x:auto; overflow-y:visible; }
    .property-gallery-thumbs button{ width:90px; height:68px; flex-shrink:0; }
  }

  /* ============ HERO: propiedad destacada (rotativa) ============ */
  .hero-art-card-link{ display:block; text-decoration:none; }
  .hero-photo-info{
    position:absolute; left:0; right:0; bottom:0; z-index:2;
    padding: 1.6rem 1.1rem 1rem; display:flex; flex-direction:column; gap:.3rem;
    background: linear-gradient(0deg, rgba(15,7,30,.86), rgba(15,7,30,.15) 80%, transparent);
    color:#fff;
  }
  .hero-photo-badge{
    align-self:flex-start; background:#fff; color: var(--violet); font-size:.68rem; font-weight:800;
    padding:.28rem .6rem; border-radius:100px; margin-bottom:.2rem;
  }
  .hero-photo-badge.rent{ background: var(--orange); color:#2A1500; }
  .hero-photo-info strong{ font-family: var(--font-display); font-size:1.02rem; font-weight:800; }
  .hero-photo-info span{ font-size:.82rem; color:#E3D7F7; }
  .hero-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; color:transparent; font-size:0; }

  /* ============ MAPA DE ZONAS (home) ============ */
  .map-wrap{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-md); border:1px solid var(--line); }
  .zones-map{ width:100%; height: clamp(320px, 46vw, 480px); background: var(--surface-violet); }
  .leaflet-popup-content{ font-family: var(--font-body); font-size:.85rem; }

  /* ============ CARRUSEL DE EQUIPO ============ */
  .team-carousel{ display:flex; align-items:center; gap: .8rem; }
  .team-carousel-track{
    display:flex; gap: 1.2rem; overflow-x:auto; scroll-snap-type: x proximity;
    padding-block:.3rem; scroll-behavior: smooth; flex:1; min-width:0;
  }
  .team-carousel-track::-webkit-scrollbar{ height:6px; }
  .team-carousel-track::-webkit-scrollbar-thumb{ background: var(--line); border-radius:10px; }
  .team-carousel-track .team-card{
    flex: 0 0 auto; width: min(240px, 78vw); scroll-snap-align: start;
  }
  .team-carousel-nav{
    flex-shrink:0; width:42px; height:42px; border-radius:50%; border:1.5px solid var(--line);
    background:#fff; display:flex; align-items:center; justify-content:center; transition: all .18s ease;
  }
  .team-carousel-nav:hover{ border-color: var(--violet); background: var(--surface-violet); }
  .team-carousel-nav svg{ width:18px; height:18px; color: var(--violet); }
  @media (max-width: 640px){
    .team-carousel-nav{ display:none; }
  }

  /* ============ BÚSQUEDA AVANZADA (filtros de /propiedades.php) ============ */
  .filters-advanced-toggle{
    display:flex; align-items:center; justify-content:space-between; gap:.5rem;
    background:none; border:none; padding:0; font-weight:700; font-size:.85rem; color: var(--violet);
  }
  .filters-advanced-toggle svg{ width:14px; height:14px; transition: transform .18s ease; }
  .filters-advanced-toggle[aria-expanded="true"] svg{ transform: rotate(180deg); }
  .filter-advanced{ display:flex; flex-direction:column; gap:1.1rem; padding-top:.2rem; }
  .filter-check label{ display:flex; align-items:center; gap:.55rem; font-size:.88rem; font-weight:600; color: var(--ink-soft); }
  .filter-check input{ width:16px; height:16px; accent-color: var(--violet); }

  /* ============ MODAL: avisar si baja de precio ============ */
  .modal-overlay{
    display:none; position:fixed; inset:0; z-index:100; background: rgba(23,12,43,.55);
    align-items:center; justify-content:center; padding: 1.2rem; backdrop-filter: blur(2px);
  }
  .modal-overlay.open{ display:flex; }
  .modal-card{
    position:relative; background:#fff; border-radius: var(--radius-lg); padding: 2rem 1.8rem;
    max-width: 440px; width:100%; box-shadow: var(--shadow-lg);
  }
  .modal-card h3{ font-size:1.15rem; padding-right: 2rem; }
  .modal-card > p{ color: var(--muted); font-size:.88rem; margin-top:.5rem; }
  .modal-close{
    position:absolute; top:1.1rem; right:1.1rem; width:32px; height:32px; border-radius:50%;
    border:none; background: var(--surface-soft); display:flex; align-items:center; justify-content:center;
  }
  .modal-close svg{ width:15px; height:15px; color: var(--ink-soft); }
  .modal-card .form-field label{ color: var(--muted); }
  .modal-card .form-field input{ background: var(--surface-soft); border: 1.5px solid var(--line); color: var(--ink); }
  .modal-card .form-field input:focus{ border-color: var(--violet); background:#fff; }
  .modal-card .form-success h4{ color: var(--ink); }
  .modal-card .form-success p{ color: var(--muted); }
  .modal-card .btn{ margin-top: 1.3rem; }

  @media (max-width: 760px){
    .zones-map{ height: 300px; }
  }
