:root{--ink:#24302b;--muted:#626961;--cream:#f6f4ee;--paper:#fff;--gold:#b39563;--line:#e5dfd2;--dark:#22352d;--shadow:0 12px 32px rgba(29,41,34,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.5}a{color:inherit}button,select,input{font:inherit}button{cursor:pointer}.wrap{width:min(1200px,calc(100% - 36px));margin:0 auto}.skip{position:absolute;left:-9999px;top:10px;background:white;padding:10px;z-index:100}.skip:focus{left:12px}.top{position:sticky;top:0;z-index:25;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topin{display:flex;justify-content:space-between;align-items:center;min-height:70px;gap:14px}.brand{font-size:14px;font-weight:800;letter-spacing:.9px;text-decoration:none;text-transform:uppercase}.nav{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.nav a{text-decoration:none;font-size:13px;font-weight:700}.nav a[aria-current]{color:#85683e;text-decoration:underline;text-underline-offset:7px}.hero{color:#fff;background:linear-gradient(105deg,#233d34,#435a49 68%,#76634b);padding:78px 0 55px}.kicker{font-size:12px;font-weight:800;letter-spacing:2px;color:#e4cba3;text-transform:uppercase}.hero h1{font-size:clamp(43px,6vw,68px);letter-spacing:-1.5px;line-height:1.06;margin:13px 0}.hero p{font-size:clamp(16px,2vw,19px);max-width:720px;color:#edf1eb;margin:0}.hero-count{margin-top:23px;color:#ead2ac;font-weight:700;font-size:13px}.tools{padding:32px 0 22px}.filter-head{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:17px}.filter-head h2{margin:0;font-size:27px}.filter-head p{margin:0;max-width:550px;color:var(--muted);font-size:13px}.filter-grid{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.filter-grid label{min-width:0;display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#4b4a42}.filter-grid label.wide{grid-column:span 2}.filter-grid select,.filter-grid input{min-width:0;width:100%;border:1px solid #d7d0c1;border-radius:9px;background:#fff;padding:12px 11px;min-height:46px;color:#282e2a;font-size:14px}.filter-grid input:focus-visible,.filter-grid select:focus-visible,.filter-grid button:focus-visible,a:focus-visible{outline:3px solid #a3814a;outline-offset:2px}.form-actions{display:flex;gap:9px;grid-column:span 2;align-items:end}.form-actions button,.empty button{border:1px solid #bba47b;border-radius:9px;min-height:46px;padding:11px 15px;background:#fff;color:#59472c;font-size:13px;font-weight:700}.form-actions #mapToggle{background:#314a3b;border-color:#314a3b;color:#fff}.results-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:15px 2px 0}.results-head #resultLine{font-weight:800;margin:0;font-size:15px}.price-note{font-size:12px;color:#665f50;margin:0;max-width:650px}.catalog{padding:10px 0 65px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.listing{min-width:0}.listing[hidden]{display:none!important}.card{position:relative;display:block;height:410px;overflow:hidden;background:#263529;border-radius:18px;box-shadow:var(--shadow);text-decoration:none;isolation:isolate}.card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s}.card:hover img{transform:scale(1.045)}.card:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.01) 32%,rgba(0,0,0,.80) 100%)}.card-overlay{position:absolute;bottom:0;left:0;right:0;z-index:2;display:flex;flex-direction:column;gap:5px;padding:25px;color:#fff}.area{font-size:12px;color:#e6d2ab;font-weight:800}.name{font-size:clamp(21px,2.2vw,27px);line-height:1.16;letter-spacing:-.4px;margin:0;color:#fff}.card-meta{font-size:12px;color:#f0eeea}.card-price{font-size:14px;color:#fff;font-weight:800;margin-top:7px}.card-price small{font-size:10px;font-weight:400}.card-price .unknown{font-size:12px;font-weight:400}.empty{margin:18px 0 0;background:#fff;border:1px solid var(--line);padding:30px;border-radius:16px;text-align:center}.empty[hidden]{display:none}.empty h2{font-size:24px;margin:0 0 8px}.empty p{color:var(--muted)}.map-panel{padding:20px 0 45px}.map-panel[hidden]{display:none}.map-panel-head h2{font-size:24px;margin:0 0 7px}.map-panel-head p{margin:0 0 18px;color:var(--muted);font-size:13px}.map{min-height:430px;border-radius:16px;overflow:hidden;border:1px solid #d6d2c8;background:#eae8df}.map-fallback{color:#875e33}.map-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 22px;font-size:13px;padding-left:20px}.map-links a{color:#365943}.closing{background:var(--dark);color:#fff;padding:40px 0}.closing-in{display:flex;align-items:center;justify-content:space-between;gap:25px}.closing h2{font-size:clamp(21px,3vw,30px);margin:0 0 8px}.closing p{margin:0;color:#ebeee9}.closing a{border-radius:30px;background:var(--gold);color:#fff;padding:12px 22px;text-decoration:none;font-weight:700;white-space:nowrap}footer{padding:22px 0;color:#645f53;background:#fff;font-size:12px}
@media(max-width:1050px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-grid label.wide{grid-column:span 2}.form-actions{grid-column:span 3}.card{height:405px}}@media(max-width:650px){.wrap{width:min(100% - 24px,1200px)}.topin{min-height:62px}.brand{font-size:11px}.nav{gap:10px}.nav a{font-size:11px}.hero{padding:52px 0 39px}.filter-head{display:block}.filter-head p{margin-top:8px}.filter-grid{grid-template-columns:1fr;padding:14px}.filter-grid label.wide,.form-actions{grid-column:auto}.form-actions button{flex:1}.results-head{display:block}.price-note{margin-top:7px}.grid{grid-template-columns:1fr;gap:16px}.card{height:375px}.map{min-height:340px}.map-links{grid-template-columns:1fr}.closing-in{display:block}.closing a{display:inline-block;margin-top:17px}}

/* v13: mapa visible de inicio a la derecha, tarjetas compactas a la izquierda. */
.split-explorer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:25px;align-items:start}
.column-title h2{font-size:20px;margin:0 0 5px}.column-title p{font-size:12px;color:var(--muted);margin:0 0 16px}
.split-explorer .grid{grid-template-columns:1fr;gap:13px}
.split-explorer .card{height:164px;border:2px solid transparent;display:grid;grid-template-columns:40% 60%;border-radius:14px;background:#fff;color:var(--ink)}
.split-explorer .card:after{display:none}.split-explorer .card img{height:100%;min-width:0;object-fit:cover}
.split-explorer .card-overlay{position:static;color:var(--ink);padding:16px 18px;justify-content:center;gap:4px;min-width:0}
.split-explorer .card .area{color:#80633b;font-size:11px}.split-explorer .card .name{font-size:19px;color:var(--ink)}
.split-explorer .card .card-meta{font-size:11px;color:#5c635b}.split-explorer .card .card-price{color:var(--ink);font-size:12px;margin-top:2px}
.split-explorer .card .card-price small{display:inline;color:#706958}.split-explorer .listing.is-selected .card{border-color:#8c7049;box-shadow:0 0 0 2px #d6c4a4}
.map-column{position:sticky;top:89px;background:white;border:1px solid var(--line);border-radius:18px;padding:17px;box-shadow:var(--shadow)}
.map-panel-head h2{font-size:21px}.map-panel-head p{margin-bottom:11px}.map-shell{position:relative}.map{height:min(58vh,570px);min-height:430px}
.map-consent{position:absolute;inset:0;background:linear-gradient(145deg,#d9e2dc,#f0eadf);border-radius:16px;display:grid;place-items:center;text-align:center;padding:20px;z-index:3}
.map-consent[hidden]{display:none}.consent-inner{max-width:360px}.map-illustration{font-size:46px;color:#355543}.map-consent h3{margin:4px 0 8px}.map-consent p{font-size:13px;color:#4e554e}.map-consent button{background:#314a3b;color:#fff;border:0;border-radius:10px;padding:13px 20px;font-weight:700}
.map-status{font-size:12px;color:#4f6252;margin:12px 0}.map-detail{background:#f8f6f0;border:1px solid var(--line);border-radius:13px;padding:13px;margin-top:12px}
.map-detail[hidden]{display:none}.map-detail img{width:88px;height:76px;object-fit:cover;border-radius:8px;float:left;margin:0 12px 7px 0}.map-detail h3{font-size:16px;margin:0 0 4px}.map-detail p{font-size:12px;margin:4px 0}.map-detail a{display:inline-block;color:#235c3d;font-weight:700;font-size:12px;margin-top:4px}
.map-provenance{font-size:11px;color:#756d5d;margin:12px 0 0}.map-links{grid-template-columns:1fr}.map-links[hidden]{display:none}
.map-jump{display:inline-grid;place-items:center;text-align:center;background:#314a3b;border-radius:9px;min-height:46px;padding:10px 15px;color:white;text-decoration:none;font-weight:700;font-size:13px}
.leaflet-popup-content .map-pop{max-width:210px}.map-pop img{display:block;width:100%;height:93px;object-fit:cover;border-radius:5px;margin-bottom:8px}.map-pop strong{display:block}.map-pop small{display:block;color:#5f665e;margin:5px 0}.map-pop a{color:#246042;font-weight:700}
@media(max-width:1000px){.split-explorer{grid-template-columns:1fr}.map-column{position:static;order:-1}.map{height:430px}.split-explorer .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-explorer .card{grid-template-columns:1fr;height:310px}.split-explorer .card img{height:175px}.split-explorer .card-overlay{padding:11px}.split-explorer .card .name{font-size:16px}}
@media(max-width:650px){.split-explorer .grid{grid-template-columns:1fr}.split-explorer .card{grid-template-columns:38% 62%;height:150px}.split-explorer .card img{height:100%}.split-explorer .card .name{font-size:17px}.map-column{padding:12px}.map{min-height:330px;height:370px}.map-detail img{width:75px;height:72px}}
.split-explorer .map-pick{display:block;width:100%;border:1px solid #d3c6ae;border-radius:0 0 10px 10px;background:#f2eee5;color:#31533f;font-size:12px;font-weight:700;padding:8px 10px;margin-top:-4px;position:relative;z-index:1}.split-explorer .map-pick:focus-visible{outline:3px solid #a3814a;outline-offset:2px}.map-detail .map-uncertainty{clear:both;color:#775a35;font-size:11px}

/* v13: estado visible de carga sin bloquear la superficie del mapa */
.map:empty{background:#e7ece6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cpath d='M0 16h64M0 48h64M16 0v64M48 0v64' stroke='%23d6ded4' fill='none'/%3E%3C/svg%3E") repeat;}


/* v14: mapa local autocargado. No depende de Leaflet/CDN/fetch para visualizarse. */
.local-map{position:relative;overflow:hidden;background:#d5e5e6;height:auto;aspect-ratio:900/690;min-height:430px;border:1px solid #c8d1cc}
.map-stage{position:absolute;inset:0;overflow:hidden}.map-base{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;user-select:none;-webkit-user-drag:none}
.map-markers{position:absolute;inset:0;z-index:4}.map-marker{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;padding:0;border:0;background:transparent;overflow:visible;z-index:2}
.marker-dot{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#284b3a;color:#fff;border:3px solid #d2af75;font-size:11px;font-weight:900;box-shadow:0 4px 12px rgba(21,45,34,.32);transition:transform .16s,box-shadow .16s,background .16s}
.marker-label{position:absolute;left:50%;top:40px;transform:translateX(-50%);background:#fff;color:#25362e;border:1px solid #d7d1c5;border-radius:7px;padding:4px 7px;white-space:nowrap;font-size:10px;font-weight:800;box-shadow:0 5px 14px rgba(20,35,28,.15);opacity:0;pointer-events:none;transition:opacity .15s;max-width:170px;overflow:hidden;text-overflow:ellipsis}
.map-marker:hover .marker-label,.map-marker:focus-visible .marker-label,.map-marker.is-selected .marker-label{opacity:1}.map-marker:hover .marker-dot,.map-marker:focus-visible .marker-dot,.map-marker.is-selected .marker-dot{transform:scale(1.18);background:#163c2a;box-shadow:0 6px 18px rgba(21,45,34,.42)}
.map-marker:focus-visible{outline:none}.map-marker:focus-visible .marker-dot{outline:3px solid #fff;outline-offset:2px}.map-marker[hidden]{display:none!important}.map-marker.pulse .marker-dot{animation:pinPulse .72s ease-out}
@keyframes pinPulse{0%{box-shadow:0 0 0 0 rgba(180,144,84,.62)}70%{box-shadow:0 0 0 18px rgba(180,144,84,0)}100%{box-shadow:0 4px 12px rgba(21,45,34,.32)}}
.map-legend{position:absolute;right:10px;bottom:10px;z-index:5;display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.92);border:1px solid #d8d4ca;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:700;color:#5c645e;box-shadow:0 4px 12px rgba(40,50,45,.08)}.legend-pin{width:12px;height:12px;border-radius:50%;background:#284b3a;border:2px solid #d2af75}
@media(max-width:650px){.local-map{height:370px;min-height:330px;aspect-ratio:auto}.marker-label{top:36px;font-size:9px}.map-marker{width:30px;height:30px}.marker-dot{width:30px;height:30px}}

.map-base{z-index:1}.map-markers{z-index:4}


/* v15: solicitud de visitas y captación mejorada */
.catalog-visit-cta{margin-top:24px}.catalog-visit-cta a{display:inline-flex;background:#fff;color:#274b37;border-radius:999px;padding:11px 16px;font-weight:800;text-decoration:none;font-size:13px;box-shadow:0 8px 20px rgba(20,42,32,.12)}
.split-explorer .listing{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}.split-explorer .listing .card{grid-column:1/-1}.split-explorer .visit-pick,.split-explorer .map-pick{margin-top:-4px;border-radius:0 0 10px 10px;min-height:38px;display:grid;place-items:center;text-decoration:none;font-size:12px;font-weight:800;position:relative;z-index:1}.split-explorer .visit-pick{background:#31533f;color:#fff;border:1px solid #31533f}.split-explorer .map-pick{width:auto;background:#f2eee5;color:#31533f;border:1px solid #d3c6ae}.map-detail .map-visit{margin-left:12px;background:#31533f;color:#fff;border-radius:999px;padding:6px 10px;text-decoration:none}.map-detail>a{vertical-align:middle}.nav a[href*="visitas"]{color:#31533f}
@media(max-width:650px){.split-explorer .listing{gap:0 6px}.split-explorer .visit-pick,.split-explorer .map-pick{font-size:11px}}

/* v18: mapa a la derecha en escritorio + slider de 4 promociones por página. */
.catalog-slider-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 13px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 18px rgba(29,41,34,.05)}
.catalog-slider-nav p{margin:0;color:#5d625b;font-size:12px;font-weight:800}
.catalog-slider-buttons{display:flex;gap:7px;flex:0 0 auto}.catalog-slider-arrow{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;border:1px solid #bda77f;background:#fff;color:#31533f;font-size:20px;line-height:1;font-weight:900;transition:transform .16s,background .16s,opacity .16s}.catalog-slider-arrow:hover:not(:disabled){transform:translateY(-1px);background:#f4efe5}.catalog-slider-arrow:disabled{opacity:.32;cursor:not-allowed}.catalog-slider-arrow:focus-visible{outline:3px solid #a3814a;outline-offset:2px}
.catalog-slider-grid.slider-page-enter .listing:not([hidden]){animation:catalogPageIn .24s ease-out both}@keyframes catalogPageIn{from{opacity:.18;transform:translateX(8px)}to{opacity:1;transform:none}}

/* El breakpoint anterior de 1000px hacía que el mapa abandonara la columna derecha.
   Desde v18 solo se apila en pantallas realmente estrechas. */
@media(min-width:781px){
  .split-explorer{display:grid;grid-template-columns:minmax(0,.96fr) minmax(380px,1.04fr);gap:25px;align-items:start}
  .list-column{min-width:0}
  .map-column{position:sticky;top:89px;order:0;min-width:0}
  .split-explorer .grid{grid-template-columns:1fr;gap:13px}
  .split-explorer .card{height:164px;display:grid;grid-template-columns:40% 60%;border-radius:14px}
  .split-explorer .card img{height:100%;min-width:0;object-fit:cover}
  .split-explorer .card-overlay{position:static;padding:16px 18px;justify-content:center}
  .split-explorer .card .name{font-size:19px}
}
@media(max-width:780px){
  .split-explorer{grid-template-columns:1fr}
  .map-column{position:static;order:0;margin-top:24px}
  .split-explorer .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split-explorer .card{grid-template-columns:1fr;height:310px}
  .split-explorer .card img{height:175px}
  .split-explorer .card-overlay{padding:11px}
  .split-explorer .card .name{font-size:16px}
}
@media(max-width:650px){
  .catalog-slider-nav{padding:9px 10px}.catalog-slider-nav p{font-size:11px}.catalog-slider-arrow{width:36px;height:36px}
  .split-explorer .grid{grid-template-columns:1fr}
  .split-explorer .card{grid-template-columns:38% 62%;height:150px}
  .split-explorer .card img{height:100%}
  .split-explorer .card .name{font-size:17px}
}
@media(min-width:781px){.catalog-slider-nav{position:sticky;top:78px;z-index:9}}


/* v18: slider de 4 + estado rojo "Ver en mapa" + footer equivalente al inicio. */
.split-explorer .listing.is-selected .map-pick,
.split-explorer .listing .map-pick.is-active{
  background:#b4232f;
  color:#fff;
  border-color:#b4232f;
  box-shadow:0 6px 16px rgba(180,35,47,.22);
}
.split-explorer .listing.is-selected .map-pick:hover,
.split-explorer .listing .map-pick.is-active:hover{background:#951b27;border-color:#951b27;color:#fff}

/* v21: la promoción seleccionada usa el mismo rojo en botón y marcador del mapa. */
.map-marker.is-selected .marker-dot,
.map-marker.is-selected:hover .marker-dot,
.map-marker.is-selected:focus-visible .marker-dot{
  background:#b4232f;
  border-color:#fff;
  color:#fff;
  box-shadow:0 6px 18px rgba(180,35,47,.38);
}

.home-footer{margin-top:0;padding:0;background:#262626;color:#818181;font-size:13px;line-height:1.8}
.home-footer a{color:#818181;text-decoration:none;transition:color .2s ease-in-out}
.home-footer a:hover,.home-footer a:focus-visible{color:#fff}
.home-footer-top{padding:72px 0 52px}
.home-footer-grid{display:grid;grid-template-columns:1.15fr .9fr .75fr;gap:58px}
.home-footer h5{margin:0 0 22px;color:#fff;font-size:15px;line-height:1.3;text-transform:none}
.home-footer-logo{display:block;width:150px;max-width:100%;height:auto;margin:0 0 16px}
.home-footer p{margin:0 0 17px}.home-footer ul{margin:0;padding:0;list-style:none}
.home-footer .recent li{padding:0 0 17px}.home-footer .recent .post-date{display:block;color:#818181;font-size:12px}
.home-footer-links li{padding:0 0 13px}
.home-footer-social{display:flex;flex-wrap:wrap;gap:14px;margin-top:4px}
.home-footer-social a{display:inline-grid;place-items:center;min-width:29px;height:29px;padding:0 7px;border:1px solid #4a4a4a;border-radius:50%;font-size:12px;color:#c3c3c3}
.home-footer-social a:hover,.home-footer-social a:focus-visible{border-color:#fff;color:#fff}
.home-footer-bottom{border-top:1px solid #333;padding:22px 0;text-align:center;color:#777}
.home-footer-bottom p{margin:0;font-size:12px}
@media(max-width:780px){.home-footer-top{padding:48px 0 30px}.home-footer-grid{grid-template-columns:1fr;gap:30px}.home-footer-logo{width:140px}}
