:root{
  --forest-deep:#032d26;--forest:#064b40;--green:#94b95a;--aqua:#37bfc0;
  --ink:#18302a;--muted:#66756f;--paper:#f6f5ef;--white:#fff;
  --shadow:0 18px 55px rgba(0,30,22,.16)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:#fff}
img{max-width:100%}button,input,select,textarea{font:inherit}.container{width:min(1180px,92%);margin:auto}
.header{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.96);border-bottom:1px solid #e5ebe7;backdrop-filter:blur(12px)}
.header-inner{height:84px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand img{width:245px;max-height:64px;object-fit:contain}
.nav{display:flex;align-items:center;gap:20px}.nav a{text-decoration:none;color:var(--forest-deep);font-weight:700}.nav-toggle{display:none;border:0;background:none;font-size:1.6rem}
.hero{min-height:650px;display:grid;align-items:center;color:#fff;background:linear-gradient(90deg,rgba(3,45,38,.96),rgba(3,59,51,.45)),url("portada-viedma.png") center/cover}
.hero-content{padding:80px 0}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:800}.hero h1,.section h2,.cta h2{font-family:"Playfair Display",Georgia,serif}
.hero h1{font-size:clamp(3rem,7vw,6.3rem);line-height:.94;max-width:850px;margin:18px 0}.hero p{max-width:680px;font-size:1.16rem;line-height:1.7}
.hero-actions,.form-actions,.card-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-metrics{display:flex;gap:35px;flex-wrap:wrap;margin-top:45px}.hero-metrics div{display:grid}.hero-metrics strong{font-size:1.2rem}.hero-metrics span{opacity:.8}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;padding:12px 18px;text-decoration:none;font-weight:800;cursor:pointer;border-radius:3px}
.btn-primary{background:var(--green);color:#17301f}.btn-dark{background:var(--forest-deep);color:#fff}.btn-light{background:#fff;color:var(--forest-deep)}
.btn-outline{background:#fff;color:var(--forest);border-color:#afc1b8}.btn-secondary{background:#e8efe8;color:#244a3b}.btn-danger{background:#a83a35;color:#fff}
.search-panel{position:relative;margin-top:-48px;background:#fff;padding:24px;box-shadow:var(--shadow);z-index:5}.search-grid,.form-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:12px;align-items:end}
.field{display:grid;gap:7px}.field label{font-size:.84rem;font-weight:800}.field input,.field select,.field textarea{width:100%;border:1px solid #cfdad4;padding:12px;background:#fff}.field textarea{resize:vertical}
.section{padding:90px 0}.section.alt{background:var(--paper)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:32px}.section-head h2{font-size:clamp(2rem,4vw,3.5rem);margin:8px 0}.section-head p{color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{display:flex;flex-direction:column;border:1px solid #e0e7e2;background:#fff;box-shadow:0 8px 25px rgba(13,48,38,.08)}.card-media{height:245px;position:relative}.card-media img{width:100%;height:100%;object-fit:cover}.badges{position:absolute;left:12px;top:12px;display:flex;gap:7px;flex-wrap:wrap}.badge{background:rgba(3,45,38,.92);color:#fff;padding:6px 9px;font-size:.72rem;font-weight:800}.badge.featured{background:var(--green);color:#17301f}
.card-body{padding:20px;flex:1}.card-body h3{font-family:"Playfair Display",Georgia,serif;font-size:1.5rem;margin:0 0 10px}.card-location{color:var(--muted)}.price{font-size:1.65rem;font-weight:900;color:var(--forest);margin:15px 0}.specs{display:flex;gap:8px;flex-wrap:wrap}.specs span{background:#eff4ef;padding:7px 9px;font-size:.8rem}.card-actions{padding:0 20px 20px}
.map-wrap{display:grid;grid-template-columns:2fr 1fr;background:#fff;box-shadow:var(--shadow)}.map{height:560px}.map-copy{padding:40px}.map-copy h3{font-family:"Playfair Display",Georgia,serif;font-size:2rem}.map-legend{display:grid;gap:10px;margin:25px 0}.dot{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--aqua);margin-right:8px}.dot.rural{background:var(--green)}
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service{padding:30px;border-top:4px solid var(--green);background:var(--paper)}.service .icon{font-size:2rem}.service h3{font-family:"Playfair Display",Georgia,serif;font-size:1.6rem}
.cta{background:var(--forest-deep);color:#fff;padding:45px;display:flex;align-items:center;justify-content:space-between;gap:25px}.cta h2{font-size:2.5rem;margin:0}
.footer{background:#021f1a;color:#dce9e4;padding:65px 0 25px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:35px}.footer img{width:260px;background:#fff;padding:8px}.footer a{color:#dce9e4}.footer ul{padding:0;list-style:none;line-height:2}.copyright{border-top:1px solid #ffffff25;margin-top:35px;padding-top:20px}
.whatsapp{position:fixed;right:22px;bottom:22px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;font-weight:900;text-decoration:none;z-index:1200;box-shadow:var(--shadow)}
.modal{display:none;position:fixed;inset:0;background:rgba(0,20,15,.78);z-index:5000;padding:25px;overflow:auto}.modal.open{display:grid;place-items:center}.modal-card{width:min(1050px,100%);background:#fff;position:relative;max-height:92vh;overflow:auto}.modal-close{position:absolute;right:12px;top:12px;z-index:10;width:40px;height:40px;border:0;background:#fff;cursor:pointer}.detail-cover{width:100%;height:410px;object-fit:cover}.detail-body{padding:30px}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:30px}.detail-side{border-left:1px solid #dde5df;padding-left:25px}.form-grid{grid-template-columns:1fr 1fr}.form-grid .full{grid-column:1/-1}
.empty{padding:35px;background:var(--paper);text-align:center;color:var(--muted)}
.leaflet-container{z-index:1}
@media(max-width:900px){.nav-toggle{display:block}.nav{display:none;position:absolute;top:84px;left:0;right:0;background:#fff;padding:20px;flex-direction:column}.nav.open{display:flex}.cards,.services{grid-template-columns:1fr 1fr}.map-wrap,.detail-grid{grid-template-columns:1fr}.detail-side{border-left:0;padding-left:0}.search-grid{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.cards,.services,.search-grid,.form-grid,.footer-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.hero{min-height:580px}.section{padding:65px 0}.section-head,.cta{align-items:flex-start;flex-direction:column}.map{height:430px}.brand img{width:190px}}



/* ==========================================================
   FICHA DE PROPIEDAD — GALERÍA VISIBLE EN PANTALLA
   ========================================================== */
.detail-gallery{display:block;width:100%;padding:22px;background:#f5f6f3;border-bottom:1px solid #dde5df}
.detail-gallery-stage{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:min(68vh,680px);min-height:420px;overflow:hidden;background:#eef1ed}
.detail-gallery-main{display:block;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;margin:0!important}
.detail-gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:44px;height:58px;border:0;border-radius:4px;background:rgba(3,45,38,.72);color:#fff;font-size:2rem;line-height:1;cursor:pointer}
.detail-gallery-arrow.prev{left:12px}.detail-gallery-arrow.next{right:12px}
.detail-gallery-counter{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:4;padding:6px 11px;border-radius:18px;background:rgba(3,45,38,.78);color:#fff;font-size:.82rem;font-weight:800}
.detail-thumbs{display:flex;gap:9px;width:100%;padding:12px 2px 0;overflow-x:auto;overflow-y:hidden}
.detail-thumb{flex:0 0 92px;width:92px;height:68px;padding:0;border:2px solid transparent;background:#fff;cursor:pointer;overflow:hidden}
.detail-thumb.active{border-color:var(--green)}
.detail-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.media-modal{place-items:center}.image-zoom-img{display:block;max-width:94vw;max-height:90vh;object-fit:contain;margin:auto}
.video-player-card{position:relative;width:min(1000px,96vw);background:#071d19}.property-video-body video,.property-video-body iframe{display:block;width:100%;height:min(76vh,700px);border:0;background:#000}

/* ==========================================================
   LAS FINCAS V4.0 — IMPRESIÓN DEFINITIVA DE CATÁLOGO
   Único diseño activo: páginas A4 reales, membrete por hoja,
   primera hoja con ficha + 2 fotos y páginas siguientes con
   2 fotografías. El contacto se integra en la última hoja.
   ========================================================== */

.print-catalog{display:none}

@media print{
  @page{
    size:A4 portrait;
    margin:0;
  }

  html,
  body{
    width:210mm!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
    color:#17302a!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }

  body>*{
    display:none!important;
  }

  #detailModal{
    display:block!important;
    position:static!important;
    inset:auto!important;
    width:210mm!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:#fff!important;
  }

  #detailModal .modal-card,
  #detailModal #detailContent{
    display:block!important;
    position:static!important;
    width:210mm!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    border:0!important;
    box-shadow:none!important;
    background:#fff!important;
  }

  #detailModal .modal-close,
  #detailModal #detailContent>.detail-gallery,
  #detailModal #detailContent>.detail-body,
  .whatsapp,
  .video-modal,
  .media-modal{
    display:none!important;
  }

  #detailModal .print-catalog{
    display:block!important;
    width:210mm!important;
    margin:0!important;
    padding:0!important;
  }

  #detailModal .print-catalog-page{
    display:flex!important;
    flex-direction:column!important;
    position:relative!important;
    width:210mm!important;
    height:297mm!important;
    min-height:297mm!important;
    max-height:297mm!important;
    margin:0!important;
    padding:8mm 11mm 9mm!important;
    overflow:hidden!important;
    background:#fff!important;
    break-after:page!important;
    page-break-after:always!important;
    box-sizing:border-box!important;
  }

  #detailModal .print-catalog-page:last-child{
    break-after:auto!important;
    page-break-after:auto!important;
  }

  #detailModal .print-page-letterhead{
    display:block!important;
    flex:0 0 auto!important;
    width:100%!important;
    height:29mm!important;
    margin:0 0 5mm!important;
    padding:0!important;
    overflow:hidden!important;
  }

  #detailModal .print-page-letterhead img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center top!important;
  }

  #detailModal .print-property-summary{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 48mm!important;
    gap:7mm!important;
    flex:0 0 auto!important;
    margin:0 0 5mm!important;
    padding:0 0 4mm!important;
    border-bottom:1px solid #ccd8d0!important;
  }

  #detailModal .print-summary-main,
  #detailModal .print-summary-side{
    display:block!important;
    min-width:0!important;
  }

  #detailModal .print-summary-side{
    padding-left:5mm!important;
    border-left:1px solid #d8e2dc!important;
  }

  #detailModal .print-property-summary .eyebrow{
    display:block!important;
    margin:0 0 2mm!important;
    color:#7b9f48!important;
    font-size:8.5pt!important;
    font-weight:800!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }

  #detailModal .print-property-summary h1{
    display:block!important;
    margin:0 0 2.5mm!important;
    color:#064b40!important;
    font-family:Georgia,"Times New Roman",serif!important;
    font-size:20pt!important;
    line-height:1.08!important;
  }

  #detailModal .print-property-summary p{
    display:block!important;
    margin:0 0 1.7mm!important;
    font-size:9.3pt!important;
    line-height:1.38!important;
  }

  #detailModal .print-location{
    color:#5f7069!important;
    font-weight:700!important;
  }

  #detailModal .print-description{
    max-height:31mm!important;
    overflow:hidden!important;
  }

  #detailModal .print-features{
    max-height:17mm!important;
    overflow:hidden!important;
  }

  #detailModal .print-summary-side .price{
    display:block!important;
    margin:0 0 3mm!important;
    color:#064b40!important;
    font-size:18pt!important;
    line-height:1.1!important;
    font-weight:900!important;
  }

  #detailModal .print-first-photos{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:5mm!important;
    flex:1 1 auto!important;
    min-height:0!important;
    margin:0!important;
  }

  #detailModal .print-first-photos.single{
    grid-template-columns:1fr!important;
  }

  #detailModal .print-photo-stack{
    display:grid!important;
    grid-template-rows:repeat(2,minmax(0,1fr))!important;
    gap:5mm!important;
    flex:1 1 auto!important;
    min-height:0!important;
    margin:0!important;
  }

  #detailModal .print-photo-stack.single{
    grid-template-rows:1fr!important;
  }

  #detailModal .print-photo{
    display:block!important;
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }

  #detailModal .print-photo-frame{
    display:block!important;
    position:relative!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
    background:#f1f3ef!important;
    border:1px solid #d4ddd7!important;
  }

  #detailModal .print-property-photo{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center!important;
  }

  #detailModal .print-photo-watermark{
    display:block!important;
    position:absolute!important;
    right:4mm!important;
    bottom:4mm!important;
    width:30mm!important;
    height:auto!important;
    max-height:17mm!important;
    object-fit:contain!important;
    opacity:.72!important;
    pointer-events:none!important;
  }

  #detailModal .print-contact-panel{
    display:grid!important;
    grid-template-columns:24mm minmax(0,1fr)!important;
    align-items:center!important;
    gap:5mm!important;
    flex:0 0 28mm!important;
    min-height:28mm!important;
    margin:5mm 0 0!important;
    padding:3mm 4mm!important;
    background:#f1f5ef!important;
    border-top:2px solid #7ea64b!important;
    box-sizing:border-box!important;
  }

  #detailModal .print-contact-qr{
    display:block!important;
    width:22mm!important;
    height:22mm!important;
    object-fit:contain!important;
  }

  #detailModal .print-contact-copy{
    display:flex!important;
    flex-direction:column!important;
    gap:.7mm!important;
    min-width:0!important;
  }

  #detailModal .print-contact-copy strong{
    display:block!important;
    color:#064b40!important;
    font-size:11pt!important;
  }

  #detailModal .print-contact-copy span{
    display:block!important;
    font-size:7.7pt!important;
    line-height:1.22!important;
  }

  #detailModal .print-summary-page .print-contact-panel{
    margin-top:4mm!important;
  }
}
/* ==========================================================================
   LAS FINCAS INMOBILIARIA · V4.0
   CORRECCIÓN FINAL DE FICHA E IMPRESIÓN PARA PC Y CELULAR
   ========================================================================== */

