/* =====================================================================
   Microweb independiente del franquiciado
   ===================================================================== */
:root{
    --mw-primary:#013F78; --mw-accent:#D70B26; --mw-ink:#012A50; --mw-paper:#f4f6f9;
}
.mw-body{ margin:0; font-family:"Helvetica Neue",Arial,sans-serif; color:var(--mw-ink); background:#fff; overflow-x:hidden; }
.mw-body *{ box-sizing:border-box; }
.mw-body .container{ max-width:1140px; margin:0 auto; padding:0 18px; }

/* Header */
.mw-header{ background:#fff; border-bottom:1px solid #e6eaef; position:sticky; top:0; z-index:50; box-shadow:0 1px 10px rgba(1,42,80,.05); }
.mw-header__inner{ display:flex; align-items:center; justify-content:space-between; height:68px; }
.mw-brand{ display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--mw-primary); }
.mw-brand__logo{ height:44px; width:auto; max-width:180px; object-fit:contain; }
.mw-brand__name{ font-weight:700; font-size:1.15rem; }
.mw-nav{ display:flex; gap:1.4rem; }
.mw-nav a{ text-decoration:none; color:var(--mw-ink); font-weight:500; font-size:.98rem; transition:color .15s; }
.mw-nav a:hover{ color:var(--mw-accent); }
.mw-nav__toggle,.mw-nav__burger{ display:none; }

/* Banners panorámicos 1600x500 */
.mw-banners__viewport{ position:relative; width:100%; aspect-ratio:1600/500; background:#0a1621; overflow:hidden; }
.mw-banner{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity .6s ease; display:flex; align-items:center; }
.mw-banner.is-active{ opacity:1; }
.mw-banner__caption{ width:100%; padding:2rem; background:linear-gradient(90deg,rgba(1,42,80,.65),transparent); }
.mw-banner__caption span{ color:#fff; font-size:2rem; font-weight:700; max-width:640px; display:block; text-shadow:0 2px 8px rgba(0,0,0,.4); }
.mw-banner__nav{ position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border:0; border-radius:50%; background:rgba(255,255,255,.25); color:#fff; font-size:1.8rem; cursor:pointer; z-index:3; }
.mw-banner__nav--prev{ left:14px; } .mw-banner__nav--next{ right:14px; }
.mw-banner__nav:hover{ background:rgba(255,255,255,.45); }
.mw-banner__dots{ position:absolute; bottom:14px; left:0; right:0; display:flex; justify-content:center; gap:.5rem; z-index:3; }
.mw-banner__dot{ width:10px; height:10px; border:0; border-radius:50%; background:rgba(255,255,255,.5); cursor:pointer; }
.mw-banner__dot.is-active{ background:#fff; }

/* Bienvenida */
.mw-welcome{ padding:2.5rem 0; }
.mw-richtext{ font-size:1.08rem; line-height:1.8; max-width:820px; margin:0 auto; text-align:center; }
.mw-richtext p{ margin:0 0 1rem; }

/* Secciones */
.mw-section{ padding:3rem 0; }
.mw-section--alt{ background:var(--mw-paper); }
.mw-section__title{ font-size:1.7rem; color:var(--mw-primary); text-align:center; margin:0 0 .3rem; }
.mw-section__sub{ text-align:center; color:#64707F; margin:0 0 1.8rem; }
.mw-section__title + .mw-grid{ margin-top:1.8rem; }

/* Grid de cards */
.mw-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.4rem; }
.mw-card{ background:#fff; border-radius:14px; overflow:hidden; text-decoration:none; color:inherit; box-shadow:0 2px 12px rgba(1,42,80,.08); transition:transform .15s,box-shadow .15s; }
.mw-card:hover{ transform:translateY(-4px); box-shadow:0 12px 30px rgba(1,42,80,.16); }
.mw-card__img{ position:relative; aspect-ratio:16/10; background:#eef1f5; }
.mw-card__img img{ width:100%; height:100%; object-fit:cover; }
.mw-card__noimg{ width:100%; height:100%; background:linear-gradient(135deg,#dce3ec,#eef1f5); }
.mw-card__op{ position:absolute; top:.7rem; left:.7rem; background:var(--mw-primary); color:#fff; font-size:.75rem; padding:.2rem .7rem; border-radius:30px; }
.mw-card__op--dev{ background:var(--mw-accent); }
.mw-card__body{ padding:1rem 1.1rem; }
.mw-card__title{ font-size:1.1rem; margin:0 0 .3rem; color:var(--mw-primary); }
.mw-card__loc{ color:#64707F; font-size:.88rem; margin:0 0 .4rem; }
.mw-card__price{ color:var(--mw-accent); font-weight:700; font-size:1.05rem; margin:0 0 .4rem; }
.mw-card__meta{ display:flex; gap:.9rem; font-size:.82rem; color:#64707F; margin:0; }

/* Footer */
.mw-footer{ background:var(--mw-primary); color:#fff; padding:2.2rem 0 0; margin-top:2rem; }
.mw-footer__inner{ display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:space-between; align-items:flex-start; padding-bottom:1.6rem; }
.mw-footer__brand{ display:flex; gap:.8rem; align-items:center; }
.mw-footer__logo{ height:52px; width:auto; max-width:160px; object-fit:contain; background:#fff; border-radius:8px; padding:4px; }
.mw-footer__name{ font-size:1.2rem; font-weight:700; }
.mw-footer__model{ font-size:.85rem; opacity:.85; margin-top:.2rem; }
.mw-footer__contact{ display:flex; flex-direction:row; align-items:center; justify-content:center; flex-wrap:wrap; gap:.8rem; }
.mw-footer__contact > a[href^="tel"]{ display:inline-flex; align-items:center; gap:.3rem; font-weight:600; }
.mw-footer__contact a{ color:#fff; text-decoration:none; opacity:.9; font-size:.92rem; }
.mw-footer__contact a:hover{ opacity:1; }
.mw-footer__social{ display:flex; gap:1rem; }
.mw-footer__social a{ color:#fff; text-decoration:none; opacity:.85; font-size:.9rem; }
.mw-footer__bottom{ border-top:1px solid rgba(255,255,255,.15); text-align:center; padding:1rem 0; font-size:.82rem; opacity:.75; }

/* Responsive */
@media (max-width:768px){
    .mw-nav__burger{ display:block; font-size:1.6rem; cursor:pointer; color:var(--mw-primary); }
    .mw-nav{ display:none; position:absolute; top:68px; left:0; right:0; background:#fff; flex-direction:column; gap:0; box-shadow:0 8px 20px rgba(1,42,80,.12); }
    .mw-nav a{ padding:.9rem 18px; border-bottom:1px solid #eef1f5; }
    .mw-nav__toggle:checked ~ .mw-nav{ display:flex; }
    .mw-banner__caption span{ font-size:1.2rem; }
    .mw-footer__inner{ flex-direction:column; }
    .mw-footer__contact{ width:100%; justify-content:center; }
}

/* Página de contacto */
.mw-contact{ display:grid; grid-template-columns:1fr 1.3fr; gap:2rem; margin-top:1.8rem; }
.mw-contact__info h2, .mw-contact__form h2{ font-size:1.3rem; color:var(--mw-primary); margin:0 0 1rem; }
.mw-contact__info{ background:var(--mw-paper); border-radius:14px; padding:1.6rem; }
.mw-contact__row{ margin:0 0 .7rem; font-size:1rem; }
.mw-contact__row a{ color:var(--mw-ink); text-decoration:none; }
.mw-contact__row a:hover{ color:var(--mw-accent); }
.mw-contact__social{ display:flex; gap:1rem; margin-top:1rem; }
.mw-contact__social a{ color:var(--mw-primary); text-decoration:none; font-size:.9rem; font-weight:600; }
.mw-contact__form{ background:#fff; border-radius:14px; padding:1.6rem; box-shadow:0 2px 14px rgba(1,42,80,.08); }
.mw-card__badge{ display:inline-block; background:#eef4fb; color:var(--mw-primary); font-size:.75rem; padding:.15rem .6rem; border-radius:20px; margin:.3rem 0 0; }
@media (max-width:768px){ .mw-contact{ grid-template-columns:1fr; } }

/* Ficha de detalle (tipología / propiedad importada) */
.mw-detail{ padding:2rem 0; }
.mw-detail__back{ color:var(--mw-primary); text-decoration:none; font-size:.9rem; display:inline-block; margin-bottom:1rem; }
.mw-gallery__main{ width:100%; border-radius:14px; overflow:hidden; }
.mw-gallery__main img{ width:100%; max-height:460px; object-fit:cover; display:block; }
.mw-gallery__thumbs{ display:flex; gap:.5rem; margin-top:.6rem; flex-wrap:wrap; }
.mw-gallery__thumbs img{ width:92px; height:68px; object-fit:cover; border-radius:6px; cursor:pointer; border:2px solid transparent; }
.mw-gallery__thumbs img:hover{ border-color:var(--mw-accent); }
.mw-detail__grid{ display:grid; grid-template-columns:1fr 340px; gap:2rem; margin-top:1.5rem; }
.mw-detail__badge{ background:var(--mw-accent); color:#fff; font-size:.75rem; padding:.2rem .7rem; border-radius:30px; }
.mw-detail__title{ font-size:1.9rem; color:var(--mw-primary); margin:.6rem 0 .3rem; }
.mw-detail__loc{ color:#64707F; margin:0 0 .5rem; }
.mw-detail__price{ font-size:1.5rem; font-weight:800; color:var(--mw-accent); margin:0 0 1rem; }
.mw-detail__ops{ display:flex; flex-wrap:wrap; gap:.8rem; margin:1rem 0; }
.mw-detail__op{ background:#f5f7fa; border-radius:10px; padding:.5rem .9rem; }
.mw-detail__op strong{ color:var(--mw-accent); }
.mw-detail__specs{ display:flex; flex-wrap:wrap; gap:1.4rem; margin:1.2rem 0; padding:1rem 0; border-top:1px solid #e3e8ee; border-bottom:1px solid #e3e8ee; }
.mw-detail__specs div{ font-size:.9rem; color:#64707F; }
.mw-detail__specs span{ font-size:1.3rem; font-weight:700; color:var(--mw-primary); display:block; }
.mw-detail__desc{ margin-top:1.5rem; }
.mw-detail__desc h2{ font-size:1.2rem; color:var(--mw-primary); margin-bottom:.6rem; }
.mw-features{ display:flex; flex-wrap:wrap; gap:.5rem; }
.mw-feature{ background:#eef4fb; color:var(--mw-primary); border-radius:20px; padding:.3rem .8rem; font-size:.85rem; }

/* Tarjeta de contacto en la ficha (va al CRM) */
.mw-contactcard{ background:#fff; border-radius:14px; padding:1.4rem; box-shadow:0 2px 14px rgba(1,42,80,.1); position:sticky; top:88px; }
.mw-contactcard h3{ font-size:1.15rem; color:var(--mw-primary); margin:0 0 .9rem; }
.mw-contactcard__direct{ display:flex; flex-direction:column; gap:.5rem; margin-top:.9rem; padding-top:.9rem; border-top:1px solid #eef1f5; }
.mw-contactcard__wa,.mw-contactcard__tel{ text-align:center; text-decoration:none; padding:.55rem; border-radius:8px; font-weight:600; }
.mw-contactcard__wa{ background:#25d366; color:#fff; }
.mw-contactcard__tel{ background:#f5f7fa; color:var(--mw-ink); }
@media (max-width:768px){ .mw-detail__grid{ grid-template-columns:1fr; } .mw-contactcard{ position:static; } }

/* Botón grande de WhatsApp */
.mw-wa-btn{
    display:flex; align-items:center; justify-content:center; gap:.6rem;
    background:#25d366; color:#fff; text-decoration:none;
    padding:.85rem 1.2rem; border-radius:12px; font-weight:700; font-size:1.05rem;
    margin:1rem 0; box-shadow:0 3px 12px rgba(37,211,102,.35); transition:transform .12s,box-shadow .12s;
}
.mw-wa-btn:hover{ background:#1fbe5a; color:#fff; transform:translateY(-2px); box-shadow:0 6px 18px rgba(37,211,102,.45); }
.mw-wa-btn svg{ flex:0 0 auto; }

/* Respaldo RealtyPlus */
.mw-backing{
    margin-top:1.6rem; padding:1.4rem; border-radius:12px; text-align:center;
    background:linear-gradient(135deg,var(--mw-primary),#012A50);
}
.mw-backing__logo{ height:40px; width:auto; max-width:200px; object-fit:contain; margin-bottom:.7rem; }
.mw-backing__text{ color:#fff; font-size:.92rem; margin:0; opacity:.95; line-height:1.5; }
.mw-backing__text strong{ color:#fff; }

/* Botones compartir */
.mw-share{ display:flex; align-items:center; gap:.5rem; margin:1.2rem 0; flex-wrap:wrap; }
.mw-share__label{ font-size:.9rem; color:#64707F; font-weight:600; }
.mw-share__btn{ display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; border:0; cursor:pointer; color:#fff; text-decoration:none; transition:transform .12s,opacity .12s; position:relative; }
.mw-share__btn:hover{ transform:translateY(-2px); }
.mw-share__btn--wa{ background:#25d366; }
.mw-share__btn--fb{ background:#1877f2; }
.mw-share__btn--x{ background:#000; }
.mw-share__btn--copy{ background:#64707F; }
.mw-share__btn--copy.is-copied{ background:#1a9e5a; }
.mw-share__btn[data-tip]:hover::after{ content:attr(data-tip); position:absolute; bottom:calc(100% + 6px); left:50%; transform:translateX(-50%); background:#012A50; color:#fff; font-size:.72rem; padding:.2rem .5rem; border-radius:5px; white-space:nowrap; }

/* Botón WhatsApp en el footer */
.mw-footer__wa{
    display:inline-flex; align-items:center; gap:.5rem;
    background:#25d366; color:#fff !important; text-decoration:none;
    padding:.5rem 1rem; border-radius:8px; font-weight:600;
    transition:background .15s;
}
.mw-footer__wa:hover{ background:#1fbe5a; color:#fff !important; }

/* Formulario de contacto mejorado */
.mw-form-head{ margin-bottom:1.2rem; }
.mw-form-head h2{ margin:0 0 .3rem; }
.mw-form-sub{ color:#64707F; margin:0; font-size:.95rem; }
.mw-form .mw-field{ margin-bottom:1rem; }
.mw-form label{ display:block; font-size:.88rem; font-weight:600; color:var(--mw-ink); margin-bottom:.35rem; }
.mw-form label span{ color:var(--mw-accent); }
.mw-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.mw-input{ position:relative; display:flex; align-items:center; }
.mw-input__icon{ position:absolute; left:.8rem; font-size:1rem; opacity:.7; pointer-events:none; }
.mw-input input{ width:100%; padding:.75rem .8rem .75rem 2.4rem; border:1.5px solid #dfe5ec; border-radius:10px; font-size:1rem; transition:border-color .15s, box-shadow .15s; }
.mw-form textarea{ width:100%; padding:.75rem .9rem; border:1.5px solid #dfe5ec; border-radius:10px; font-size:1rem; resize:vertical; font-family:inherit; transition:border-color .15s, box-shadow .15s; }
.mw-form input:focus, .mw-form textarea:focus{ outline:none; border-color:var(--mw-primary); box-shadow:0 0 0 3px rgba(1,63,120,.12); }
.mw-form__submit{ width:100%; background:var(--mw-accent); color:#fff; border:0; padding:.85rem; border-radius:10px; font-size:1.05rem; font-weight:700; cursor:pointer; transition:transform .12s, box-shadow .12s; }
.mw-form__submit:hover{ transform:translateY(-2px); box-shadow:0 6px 18px rgba(215,11,38,.35); }
.mw-form__note{ text-align:center; font-size:.8rem; color:#8894a3; margin:.8rem 0 0; }
.mw-flash{ padding:.7rem 1rem; border-radius:10px; margin-bottom:1rem; font-size:.92rem; }
.mw-flash--ok{ background:#e6f7ee; color:#1a7d47; }
.mw-flash--error{ background:#fdeaec; color:#c0182a; }
@media (max-width:520px){ .mw-field-row{ grid-template-columns:1fr; } }

/* Faja de estado (Vendido / Alquilado) */
.mw-card__faja {
    position:absolute; top:14px; right:-32px; transform:rotate(45deg);
    padding:.28rem 2.5rem; font-size:.72rem; font-weight:800; letter-spacing:.05em;
    color:#fff; box-shadow:0 2px 8px rgba(0,0,0,.25); z-index:3;
}
.mw-card__faja--sold { background:#c0182a; }
.mw-card__faja--rented { background:#0A5A9E; }
.mw-card__img { position:relative; overflow:hidden; }
