/* Property cards follow the recovered Golden Escape / RentalHive composition. */
.villa-card.hive-card{display:flex;flex-direction:column;border:1px solid #dce4e8;border-radius:10px;overflow:hidden;background:#fff;transition:border-color .18s ease}
.villa-card.hive-card:hover{border-color:#b5c6cf;box-shadow:none}
.hive-card .card-gallery{aspect-ratio:4/3;min-height:0;height:auto;border-radius:9px;flex:none}
.hive-card .card-image,.hive-card .card-image img{display:block;width:100%;height:100%}
.hive-card .card-image img{object-fit:cover}
.hive-card .card-category{position:absolute;bottom:14px;left:14px;padding:5px 11px;border-radius:20px;background:#123d53ed;color:white;font-size:12px;line-height:1.5;font-weight:600;pointer-events:none}
.hive-card .photo-count{top:12px;right:12px;bottom:auto;left:auto;background:#102d40e8;padding:4px 8px;font-size:12px;line-height:1.5;border-radius:4px}
.hive-card .photo-prev,.hive-card .photo-next{width:44px;height:44px;min-width:44px;min-height:44px;top:calc(50% - 22px);font-size:25px}
.hive-card .photo-prev{left:10px}.hive-card .photo-next{right:10px}
.hive-card .card-copy{display:flex;flex:1;flex-direction:column;padding:20px;min-width:0}
.hive-card .card-copy h3{font-size:22px;line-height:1.3;margin:0;font-weight:650;letter-spacing:-.015em}
.hive-card .card-copy h3 a:hover{text-decoration:underline;text-underline-offset:4px}
.hive-card .card-location{display:flex;align-items:flex-start;gap:7px;margin:10px 0 0;font-size:14px;line-height:1.5;color:#526878}
.hive-card .card-location svg{stroke:#926500;width:18px;height:20px;margin-top:1px}
.hive-card svg{width:18px;height:20px;flex-shrink:0;fill:none;stroke:#738895;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.hive-card .card-facts{display:flex;flex-wrap:wrap;align-content:flex-start;gap:9px 18px;list-style:none;margin:18px 0 0;padding:0}
.hive-card .card-facts li{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:14px;line-height:1.5;color:#435d6c}
.hive-card .card-facts li svg{margin-top:1px}
.hive-card .search-fit{font-size:14px;line-height:1.5;margin:12px 0 0;color:#174f69}
.hive-card .card-bottom{display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin:18px 0 0;padding:14px 0 0;border-top:1px solid #e5eaed}
.hive-card .card-bottom>strong{font-size:16px;line-height:1.4;font-weight:650;color:#896000}
.hive-card .card-bottom .button{display:inline-flex;width:auto;align-items:center;justify-content:center;min-height:44px;font-size:14px;line-height:1.35;padding:10px 12px;border-color:#cbd7de;white-space:nowrap;border-radius:6px}
.hive-card .card-bottom .button:hover{background:#eff5f8;border-color:#8ca9b9}
.hive-card .card-bottom{margin-top:auto;padding-top:14px}
.hive-card .card-facts,.hive-card .search-fit:not([hidden]){margin-bottom:18px}
.hive-card a:focus-visible,.hive-card button:focus-visible{outline:3px solid #966600;outline-offset:3px}
.hive-card .card-image:focus-visible{outline-offset:-4px}
@media(min-width:1100px){
 .directory-page .is-map .villa-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
 .directory-page .is-map .hive-card .card-copy{padding:16px}
 .directory-page .is-map .hive-card .card-copy h3{font-size:20px}
 .directory-page .is-map .hive-card .card-facts{gap:9px}
 .directory-page .is-map .hive-card .card-bottom{flex-direction:column;align-items:stretch;gap:10px}
 .directory-page .is-map .hive-card .card-bottom .button{width:100%}
}
@media(min-width:600px) and (max-width:760px){
 .directory-results:not(.is-map) .villa-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 .hive-card .card-gallery{aspect-ratio:4/3}
 .hive-card .card-copy{padding:18px}
 .hive-card .card-copy h3{font-size:22px}
 .hive-card .card-facts{min-height:0;gap:9px 18px;margin:15px 0 16px}
 .hive-card .card-category{font-size:12px;bottom:12px;left:12px}
 .hive-card .card-bottom{gap:8px;align-items:center;flex-direction:row}
 .hive-card .card-bottom>strong{font-size:15px}
 .hive-card .card-bottom .button{width:auto;font-size:14px;padding:10px}
}
@media(prefers-reduced-motion:reduce){.villa-card.hive-card{transition:none}}