/*
 * El catálogo de impresión nunca debe aparecer dentro de la ficha normal.
 * Se habilita exclusivamente dentro de @media print.
 */
@media screen {
  #detailModal .print-catalog,
  #detailModal .print-catalog *,
  #detailModal .print-letterhead,
  #detailModal .print-property-summary,
  #detailModal .print-photo-gallery,
  #detailModal .print-contact,
  #detailModal .print-page-footer {
    display: none !important;
  }
}

/* Mejora de la ficha visible en teléfonos */
@media screen and (max-width: 700px) {
  #detailModal {
    padding: 0 !important;
    align-items: stretch !important;
  }

  #detailModal .modal-card {
    width: 100% !important;
    max-width: none !important;
    min-height: 100dvh !important;
    max-height: none !important;
    margin: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  #detailModal .detail-gallery {
    padding: 0 !important;
  }

  #detailModal .detail-gallery-stage {
    width: 100% !important;
    min-height: 265px !important;
    height: 62vw !important;
    max-height: 430px !important;
    padding: 0 !important;
    border-radius: 0 !important;
  }

  #detailModal .detail-gallery-stage > .detail-gallery-main {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
  }

  #detailModal .detail-body {
    padding: 20px 17px 30px !important;
  }

  #detailModal .detail-grid {
    display: block !important;
  }

  #detailModal .detail-side {
    margin-top: 22px !important;
    padding: 20px 0 0 !important;
    border-left: 0 !important;
    border-top: 1px solid #dce5df !important;
  }

  #detailModal .detail-tools {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
  }

  #detailModal .detail-tools .btn {
    width: 100% !important;
  }
}


