@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700;800&display=swap');
:root{--ink:#30302f;--muted:#77746e;--stone:#e5e1dc;--sand:#f7f5f2;--tan:#eeebe6;--green:#496d61}*{box-sizing:border-box}html{font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:white}body{margin:0}a{color:inherit}button,input,select{font:inherit}.container{width:min(1180px,calc(100% - 44px));margin:auto}.header{background:#fff;border-bottom:1px solid #f2efeb}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:102px}.logo{width:160px;height:78px;object-fit:contain;object-position:left center}.header-contact{font-size:13px;text-decoration:none;border-bottom:1px solid}.hero{background:var(--sand);overflow:hidden}.hero-inner{min-height:375px;display:flex;align-items:center;justify-content:space-between;gap:40px}.hero-copy{padding:52px 0 62px;max-width:690px}.eyebrow,.kicker{font-weight:700;color:var(--green);font-size:11px;letter-spacing:2.7px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:8px}.hero h1{font-family:Montserrat,sans-serif;font-size:clamp(32px,4.4vw,56px);letter-spacing:-2.3px;line-height:1.17;margin:23px 0 18px;font-weight:700}.hero h1 em{font-style:normal;color:#9b948a}.hero p{color:#77746e;font-size:16px;line-height:1.7;max-width:540px}.hero-illustration{position:relative;align-self:stretch;min-width:300px;display:flex;justify-content:center;align-items:end}.arch{height:270px;width:235px;background:#e4ddd4;border-radius:130px 130px 0 0;position:relative;display:flex;align-items:center;justify-content:center}.window{width:114px;height:170px;background:#b6c5bd;border-radius:64px 64px 0 0;border:13px solid #f7f5f2;position:relative}.window span:first-child{position:absolute;top:0;bottom:0;width:9px;background:#f7f5f2;left:calc(50% - 4px)}.window span:last-child{position:absolute;left:0;right:0;height:9px;top:54% ;background:#f7f5f2}.mini-sun{position:absolute;width:58px;height:58px;background:#d5c3a7;border-radius:50%;top:80px;right:14px}.search-section{position:relative;margin-top:-32px;z-index:1}.search-box{background:#fff;border:1px solid #eae6e0;border-radius:15px;box-shadow:0 12px 35px #2525250c;padding:15px;display:grid;grid-template-columns:1fr 1fr .83fr auto;gap:8px}.field{padding:7px 20px;border-right:1px solid #eeeae5;display:flex;flex-direction:column;gap:8px}.field label{font-size:12px;font-weight:700}.field input,.field select{border:0;outline:none;background:transparent;min-width:0;width:100%;font-size:14px;color:var(--muted)}.search-btn{border:0;background:#33312f;color:white;padding:16px 26px;border-radius:9px;cursor:pointer;font-weight:700;white-space:nowrap}.search-btn:hover{background:#55504b}.alert{background:#fff3ea;border:1px solid #ebc2a2;border-radius:8px;padding:12px;font-size:14px}.results-section{padding-top:75px;padding-bottom:70px}.results-top{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:27px}.kicker{margin:0 0 11px}.results-top h2{font-size:30px;font-family:Montserrat,sans-serif;letter-spacing:-.9px;margin:0 0 9px}.subhead{font-size:14px;color:var(--muted);margin:0}.sort-wrap{font-size:12px;color:var(--muted);white-space:nowrap}.sort-wrap select{margin-left:6px;border:1px solid #e2ded8;border-radius:7px;background:white;color:var(--ink);padding:10px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.card{border:1px solid #eae7e3;border-radius:12px;overflow:hidden;background:white;display:flex;flex-direction:column}.card-image{height:215px;background:linear-gradient(145deg,#ebe5db,#c9d4ca);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.card:nth-child(3n+2) .card-image{background:linear-gradient(130deg,#deded7,#bfcdc4)}.card:nth-child(3n+3) .card-image{background:linear-gradient(125deg,#dfd6ce,#efe8dd)}.card-image img{width:100%;height:100%;object-fit:cover}.card-image svg{width:90px;height:90px;opacity:.38}.tag{position:absolute;top:13px;left:13px;background:white;padding:7px 10px;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:1.1px}.card-body{padding:21px;flex:1;display:flex;flex-direction:column}.location{font-size:12px;color:var(--green);font-weight:700;margin-bottom:8px}.card h3{font:700 18px Montserrat,sans-serif;letter-spacing:-.4px;margin:0 0 12px}.amenities{font-size:13px;color:var(--muted);margin:0 0 18px}.card-bottom{border-top:1px solid #eeece8;padding-top:17px;margin-top:auto}.price{font:800 22px Montserrat,sans-serif}.price small{font:400 12px 'DM Sans',sans-serif;color:var(--muted)}.total{font-size:12px;color:var(--muted);margin-top:6px;min-height:17px}.buttons{display:flex;gap:8px;margin-top:17px}.platform-link{flex:1;display:block;text-align:center;border-radius:7px;text-decoration:none;padding:11px 8px;font-size:12px;font-weight:700;border:1px solid #4a4742}.platform-link.primary{background:#363330;color:white}.platform-link.disabled{border-color:#ddd9d4;background:#f8f7f5;color:#9c9893;cursor:default}.empty{padding:60px 20px;text-align:center;background:#f9f8f5;border-radius:10px}.empty h3{margin:0 0 6px}.empty p{color:var(--muted)}.demo-banner{border-left:3px solid #b7a38b;background:#f9f6f0;padding:16px 19px;margin-top:30px;font-size:13px;color:#6f6356;line-height:1.6}.sync-note{font-size:12px;color:var(--muted);margin:24px 0 0}.footer{border-top:1px solid #ece9e5;background:var(--sand)}.footer-inner{display:flex;align-items:center;justify-content:space-between;padding:23px 0;color:#847d74;font-size:12px}.footer img{width:95px;max-height:43px;object-fit:contain}@media(max-width:900px){.hero-illustration{min-width:200px;opacity:.55}.arch{width:190px}.search-box{grid-template-columns:1fr 1fr}.field:nth-child(2){border-right:0}.field:nth-child(3){border-right:1px solid #eeeae5}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:610px){.container{width:min(100% - 30px,1180px)}.header-inner{min-height:76px}.logo{width:124px;height:60px}.hero-inner{min-height:290px}.hero-copy{padding:36px 0 80px}.hero h1{letter-spacing:-1.1px}.hero p{font-size:14px}.hero-illustration{display:none}.search-section{margin-top:-43px}.search-box{grid-template-columns:1fr 1fr;gap:0;padding:13px}.field{padding:12px 10px;border-bottom:1px solid #eeeae5}.field:nth-child(3){border-right:0}.field:nth-child(1){border-right:1px solid #eeeae5}.field:nth-child(2){border-right:0}.search-btn{grid-column:1/3;margin-top:12px}.results-section{padding-top:48px}.results-top{align-items:start;flex-direction:column}.results-top h2{font-size:25px}.cards{grid-template-columns:1fr}.card-image{height:225px}.footer-inner{gap:15px}.footer img{width:78px}}

/* Alojamientos reales y galería */
.amenity-tags{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.amenity-tags span{background:#f0f4f0;border-radius:100px;padding:5px 9px;color:#486053;font-size:12px}.map-link{margin:6px 0 12px}.map-link a{color:#466b58;text-decoration:underline;font-size:13px}.status-pill{display:inline-block;color:#7a5532;background:#fff3e2;font-size:12px;padding:6px 10px;border-radius:16px;margin-bottom:10px}.status-pill.ok{background:#e0f2e8;color:#236044}.price-pending{font-size:20px;font-weight:650}.gallery-btn{position:absolute;bottom:12px;right:12px;border:0;background:rgba(255,255,255,.94);color:#26362d;padding:9px 12px;border-radius:9px;font-weight:600;cursor:pointer}.card-image{position:relative}.card-image img{object-fit:cover;width:100%;height:100%}.photo-modal:not([hidden]){position:fixed;inset:0;z-index:1000;background:rgba(12,17,15,.95);display:flex;align-items:center;justify-content:center}.photo-modal img{max-width:88vw;max-height:90vh;object-fit:contain}.modal-close,.modal-arrow{position:absolute;background:rgba(255,255,255,.15);color:white;border:0;border-radius:50%;font-size:30px;cursor:pointer;width:46px;height:46px;display:grid;place-items:center}.modal-close{top:18px;right:20px}.modal-arrow.left{left:20px}.modal-arrow.right{right:20px}.modal-counter{position:absolute;bottom:18px;color:white;font-size:14px}.photo-modal[hidden]{display:none!important}@media(max-width:650px){.photo-modal img{max-width:100vw;max-height:79vh}.modal-arrow.left{left:6px}.modal-arrow.right{right:6px}}

/* Versión 3: tarjetas de alojamientos */
.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;align-items:stretch}
.card{border-radius:15px;min-width:0}
.card-image{height:285px;display:block;background:#e5e6e2}
.card-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}
.gallery-btn{right:15px;bottom:15px;border:1px solid #ebe7e1;border-radius:9px;background:#fff;padding:11px 14px;font-size:12px;box-shadow:0 2px 10px #00000012}
.gallery-btn:hover,.gallery-btn:focus-visible{background:#f6f5f2}
.card-body{padding:23px 24px 22px;gap:0;min-width:0}
.card h3{font-size:20px;line-height:1.4;margin:0 0 8px}
.address{font-size:13px;line-height:1.55;color:var(--muted);margin:0 0 14px}
.details{display:flex;flex-wrap:wrap;gap:9px 17px;margin-bottom:14px}
.detail-item{font-size:13px;color:#4d4b47;white-space:normal}
.amenity-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.amenity-tags span{display:inline-flex;align-items:center;line-height:1.45;border:1px solid #e5ece7;background:#f3f6f3;padding:7px 11px;border-radius:8px;color:#486053;font-size:12px}
.map-link{margin:0 0 13px}
.map-link a{display:inline-flex;align-items:center;min-height:22px;font-size:13px;text-underline-offset:3px}
.availability{margin-bottom:15px}
.status-pill{margin:0;border-radius:7px;padding:8px 10px;font-size:12px}
.card-bottom{margin-top:auto;padding-top:17px}
.price{line-height:1.3}
.total{line-height:1.45}
.platform-link{padding:13px 11px;font-size:13px}
@media(max-width:900px){.card-image{height:235px}}
@media(max-width:650px){.cards{grid-template-columns:1fr;gap:20px}.card-image{height:245px}.card-body{padding:20px}.card h3{font-size:19px}}

/* Aviso discreto de comparación de precios */
.currency-note{margin:12px 0 10px;padding:10px 14px;border:1px solid #dfe9e3;border-radius:9px;color:#3f6257;background:#f6f9f7;font-size:12px;line-height:1.55}
.currency-note[hidden]{display:none}


/* ===== Aloja Santa Fe · V5: experiencia móvil y galería táctil ===== */
/* Las entradas de 16px evitan que Safari amplíe toda la página al enfocarlas. */
.field input,.field select,.sort-wrap select{font-size:16px}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8eb1a2;outline-offset:3px}

/* Abrir la galería tocando cualquier zona de la fotografía */
.card-image{isolation:isolate}
.cover-open{position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;background:transparent;border:0;cursor:pointer;overflow:hidden;color:#51675d;text-align:center}
.cover-open img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .28s ease}
.cover-open:focus-visible{outline-offset:-4px;outline:3px solid #a2cbbb}
.cover-open:disabled{cursor:default}
.cover-fallback:not([hidden]){display:flex;align-items:center;justify-content:center;height:100%;padding:20px;font-weight:700;background:#e7ebe7;color:#4c6058}
.gallery-btn{z-index:2;touch-action:manipulation;min-height:42px}
@media(hover:hover) and (pointer:fine){.cover-open:hover img{transform:scale(1.025)}}

/* Visor sin recortes, sin zoom accidental y con espacios para las barras del iPhone */
.photo-modal:not([hidden]){
 position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;
 width:100%;height:100vh;height:100dvh;min-height:0;
 padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px);
 background:#101614;color:white;overflow:hidden;overscroll-behavior:contain;
}
.photo-modal[hidden]{display:none!important}
.modal-topbar{flex:none;min-height:72px;padding:15px max(18px,env(safe-area-inset-right,0px)) 12px max(18px,env(safe-area-inset-left,0px));display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid rgba(255,255,255,.08)}
.modal-heading{min-width:0}
.modal-heading>span{font-size:10px;letter-spacing:1.8px;font-weight:700;color:#a6b9ae}
.modal-heading h2{margin:4px 0 0;font:600 15px/1.4 Montserrat,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(70vw,650px);color:#fff}
.photo-modal .modal-close{position:static;flex:none;width:46px;height:46px;font:400 29px/1 'DM Sans',sans-serif;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:rgba(255,255,255,.12);color:#fff;touch-action:manipulation}
.modal-stage{position:relative;flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.modal-stage:active{cursor:grabbing}
.photo-modal .modal-stage img{display:block;position:relative;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;pointer-events:none;opacity:0;transition:opacity .13s ease}
.photo-modal .modal-stage img.ready{opacity:1}
.photo-modal .modal-stage img[hidden]{display:none!important}
.photo-modal .modal-arrow{top:50%;transform:translateY(-50%);z-index:2;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:rgba(18,24,21,.58);color:white;font-size:32px;display:grid;place-items:center;touch-action:manipulation}
.photo-modal .modal-arrow.left{left:clamp(8px,2vw,25px)}
.photo-modal .modal-arrow.right{right:clamp(8px,2vw,25px)}
.modal-error:not([hidden]){margin:30px 24px;text-align:center;color:#f3ece1;max-width:350px;line-height:1.6}
.modal-bottom{flex:none;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px max(20px,env(safe-area-inset-right,0px)) 15px max(20px,env(safe-area-inset-left,0px));border-top:1px solid rgba(255,255,255,.08)}
.photo-modal .modal-counter{position:static;white-space:nowrap;color:#fff;font:600 14px Montserrat,sans-serif}
.modal-hint{color:#bbc9c0;font-size:12px;text-align:right}
@media(max-width:650px){
 .photo-modal .modal-topbar{min-height:69px;padding:10px 16px}
 .modal-heading h2{font-size:14px;max-width:71vw}
 .photo-modal .modal-stage img{max-width:100vw;max-height:100%;width:auto;height:auto;object-fit:contain}
 .photo-modal .modal-arrow{width:42px;height:42px;font-size:28px;background:rgba(18,24,21,.38);border-color:rgba(255,255,255,.15)}
 .photo-modal .modal-arrow.left{left:7px}
 .photo-modal .modal-arrow.right{right:7px}
 .modal-bottom{min-height:65px;padding:11px 18px 14px;flex-direction:column;gap:5px;justify-content:center}
 .modal-hint{text-align:center;font-size:11px}
 .card-image{height:auto;aspect-ratio:4 / 3}
 .card-body{padding:18px 18px 20px}
 .card h3{font-size:19px;line-height:1.32}
 .card-bottom{padding-top:15px}
 .buttons{margin-top:13px}
 .platform-link{min-height:48px;display:flex;align-items:center;justify-content:center;font-size:13px}
 .gallery-btn{bottom:12px;right:12px;padding:10px 12px}
 .container{width:calc(100% - 32px)}
 .hero-copy{padding:34px 0 79px}
 .hero h1{font-size:clamp(29px,8vw,38px);line-height:1.16;margin:15px 0 13px}
 .hero p{line-height:1.6;margin:0}
 .search-box{padding:12px;border-radius:16px}
 .field{padding:9px 10px;gap:5px;min-width:0}
 .field input,.field select{font-size:16px;min-height:30px}
 .field:nth-child(3){grid-column:1/-1;border-right:0;border-bottom:0}
 .search-btn{grid-column:1/-1;margin-top:6px;min-height:49px;white-space:normal}
 .results-section{padding-top:40px;padding-bottom:48px}
 .results-top{gap:15px;margin-bottom:17px}
 .results-top h2{font-size:24px;line-height:1.3}
 .sort-wrap{display:flex;width:100%;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e9e6e1;border-radius:10px;padding:3px 9px 3px 13px;background:#faf9f7;font-size:13px}
 .sort-wrap select{margin:0;font-size:16px;background:transparent;border:0;text-align:right;max-width:65%}
 .cards{gap:18px}
 .detail-item{font-size:13px}
 .amenity-tags{gap:6px}
 .amenity-tags span{font-size:12px}
 .sync-note{line-height:1.6}
 .footer-inner{align-items:center}
}
@media(prefers-reduced-motion:reduce){.cover-open img,.photo-modal .modal-stage img{transition:none!important}}


/* ===== Aloja Santa Fe · V7: botones claros y tarjetas móviles ===== */
.ui-icon{display:block;width:17px;height:17px;flex:none;stroke:currentColor}
.ui-icon-external{width:16px;height:16px;transition:transform .18s ease}
.map-link{margin:1px 0 14px}
.map-link a.map-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;
 min-height:44px;padding:8px 12px;border:1px solid #e3e9e3;border-radius:10px;
 background:#f6f8f5;color:#345f50;font-size:13px;font-weight:700;
 line-height:1.3;text-decoration:none;text-underline-offset:0;transition:background .18s ease,border-color .18s ease}
.map-action .ui-icon-external{width:14px;height:14px;margin-left:2px;opacity:.72}
.map-link a.map-action:hover{background:#eaf2eb;border-color:#cadad0}
.platform-link,.platform-link.primary{display:flex;align-items:center;justify-content:center;gap:9px;
 min-height:48px;padding:12px 13px;border-radius:10px;font-size:13px;font-weight:700;
 line-height:1.2;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.platform-link:not(.primary){border:1px solid #d5d8d3;background:#fff;color:#303c35}
.platform-link.primary{border:1px solid #33312f;background:#33312f;color:#fff}
.platform-link .ui-icon-external{opacity:.9}
.platform-link:not(.primary):hover{background:#f5f8f5;border-color:#a3b7a8}
.platform-link.primary:hover{background:#45443f;border-color:#45443f}
.gallery-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px}
.gallery-btn .ui-icon{width:15px;height:15px}
.price{letter-spacing:-.5px}
.price small{letter-spacing:0}
.card .address{overflow-wrap:anywhere}
.card .location{line-height:1.45}
@media(hover:hover) and (pointer:fine){.platform-link:hover .ui-icon-external,.map-action:hover .ui-icon-external{transform:translate(1.5px,-1.5px)}}
@media(max-width:650px){
 .hero-inner{min-height:0}
 .hero-copy{padding-top:30px;padding-bottom:73px}
 .search-section{margin-top:-39px}
 .results-section{padding-top:34px}
 .card{border-radius:16px;box-shadow:0 4px 20px rgba(38,45,40,.04)}
 .card-body{padding:18px 17px 19px}
 .card .location{font-size:12px;margin-bottom:6px}
 .card h3{font-size:19px;margin-bottom:7px}
 .card .address{font-size:12.5px;margin-bottom:10px}
 .details{margin-bottom:11px;gap:8px 14px}
 .amenity-tags{margin-bottom:9px}
 .amenity-tags span{padding:6px 10px}
 .map-link{margin-bottom:11px}
 .map-link a.map-action{min-height:45px;width:100%;justify-content:flex-start;padding:10px 13px;font-size:13px}
 .map-action .ui-icon-external{margin-left:auto}
 .availability{margin-bottom:12px}
 .status-pill{font-size:11px;padding:7px 10px}
 .card-bottom{padding-top:13px}
 .price{font-size:22px}
 .total{font-size:12px;margin-top:5px}
 .buttons{gap:9px;margin-top:14px}
 .platform-link,.platform-link.primary{min-height:52px;border-radius:10px;font-size:13px;padding:12px 11px;gap:7px}
 .platform-link .ui-icon-external{width:15px;height:15px}
 .gallery-btn{bottom:11px;right:11px;font-size:12px}
 .demo-banner{margin-top:22px;padding:13px 15px}
 .sync-note{margin-top:18px}
}
@media(max-width:370px){
 .buttons:has(.platform-link:nth-child(2)){flex-direction:column}
 .buttons:has(.platform-link:nth-child(2)) .platform-link{width:100%}
}
@media(prefers-reduced-motion:reduce){.ui-icon-external,.platform-link,.map-action{transition:none!important}}

/* ===== Aloja Santa Fe · V8: Vista lista / mapa ===== */
.view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-2px 0 23px}
.view-switch{display:inline-flex;padding:4px;border-radius:13px;background:#f4f5f1;border:1px solid #e3eae3;gap:3px}
.view-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px;padding:9px 19px;border:0;border-radius:10px;background:transparent;color:#486054;font-weight:700;font-size:13px;cursor:pointer}
.view-btn.active{background:white;box-shadow:0 2px 7px #24432c17;color:#183f34}
.view-btn:hover:not(.active){background:#e8eee8}
.view-toolbar-hint{font-size:12px;color:#7a7e79;margin:0}
.cards[hidden],.map-panel[hidden]{display:none!important}
.map-panel{border:1px solid #e4e8e2;border-radius:17px;background:#f9faf8;overflow:hidden}
.map-panel-top{padding:17px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.map-panel-top strong{font:700 16px Montserrat,sans-serif;color:#293d35}
.map-panel-top p{font-size:12px;color:#727b74;margin:5px 0 0}
.map-fit{border:1px solid #d4e0d8;background:#fff;padding:10px 13px;border-radius:9px;color:#2b5c46;font-weight:700;white-space:nowrap;font-size:12px;min-height:42px;cursor:pointer}
.property-map{height:clamp(380px,63vh,630px);width:100%;background:#e8eee9;z-index:0}
.mapa-ayuda{padding:12px 18px;color:#6c746f;font-size:12px;line-height:1.5;margin:0}
.mapa-estado:not([hidden]){margin:0;padding:14px 20px;background:#fff7ed;color:#765539;font-size:13px}
.map-panel .leaflet-popup-content-wrapper{border-radius:13px;padding:0;overflow:hidden;box-shadow:0 12px 35px #14261a33}
.map-panel .leaflet-popup-content{margin:0;width:260px!important}
.map-panel .leaflet-popup-content-wrapper .leaflet-popup-content{line-height:1.4}
.map-panel .leaflet-popup-close-button{z-index:5;background:#fff!important;border-radius:100%;margin:7px!important;width:27px!important;height:27px!important;font-size:23px!important;line-height:24px!important;color:#33473c!important}
.aloja-div-icon{background:transparent;border:none}
.map-price-pin{position:relative;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;min-width:76px;max-width:158px;white-space:nowrap;padding:9px 13px;border:2px solid white;border-radius:40px;background:#225a49;box-shadow:0 4px 13px #183c2e55;color:white;font:800 13px Montserrat,Arial,sans-serif;letter-spacing:-.2px}
.map-price-pin:after{content:"";position:absolute;bottom:-7px;left:calc(50% - 5px);transform:rotate(45deg);width:10px;height:10px;background:#225a49;border-right:2px solid white;border-bottom:2px solid white}
.aloja-div-icon:hover .map-price-pin,.aloja-div-icon:focus .map-price-pin{background:#1a473a;box-shadow:0 5px 18px #152f2566}
.map-popup{width:260px;background:#fff;font-family:'DM Sans',sans-serif;color:#28352d}
.map-popup-photo{width:100%;height:112px;display:block;padding:0;border:0;background:#e5e9e5;overflow:hidden;cursor:pointer}
.map-popup-photo img{width:100%;height:100%;display:block;object-fit:cover}
.map-popup-body{padding:12px 14px 14px}
.map-popup-body>strong{display:block;font:700 14px/1.35 Montserrat,sans-serif;margin-bottom:5px}
.map-popup-location{display:block;color:#758078;font-size:11px;line-height:1.5}
.map-popup-price{font:800 18px Montserrat,sans-serif;margin:9px 0 4px}
.map-popup-price small{font:400 11px 'DM Sans',sans-serif;color:#787e79}
.map-popup-total{font-size:11px;color:#52645a;margin:3px 0}
.map-popup-status{display:block;color:#476758;font-size:10px;margin:6px 0}
.map-popup-list{display:block;width:100%;border:0;border-radius:8px;background:#255a48;color:#fff;padding:10px 12px;font-size:12px;font-weight:700;cursor:pointer;margin-top:9px;min-height:42px}
.map-popup-links{display:flex;gap:8px;margin-top:8px}
.map-popup-links a{display:block;flex:1;text-align:center;padding:9px 4px;border:1px solid #dce5df;border-radius:7px;color:#285944;text-decoration:none;font-size:12px;font-weight:700}
.card-highlight{outline:3px solid #477e5f;outline-offset:4px}
.map-panel .leaflet-control-attribution{font-size:10px}
@media(max-width:650px){
 .view-toolbar{margin:0 0 16px;gap:7px}
 .view-toolbar-hint{display:none}
 .view-switch{display:grid;grid-template-columns:1fr 1fr;width:100%}
 .view-btn{min-height:47px;font-size:14px}
 .map-panel{border-radius:13px}
 .map-panel-top{padding:13px 14px;align-items:center}
 .map-panel-top strong{font-size:13px}
 .map-panel-top p{font-size:11px}
 .map-fit{padding:8px 10px}
 .property-map{height:clamp(410px,65dvh,620px)}
 .mapa-ayuda{font-size:11px;padding:12px}
 .map-panel .leaflet-popup-content{width:235px!important}
 .map-popup{width:235px}
 .map-popup-photo{height:92px}
 .map-popup-body{padding:10px 12px 12px}
 .map-price-pin{font-size:12px;padding:9px 11px}
}
@media(prefers-reduced-motion:reduce){.view-btn,.map-price-pin{transition:none!important}}

.hero-map-shortcut{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:8px;border:1px solid #c7d8cd;background:#ecf2ed;color:#275a46;border-radius:30px;padding:10px 17px;font-size:13px;font-weight:750;cursor:pointer;transition:background .2s ease}
.hero-map-shortcut:hover{background:#dae9de}
.hero-map-shortcut span{font-size:17px;margin-left:3px}
@media(max-width:650px){.hero-map-shortcut{margin-top:12px;margin-bottom:3px;padding:10px 14px;font-size:12px;min-height:42px}}

/* Varios alojamientos en un mismo edificio */
.map-group-popup{width:260px;font-family:'DM Sans',sans-serif;color:#314339}
.map-group-title{padding:14px 13px 10px;font:700 13px Montserrat,sans-serif;border-bottom:1px solid #e7eee8}
.map-group-items{max-height:265px;overflow-y:auto}
.map-group-item{padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #edf1ed}
.map-group-item>div{min-width:0}
.map-group-item strong{font-size:12px;display:block;line-height:1.35}
.map-group-item span{font-size:11px;color:#61786b;display:block;margin-top:4px}
.map-group-item button{flex:none;min-height:38px;border:0;background:#255a48;color:white;padding:7px 10px;border-radius:7px;font-size:11px;font-weight:700;cursor:pointer}

/* ===== V9: filtros claros y mini galerías táctiles ===== */
.search-actions{display:flex;gap:8px;min-width:0;align-self:stretch}
.search-actions .search-btn{min-height:49px;flex:1;padding:13px 18px}
.clear-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:49px;padding:11px 13px;border-radius:9px;border:1px solid #d6dfd7;background:#f7faf7;color:#315846;cursor:pointer;font-size:13px;font-weight:700;white-space:nowrap}
.clear-btn:hover{background:#e8f1e9;border-color:#afc8b7}
.clear-btn svg{width:17px;height:17px;flex:none}
.screen-reader-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.card-image{touch-action:pan-y;overscroll-behavior-x:contain}
.cover-open{touch-action:pan-y;-webkit-user-select:none;user-select:none}
.cover-open img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}
.card-photo-controls{position:absolute;inset:0;z-index:1;pointer-events:none}
.card-photo-nav{pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid #ffffffb3;color:#264a3b;box-shadow:0 2px 9px #152c2829;cursor:pointer;touch-action:manipulation}
.card-photo-nav.previous{left:10px}.card-photo-nav.next{right:10px}
.card-photo-nav svg{width:19px;height:19px}
.card-photo-counter{position:absolute;left:12px;bottom:12px;color:#fff;background:rgba(20,29,25,.7);border-radius:18px;padding:5px 9px;font-weight:700;font-size:11px;letter-spacing:.3px;line-height:1.2}
.card-photo-nav:focus-visible{outline:3px solid #93c2ab;outline-offset:2px}
@media(min-width:901px) and (hover:hover) and (pointer:fine){.card-photo-nav{opacity:0;transition:opacity .15s ease,background .15s ease}.card-image:hover .card-photo-nav,.card-photo-nav:focus-visible{opacity:1}}
@media(max-width:900px){
 .search-actions{grid-column:1/-1}
 .search-actions .search-btn{margin:0;grid-column:auto}
}
@media(max-width:650px){
 .search-actions{grid-column:1/-1;margin-top:10px;gap:8px}
 .search-actions .search-btn{min-height:51px;font-size:13px;padding:12px 9px;margin:0}
 .clear-btn{min-height:51px;font-size:13px;padding:11px 13px;min-width:105px}
 .card-photo-nav{width:34px;height:34px;background:rgba(255,255,255,.82)}
 .card-photo-nav.previous{left:8px}.card-photo-nav.next{right:8px}
 .card-photo-counter{bottom:12px;left:11px}
 .gallery-btn{max-width:48%;padding:9px 10px}
 .modal-hint{max-width:96%;line-height:1.4}
}
@media(max-width:370px){.clear-btn{min-width:94px}.clear-btn svg{width:15px}.search-actions .search-btn{font-size:12px}}
@media(prefers-reduced-motion:reduce){.card-photo-nav{transition:none!important}}


/* ===== V10 · carruseles con arrastre continuo y selector de fechas accesible ===== */
.date-field-clickable,.date-field-clickable label,.date-field-clickable input[type="date"]{cursor:pointer}
.date-field-clickable:hover{background:rgba(235,242,236,.34);border-radius:9px}
.date-field-clickable:focus-within{background:rgba(235,242,236,.38);border-radius:9px}
.cover-open img.cover-photo{will-change:transform}
.cover-open img.swipe-overlay{position:absolute!important;inset:0!important;z-index:1;display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;opacity:1!important;pointer-events:none!important;will-change:transform;transition:none}
.cover-open.is-swiping img.cover-photo,.cover-open.is-swiping img.swipe-overlay{transition:none!important}
.cover-open.is-settling img.cover-photo,.cover-open.is-settling img.swipe-overlay{transition:transform .36s cubic-bezier(.22,.78,.21,1)!important}
.photo-modal .modal-stage img.swipe-overlay{position:absolute!important;inset:0!important;z-index:1!important;display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;opacity:1!important;pointer-events:none!important;transition:none;will-change:transform}
.photo-modal .modal-stage.is-swiping img#modal-img,.photo-modal .modal-stage.is-swiping img.swipe-overlay{transition:none!important}
.photo-modal .modal-stage.is-settling img#modal-img,.photo-modal .modal-stage.is-settling img.swipe-overlay{transition:transform .36s cubic-bezier(.22,.78,.21,1)!important}
@media(prefers-reduced-motion:reduce){
 .cover-open.is-settling img.cover-photo,.cover-open.is-settling img.swipe-overlay,
 .photo-modal .modal-stage.is-settling img#modal-img,.photo-modal .modal-stage.is-settling img.swipe-overlay{transition:none!important}
}

/* V11: la misma geometría para las fotos del visor y la superposición.
   Las animaciones de flechas se controlan por Web Animations API, no por clases CSS. */
.photo-modal .modal-stage img#modal-img{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}
.cover-open.is-animating img.cover-photo,.cover-open.is-animating img.swipe-overlay,
.photo-modal .modal-stage.is-animating img#modal-img,.photo-modal .modal-stage.is-animating img.swipe-overlay{transition:none!important}
@media(hover:hover) and (pointer:fine){.cover-open.is-swiping:hover img.cover-photo,.cover-open.is-animating:hover img.cover-photo{transform:none}}


/* V12: paneles persistentes, sin opacity / transición de la imagen principal. */
.smooth-shell{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:0;transform:translateZ(0)}
.smooth-track{display:flex;position:absolute;inset:0;width:100%;height:100%;transform:translate3d(-100%,0,0);will-change:transform;pointer-events:none;touch-action:none}
.cover-open .smooth-track img.smooth-slide-img,
.photo-modal .modal-stage .smooth-track img.smooth-slide-img{
 position:relative!important;display:block!important;flex:0 0 100%!important;
 width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
 object-position:center!important;opacity:1!important;visibility:visible!important;
 transform:none!important;transition:none!important;animation:none!important;
 -webkit-user-drag:none;user-select:none;pointer-events:none;
}
.cover-open .smooth-track img.smooth-slide-img{object-fit:cover!important}
.photo-modal .modal-stage .smooth-track img.smooth-slide-img{object-fit:contain!important}
.cover-open:hover .smooth-track img.smooth-slide-img{transform:none!important}
.photo-modal .modal-stage .smooth-shell{z-index:0}
.photo-modal .modal-stage .modal-arrow{z-index:3}
.photo-modal .modal-stage img#modal-img[hidden]{display:none!important}

/* ===== Aloja Santa Fe V13: fichas, resultados, mapa móvil ===== */
.results-summary[hidden],.map-bottom-sheet[hidden],.share-toast[hidden]{display:none!important}
.results-summary{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 17px;margin:-6px 0 20px;border:1px solid #dae7df;background:#f5f9f6;border-radius:12px}
.summary-description{font-size:13px;line-height:1.5;color:#2c4c3d;font-weight:650}
.summary-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.summary-actions button,.card-mini-actions button,.detail-share-row button{border:1px solid #dae4dc;background:#fff;color:#285845;border-radius:9px;padding:9px 12px;min-height:40px;font-size:12px;font-weight:700;cursor:pointer}
.summary-actions button:hover,.card-mini-actions button:hover{background:#edf5ef}
.card-title-button{display:block;text-align:left;border:0;padding:0;margin:0;background:none;color:inherit;font:inherit;cursor:pointer}
.card-title-button:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.card-mini-actions{display:flex;align-items:center;gap:8px;margin:0 0 14px}
.card-mini-actions button{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:1}
.card-mini-actions .ui-icon{width:14px;height:14px}
.map-viewport{position:relative;isolation:isolate}
.map-bottom-sheet{position:absolute;z-index:800;left:10px;right:10px;bottom:10px;max-height:55%;overflow:auto;padding:15px 15px 12px;border:1px solid #e0e8e1;background:#fff;border-radius:16px;box-shadow:0 8px 30px #1e3a2d33}
.map-sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;color:#28543e;font-size:13px}
.map-sheet-head button{border:0;background:#f0f3ef;color:#324c3d;border-radius:50%;width:34px;height:34px;cursor:pointer}
.map-sheet-property{display:flex;gap:12px;align-items:center;border-top:1px solid #ecefec;padding:10px 0}
.map-sheet-property>img{width:98px;height:96px;object-fit:cover;border-radius:9px;flex:none}
.map-sheet-property-info{display:flex;flex-direction:column;align-items:start;min-width:0;gap:5px;font-size:12px}
.map-sheet-property-info strong{font-size:13px;line-height:1.3}
.map-sheet-property-info>span{font-weight:800;color:#2a634b}
.map-sheet-property-info small{color:#747b75}
.map-sheet-property-info button{min-height:37px;border:0;background:#245945;color:#fff;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer}
.property-detail{position:fixed;inset:0;margin:auto;border:0;border-radius:17px;padding:0;width:min(1030px,calc(100% - 32px));max-width:1030px;max-height:min(92dvh,900px);box-shadow:0 25px 75px #142b214d;color:#28382e;background:#fff;overflow:auto;overscroll-behavior:contain}
.property-detail::backdrop{background:rgba(14,23,18,.66);backdrop-filter:blur(3px)}
.detail-header{position:sticky;top:0;z-index:2;background:rgba(255,255,255,.97);padding:14px 21px;border-bottom:1px solid #eaece8;display:flex;justify-content:space-between;align-items:center}
.detail-brand{font-size:11px;letter-spacing:1.5px;font-weight:800;color:#476c57}
.detail-header button{min-width:42px;min-height:42px;border:1px solid #e0e9e1;border-radius:50%;background:#f5f8f5;color:#33473a;cursor:pointer}
.detail-content{padding:20px 22px 28px}
.detail-gallery-grid{position:relative;display:grid;grid-template-columns:1.55fr 1fr;gap:8px;height:min(38vw,345px);min-height:220px;border-radius:13px;overflow:hidden;background:#eef1eb}
.detail-hero-image,.detail-extra-image{border:0;padding:0;margin:0;display:block;overflow:hidden;background:#e8ece7;cursor:pointer}
.detail-hero-image img,.detail-extra-image img{width:100%;height:100%;object-fit:cover;display:block}
.detail-hero-image:hover img,.detail-extra-image:hover img{filter:brightness(.93)}
.detail-gallery-extra{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;min-height:0}
.detail-all-photos{position:absolute;bottom:12px;right:12px;display:inline-flex;align-items:center;gap:6px;border:0;border-radius:9px;padding:11px 13px;background:#fff;box-shadow:0 3px 10px #0003;font-size:12px;font-weight:750;cursor:pointer}
.detail-all-photos svg{width:16px;height:16px}
.detail-hero-empty{display:grid;place-items:center;color:#6a776e}
.detail-main{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:25px;margin-top:23px}
.detail-location{font-size:12px;letter-spacing:.7px;color:#4f715b;font-weight:750;margin:0 0 8px}
.detail-content h2{font:750 clamp(22px,2.5vw,31px)/1.25 Montserrat,sans-serif;margin:0 0 9px}
.detail-address{font-size:13px;color:#6b746c;margin:0 0 14px;line-height:1.5}
.detail-facts{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;font-weight:650;color:#344a3c;margin:0 0 14px}
.detail-facts span{padding:7px 10px;background:#f2f6f2;border-radius:8px}
.detail-share-row{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.detail-share-row a{display:inline-flex;gap:6px;align-items:center;min-height:40px;padding:8px 12px;border:1px solid #e2e9e2;border-radius:9px;text-decoration:none;color:#355f47;font-size:12px;font-weight:700}
.detail-share-row svg{width:15px;height:15px}
.detail-section{margin-top:24px;padding-top:18px;border-top:1px solid #ecefe9}
.detail-section h3{font:750 17px Montserrat,sans-serif;margin:0 0 12px}
.detail-amenities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;gap:11px;margin:0;padding:0;font-size:13px;color:#3c5043}
.detail-amenities li:before{content:'✓';color:#2a7855;margin-right:8px;font-weight:900}
.detail-status{font-size:13px;font-weight:750;margin:0 0 10px}
.detail-status.confirmed{color:#276748}.detail-status.uncertain{color:#906530}
.detail-explainer{font-size:12px;color:#70786f;line-height:1.55;margin:0}
.detail-dates{font-size:13px;font-weight:650;color:#354c3f}
.detail-booking{align-self:start;position:sticky;top:70px;padding:20px;border:1px solid #e2e9e1;border-radius:13px;box-shadow:0 4px 22px #1e413016}
.detail-price{display:flex;flex-direction:column;gap:4px}
.detail-price strong{font:800 26px Montserrat,sans-serif}
.detail-price span{font-size:12px;color:#737c74}
.detail-grandtotal{padding:12px 0;margin:12px 0;border-top:1px solid #e7ece8;font-size:13px;line-height:1.5}
.detail-grandtotal strong{font-size:16px;display:block}
.detail-booking-actions{display:flex;flex-direction:column;gap:9px;margin-top:14px}
.detail-booking .platform-link{flex:none;width:100%;min-height:48px}
.detail-booking>p:last-child{font-size:11px;line-height:1.5;color:#7c827a;margin-bottom:0}
.share-toast{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:1200;background:#234c3b;color:#fff;box-shadow:0 8px 25px #0004;border-radius:10px;padding:12px 19px;min-width:210px;text-align:center;font-size:13px;font-weight:700}
@media(max-width:650px){
 .results-summary{flex-direction:column;align-items:stretch;gap:10px;margin:0 0 15px}
 .summary-description{font-size:12px}
 .summary-actions{width:100%}.summary-actions button{flex:1;min-height:44px}
 .map-bottom-sheet{bottom:7px;left:7px;right:7px;padding:12px;max-height:60%}
 .property-detail{width:100%;height:100dvh;max-height:none;border-radius:0;margin:0;inset:0}
 .detail-header{padding:9px 15px}.detail-content{padding:12px 15px 26px}
 .detail-gallery-grid{height:260px;min-height:0;grid-template-columns:1fr}
 .detail-gallery-extra{display:none}
 .detail-all-photos{right:10px;bottom:10px}
 .detail-main{display:flex;flex-direction:column;gap:17px;margin-top:18px}
 .detail-content h2{font-size:23px}
 .detail-booking{position:static;padding:17px;box-shadow:none}
 .detail-amenities{grid-template-columns:1fr}
 .detail-booking-actions{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){.detail-hero-image img,.detail-extra-image img{transition:none!important}}

.summary-actions{flex-wrap:wrap}.summary-actions #whatsapp-busqueda,.detail-whatsapp{color:#217650;border-color:#bcdcca;background:#ecf8f0}.detail-share-row button{white-space:normal;display:inline-flex;gap:7px;align-items:center}.detail-share-row .ui-icon{flex:none}
@media(max-width:650px){.summary-actions button{flex:1 1 110px}.detail-share-row button{min-height:44px}.detail-share-row a{min-height:44px}}

/* V14 — Prestaciones con iconos y lista expandible en fichas. */
.detail-amenities{gap:0 23px;align-items:start}
.detail-amenities .detail-amenity-item{list-style:none;display:flex;align-items:flex-start;gap:12px;min-height:47px;padding:10px 0;border-bottom:1px solid #f0f2ef;line-height:1.45}
.detail-amenity-item[hidden]{display:none!important}
.detail-amenities .detail-amenity-item:before{display:none!important;content:none!important}
.detail-amenities .amenity-icon{flex:none;width:23px;height:23px;color:#2b5744}
.detail-amenities .detail-amenity-item span{padding-top:2px}
.detail-amenities-toggle{margin-top:19px;display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:11px 17px;background:#f1f4f0;border:1px solid #e0e6df;border-radius:10px;color:#254737;font-size:13px;font-weight:700;cursor:pointer;transition:background .16s ease}
.detail-amenities-toggle:hover{background:#e5ede6}
.detail-amenities-toggle:focus-visible{outline:3px solid #70a58a;outline-offset:2px}
.amenity-tags .amenity-more{background:#edf2ec;color:#526958}
@media(max-width:650px){.detail-amenities .detail-amenity-item{min-height:48px;padding:11px 0}.detail-amenities-toggle{width:100%;margin-top:15px}}
