/* Compact hero-edge search and homepage editorial cards. */
[hidden]{display:none!important}
.has-availability-search{--booking-nav-height:72px;--booking-bar-height:86px;--booking-offset:calc(var(--booking-nav-height) + var(--booking-bar-height) + 20px)}
.has-availability-search section[id],.has-availability-search .inventory-card{scroll-margin-top:var(--booking-offset)}
.booking-dock{position:sticky;top:calc(var(--booking-nav-height) + 8px);z-index:90;max-width:840px;width:calc(100% - 40px);margin:-40px auto 38px;color:#17343d}
.booking-form{display:grid;grid-template-columns:1fr 1fr auto;gap:6px 14px;align-items:end;background:rgba(255,255,255,.98);border:1px solid #e7e0d1;border-radius:22px;padding:12px 18px;box-shadow:0 6px 24px #17343d14;backdrop-filter:blur(12px)}
.booking-form>div{min-width:0}
.booking-form label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-bottom:3px}
.booking-form input{display:block;width:100%;min-width:0;min-height:40px;border:1px solid #e7e0d1;background:#f7f5ef;color:#17343d;border-radius:10px;padding:7px 12px;font:inherit;font-size:14px}
.booking-form button{min-height:40px;padding:10px 22px;background:#147481;color:white;border:1px solid #147481;border-radius:10px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.booking-form button:disabled{opacity:.6;cursor:wait}
.booking-form input:focus-visible,.booking-form button:focus-visible{outline:3px solid #147481;outline-offset:3px}
.collection-page .booking-dock{margin:-22px auto 32px}
#searchFeedback{grid-column:1/-1;font-size:12px;margin:0;line-height:1.5;color:#8a3026}
#searchFeedback:empty{display:none}
.booking-results{margin:0 0 24px;padding:20px;background:#edf3ef;border-left:2px solid #147481;color:#17343d;font-size:14px}
.booking-results p{margin:0 0 8px}.booking-results button{margin-left:14px;background:transparent;border:0;text-decoration:underline;font:inherit;color:#147481;cursor:pointer;min-height:44px}
.booking-results a{text-decoration:underline}
.villa-booking-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.villa-booking-actions .collection-button{gap:8px;padding:12px 10px;text-align:center}
.villa-booking-actions .airbnb-button{background:#fbf8f2;border-color:#b8a88c;color:#17343d}
.villa-booking-actions .text-link{grid-column:1/-1;justify-self:start}
.featured-stays{max-width:1300px;margin:0 auto;padding:64px 32px 20px;color:#17343d}
.featured-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:end;margin-bottom:30px}
.featured-kicker{font-size:10px!important;text-transform:uppercase;letter-spacing:2px;color:#8a6a36;font-weight:700;margin-bottom:16px!important}
.featured-heading h2{font-family:var(--font-display);font-weight:500;font-size:clamp(1.9rem,3.1vw,2.7rem);line-height:1.2;letter-spacing:-.8px}
.featured-heading h2 em{color:#147481;font-weight:400}
.featured-heading>p{font-size:14px;line-height:1.9;color:#5d6969;max-width:420px}
.featured-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.featured-card{border:1px solid #ded8c9;background:#fff;border-radius:4px;overflow:hidden;display:flex;flex-direction:column}
.featured-photo{display:block;position:relative;aspect-ratio:1.6;overflow:hidden}
.featured-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s}
.featured-photo:hover img{transform:scale(1.025)}
.featured-photo>span{position:absolute;left:22px;bottom:20px;background:#f8edce;padding:10px 15px;font-size:11px;font-weight:600;letter-spacing:.3px;color:#17343d}
.featured-content{padding:30px;display:flex;flex-direction:column;flex:1}
.featured-content h3{font-family:var(--font-display);font-size:1.9rem;font-weight:500;line-height:1.2;margin-bottom:14px}
.featured-content h3 a{color:inherit;text-decoration:none}
.featured-content>p{font-size:14px;line-height:1.8;color:#5d6969;margin-bottom:20px}
.featured-content .featured-specs{font-size:12px;border-block:1px solid #eee8db;padding:13px 0;margin-top:auto;color:#17343d}
.featured-specs span{padding:0 6px;color:#9b783c}
.featured-direct{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#17343d;border:1px solid #b59c69;color:#fff!important;padding:16px 20px;text-decoration:none;font-size:13px;font-weight:600;min-height:48px}
.featured-direct:hover{background:#0d5862}
.featured-search-offer{position:relative;z-index:2;margin-top:10px;font-size:12px}
.featured-platforms{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.featured-platforms a{padding:13px 8px;border:1px solid #c6bbab;color:#17343d;font-size:12px;text-decoration:none;text-align:center;min-height:44px;background:#fcfaf5}
.featured-platforms a:last-child{background:#f0f3f4;border-color:#b8c4c9}
.featured-explore{font-size:12px;margin-top:17px;text-underline-offset:5px;min-height:32px;align-self:flex-start}
.featured-terms{font-size:12px;color:#687574;margin-top:20px;line-height:1.8}
@media(max-width:620px){.has-availability-search{--booking-nav-height:66px;--booking-bar-height:124px}.collection-page.has-availability-search{--booking-nav-height:143px}.booking-dock{width:calc(100% - 28px);margin:-26px auto 26px}.booking-form{grid-template-columns:1fr 1fr;gap:6px 10px;padding:10px 12px;border-radius:18px}.booking-form input{font-size:16px;padding:5px 7px;min-height:36px}.booking-form button{grid-column:1/-1;min-height:34px;padding:7px}.collection-page .booking-dock{width:100%;margin:-8px auto 26px}.featured-stays{padding:44px 20px 12px}.featured-heading{grid-template-columns:1fr;gap:18px}.featured-heading>p{font-size:13px}.featured-grid{grid-template-columns:1fr;gap:24px}.featured-content{padding:24px 20px}.featured-content h3{font-size:1.6rem}.featured-content>p{font-size:13px}.featured-photo{aspect-ratio:1.4}.featured-photo>span{left:16px;bottom:16px}.featured-platforms a{font-size:11px}.villa-booking-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:10px!important}.villa-booking-actions .collection-button{font-size:.63rem!important;padding:12px 8px!important}}
@media(max-width:620px){.booking-form{padding-block:8px}.booking-form label{font-size:9px;line-height:1.2}.booking-form input,.booking-form button{line-height:1.2}}
@media(prefers-reduced-motion:reduce){.featured-photo img{transition:none}.featured-photo:hover img{transform:none}}