/* ==========================================================
   GALERÍA DE VIDEOS DE PROPIEDAD — MODAL SOBRE LA FICHA
   ========================================================== */
#propertyVideoModal{z-index:120000!important;background:rgba(0,20,15,.92)!important}
#propertyVideoModal.open{display:grid!important;place-items:center!important}
#propertyVideoModal .video-player-card{width:min(1080px,96vw);max-height:94vh;overflow:auto;border-radius:10px;box-shadow:0 28px 90px rgba(0,0,0,.55)}
#propertyVideoModal .modal-close{position:sticky;float:right;top:10px;right:10px;margin:10px 10px -50px 0;z-index:20;border-radius:50%}
.property-video-body{clear:both;padding:14px;background:#071d19;color:#fff}
.property-video-main{position:relative;background:#000;min-height:240px;display:grid;place-items:center}
.property-video-main video,.property-video-main iframe{display:block;width:100%;height:min(70vh,680px);border:0;background:#000}
.property-video-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px 4px}
.property-video-toolbar button{border:1px solid rgba(255,255,255,.35);background:#0d3d34;color:#fff;padding:9px 14px;cursor:pointer}
.property-video-toolbar button:disabled{opacity:.35;cursor:not-allowed}
.property-video-counter{font-weight:800;text-align:center}
.property-video-thumbs{display:flex;gap:10px;overflow-x:auto;padding:12px 0 2px}
.property-video-thumb{flex:0 0 170px;min-height:64px;border:2px solid transparent;background:#123f37;color:#fff;text-align:left;padding:10px;cursor:pointer}
.property-video-thumb.active{border-color:var(--green);background:#1a5247}
.property-video-thumb strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.property-video-thumb span{display:block;margin-top:4px;font-size:.75rem;opacity:.78}
.admin-video-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:12px}
.admin-video-preview-card{border:1px solid #dce5df;background:#fff;padding:10px}
.admin-video-preview-card video{display:block;width:100%;height:150px;object-fit:contain;background:#000}
.admin-video-preview-card strong{display:block;margin:8px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-video-actions{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:700px){
  #propertyVideoModal{padding:0!important}
  #propertyVideoModal .video-player-card{width:100%;max-height:100dvh;border-radius:0}
  .property-video-body{padding:8px}
  .property-video-main video,.property-video-main iframe{height:56vw;min-height:250px;max-height:62vh}
  .property-video-thumb{flex-basis:145px}
}
