/* ============================================================
     PALETA DEL SITIO — editá el # de cada color y cambia en todo
     el sitio de una vez. Cada variable dice qué controla.
     ============================================================ */
  :root{
    --ink:#0D161C;        /* texto principal: un punto más oscuro, mejor lectura */
    --navy:#1B3A4B;       /* azul petróleo: fondos de botones y bloques medios */
    --navy-dark:#0A0A0A;  /* casi negro: cabecera, pie, bloque QR, tarjetas CTA */
    --gold:#DCFB00;       /* lima del logo: botones destacados, etiquetas, acentos */
    --gold-light:#E9FF4D; /* lima claro: hover de los botones lima */
    --gold-deep:#7C8B00;  /* oliva: eyebrows y textos de marca sobre fondo claro */
    --cream:#F9F7F2;      /* fondo general: hueso más atenuado */
    --paper:#FFFFFF;      /* fondo de tarjetas y formularios */
    --sage:#6E8A72;       /* verde salvia: detalles secundarios */
    --line:#E4DFD3;       /* bordes y separadores finitos */
    --muted:#5C6B70;      /* gris verdoso: textos secundarios, etiquetas de
                             formularios (NOMBRE DE LA INMOBILIARIA...), bajadas */
    --radius:14px;        /* redondeo general de tarjetas */
    --maxw:1180px;        /* ancho máximo del contenido */
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Inter',system-ui,sans-serif;
    background:var(--cream);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{font-family:'Work Sans',sans-serif; font-weight:700; margin:0;}
  a{color:inherit; text-decoration:none;}
  button{font-family:inherit;}
  img{display:block; max-width:100%;}
  ul{margin:0; padding:0; list-style:none;}

  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:.68rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--gold-deep);
    font-weight:600;
  }

  /* ============ HEADER ============ */
  /* Leyenda del pie en la barra lateral: solo la usa el Diseño B */
  .sidebar-leyenda{display:none;}
  .sidebar-redes{display:none;}
  /* Texto de Términos y condiciones */
  .terminos-texto{line-height:1.7; font-size:1rem;}
  .terminos-texto h3{margin:1.5rem 0 .55rem; font-size:1.18rem;}
  .terminos-texto p{margin:.55rem 0;}
  .terminos-texto .term-item{margin:.3rem 0 .3rem 1.1rem;}
  /* Salto de línea que solo usa el Diseño B en el modal de acceso */
  .salto-lateral{display:none;}
  .site-header{
    position:sticky; top:0; z-index:100;
    background:var(--navy-dark);
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .header-inner{
    max-width:var(--maxw);
    margin:0 auto;
    padding:.85rem 1.1rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
  }
  .logo{
    display:flex; align-items:center;
    white-space:nowrap;
  }
  .logo-img{
    height:70px;
    width:auto;
    max-width:52vw;
    object-fit:contain;
    display:block;
  }
  /* En el celu, más chico y nunca estirado */
  @media (max-width:860px){
    .logo-img{height:48px; max-width:46vw;}
  }
  .menu-toggle{
    background:none; border:1px solid rgba(255,255,255,.25);
    color:#fff; width:42px; height:38px; border-radius:8px;
    font-size:1.1rem; cursor:pointer; display:flex; align-items:center; justify-content:center;
  }
  .main-nav{
    position:absolute; top:100%; left:0; right:0;
    max-height:calc(100vh - 100%);
    background:var(--navy-dark);
    border-bottom:1px solid rgba(255,255,255,.1);
    padding:1rem 1.2rem 1.4rem;
    display:flex; flex-direction:column; gap:.55rem;
    transform:translateY(-8px);
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .22s ease, transform .22s ease;
    overflow-y:auto;
    z-index:99;
  }
  .main-nav.open{opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0);}
  .main-nav a{
    display:flex; align-items:center; justify-content:center;
    min-height:52px;
    color:rgba(255,255,255,.88);
    padding:.7rem .9rem;
    border:1px solid rgba(255,255,255,.25);
    border-radius:8px;
    text-align:center;
    text-transform:uppercase;
    letter-spacing:.02em;
    font-size:1.02rem;
    font-weight:700;
    line-height:1.3;
    transition:border-color .25s ease, background-color .25s ease, color .25s ease;
  }
  .main-nav a:active{color:var(--gold-light);}
  .main-nav a:hover{border-color:var(--gold); background-color:rgba(220,251,0,.08); color:var(--gold-light);}
  .main-nav a.active-link{border-color:var(--gold); background-color:rgba(220,251,0,.08); color:var(--gold-light);}

  /* Tasaciones: destacado, es la puerta de entrada para captar propiedades */
  .main-nav a.nav-destacado{
    background:var(--gold);
    border-color:var(--gold);
    color:var(--navy-dark);
  }
  .main-nav a.nav-destacado:hover,
  .main-nav a.nav-destacado.active-link{
    background:var(--gold-light);
    border-color:var(--gold-light);
    color:var(--navy-dark);
  }

  /* ============ HERO SLIDER ============ */
  .hero-slider{
    position:relative;
    width:100%;
    aspect-ratio:4/3;
    overflow:hidden;
    background:var(--navy-dark);
  }
  .slides{position:relative; width:100%; height:100%;}
  .slide{
    position:absolute; inset:0;
    opacity:0;
    /* Las diapositivas ocultas no deben capturar clicks: sin esto, la
       última del DOM tapaba a las demás y todos los botones llevaban
       a su destino. */
    pointer-events:none;
    transition:opacity .9s ease;
  }
  .slide.active{opacity:1; pointer-events:auto;}
  .slide img{width:100%; height:100%; object-fit:cover; filter:saturate(1.08) contrast(1.06);}
  .slide-scrim{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(15,39,49,.02) 45%, rgba(15,39,49,.74) 100%);
  }
  .slide-caption{
    position:absolute; left:0; right:0; bottom:0;
    max-width:var(--maxw); margin:0 auto;
    padding:1.4rem 1.2rem 1.5rem;
    color:#fff;
    text-align:center;
  }
  .slide-caption .eyebrow{color:var(--gold-light); text-shadow:0 2px 10px rgba(0,0,0,.55);}
  .slide-caption h1{font-size:1.5rem; font-weight:600; margin:.35rem auto 0; line-height:1.15; max-width:520px; text-shadow:0 2px 14px rgba(0,0,0,.6), 0 1px 3px rgba(0,0,0,.5);}
  .slide-bajada{
    font-size:.88rem; color:rgba(255,255,255,.9);
    margin:.5rem auto 0; max-width:460px; line-height:1.45;
    text-shadow:0 2px 12px rgba(0,0,0,.6);
  }
  /* Botón de la diapositiva: cada slide es un acceso a una sección */
  .slide-cta{
    display:inline-flex; align-items:center; gap:.45rem;
    margin-top:.9rem; padding:.62rem 1.15rem;
    background:var(--gold); color:#0A0A0A;
    border-radius:999px;
    font-size:.85rem; font-weight:700;
    transition:filter .16s ease, transform .14s ease;
  }
  .slide-cta:hover{filter:brightness(1.07); transform:translateY(-1px);}
  .slide-cta span{transition:transform .18s ease;}
  .slide-cta:hover span{transform:translateX(3px);}
  /* Flechas sobrias de navegación */
  .slide-arrow{
    position:absolute; top:50%; transform:translateY(-50%);
    z-index:5;
    width:42px; height:42px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:rgba(10,20,25,.42); color:#fff;
    border:1px solid rgba(255,255,255,.28);
    font-size:1.5rem; line-height:1; padding:0 0 .2rem;
    cursor:pointer;
    transition:background .16s ease, border-color .16s ease;
  }
  .slide-arrow:hover{background:rgba(10,20,25,.68); border-color:rgba(255,255,255,.55);}
  .slide-arrow--prev{left:.8rem;}
  .slide-arrow--next{right:.8rem;}

  /* ============ CTA GRID ============ */
  .cta-section{
    /* Aire arriba y abajo del bloque de botones: cambiá este valor */
    --cta-espacio: 40px;
    max-width:var(--maxw); margin:0 auto;
    padding:var(--cta-espacio) 1rem var(--cta-espacio);
  }
  /* Mobile first: uno abajo del otro, con los textos completos.
     Los botones ahora dicen frases largas ("Alquiler temporario
     Festival Jesús María"), y a dos columnas en celular no entran. */
  .cta-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:.7rem;
  }
  .cta-btn{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:.5rem;
    min-height:104px;
    padding:1.2rem .9rem;
    border-radius:var(--radius);
    border:1px solid rgba(220,251,0,.18);
    background:linear-gradient(155deg, #1A3A47 0%, #0F2731 78%);
    color:#EDEAE1;
    text-align:center;
    font-weight:700;
    font-size:1.35rem;
    line-height:1.3;
    box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 8px 18px rgba(6,16,20,.28);
    transition:box-shadow .4s ease, transform .35s cubic-bezier(.34,1.56,.64,1), border-color .4s ease, color .3s ease;
  }
  .cta-btn::before{
    content:'';
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(100deg, transparent 15%, rgba(255,255,255,.45) 45%, rgba(255,255,255,.65) 50%, rgba(255,255,255,.45) 55%, transparent 85%);
    transform:translateX(-130%);
    opacity:0;
  }
  .cta-ico{
    position:relative; z-index:2;
    display:flex; align-items:center; justify-content:center;
    height:36px;
  }
  .cta-ico svg, .cta-ico img{height:34px; width:auto; max-width:80px; object-fit:contain;}
  .cta-label{
    position:relative; z-index:2;
    color:#ffffff;
    font-size:28px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.02em;
    transition:color .3s ease;
  }
  @keyframes shineOnce{
    0%{transform:translateX(-130%); opacity:0;}
    12%{opacity:1;}
    88%{opacity:1;}
    100%{transform:translateX(130%); opacity:0;}
  }
  .cta-btn:hover, .cta-btn:focus-visible{
    color:#fff;
    border-color:rgba(220,251,0,.8);
    transform:translateY(-5px);
    box-shadow:
      0 0 0 1px rgba(220,251,0,.55) inset,
      0 16px 30px rgba(6,16,20,.4),
      0 0 34px 3px rgba(196,230,0,.55),
      0 0 68px 14px rgba(196,230,0,.28);
  }
  .cta-btn:hover::before, .cta-btn:focus-visible::before{
    animation:shineOnce 1.1s ease-out forwards;
  }
  .cta-btn:hover .cta-label, .cta-btn:focus-visible .cta-label{color:#fff;}
  .cta-btn:active{transform:translateY(-2px) scale(.98);}

  /* ============ MARQUEE SECTIONS ============ */
  .marquee-section{
    padding:1.9rem 0;
    overflow:hidden;
  }
  .marquee-properties{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .marquee-services{background:var(--navy-dark);}
  .section-head{
    max-width:var(--maxw); margin:0 auto;
    padding:0 1.1rem 1.1rem;
    display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap;
  }
  .marquee-services .section-head .eyebrow{color:var(--gold-light);}
  .section-head h2{font-size:1.25rem; font-weight:600; color:var(--navy);}
  .marquee-services .section-head h2{color:#fff;}
  .marquee-container{
    max-width:var(--maxw);
    margin:0 auto;
  }
  .marquee-viewport{
    width:100%;
    overflow:hidden;
    container-type:inline-size;
    -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
    mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  }
  .marquee-track{
    display:flex;
    width:max-content;
    gap:.9rem;
    padding:0 .9rem;
    /* Sin animación hasta que las tarjetas estén puestas: el JS agrega
       .is-running en el frame siguiente. Así no hay salto al arrancar. */
    transform:translateX(-50%);
    will-change:transform;
    backface-visibility:hidden;
  }
  .marquee-track.is-running{
    animation:scroll-ltr var(--marquee-duration, 120s) linear infinite;
  }
  .marquee-track.reverse{transform:translateX(0);}
  .marquee-track.reverse.is-running{
    animation-name:scroll-rtl;
  }
  .marquee-viewport:hover .marquee-track.is-running{animation-play-state:paused;}

  @keyframes scroll-ltr{
    from{transform:translateX(-50%);}
    to{transform:translateX(0%);}
  }
  @keyframes scroll-rtl{
    from{transform:translateX(0%);}
    to{transform:translateX(-50%);}
  }

  /* property card */
  .prop-card{
    /* Móvil: dos tarjetas visibles */
    flex:0 0 calc((100cqw - 2.7rem) / 2);
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
  }
  .prop-media{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--line);}
  .prop-media img{width:100%; height:100%; object-fit:cover;}
  .prop-tag{
    position:absolute; top:0; left:0;
    background:var(--gold);
    color:#0A0A0A;
    font-family:'IBM Plex Mono',monospace;
    font-size:.62rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
    padding:.3rem .55rem .3rem .5rem;
    clip-path:polygon(0 0,100% 0,88% 100%,0% 100%);
  }
  .prop-body{padding:.7rem .8rem .85rem;}
  .prop-body h3{
    font-size:.9rem; font-weight:600; font-family:'Inter',sans-serif; color:var(--ink); line-height:1.35;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
    min-height:2.7em;
  }
  .prop-loc{font-size:.72rem; color:var(--muted); margin-top:.2rem;}
  .prop-price{
    font-family:'IBM Plex Mono',monospace;
    font-weight:600; font-size:.92rem; color:var(--navy);
    margin-top:.5rem;
  }

  /* service card */
  .service-card{
    /* Móvil: dos tarjetas visibles */
    flex:0 0 calc((100cqw - 2.7rem) / 2);
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.12);
    border-radius:var(--radius);
    overflow:hidden;
  }
  .service-media{position:relative; aspect-ratio:1/1; overflow:hidden; background:rgba(255,255,255,.08);}
  .service-media img{width:100%; height:100%; object-fit:cover;}
  .service-tag{
    position:absolute; top:.5rem; left:.5rem;
    background:rgba(15,39,49,.85);
    color:var(--gold-light);
    font-family:'IBM Plex Mono',monospace;
    font-size:.6rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
    padding:.25rem .5rem; border-radius:4px;
  }
  .service-body{padding:.65rem .75rem .8rem;}
  .service-body h3{
    font-size:.88rem; font-weight:600; color:#fff; font-family:'Inter',sans-serif; line-height:1.35;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
    min-height:2.7em;
  }
  .service-by{font-size:.7rem; color:rgba(255,255,255,.55); margin-top:.25rem;}

  /* ============ LISTING SECTION ============ */
  .listing-section{
    max-width:var(--maxw); margin:0 auto;
    padding:1.8rem 1rem 3rem;
  }
  /* Bloque de filtros del listado: en móvil queda pegado debajo de la
     cabecera mientras se recorren las propiedades. */
  .listing-controls{
    position:sticky; top:97px; z-index:40;
    background:var(--cream);
    margin:0 -.2rem; padding:.6rem .2rem .1rem;
  }
  .listing-controls .filters.open{
    max-height:calc(100vh - 230px); overflow-y:auto;
  }
  .filters-toggle{
    width:100%;
    display:flex; align-items:center; justify-content:space-between;
    background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
    padding:.85rem 1rem; font-weight:600; color:var(--navy); cursor:pointer; margin-bottom:.8rem;
  }
  .filters{
    background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
    padding:1.1rem; margin-bottom:1.1rem;
    display:none;
  }
  .filters.open{display:block;}
  .filter-group{margin-bottom:1rem;}
  .filter-group:last-child{margin-bottom:0;}
  .filter-group label{
    display:block; font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em;
    color:var(--muted); margin-bottom:.4rem;
  }
  .filter-group input[type="text"],
  .filter-group input[type="number"],
  .filter-group select{
    width:100%; padding:.6rem .7rem; border:1px solid var(--line); border-radius:8px;
    font-family:'Inter',sans-serif; font-size:.85rem; background:var(--cream); color:var(--ink);
  }
  .chip-row{display:flex; flex-wrap:wrap; gap:.4rem;}
  .chip{
    padding:.4rem .75rem; border-radius:20px; border:1px solid var(--line);
    font-size:.78rem; background:var(--cream); color:var(--ink); cursor:pointer;
  }
  .chip.active{background:var(--navy); color:#fff; border-color:var(--navy);}
  .range-row{display:flex; gap:.5rem;}
  .range-row input{width:50%;}
  .apply-btn{
    width:100%; padding:.85rem 1rem; margin-top:.6rem;
    display:flex; align-items:center; justify-content:center; gap:.55rem;
    background:var(--gold); color:#0A0A0A; border:none; border-radius:10px;
    font-family:inherit; font-weight:700; font-size:.95rem; line-height:1.2;
    cursor:pointer; text-align:center;
    transition:filter .16s ease, transform .12s ease;
  }
  .apply-btn:hover{filter:brightness(1.06);}
  .apply-btn:active{transform:translateY(1px);}
  .apply-btn:disabled{opacity:.6; cursor:not-allowed;}
  .apply-btn i{font-size:1.15rem;}

  /* Variante WhatsApp: verde de la marca, que se entienda a qué lleva */
  .apply-btn--wa{
    background:#25D366; color:#0A2E14;
    padding:.95rem 1rem; font-size:1rem;
    box-shadow:0 6px 18px rgba(37,211,102,.28);
  }
  .apply-btn--wa i{font-size:1.35rem;}
  .apply-btn--inline{width:auto; display:inline-flex; margin:0 auto;}

  .type-chip-row{
    display:flex; flex-wrap:wrap; gap:.45rem;
  }
  .type-chip-row .type-chip{padding:.45rem .75rem; font-size:.76rem; background:var(--cream);}
  .type-chip-row .type-chip.active{background:var(--navy);}
  .type-chip{
    flex:0 0 auto; display:flex; align-items:center; gap:.4rem;
    padding:.55rem .9rem; border-radius:24px; border:1px solid var(--line);
    background:var(--paper); font-size:.8rem; font-weight:600; color:var(--navy);
    white-space:nowrap; cursor:pointer;
  }
  .type-chip.active{background:var(--navy); color:#fff; border-color:var(--navy);}

  .search-row{
    display:flex; flex-direction:column; gap:.6rem; margin-bottom:.7rem;
  }
  .search-box{
    display:flex; align-items:center; gap:.5rem;
    border:1px solid var(--line); border-radius:10px; background:var(--paper);
    padding:.65rem .8rem;
  }
  .search-box input{
    border:none; outline:none; flex:1; font-size:.85rem; font-family:'Inter',sans-serif; background:transparent;
  }
  .sort-select{
    padding:.65rem .8rem; border:1px solid var(--line); border-radius:10px; background:var(--paper);
    font-size:.85rem; font-family:'Inter',sans-serif; color:var(--navy);
  }
  .results-count{font-size:.82rem; color:var(--muted); margin-bottom:.9rem;}

  .listing-grid{
    display:grid; grid-template-columns:1fr; gap:1rem;
  }
  .listing-card{
    background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  }
  .listing-media{position:relative; aspect-ratio:4/3; overflow:hidden;}
  .listing-media img{width:100%; height:100%; object-fit:cover;}
  .listing-heart{
    position:absolute; top:.6rem; right:.6rem; z-index:2;
    width:32px; height:32px; border-radius:50%;
    background:rgba(255,255,255,.92); display:flex; align-items:center; justify-content:center;
    font-size:.95rem; color:var(--navy); cursor:pointer;
    transition:transform .15s ease;
  }
  .listing-heart:hover{transform:scale(1.1);}
  .listing-heart.is-favorito{color:#e0455c;}
  .listing-card-link{display:block; color:inherit; text-decoration:none;}
  .publisher-type-badge{
    position:absolute; bottom:.6rem; left:.6rem; z-index:2;
    background:var(--navy-dark); color:var(--gold-light);
    font-family:'IBM Plex Mono',monospace;
    font-size:.62rem; font-weight:600; letter-spacing:.03em; text-transform:uppercase;
    padding:.28rem .55rem; border-radius:5px;
  }
  .listing-body{padding:.85rem .95rem 1rem;}
  .listing-body h3{font-size:.95rem; font-weight:600; font-family:'Inter',sans-serif; color:var(--ink); margin-bottom:.25rem;}
  .listing-loc{font-size:.78rem; color:var(--muted); margin-bottom:.55rem;}
  .listing-specs{
    display:flex; gap:.9rem; font-size:.76rem; color:var(--muted);
    font-family:'IBM Plex Mono',monospace; margin-bottom:.6rem;
  }
  .listing-price{font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:1.05rem; color:var(--navy);}

  .load-more{
    display:block; width:100%; margin-top:1.4rem; padding:.9rem;
    background:var(--paper); border:1px solid var(--navy); color:var(--navy);
    border-radius:10px; font-weight:700; font-size:.85rem; cursor:pointer;
  }
  .load-more:hover{background:var(--navy); color:#fff;}

  /* ============ FOOTER ============ */
  footer{
    background:var(--navy-dark); color:rgba(255,255,255,.6);
    padding:1.8rem 1.1rem; text-align:center; font-size:.78rem;
  }
  footer .logo{display:inline-flex; justify-content:center; margin-bottom:.6rem;}
  footer .logo-img{height:34px;}

  /* ============ TABLET / DESKTOP ============ */
  @media (min-width:520px){
    .cta-grid{grid-template-columns:1fr 1fr;}
  }

  @media (min-width:640px){
    .listing-grid{grid-template-columns:1fr 1fr;}
    .prop-card, .service-card{flex-basis:calc((100cqw - 3.6rem) / 3);}
  }

  /* Tres y tres: dos filas parejas de tres botones */
  @media (min-width:900px){
    .cta-grid{grid-template-columns:repeat(3,1fr); gap:.9rem;}
    .cta-btn{min-height:120px;}
  }

  @media (min-width:860px){
    .hero-slider{aspect-ratio:unset; height:550px;}
    .slide-caption h1{font-size:2.1rem;}
    .slide-bajada{font-size:1rem; max-width:540px;}
    .slide-cta{font-size:.92rem; padding:.72rem 1.4rem; margin-top:1.1rem;}
    .filters-toggle{display:none;}
    .listing-controls{display:contents;}
    .listing-section{display:grid; grid-template-columns:260px 1fr; gap:1.6rem; align-items:start;}
    .filters{display:block; position:sticky; top:90px;}
    .listing-grid{grid-template-columns:repeat(3,1fr);}
    .prop-card{flex-basis:calc((100cqw - 4 * .9rem) / 5);}
    .prop-body{padding:.65rem .75rem .8rem;}
    .prop-body h3{font-size:18px; min-height:2.7em;}
    .prop-loc{font-size:16px;}
    .prop-price{font-size:.86rem;}
    .service-card{flex-basis:calc((100cqw - 4 * .9rem) / 5);}
  }

  @media (min-width:1024px){
    .listing-section{grid-template-columns:280px 1fr;}
  }

  @media (prefers-reduced-motion: reduce){
    .marquee-track, .marquee-track.is-running{animation:none; transform:none;}
    .slide{transition:none;}
    .cta-btn:hover::before, .cta-btn:focus-visible::before{animation:none;}
  }

  /* ============ PÁGINAS INTERNAS (listados, ficha, formularios) ============ */
  .page-hero{
    position:relative;
    /* Cabeceras altas: lucen mejor las fotos y los perfiles personalizados */
    min-height:clamp(260px, 52vw, 470px);
    background-size:cover; background-position:center;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    background-color:var(--navy-dark);
    color:#fff;
    padding:2rem 1.1rem;
    text-align:center;
    overflow:hidden;
  }
  .hero-bg-carousel{position:absolute; inset:0; z-index:0;}
  .hero-bg-layer{
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    opacity:0; transition:opacity 1.8s ease;
    /* sin filtros: la foto se ve tal cual se subió */
  }
  .hero-bg-layer.active{opacity:1;}
  .page-hero::before{
    content:''; position:absolute; inset:0; z-index:1;
    /* Cabeceras de las secciones interiores: la foto va al 100% de
       brillo, SIN velo oscuro. La legibilidad del título y la bajada
       la da el text-shadow de abajo, no un filtro sobre la imagen. */
    background:transparent;
  }
  .page-hero > *:not(.hero-bg-carousel){position:relative; z-index:2;}
  /* Sin velo, la sombra es lo único que separa el texto de la foto:
     va en varias capas (uno corto y pegado + uno grande difuso) para
     que se lea igual sobre cielo claro o sobre una pared blanca. */
  .page-hero .eyebrow{color:var(--gold-light); text-shadow:0 1px 2px rgba(0,0,0,.9), 0 2px 16px rgba(0,0,0,.85);}
  .page-hero h1{font-size:clamp(1.35rem, 5vw, 2.1rem); font-weight:700; margin-top:.4rem; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.9), 0 2px 10px rgba(0,0,0,.85), 0 6px 30px rgba(0,0,0,.7);}
  .page-hero p{font-size:clamp(.84rem, 2.6vw, .95rem); color:#fff; margin:.5rem auto 0; max-width:640px; text-shadow:0 1px 2px rgba(0,0,0,.9), 0 2px 14px rgba(0,0,0,.8);}
  .page-hero--custom::before{background:linear-gradient(180deg, rgba(10,22,27,.34), rgba(10,22,27,.72));}

  /* ---- Perfil de inmobiliaria: logo, datos y descripción ---- */
  .agency-logo{
    width:clamp(66px, 17vw, 92px); height:clamp(66px, 17vw, 92px);
    border-radius:16px; object-fit:cover;
    background:#fff; padding:.35rem;
    box-shadow:0 8px 22px rgba(0,0,0,.3);
    margin-bottom:.7rem;
  }
  .agency-meta{
    display:flex; flex-wrap:wrap; justify-content:center; gap:.4rem .9rem;
    margin-top:.8rem; font-size:.82rem; color:rgba(255,255,255,.85);
  }
  .agency-meta a{color:var(--gold-light); display:inline-flex; align-items:center; gap:.3rem;}
  .agency-desc-wrap{max-width:var(--maxw); margin:0 auto; padding:0 1.1rem;}
  .agency-desc{
    background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
    padding:1rem 1.1rem; margin:1.2rem 0 0;
    font-size:.92rem; line-height:1.65; color:var(--ink);
    white-space:pre-line;
  }

  /* ---- Vista previa del perfil dentro del panel ---- */
  .perfil-preview{border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#fff;}
  .perfil-preview-portada{
    height:clamp(120px, 26vw, 190px);
    background:#E9E5DA center/cover no-repeat;
    display:flex; align-items:center; justify-content:center;
    color:#9AA4A9; font-size:.84rem;
  }
  .perfil-preview-datos{display:flex; align-items:center; gap:.8rem; padding:.85rem 1rem;}
  .perfil-preview-logo{
    width:56px; height:56px; flex:0 0 auto; border-radius:12px;
    background:#F1EEE5 center/cover no-repeat;
    border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center; font-size:1.3rem;
  }
  .perfil-preview-datos strong{display:block; font-family:'Work Sans',sans-serif; font-size:.98rem;}
  .perfil-preview-datos small{display:block; color:#6A7880; font-size:.8rem; margin-top:.15rem;}
  .pnl-check{display:flex; align-items:center; gap:.5rem; font-size:.84rem; color:#6A7880; cursor:pointer;}
  .pnl-check input{width:auto;}

  .empty-state{
    padding:2rem 1rem; text-align:center; color:var(--muted); font-size:.9rem;
    border:1px dashed var(--line); border-radius:var(--radius); grid-column:1/-1;
  }

  /* ficha de propiedad */
  .prop-detail-section{
    max-width:var(--maxw); margin:0 auto;
    padding:1.4rem 1.1rem 3rem;
    display:grid; gap:1.4rem;
  }
  .prop-gallery{
    display:flex; flex-direction:column; gap:.6rem;
  }
  .prop-gallery-main{
    aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden;
    background:var(--line);
  }
  .prop-gallery-main img{width:100%; height:100%; object-fit:cover; display:block;}
  .prop-gallery-thumbs{display:flex; gap:.5rem;}
  .prop-thumb{
    flex:0 0 auto;
    width:64px; height:64px;
    object-fit:cover; border-radius:8px;
    cursor:pointer; opacity:.55;
    border:2px solid transparent;
    transition:opacity .2s ease, border-color .2s ease;
  }
  .prop-thumb:hover{opacity:.85;}
  .prop-thumb.active{opacity:1; border-color:var(--gold);}
  .prop-detail-body{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:1.2rem;}
  .prop-tag-lg{
    display:inline-block; background:var(--gold); color:#0A0A0A;
    font-family:'IBM Plex Mono',monospace; font-size:.68rem; font-weight:700;
    letter-spacing:.05em; text-transform:uppercase; padding:.3rem .6rem; border-radius:5px;
  }
  .prop-detail-body h1{font-size:1.3rem; margin-top:.6rem; line-height:1.25;}
  .prop-detail-loc{color:var(--muted); font-size:.85rem; margin-top:.4rem;}
  .prop-detail-price{font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:1.5rem; color:var(--navy); margin-top:.5rem;}
  .prop-detail-specs{display:flex; flex-wrap:wrap; gap:1rem; font-size:.82rem; color:var(--muted); font-family:'IBM Plex Mono',monospace; margin-top:.8rem; padding-top:.8rem; border-top:1px solid var(--line);}
  .prop-detail-desc{font-size:.9rem; line-height:1.55; color:var(--ink); margin-top:1rem;}
  .prop-publisher{
    margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--line);
    display:flex; flex-direction:column; gap:.2rem; font-size:.85rem;
  }
  .prop-publisher strong{color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.05em;}
  .prop-contact-actions{display:flex; flex-direction:column; gap:.7rem; margin-top:1.2rem;}
  .contact-btn{
    display:flex; align-items:center; justify-content:center; gap:.55rem;
    width:100%; padding:.85rem 1rem; border-radius:10px;
    font-weight:700; font-size:.92rem; text-decoration:none;
    transition:filter .2s ease, transform .15s ease;
  }
  .contact-btn:active{transform:scale(.98);}
  .contact-btn-icon{font-size:1.15rem; line-height:1; width:1.15em; text-align:center;}
  .fa-whatsapp.contact-btn-icon{font-size:1.3rem;}
  .contact-btn--whatsapp{background:var(--gold); color:#0A0A0A; border:none;}
  .contact-btn--whatsapp:hover{filter:brightness(1.08);}
  .contact-btn--call{background:var(--paper); color:var(--navy); border:1px solid var(--navy);}
  .contact-btn--call:hover{background:var(--navy); color:#fff;}

  .similar-section{max-width:var(--maxw); margin:0 auto; padding:0 1.1rem 3rem;}
  .similar-section h2{font-size:1.1rem; margin-bottom:.9rem;}
  .similar-grid{display:grid; grid-template-columns:1fr; gap:1rem;}

  /* formularios de publicación (dueño vende / dueño alquila / inmobiliaria / propietario) */
  .form-section{max-width:640px; margin:0 auto; padding:1.6rem 1.1rem 3.5rem;}
  .prop-video-embed--tour h3{margin:0 0 .5rem; font-size:1rem;}
  .form-success-upsell{
    display:block; margin-top:.7rem; padding-top:.7rem;
    border-top:1px dashed rgba(0,0,0,.15);
    font-size:.88rem; font-weight:500;
  }
  /* Número de publicación y sello de empadronamiento */
  .prop-nro{
    margin:.15rem 0 .4rem;
    font-size:.78rem; font-weight:700; letter-spacing:.05em;
    color:var(--muted);
  }
  .sello-empadronada{
    display:inline-block;
    margin:.2rem 0 .6rem;
    padding:.4rem .7rem;
    border:1.5px solid #1F9D55;
    border-radius:10px;
    background:rgba(31,157,85,.08);
    color:#136B3A;
    font-size:.74rem; font-weight:800; letter-spacing:.03em;
  }
  .sello-empadronada--mini{
    margin:.15rem 0 0;
    padding:.2rem .5rem;
    font-size:.66rem;
  }
  /* Deslinde del servicio de tasación */
  .tasacion-deslinde{
    margin:0 0 1.1rem;
    padding:.8rem 1rem;
    border-left:4px solid var(--gold, #E7C64B);
    background:rgba(231,198,75,.10);
    border-radius:0 10px 10px 0;
    font-size:.88rem;
    line-height:1.55;
  }
  /* Aceptación de términos en los registros */
  /* Con .form-row adelante para ganarle a ".form-row label" (que lo
     volvía bloque, mayúscula y gris, con el casillero arriba) */
  .form-row label.check-terminos{
    display:flex; align-items:center; justify-content:center;
    gap:.55rem; margin:0;
    font-size:.9rem; font-weight:500; line-height:1.4;
    text-transform:none; letter-spacing:normal;
    color:var(--ink); text-align:left; cursor:pointer;
  }
  .form-row label.check-terminos input{
    margin:0; width:18px; height:18px;
    accent-color:var(--gold-deep, #7C8B00); flex:none; cursor:pointer;
  }
  .check-terminos a{font-weight:700; text-decoration:underline; color:inherit;}
  /* Los términos ocupan el ancho de la pantalla, no la columna angosta */
  .form-section--ancha{max-width:1500px; padding-left:2rem; padding-right:2rem;}
  /* Sección media: formularios largos (tasaciones) a dos columnas */
  .form-section--media{max-width:1080px;}
  @media (min-width:900px){
    .form-section--media #tasacionForm{display:grid; grid-template-columns:1fr 1fr; column-gap:1.6rem; align-items:start;}
    .form-section--media #tasacionForm > .form-row:has(textarea),
    .form-section--media #tasacionForm > button,
    .form-section--media #tasacionForm > .form-hint,
    .form-section--media #tasacionForm > div:not(.form-row){grid-column:1 / -1;}
  }
  .form-section--ancha .form-card{padding:1.6rem 2.2rem;}
  .form-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:1.3rem;}
  .form-row{margin-bottom:1rem;}
  .form-row label{display:block; font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin-bottom:.4rem;}
  .form-row input, .form-row select, .form-row textarea{
    width:100%; padding:.7rem .8rem; border:1px solid var(--line); border-radius:8px;
    font-family:'Inter',sans-serif; font-size:.9rem; background:var(--cream); color:var(--ink);
  }
  .form-row textarea{min-height:110px; resize:vertical;}
  .form-note{
    background:var(--cream); border:1px dashed var(--line); border-radius:10px;
    padding:.9rem 1rem; font-size:.8rem; color:var(--muted); margin-bottom:1.2rem; line-height:1.5;
  }
  .form-success{
    display:none; background:#eef8ec; border:1px solid var(--sage); color:#365c3a;
    border-radius:10px; padding:.9rem 1rem; font-size:.85rem; margin-top:1rem;
  }
  .form-success.show{display:block;}

  @media (min-width:860px){
    .prop-detail-section{grid-template-columns:1.1fr .9fr; align-items:start;}
    .prop-thumb{width:84px; height:84px;}
    .similar-grid{grid-template-columns:repeat(3,1fr);}
    .page-hero{min-height:470px;}
    .page-hero h1{font-size:2rem;}
  }

  /* ============ PÁGINA DE SERVICIOS (listado completo, no marquee) ============ */
  .services-page-section{
    background:var(--navy-dark);
    padding:1.8rem 1rem 3.2rem;
  }
  .services-grid{
    max-width:var(--maxw); margin:0 auto;
    display:grid; grid-template-columns:1fr 1fr; gap:1rem;
  }
  @media (min-width:640px){
    .services-grid{grid-template-columns:repeat(3,1fr);}
  }
  @media (min-width:1024px){
    .services-grid{grid-template-columns:repeat(4,1fr);}
  }

  /* ============ DESTACADOS POR PRIORIDAD (premium) ============ */
  .premium-badge{
    position:absolute; top:.5rem; right:.5rem; z-index:2;
    background:var(--gold); color:#0A0A0A;
    font-family:'IBM Plex Mono',monospace; font-size:.6rem; font-weight:700;
    letter-spacing:.04em; text-transform:uppercase;
    padding:.25rem .5rem; border-radius:4px;
    box-shadow:0 2px 6px rgba(0,0,0,.3);
  }
  .prop-card.is-premium, .listing-card.is-premium, .service-card.is-premium{
    border-color:var(--gold);
    box-shadow:0 0 0 1px var(--gold), 0 6px 16px rgba(196,166,20,.22);
  }

  /* ============ MODAL DE SERVICIO ============ */
  .service-card{cursor:pointer;}
  .service-modal{
    display:none;
    position:fixed; inset:0; z-index:1000;
    background:rgba(8,16,20,.72);
    padding:1.2rem;
    align-items:center; justify-content:center;
  }
  .service-modal.open{display:flex;}
  .service-modal-card{
    background:var(--paper); border-radius:var(--radius);
    max-width:480px; width:100%; max-height:90vh; overflow-y:auto;
    position:relative;
  }
  .service-modal-close{
    position:absolute; top:.6rem; right:.6rem; z-index:3;
    width:2rem; height:2rem; border-radius:50%; border:none;
    background:rgba(10,20,24,.65); color:#fff; font-size:1rem; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
  }
  .service-modal-media{position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--line);}
  .service-modal-media img{width:100%; height:100%; object-fit:cover; display:block;}
  .service-modal-body{padding:1.2rem;}
  .service-modal-body h2{font-size:1.15rem; margin-top:.5rem; line-height:1.3;}
  .service-modal-by{color:var(--muted); font-size:.85rem; margin-top:.3rem;}
  .service-modal-desc{font-size:.88rem; line-height:1.55; color:var(--ink); margin:1rem 0 1.2rem;}

  /* ============ PUBLICADOR: INMOBILIARIA / PARTICULAR ============ */
  .listing-footer{
    padding:.65rem .95rem .8rem;
    border-top:1px solid var(--line);
  }
  .listing-publisher{
    display:inline-flex; align-items:center; gap:.35rem;
    font-size:.78rem; color:var(--muted);
  }
  .listing-publisher--agency{
    color:var(--navy); font-weight:600; text-decoration:none;
  }
  .listing-publisher--agency:hover{color:var(--gold-deep);}
  .publisher-arrow{font-size:.9rem; opacity:.6;}
  .verified-icon{
    display:inline-flex; align-items:center; justify-content:center;
    width:1.05rem; height:1.05rem; border-radius:50%;
    background:var(--sage); color:#fff; font-size:.62rem; font-weight:700;
  }
  .prop-publisher-mini{font-size:.65rem; color:var(--muted); margin-top:.15rem;}
  .prop-publisher-link{
    display:inline-flex; align-items:center; gap:.35rem;
    color:var(--navy); font-weight:600; text-decoration:none; font-size:.85rem;
  }
  .prop-publisher-link:hover{color:var(--gold-deep);}
  .prop-publisher .verified-icon{margin-left:.35rem;}

  /* ============ PANEL DE PARTICULARES ============ */
  .form-hint{font-size:.75rem; color:var(--muted); margin-top:.4rem; line-height:1.4;}
  .panel-stats{
    display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem;
    margin-bottom:1.6rem;
  }
  .panel-stat{
    background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
    padding:.9rem .7rem; text-align:center;
  }
  .panel-stat strong{display:block; font-size:1.4rem; color:var(--navy); font-family:'IBM Plex Mono',monospace;}
  .panel-stat span{font-size:.68rem; color:var(--muted); text-transform:uppercase; letter-spacing:.03em;}
  .panel-header-row{
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.7rem;
    margin-bottom:1rem;
  }
  .panel-header-row h2{font-size:1.05rem;}
  .my-listing-row{
    display:flex; align-items:center; justify-content:space-between; gap:.8rem;
    background:var(--paper); border:1px solid var(--line); border-radius:10px;
    padding:.85rem 1rem; margin-bottom:.7rem;
  }
  .my-listing-row strong{font-size:.9rem;}
  .my-listing-row p{font-size:.76rem; color:var(--muted); margin-top:.2rem;}
  .my-listing-status{
    flex:0 0 auto; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
    padding:.3rem .6rem; border-radius:6px; white-space:nowrap;
  }
  .my-listing-status--ok{background:#eef8ec; color:#365c3a;}
  .my-listing-status--pending{background:#fff6da; color:#8a6d1d;}

  /* ============ PANEL DE INMOBILIARIAS ============ */
  .promo-banner{
    background:linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 100%);
    color:#0A0A0A; font-weight:600; font-size:.88rem;
    padding:.9rem 1.1rem; border-radius:10px; margin-bottom:1.4rem;
    text-align:center;
  }

  /* ============ PANEL SUPERADMIN ============ */
  .mod-origin{
    font-weight:600; color:var(--navy);
  }
  .mod-btn{
    border:none; border-radius:6px; padding:.5rem .9rem; font-size:.78rem; font-weight:700; cursor:pointer;
  }
  .mod-btn--approve{background:var(--sage); color:#fff;}
  .mod-btn--reject{background:#e2e2e2; color:#5a5a5a;}
  .admin-table{width:100%; border-collapse:collapse; font-size:.82rem;}
  .admin-table th{
    text-align:left; padding:.6rem .7rem; background:var(--navy-dark); color:#fff;
    font-size:.68rem; text-transform:uppercase; letter-spacing:.03em;
  }
  .admin-table td{padding:.6rem .7rem; border-bottom:1px solid var(--line);}
  .admin-table tr:nth-child(even) td{background:var(--paper);}

  /* ============ ERRORES DE FORMULARIO (API real) ============ */
  .form-error{
    display:none; background:#fdecea; border:1px solid #e6a4a4; color:#8a2c2c;
    border-radius:10px; padding:.9rem 1rem; font-size:.85rem; margin-top:1rem;
  }
  .form-error.show{display:block;}

  /* ============ PLACEHOLDER SIN FOTO ============ */
  .photo-placeholder{
    width:100%; height:100%; min-height:120px;
    display:flex; align-items:center; justify-content:center;
    background:var(--line); color:var(--muted);
    font-size:.72rem; text-align:center; padding:.5rem;
  }

  /* ============ VIDEO/TOUR 360 EN LA FICHA ============ */
  .prop-video-embed{
    position:relative; width:100%; aspect-ratio:16/9;
    margin:1rem 0; border-radius:10px; overflow:hidden; background:#000;
  }
  .prop-video-embed iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}

  /* ============ BURBUJA FLOTANTE DE SERVICIOS DESTACADOS ============ */
  .floating-services{
    position:fixed; right:1.1rem; bottom:1.1rem; z-index:900;
  }
  .floating-services-toggle{
    width:56px; height:56px; border-radius:50%; border:none;
    background:var(--gold); color:#0A0A0A;
    box-shadow:0 6px 18px rgba(0,0,0,.28);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; font-size:1.3rem;
    transition:transform .2s ease;
  }
  .floating-services-toggle:hover{transform:scale(1.08);}
  .floating-services-panel{
    display:none;
    position:absolute; right:0; bottom:68px;
    width:280px; max-height:70vh; overflow-y:auto;
    background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
    box-shadow:0 10px 30px rgba(0,0,0,.25);
  }
  .floating-services-panel.open{display:block;}
  .floating-services-header{
    display:flex; align-items:center; justify-content:space-between;
    padding:.8rem .9rem; border-bottom:1px solid var(--line);
    background:var(--navy-dark); color:#fff; border-radius:var(--radius) var(--radius) 0 0;
  }
  .floating-services-close{
    background:none; border:none; color:#fff; font-size:.9rem; cursor:pointer; opacity:.7;
  }
  .floating-services-close:hover{opacity:1;}
  .floating-services-list{padding:.6rem;}
  .floating-service-item{
    width:100%; display:flex; align-items:center; gap:.6rem;
    padding:.5rem; border:none; background:none; text-align:left; cursor:pointer;
    border-radius:8px;
  }
  .floating-service-item:hover{background:var(--cream);}
  .floating-service-item img, .floating-service-item .photo-placeholder{
    width:44px; height:44px; border-radius:8px; object-fit:cover; flex:0 0 auto; min-height:auto; font-size:.5rem; padding:0;
  }
  .floating-service-item strong{display:block; font-size:.68rem; text-transform:uppercase; color:var(--gold-deep); letter-spacing:.02em;}
  .floating-service-item small{display:block; font-size:.78rem; color:var(--ink); line-height:1.3;}

  @media (min-width:640px){
    .floating-services{right:1.6rem; bottom:1.6rem;}
    .floating-services-panel{width:320px;}
  }

  /* ============================================================
     MENÚ DE ACCESO EN EL HEADER (SUPERADMIN / INMOBILIARIA / PARTICULAR)
     ============================================================ */
  .header-tools{
    display:flex; align-items:center; gap:.55rem; margin-left:auto;
  }
  /* En móvil el menú queda estático: así el panel se ancla al header
     completo (sticky) y cae justo debajo del logo, mida lo que mida. */
  .access-menu{position:static;}
  @media (min-width:640px){
    .access-menu{position:relative;}
  }
  .access-trigger{
    display:flex; align-items:center; gap:.45rem;
    padding:.42rem .7rem .42rem .42rem;
    border:1px solid rgba(220,251,0,.45);
    border-radius:999px;
    background:rgba(220,251,0,.08);
    color:var(--gold-light);
    font-size:.78rem; font-weight:700;
    letter-spacing:.02em; text-transform:uppercase;
    cursor:pointer; white-space:nowrap;
    transition:background .18s ease, border-color .18s ease;
  }
  .access-trigger:hover{background:rgba(220,251,0,.16); border-color:var(--gold);}
  .access-avatar{
    width:26px; height:26px; border-radius:50%;
    background:var(--gold); color:var(--navy-dark);
    display:flex; align-items:center; justify-content:center;
    font-size:.82rem; font-weight:800; flex:0 0 auto;
  }
  .access-caret{font-size:.65rem; opacity:.8; transition:transform .2s ease;}
  .access-menu.open .access-caret{transform:rotate(180deg);}
  .access-label{display:none;}

  .access-dropdown{
    /* Mobile first: panel justo debajo de la cabecera, ocupando el ancho
       de la pantalla. Antes bajaba como hoja al pie y quedaba perdido. */
    position:absolute; top:calc(100% + .45rem); bottom:auto; left:.6rem; right:.6rem;
    width:auto;
    max-height:calc(100vh - 120px); overflow-y:auto;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:0 18px 44px rgba(10,10,10,.28);
    padding:.5rem;
    opacity:0; visibility:hidden; transform:translateY(-6px);
    transition:opacity .18s ease, transform .18s ease, visibility .18s;
    z-index:130;
  }
  .access-menu.open .access-dropdown{opacity:1; visibility:visible; transform:translateY(0);}
  .access-dropdown .access-item{justify-content:flex-start; text-align:left;}
  .access-head{text-align:center;}
  /* Fondo oscuro detrás del panel en mobile */
  .access-menu.open::before{
    content:''; position:fixed; inset:0; background:rgba(8,14,18,.5); z-index:-1;
  }

  @media (min-width:640px){
    .access-dropdown{
      position:absolute; top:calc(100% + .55rem); bottom:auto; left:auto; right:0;
      width:min(320px, calc(100vw - 1.6rem));
      border-radius:var(--radius);
      max-height:none;
    }
    .access-menu.open::before{display:none;}
    .access-head{text-align:left;}
  }
  .access-head{
    padding:.55rem .65rem .7rem;
    border-bottom:1px solid var(--line);
    margin-bottom:.55rem;
  }
  .access-head strong{display:block; font-size:.9rem; font-family:'Work Sans',sans-serif;}
  .access-head span{display:block; font-size:.74rem; color:var(--muted); margin-top:.15rem;}
  .access-item{
    display:flex; align-items:center; gap:.7rem;
    padding:.6rem .65rem; border-radius:10px;
    transition:background .15s ease;
  }
  .access-item:hover{background:var(--cream);}
  .access-ico{
    width:34px; height:34px; flex:0 0 auto;
    display:flex; align-items:center; justify-content:center;
    border-radius:9px; background:var(--cream);
    border:1px solid var(--line); font-size:1rem;
  }
  .access-item--admin .access-ico{background:var(--navy-dark); border-color:var(--navy-dark); color:var(--gold);}
  .access-item--out .access-ico{background:#fdeaea; border-color:#f3cccc;}
  .access-item strong{display:block; font-size:.78rem; letter-spacing:.03em; text-transform:uppercase;}
  .access-item small{display:block; font-size:.74rem; color:var(--muted); line-height:1.3;}
  .access-foot{
    margin-top:1rem; padding:.9rem .2rem .3rem;
    border-top:1px solid var(--line);
  }
  .access-registro{display:flex; flex-direction:column; gap:.4rem;}

  /* Dos botones separados: antes era una línea de texto con dos links
     seguidos y no se leía que fueran opciones distintas. */
  .access-registro-btn{
    display:flex; align-items:center; gap:.65rem;
    padding:.6rem .65rem;
    border:1px solid var(--line); border-radius:10px;
    background:var(--cream);
    transition:border-color .16s ease, background .16s ease, transform .12s ease;
  }
  .access-registro-btn:hover{
    border-color:var(--gold-deep);
    background:rgba(220,251,0,.14);
    transform:translateX(2px);
  }
  .access-registro-btn strong{
    display:block; font-size:.79rem; font-weight:700;
    color:var(--ink); line-height:1.3;
  }
  .access-registro-btn small{
    display:block; font-size:.71rem; color:var(--muted); margin-top:.08rem;
  }
  .access-flecha{
    margin-left:auto; color:var(--gold-deep);
    font-size:1.1rem; font-weight:700; line-height:1;
  }

  .footer-links{
    display:flex; flex-wrap:wrap; gap:.2rem .9rem; justify-content:center;
    margin-top:.7rem; font-size:.8rem;
  }
  .footer-links a{color:rgba(255,255,255,.72);}
  .footer-links a:hover{color:var(--gold-light);}
  .footer-access{
    margin-top:.55rem; font-size:.74rem; color:rgba(255,255,255,.4);
    display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap;
  }
  .footer-access a{color:var(--gold-light);}

  @media (min-width:520px){
    .access-label{display:inline;}
  }

  /* ============================================================
     HEADER: tres bloques bien separados — logo | menú | acceso
     Abajo de 1240px los 9 botones no entran cómodos, así que se
     vuelve al menú hamburguesa. Arriba de eso, el menú es un panel
     propio con su fondo, para que se distinga como bloque.
     ============================================================ */
  @media (min-width:1080px){
    .menu-toggle{display:none;}

    .header-inner{
      max-width:1620px;
      flex-wrap:nowrap;
      align-items:center;
      justify-content:space-between;
      gap:clamp(1rem, 2.4vw, 2.6rem);
      padding:.7rem clamp(1rem, 2vw, 1.9rem);
    }

    .logo{order:1; flex:0 0 auto;}
    .logo-img{height:clamp(48px, 4.2vw, 68px);}

    /* Panel del medio: el menú como bloque propio */
    .main-nav{
      order:2;
      flex:0 1 auto; min-width:0;
      position:static; transform:none; opacity:1; visibility:visible; pointer-events:auto;
      flex-direction:row; flex-wrap:nowrap; justify-content:center;
      overflow-x:auto; overflow-y:visible;
      scrollbar-width:none; -ms-overflow-style:none;
      background:rgba(255,255,255,.04);
      border:1px solid rgba(255,255,255,.09);
      border-radius:16px;
      padding:.42rem clamp(.4rem, .7vw, .7rem);
      gap:clamp(.25rem, .5vw, .5rem);
    }
    .main-nav::-webkit-scrollbar{display:none;}
    .main-nav a{
      font-size:clamp(.62rem, .7vw, .8rem);
      padding:.5rem clamp(.4rem, .7vw, .9rem);
      line-height:1.25;
      white-space:nowrap;
      border-color:rgba(255,255,255,.2);
    }

    .header-tools{order:3; flex:0 0 auto; margin-left:0;}
    .access-trigger{
      font-size:clamp(.66rem, .72vw, .78rem);
      padding:.42rem .75rem .42rem .42rem;
    }
    .access-avatar{width:28px; height:28px;}
  }

  /* ============================================================
     AVISOS DEL SUPERADMIN EN EL SITIO PÚBLICO
     ============================================================ */
  .admin-notify{
    position:fixed; right:1rem; left:auto; bottom:1rem; z-index:180;
  }
  /* En la portada la campana va en el cuerpo, arriba de Servicios
     destacados, alineada al centro */
  .admin-notify.inline{
    position:relative; right:auto; bottom:auto;
    display:flex; justify-content:flex-end;
    margin:0 auto; max-width:var(--maxw);
    padding:0 1.1rem; height:0;
    z-index:60;
  }
  .admin-notify.inline .admin-notify-btn{
    width:42px; height:42px; font-size:1.05rem;
    transform:translateY(-6px);
  }
  .admin-notify.inline .admin-notify-panel{
    left:auto; right:1.1rem; bottom:auto; top:42px;
    transform:translateY(-8px);
  }
  .admin-notify.inline.open .admin-notify-panel{transform:translateY(0);}
  .admin-notify-btn{
    position:relative;
    width:52px; height:52px; border-radius:50%;
    background:var(--navy-dark); border:2px solid var(--gold);
    color:var(--gold); font-size:1.3rem; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 26px rgba(10,10,10,.32);
    transition:transform .16s ease;
  }
  .admin-notify-btn:hover{transform:scale(1.06);}
  .admin-notify.has-new .admin-notify-btn{animation:jmBell 2.4s ease infinite;}
  @keyframes jmBell{0%,88%,100%{transform:rotate(0);}91%{transform:rotate(11deg);}94%{transform:rotate(-9deg);}97%{transform:rotate(5deg);}}
  .admin-notify-count{
    position:absolute; top:-4px; right:-4px;
    min-width:21px; height:21px; padding:0 .28rem;
    border-radius:999px; background:#D93636; color:#fff;
    font-size:.68rem; font-weight:800; line-height:21px;
  }
  .admin-notify-count:empty{display:none;}

  .admin-notify-panel{
    position:absolute; right:0; left:auto; bottom:calc(100% + .65rem);
    width:min(330px, calc(100vw - 2rem));
    background:var(--paper); border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:0 18px 46px rgba(10,10,10,.3);
    opacity:0; visibility:hidden; transform:translateY(8px);
    transition:opacity .18s ease, transform .18s ease, visibility .18s;
    overflow:hidden;
  }
  .admin-notify.open .admin-notify-panel{opacity:1; visibility:visible; transform:translateY(0);}
  .admin-notify-head{
    display:flex; align-items:center; justify-content:space-between;
    padding:.7rem .85rem; background:var(--navy-dark); color:#fff;
  }
  .admin-notify-head strong{font-family:'Work Sans',sans-serif; font-size:.88rem;}
  .admin-notify-close{background:none; border:none; color:#fff; cursor:pointer; opacity:.7; font-size:.9rem;}
  .admin-notify-close:hover{opacity:1;}
  .admin-notify-list{max-height:340px; overflow-y:auto;}
  .admin-notify-item{
    display:flex; gap:.65rem; align-items:flex-start;
    padding:.65rem .85rem; border-bottom:1px solid var(--line);
  }
  .admin-notify-item.is-new{background:rgba(220,251,0,.11);}
  .admin-notify-item-ico{
    width:30px; height:30px; flex:0 0 auto; border-radius:8px;
    background:var(--cream); border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center; font-size:.9rem;
  }
  .admin-notify-item strong{display:block; font-size:.78rem; line-height:1.35;}
  .admin-notify-item small{display:block; font-size:.76rem; color:var(--muted); line-height:1.4;}
  .admin-notify-item em{display:block; font-style:normal; font-size:.68rem; color:var(--gold-deep); margin-top:.15rem;}
  .admin-notify-empty{padding:1.4rem .9rem; text-align:center; font-size:.82rem; color:var(--muted); margin:0;}
  .admin-notify-foot{
    display:flex; align-items:center; justify-content:space-between; gap:.5rem;
    padding:.6rem .85rem; border-top:1px solid var(--line); background:var(--cream);
  }
  .admin-notify-mark{
    background:none; border:none; padding:0; cursor:pointer;
    font-size:.74rem; color:var(--muted); text-decoration:underline;
  }
  .admin-notify-mark:hover{color:var(--ink);}
  .admin-notify-foot a{font-size:.76rem; font-weight:700; color:var(--gold-deep);}

  .admin-notify-toast{
    position:fixed; left:1rem; bottom:5.2rem; z-index:190;
    display:flex; gap:.65rem; align-items:flex-start; cursor:pointer;
    width:min(320px, calc(100vw - 2rem));
    background:var(--navy-dark); color:#fff;
    border-left:4px solid var(--gold);
    border-radius:12px; padding:.75rem .9rem;
    box-shadow:0 16px 38px rgba(10,10,10,.35);
    transition:opacity .3s ease;
    animation:jmToastIn .25s ease;
  }
  @keyframes jmToastIn{from{opacity:0; transform:translateX(-12px);}to{opacity:1; transform:none;}}
  .admin-notify-toast-ico{font-size:1.15rem; flex:0 0 auto;}
  .admin-notify-toast strong{display:block; font-size:.82rem;}
  .admin-notify-toast small{display:block; font-size:.76rem; opacity:.78; line-height:1.4; margin-top:.1rem;}

  @media (min-width:640px){
    .admin-notify{left:1.6rem; bottom:1.6rem;}
    .admin-notify-toast{left:1.6rem; bottom:5.8rem;}
  }

  /* ============================================================
     PERFIL DE INMOBILIARIA — personalización
     El color lo define la propia inmobiliaria desde su panel,
     dentro de una paleta cerrada validada en el backend.
     ============================================================ */
  :root{ --agency-accent:var(--gold); }

  .agency-slogan{
    font-family:'Work Sans',sans-serif;
    font-size:clamp(.92rem, 3.2vw, 1.15rem);
    font-weight:600;
    color:var(--agency-accent);
    margin:.35rem auto 0;
    max-width:640px;
  }
  .agency-links{
    display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem;
    margin-top:1rem;
  }
  .agency-link{
    display:inline-flex; align-items:center; gap:.4rem;
    padding:.45rem .85rem;
    border:1px solid rgba(255,255,255,.3);
    border-radius:999px;
    background:rgba(255,255,255,.08);
    color:#fff; font-size:.82rem; font-weight:600;
    transition:background .18s ease, border-color .18s ease;
  }
  .agency-link:hover{
    background:var(--agency-accent);
    border-color:var(--agency-accent);
    color:#0A0A0A;
  }
  .agency-link--wa{
    background:var(--agency-accent);
    border-color:var(--agency-accent);
    color:#0A0A0A;
  }
  .agency-link--wa:hover{filter:brightness(1.08);}
  .agency-link i{font-size:1rem;}

  .agency-chips{
    display:flex; flex-wrap:wrap; gap:.5rem;
    margin:1.2rem 0 0;
  }
  .agency-chip{
    display:inline-flex; align-items:center; gap:.4rem;
    padding:.5rem .9rem;
    border:1px solid var(--line); border-radius:999px;
    background:var(--paper); color:var(--ink);
    font-family:inherit; font-size:.82rem; font-weight:600;
    cursor:pointer;
    transition:border-color .18s ease, background .18s ease;
  }
  .agency-chip span{
    background:var(--cream); border-radius:999px;
    padding:.05rem .4rem; font-size:.74rem; color:var(--muted);
  }
  .agency-chip:hover{border-color:var(--agency-accent);}
  .agency-chip.is-active{
    background:var(--agency-accent);
    border-color:var(--agency-accent);
    color:#0A0A0A;
  }
  .agency-chip.is-active span{background:rgba(0,0,0,.12); color:inherit;}

  /* ---- Selector de color en el panel ---- */
  .color-picker{display:flex; flex-wrap:wrap; gap:.6rem;}
  .color-swatch{
    width:44px; height:44px; border-radius:12px;
    border:2px solid var(--line); cursor:pointer; padding:0;
    transition:transform .14s ease, border-color .14s ease;
  }
  .color-swatch:hover{transform:scale(1.06);}
  .color-swatch.is-active{
    border-color:#12202B;
    box-shadow:0 0 0 3px rgba(18,32,43,.15);
  }

  /* ============================================================
     TASACIONES — página pública
     ============================================================ */
  .tasacion-beneficios{
    list-style:none; padding:0; margin:0 0 1.4rem;
    display:flex; flex-direction:column; gap:.5rem;
    font-size:.88rem; color:var(--muted);
  }
  .tasacion-logueado{
    background:rgba(220,251,0,.14);
    border:1px solid rgba(124,139,0,.3);
    border-radius:10px; padding:.6rem .8rem; margin:0 0 1.2rem;
    font-size:.84rem; color:var(--ink);
  }
  .form-bloque{
    font-family:'Work Sans',sans-serif; font-size:.78rem;
    letter-spacing:.1em; text-transform:uppercase; color:var(--gold-deep);
    margin:1.6rem 0 .9rem; padding-bottom:.4rem;
    border-bottom:1px solid var(--line);
  }
  .form-bloque:first-of-type{margin-top:0;}
  .form-grid2{display:grid; grid-template-columns:1fr; gap:0 1rem;}

  .tasacion-ok{
    background:var(--paper); border:1px solid var(--line);
    border-radius:var(--radius); padding:2rem 1.3rem; text-align:center;
  }
  .tasacion-ok-ico{
    width:62px; height:62px; margin:0 auto 1rem;
    border-radius:50%; background:var(--gold); color:var(--navy-dark);
    display:flex; align-items:center; justify-content:center;
    font-size:1.9rem; font-weight:800;
  }
  .tasacion-ok h2{font-family:'Work Sans',sans-serif; font-size:1.3rem; margin:0 0 .5rem;}
  .tasacion-ok p{color:var(--muted); font-size:.92rem; margin:0 0 1.3rem;}
  .tasacion-ok-nota{font-size:.8rem; margin:1.1rem 0 0 !important;}

  @media (min-width:560px){
    .form-grid2{grid-template-columns:1fr 1fr;}
  }

  /* ============================================================
     BLOQUE QR DEL HOME
     ============================================================ */
  .qr-section{
    max-width:var(--maxw); margin:0 auto;
    padding:1.6rem 1rem 2.4rem;
  }
  .qr-card{
    display:flex; flex-direction:column; align-items:center; gap:1.3rem;
    background:var(--navy-dark); color:#fff;
    border-radius:var(--radius);
    padding:1.8rem 1.3rem;
    text-align:center;
  }
  .qr-codigo{
    background:#fff; padding:.85rem; border-radius:14px;
    line-height:0; flex:0 0 auto;
    box-shadow:0 8px 26px rgba(0,0,0,.28);
  }
  .qr-codigo img, .qr-codigo canvas{display:block;}
  .qr-error{font-size:.8rem; color:var(--muted); margin:0; line-height:1.4;}
  .qr-texto .eyebrow{color:var(--gold-light);}
  .qr-texto h2{
    font-family:'Work Sans',sans-serif;
    font-size:clamp(1.15rem, 4.5vw, 1.5rem);
    font-weight:600; margin:.35rem 0 .5rem; color:#fff;
  }
  .qr-texto p{
    font-size:.88rem; color:rgba(255,255,255,.72);
    margin:0 auto; max-width:420px; line-height:1.55;
  }
  .qr-acciones{
    display:flex; gap:.55rem; justify-content:center; flex-wrap:wrap;
    margin-top:1.1rem;
  }
  .qr-btn{
    display:inline-flex; align-items:center; gap:.45rem;
    padding:.6rem 1.1rem; border-radius:999px;
    background:var(--gold); color:#0A0A0A; border:1px solid var(--gold);
    font-family:inherit; font-size:.83rem; font-weight:700; cursor:pointer;
    transition:filter .16s ease;
  }
  .qr-btn:hover{filter:brightness(1.07);}
  .qr-btn--ghost{
    background:transparent; color:#fff; border-color:rgba(255,255,255,.35);
  }
  .qr-btn--ghost:hover{background:rgba(255,255,255,.1); filter:none;}

  @media (min-width:720px){
    .qr-card{
      flex-direction:row; text-align:left;
      justify-content:center; align-items:center;
      padding:2.6rem 2.2rem; gap:3.2rem;
    }
    .qr-codigo{padding:1.1rem;}
    .qr-codigo img, .qr-codigo canvas{width:230px; height:230px;}
    .qr-texto{flex:0 1 auto; max-width:560px;}
    .qr-texto h2{font-size:1.8rem;}
    .qr-texto p{margin:0; max-width:none; font-size:.98rem;}
    .qr-acciones{justify-content:flex-start; margin-top:1.4rem;}
    .qr-btn{font-size:.9rem; padding:.7rem 1.3rem;}
  }

  /* ============================================================
     RESULTADO DEL PAGO
     ============================================================ */
  .pago-resultado{
    background:var(--paper); border:1px solid var(--line);
    border-radius:var(--radius); padding:2.2rem 1.3rem;
    text-align:center; max-width:520px; margin:0 auto;
  }
  .pago-ico{
    width:68px; height:68px; margin:0 auto 1.1rem;
    border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:1.8rem;
  }
  .pago-ico--ok{background:#E6F4ED; color:#2E7D5B;}
  .pago-ico--bad{background:#FBE9E9; color:#A32C2C;}
  .pago-ico--wait{background:#FBF1DA; color:#9A6B00;}
  .pago-resultado h1{
    font-family:'Work Sans',sans-serif; font-size:1.35rem;
    margin:0 0 .6rem; color:var(--ink);
  }
  .pago-resultado > p{
    color:var(--muted); font-size:.92rem; line-height:1.6;
    margin:0 auto 1.4rem; max-width:400px;
  }
  .pago-detalle{
    text-align:left; border-top:1px solid var(--line);
    padding-top:1rem; margin:0 0 1.4rem;
  }
  .pago-detalle div{
    display:flex; justify-content:space-between; gap:1rem;
    padding:.4rem 0; font-size:.85rem;
  }
  .pago-detalle span{color:var(--muted); flex:0 0 auto;}
  .pago-detalle strong{text-align:right; word-break:break-all;}

  /* ============================================================
     REFORMAS: contacto por WhatsApp, compartir, verificado grande,
     mapa de la ficha y medidor de contraseña
     ============================================================ */

  /* --- Botón Contacto (cabecera / barra lateral) --- */
  /* Mismo tamaño y forma que ACCEDER, en los colores de WhatsApp */
  .contacto-btn{
    display:flex; align-items:center; justify-content:center; gap:.45rem;
    padding:.42rem .8rem;
    border:1px solid rgba(37,211,102,.55);
    border-radius:999px;
    background:rgba(37,211,102,.12);
    color:#25D366;
    font-family:inherit;
    font-size:.78rem; font-weight:700;
    letter-spacing:.02em; text-transform:uppercase;
    cursor:pointer; white-space:nowrap;
    transition:background .18s ease, border-color .18s ease;
  }
  .contacto-btn i{font-size:1rem;}
  /* Misma altura que ACCEDER (que crece por su avatar) */
  .access-trigger, .contacto-btn{min-height:38px; box-sizing:border-box;}
  .contacto-btn:hover{background:rgba(37,211,102,.22); border-color:#25D366;}

  /* --- Modal de contacto --- */
  .contacto-modal{
    position:fixed; inset:0; z-index:300;
    background:rgba(10,12,8,.55);
    display:flex; align-items:center; justify-content:center;
    padding:1rem;
  }
  /* El atributo hidden manda: sin esto, el display:flex de arriba lo
     pisaba y el modal quedaba abierto y sin poder cerrarse. */
  .contacto-modal[hidden]{display:none;}
  .contacto-caja{
    position:relative;
    width:min(430px, 100%);
    max-height:calc(100vh - 2rem); overflow-y:auto;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:16px;
    padding:1.2rem 1.2rem 1.3rem;
    box-shadow:0 24px 60px rgba(0,0,0,.35);
  }
  .contacto-caja h3{margin:0 0 .2rem; font-size:1.2rem; display:flex; align-items:center; gap:.5rem;}
  .contacto-caja h3 i{color:#25D366;}
  .contacto-caja > p{margin:0 0 .9rem; font-size:.86rem; color:var(--muted);}
  .contacto-cerrar{
    position:absolute; top:.7rem; right:.7rem;
    width:32px; height:32px; border-radius:50%;
    border:1px solid var(--line); background:var(--cream);
    color:var(--ink); cursor:pointer; font-size:.85rem;
  }
  /* Pestañas Consulta / Denuncia del modal de contacto */
  .cto-tabs{display:flex; gap:.5rem; margin:.2rem 0 1rem;}
  .cto-tab{
    flex:1; cursor:pointer;
    padding:.6rem .5rem;
    border:1.5px solid var(--line); border-radius:999px;
    background:var(--paper); color:var(--muted);
    font-family:inherit; font-size:.85rem; font-weight:600;
    transition:background .15s ease, color .15s ease, border-color .15s ease;
  }
  .cto-tab:hover{border-color:var(--gold);}
  .cto-tab.is-activa{background:var(--gold); border-color:var(--gold); color:var(--ink);}
  .cto-aviso-legal{
    margin:-.2rem 0 1rem; padding:.6rem .75rem;
    background:rgba(0,0,0,.035); border-left:3px solid var(--gold);
    border-radius:8px;
    font-size:.76rem; line-height:1.45; color:var(--muted);
  }
  /* Redes del portal, al pie del formulario de contacto */
  .contacto-redes{
    margin-top:1rem; padding-top:.9rem;
    border-top:1px solid var(--line);
  }
  .contacto-redes-titulo{
    display:block; margin-bottom:.55rem;
    font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
    color:var(--muted);
  }
  .contacto-redes-fila{display:flex; flex-wrap:wrap; gap:.45rem;}
  .contacto-red{
    display:inline-flex; align-items:center; gap:.4rem;
    padding:.4rem .7rem;
    border:1px solid var(--line); border-radius:999px;
    background:var(--paper);
    font-size:.78rem; font-weight:600; color:var(--ink);
    text-decoration:none;
    transition:border-color .15s ease, background .15s ease;
  }
  .contacto-red i{font-size:.95rem;}
  .contacto-red--fb i{color:#1877F2;}
  .contacto-red--yt i{color:#FF0000;}
  .contacto-red--ig i{color:#E1306C;}
  .contacto-red--mail i{color:#5A6570;}
  .contacto-red:hover{border-color:var(--gold); background:#fff;}
  .contacto-enviar{
    width:100%; margin-top:.3rem;
    display:flex; align-items:center; justify-content:center; gap:.5rem;
    padding:.75rem 1rem; border:none; border-radius:999px;
    background:#25D366; color:#0A2010;
    font-family:inherit; font-weight:800; font-size:.95rem;
    cursor:pointer;
  }
  .contacto-enviar:hover{filter:brightness(1.06);}
  .contacto-error{margin:.6rem 0 0; font-size:.83rem; color:#B3261E;}

  /* --- Términos en el menú --- */
  .main-nav .nav-terminos{
    font-size:.72rem; font-weight:600;
    opacity:.75; text-transform:none;
  }

  /* --- Verificado más grande y visible en los listados --- */
  .verified-icon{
    display:inline-flex; align-items:center; justify-content:center;
    width:20px; height:20px; margin-left:.35rem;
    border-radius:50%;
    background:#1F9D55; color:#fff;
    font-size:.72rem; font-weight:800;
    box-shadow:0 0 0 2px rgba(31,157,85,.22);
  }

  /* --- Compartir en las tarjetas (reemplaza al corazón) --- */
  .listing-share{
    position:absolute; top:.55rem; right:.55rem; z-index:3;
    width:34px; height:34px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.92); color:var(--ink);
    font-size:.85rem;
    cursor:pointer;
    box-shadow:0 2px 8px rgba(0,0,0,.18);
    transition:background .15s ease, color .15s ease;
  }
  .listing-share:hover{background:var(--gold); color:var(--navy-dark);}
  .listing-share.is-copiado{background:#1F9D55; color:#fff;}

  /* --- Mapa de ubicación en la ficha --- */
  .prop-mapa{margin:1.1rem 0 .4rem;}
  .prop-mapa h3{font-size:.95rem; margin:0 0 .5rem; display:flex; align-items:center; gap:.45rem;}
  .prop-mapa iframe{
    width:100%; height:300px; border:1px solid var(--line);
    border-radius:12px; display:block;
  }

  /* --- Medidor de seguridad de la contraseña --- */
  .pass-meter{margin-top:.45rem;}
  .pass-meter-barra{
    height:7px; border-radius:99px; background:var(--line); overflow:hidden;
  }
  .pass-meter-barra span{
    display:block; height:100%; width:0;
    border-radius:99px;
    background:#B3261E;
    transition:width .25s ease, background .25s ease;
  }
  .pass-meter-barra span[data-nivel="media"]{background:#D89A00;}
  .pass-meter-barra span[data-nivel="alta"]{background:#1F9D55;}
  .pass-meter-texto{display:block; margin-top:.3rem; font-size:.74rem; color:var(--muted);}