/* v197: Airbnb-style home pieces (see airbnb197.js) */

/* Total price switch: cards carry both prices, the switch picks one */
.has-tp .tp-total{display:none}
.tp197-on .has-tp .tp-night{display:none}
.tp197-on .has-tp .tp-total{display:block}
.tp197-on .has-tp > .card-price-label{display:none}

.ab197-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:6px 0 16px}
.ab197-tp{display:flex;align-items:center;gap:18px;border:1px solid #dddddd;border-radius:14px;background:#fff;padding:12px 16px;cursor:pointer;text-align:left;font-family:Inter,system-ui,sans-serif;color:#222}
.ab197-tp-text strong{display:block;font-size:15px;font-weight:600}
.ab197-tp-text small{display:block;font-size:12.5px;color:#6a6a6a;margin-top:2px}
.ab197-sw{position:relative;flex:0 0 auto;width:48px;height:32px;border-radius:16px;background:#b0b0b0;transition:background .2s}
.ab197-sw i{position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
.ab197-tp[aria-checked="true"] .ab197-sw{background:#222}
.ab197-tp[aria-checked="true"] .ab197-sw i{transform:translateX(16px)}
.ab197-fav{border:1px solid #dddddd;border-radius:999px;background:#fff;padding:10px 16px;font:600 14px Inter,system-ui,sans-serif;color:#222;cursor:pointer}
.ab197-fav[hidden]{display:none}
.ab197-fav:hover,.ab197-tp:hover{border-color:#222}

/* Airbnb-style heart on card photos */
.card-save-button{background:transparent!important;border:0!important;box-shadow:none!important;width:40px!important;height:40px!important;top:8px!important;right:8px!important}
.card-save-button span{font-size:0!important}
.card-save-button::before{content:"";width:26px;height:26px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 28c7-4.7 14-10 14-17a7 7 0 0 0-14-3.5A7 7 0 0 0 2 11c0 7 7 12.3 14 17z' fill='rgba(0,0,0,.5)' stroke='white' stroke-width='2.4'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .15s}
.card-save-button.saved::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 28c7-4.7 14-10 14-17a7 7 0 0 0-14-3.5A7 7 0 0 0 2 11c0 7 7 12.3 14 17z' fill='%23e0484f' stroke='white' stroke-width='2.4'/%3E%3C/svg%3E")}
.card-save-button:hover{transform:none!important}
.card-save-button:hover::before{transform:scale(1.1)}
.card-save-button:active::before{transform:scale(.9)}

/* Show map pill */
.ab197-mappill{position:fixed;left:50%;bottom:28px;z-index:950;transform:translate(-50%,20px);opacity:0;pointer-events:none;display:flex;align-items:center;gap:8px;border:0;border-radius:999px;background:#222;color:#fff;padding:14px 20px;font:600 14px Inter,system-ui,sans-serif;box-shadow:0 6px 16px rgba(0,0,0,.18);cursor:pointer;transition:opacity .2s,transform .2s}
.ab197-mappill svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linejoin:round}
.ab197-in-stays .ab197-mappill{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.ab197-map-open .ab197-mappill{opacity:0;pointer-events:none}
/* while the cards are on screen the map pill takes the sticky "book direct" bar spot, like Airbnb */
.ab197-in-stays .mobile-book-bar{opacity:0!important;pointer-events:none!important;transition:opacity .2s}
.ab197-mappill:hover{transform:translate(-50%,0) scale(1.04)}

/* Map overlay */
.ab197-map{position:fixed;inset:0;z-index:1500;background:#fff;display:grid;grid-template-columns:minmax(320px,440px) 1fr;font-family:Inter,system-ui,sans-serif;color:#222}
.ab197-map[hidden]{display:none}
.ab197-mside{overflow-y:auto;padding:20px 20px 90px;border-right:1px solid #ebebeb}
.ab197-mtabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ab197-mtab{border:1px solid #dddddd;border-radius:12px;background:#fff;padding:12px;text-align:left;cursor:pointer;color:#222}
.ab197-mtab strong{display:block;font-size:15px}
.ab197-mtab small{display:block;font-size:12.5px;color:#6a6a6a;margin-top:3px}
.ab197-mtab.active{border-color:#222;box-shadow:inset 0 0 0 1px #222}
.ab197-maddr{font-size:13px;color:#6a6a6a;margin:12px 2px 6px}
.ab197-mitem{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid #ebebeb;text-decoration:none;color:#222}
.ab197-mitem img{width:120px;height:90px;object-fit:cover;border-radius:10px;display:block;background:#f2f2f2}
.ab197-mitem strong{display:block;font-size:14.5px;font-weight:600;line-height:1.3}
.ab197-mitem small{display:block;font-size:13px;color:#6a6a6a;margin:4px 0}
.ab197-mitem em{display:block;font-style:normal;font-size:14px}
.ab197-mitem em span{color:#6a6a6a;font-size:13px}
.ab197-mitem:hover strong{text-decoration:underline}
.ab197-mmap iframe{width:100%;height:100%;border:0;display:block}
.ab197-mclose{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:1510;border:0;border-radius:999px;background:#222;color:#fff;padding:14px 22px;font:600 14px Inter,system-ui,sans-serif;box-shadow:0 6px 16px rgba(0,0,0,.18);cursor:pointer}

/* Phone tab bar (Airbnb-style); replaces the sticky book bar and the floating WhatsApp button on phones */
.ab197-tabs{display:none}
@media (max-width:760px){
  .ab197-bar{margin:4px 0 12px}
  .ab197-tp{width:100%;justify-content:space-between;padding:11px 14px}
  .ab197-fav{width:100%}
  .tb197 .ab197-tabs{position:fixed;left:0;right:0;top:auto;bottom:0;height:auto;z-index:1600;display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-top:1px solid #ebebeb;padding:6px 0 calc(6px + env(safe-area-inset-bottom))}
  .ab197-tabs button{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;padding:4px 0;color:#6a6a6a;font:500 10.5px Inter,system-ui,sans-serif;cursor:pointer}
  .ab197-tabs svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .ab197-tabs button.active{color:#0a2647}
  .ab197-tabs button.active svg{stroke:#0a2647;stroke-width:2.1}
  .ab197-tabs b{position:absolute;top:0;left:calc(50% + 6px);min-width:16px;height:16px;border-radius:8px;background:#0A2647;color:#fff;font-size:10px;line-height:16px;text-align:center;padding:0 4px}
  .tb197 .mobile-book-bar,.tb197 .floating-whatsapp{display:none!important}
  .tb197 body{padding-bottom:64px}
  .ab197-mappill{bottom:84px}
  .ab197-map{grid-template-columns:1fr;grid-template-rows:42vh 1fr;bottom:64px}
  .ab197-mmap{grid-row:1}
  .ab197-mside{grid-row:2;border-right:0;padding:14px 16px 80px}
  .ab197-mitem{grid-template-columns:96px 1fr}
  .ab197-mitem img{width:96px;height:76px}
  .ab197-mclose{bottom:84px}
}
/* hide the tab bar and map pill while any popup (checkout, gallery, guides) is open */
body:has([id$="-modal"].active) .ab197-tabs,body:has(#image-lightbox.active) .ab197-tabs,
body:has([id$="-modal"].active) .ab197-mappill,body:has(#image-lightbox.active) .ab197-mappill{display:none!important}

/* v198: Airbnb-style apartments header: plain sans title, icon category tabs, compact total switch */
#listings-section .listings-header .section-title.title163{font-family:Inter,system-ui,sans-serif;font-weight:600;font-size:clamp(24px,2.4vw,30px);letter-spacing:-.02em;color:#222}
#listings-section .listings-header .section-title .hl163{font-style:normal;color:#222;background:none;padding:0}
#listings-section .listings-header .section-sub{font-family:Inter,system-ui,sans-serif;font-size:15px;color:#6a6a6a;margin-top:4px}
#listings-section .listings-header{margin-bottom:10px}
.ab198-row{display:flex;align-items:flex-end;gap:24px;border-bottom:1px solid #ebebeb;margin:0 0 22px}
#listings-section .ab198-row .stay-filter-bar{flex:1 1 auto;min-width:0;display:flex;gap:30px!important;overflow-x:auto;scrollbar-width:none;margin:0!important;padding:0;border:0;background:none;box-shadow:none}
.ab198-row .stay-filter-bar::-webkit-scrollbar{display:none}
.ab198-row .stay-filter{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:7px;min-height:0;height:auto;padding:12px 0 12px;margin:0;border:0!important;border-radius:0;background:none!important;box-shadow:none!important;color:#6a6a6a;opacity:.85;font:500 12.5px Inter,system-ui,sans-serif;letter-spacing:0;text-transform:none;position:relative;cursor:pointer;transition:color .15s,opacity .15s}
.ab198-row .stay-filter span{font:inherit;letter-spacing:0;text-transform:none;white-space:nowrap}
.ab198-row .stay-filter b{display:none!important}
.ab198-row .stay-filter .ab198-ic{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ab198-row .stay-filter::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:transparent;transition:background .15s}
.ab198-row .stay-filter:hover{color:#222;opacity:1;transform:none}
.ab198-row .stay-filter:hover::after{background:#dddddd}
.ab198-row .stay-filter.active{color:#222;opacity:1;font-weight:600}
.ab198-row .stay-filter.active::after{background:#222}
.ab198-row .stay-filter.zero{opacity:.35}
.ab198-row .ab197-bar{flex:0 0 auto;margin:0 0 10px}
.ab198-row .ab197-tp{gap:14px;padding:10px 14px;border-radius:12px}
.ab198-row .ab197-tp-text strong{font-size:13.5px}
.ab198-row .ab197-tp-text small{font-size:11.5px}
.ab198-row .ab197-sw{width:40px;height:24px;border-radius:12px}
.ab198-row .ab197-sw i{width:20px;height:20px;top:2px;left:2px}
.ab198-row .ab197-tp[aria-checked="true"] .ab197-sw i{transform:translateX(16px)}
@media (max-width:760px){
  .ab198-row{flex-direction:column;align-items:stretch;gap:12px;border-bottom:0}
  #listings-section .ab198-row .stay-filter-bar{gap:20px!important;border-bottom:1px solid #ebebeb;padding:0 2px}
  .ab198-row .ab197-tp{width:100%}
}

/* v202: Airbnb-style apartment cards (no box, rounded photo, rating, dots, simple price) */
#listings-section .listings-grid{gap:34px 24px!important}
#listings-section .listing-card{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important;transform:none!important}
#listings-section .listing-card:hover{transform:none!important;box-shadow:none!important}
#listings-section .listing-card .card-img{border-radius:14px!important;overflow:hidden!important;aspect-ratio:20/19!important;height:auto!important}
#listings-section .listing-card .card-img img{border-radius:0!important}
#listings-section .listing-card .card-body{padding:12px 2px 0!important;gap:0!important}
#listings-section .card-head202{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
#listings-section .card-head202 .card-title{font-family:Inter,sans-serif!important;font-size:15px!important;font-weight:600!important;line-height:1.3!important;color:#222!important;margin:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;letter-spacing:0!important}
#listings-section .card-rating202{flex:none;font-size:14px;color:#222;font-weight:400;white-space:nowrap}
#listings-section .listing-card .card-meta{display:none!important}
#listings-section .card-meta202{font-size:14px;color:#6a6a6a;line-height:1.35;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#listings-section .listing-card .card-subfacts,#listings-section .listing-card .card-cta,#listings-section .listing-card .card-price-label,#listings-section .listing-card .card-price-note{display:none!important}
#listings-section .listing-card .card-footer{border:0!important;padding:6px 0 0!important;margin:0!important;display:block!important;background:none!important}
#listings-section .listing-card .card-price{font-family:Inter,sans-serif!important;font-size:15px!important;font-weight:600!important;color:#222!important;line-height:1.3!important}
#listings-section .listing-card .card-price span{font-weight:400!important;color:#222!important;font-size:15px!important}
#listings-section .listing-card .card-photo-count{display:none!important}
#listings-section .card-dots202{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:5px;z-index:3;pointer-events:none}
#listings-section .card-dots202 i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6);transition:background .2s,transform .2s}
#listings-section .card-dots202 i.on{background:#fff;transform:scale(1.15)}
#listings-section .listing-card .card-gallery-arrow{width:32px!important;height:32px!important;font-size:20px!important;background:rgba(255,255,255,.92)!important;color:#222!important;border:0!important;box-shadow:0 2px 6px rgba(0,0,0,.18)!important;opacity:0!important;transition:opacity .2s!important}
#listings-section .listing-card:hover .card-gallery-arrow{opacity:1!important}
@media (hover:none){#listings-section .listing-card .card-gallery-arrow{display:none!important}}
#listings-section .listing-card .card-building-v98{font-size:11px!important;padding:5px 9px!important;border-radius:999px!important;background:rgba(255,255,255,.94)!important;color:#222!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;box-shadow:0 1px 4px rgba(0,0,0,.12)!important}
/* Recently viewed: small row below the apartments */
#recently-viewed{margin:34px 0 0!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
#recently-viewed .recently-viewed-head span{display:none!important}
#recently-viewed .recently-viewed-head strong{font-size:16px!important;font-weight:600!important}
#recently-viewed .recent-card{border-radius:12px!important;border-color:#ebebeb!important}
#recently-viewed .recent-card img{border-radius:8px!important}
#recently-viewed .recent-card small{color:#6a6a6a!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important}
#recently-viewed .recent-card strong{color:#222!important}
#listings-section .listing-card,#listings-section .listing-card .card-body,#listings-section .card-head202{min-width:0!important}
#listings-section .card-head202 .card-title{min-height:0!important;height:auto!important;display:block!important;-webkit-line-clamp:unset!important}
#listings-section .listing-card .card-body::before,#listings-section .listing-card .card-img::after{display:none!important}
#listings-section .listing-card .card-img img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important}
