/* Properties page only. This file intentionally depends on the variables,
   typography, buttons, form controls and layout primitives in style.css. */

.properties-hero{
  position:relative;
  overflow:hidden;
  padding:150px 0 96px;
  min-height:56svh;
  display:flex;
  align-items:flex-end;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(8,36,49,.82),rgba(8,36,49,.42) 54%,rgba(8,36,49,.16)),
    linear-gradient(0deg,rgba(8,36,49,.26),transparent 58%),
    url("/assets/images/properties/properties-hero-pr.webp") center 48% / cover no-repeat;
}
.properties-hero h1{color:#fff;max-width:850px}
.properties-hero .lead{color:rgba(255,255,255,.88);max-width:760px}
.properties-hero .eyebrow,.properties-hero .breadcrumbs,.properties-hero .breadcrumbs a{color:rgba(255,255,255,.82)}
.properties-hero .btn-light{background:#fff;color:var(--navy);border-color:rgba(255,255,255,.72)}
.properties-hero::after{content:"";position:absolute;inset:auto 0 0;height:80px;background:linear-gradient(transparent,var(--cream))}
.properties-hero-inner{position:relative;z-index:2}
.properties-hero .lead{margin-top:18px}
.properties-hero .hero-actions{margin-top:30px}

.properties-section-heading{display:flex;align-items:end;justify-content:space-between;gap:42px;margin-bottom:36px}
.properties-section-heading>div{max-width:720px}
.properties-section-heading>.lead{max-width:430px;font-size:1rem}

.properties-destination-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.properties-destination-card{position:relative;min-height:400px;overflow:hidden;border:0;border-radius:34px;background:var(--navy) center/cover no-repeat;box-shadow:var(--shadow);cursor:pointer;text-align:left;color:#fff;transition:transform .25s ease,box-shadow .25s ease}
.properties-destination-card:hover{transform:translateY(-5px);box-shadow:0 34px 100px rgba(18,59,93,.20)}
.properties-destination-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,36,49,.06),rgba(8,36,49,.78))}
.properties-destination-card-content{position:absolute;z-index:2;left:30px;right:30px;bottom:28px}
.properties-destination-card-content h3{color:#fff;font-size:clamp(2.15rem,3.3vw,3.7rem)}
.properties-destination-card-content p{max-width:500px;margin-top:12px;color:rgba(255,255,255,.82);font-size:1rem}
.properties-destination-link{display:inline-flex;margin-top:18px;color:#fff;font-weight:900}

.properties-search-section{padding:34px 0;background:var(--ivory)}
.properties-search-heading{margin-bottom:16px}
.properties-results-summary{margin:8px 0 0;color:var(--muted);font-size:1rem}
.properties-mobile-filter{display:none;min-height:46px;padding:10px 17px}
.properties-mobile-filter span{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:7px;border-radius:999px;background:var(--sand);font-size:.72rem}
.properties-mobile-filter span[hidden]{display:none}
.properties-active-filters{min-height:38px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.properties-active-filters:empty{display:none}
.properties-filter-chip{display:inline-flex;align-items:center;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font-size:.78rem;font-weight:850}

.properties-search-layout{display:grid;grid-template-columns:285px minmax(0,1fr);gap:34px;align-items:start}
.properties-filter-panel{position:sticky;top:100px;max-height:calc(100dvh - 124px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:30px;background:#fff;box-shadow:var(--soft-shadow)}
.properties-filter-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:23px 24px;border-bottom:1px solid var(--line)}
.properties-filter-header strong{display:block;font-family:var(--heading);font-size:1.5rem;color:var(--navy)}
.properties-filter-header span{display:block;margin-top:4px;color:var(--muted);font-size:.78rem}
.properties-text-button{padding:0;border:0;background:transparent;color:var(--green);font:inherit;font-size:.8rem;font-weight:900;cursor:pointer}
.properties-filter-group{padding:21px 24px;border-bottom:1px solid var(--line)}
.properties-filter-group:last-child{border-bottom:0}
.properties-filter-group h3{margin-bottom:14px;font-family:var(--body);font-size:.9rem;letter-spacing:0;color:var(--navy)}
.properties-filter-group label:not(.properties-checkbox-row){font-size:.76rem}
.properties-filter-group input[type=date],.properties-filter-group select{margin-bottom:12px;background:var(--ivory)}
.properties-filter-grid{display:grid;grid-template-columns:1fr;gap:2px}
.properties-checkbox-list,.properties-filter-group:has(.properties-checkbox-row){display:grid;gap:11px}
.properties-checkbox-row{display:flex!important;align-items:center;gap:10px;margin:0!important;color:var(--ink)!important;font-size:.9rem!important;cursor:pointer}
.properties-checkbox-row span{font-weight:750}
.properties-checkbox-row input{width:18px;height:18px;accent-color:var(--green)}

.properties-filter-mobile-actions{display:none}

.properties-sort-control{display:flex;align-items:center;gap:10px;margin:0;color:var(--muted);font-size:.78rem}
.properties-sort-control span{white-space:nowrap}
.properties-sort-control select{width:auto;min-width:205px;margin:0;padding:10px 13px;border-radius:999px}
.properties-results{display:grid;gap:22px}

.properties-result-card{display:grid;grid-template-columns:minmax(290px,40%) minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:32px;background:#fff;box-shadow:var(--soft-shadow);transition:transform .25s ease,box-shadow .25s ease}
.properties-result-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.properties-result-image-link{position:relative;display:block;min-height:350px;overflow:hidden;background:var(--sand)}
.properties-result-image{width:100%;height:100%;object-fit:cover}
.properties-badges{position:absolute;left:16px;top:16px;display:flex;flex-wrap:wrap;gap:7px}
.properties-badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:rgba(255,253,248,.95);box-shadow:0 8px 24px rgba(18,59,93,.12);color:var(--navy);font-size:.7rem;font-weight:900}
.properties-result-body{display:flex;flex-direction:column;padding:27px}
.properties-region{margin-bottom:7px;color:var(--green);font-size:.7rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.properties-result-body h3{font-size:clamp(1.8rem,2.7vw,2.8rem)}
.properties-result-title-link{color:inherit;text-decoration:none;font:inherit}
.properties-result-title-link:hover,.properties-result-title-link:focus,.properties-result-title-link:visited{color:inherit;text-decoration:none}

.properties-rating{margin-top:8px;color:var(--navy);font-weight:850}
.properties-star,.properties-review-stars{color:var(--coral)}
.properties-facts{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 20px}
.properties-fact{padding:7px 10px;border-radius:999px;background:var(--sand);color:var(--navy);font-size:.76rem;font-weight:850}
.properties-featured-review{margin-bottom:22px;padding:18px 19px;border:1px solid rgba(18,59,93,.08);border-left:5px solid var(--coral);border-radius:20px;background:var(--ivory)}
.properties-review-stars{margin-bottom:8px;font-size:.88rem;letter-spacing:.06em}
.properties-review-text{color:var(--navy);font-family:var(--heading);font-size:1.16rem;line-height:1.45}
.properties-review-meta{margin-top:10px;color:var(--muted);font-size:.76rem;font-weight:800}
.properties-card-actions{display:flex;gap:10px;margin-top:auto}
.properties-card-actions .btn{flex:1;min-height:48px}

.properties-empty-state{padding:60px 34px;border:1px dashed rgba(18,59,93,.22);border-radius:30px;background:#fff;text-align:center}
.properties-empty-state p{margin:10px auto 22px;color:var(--muted)}

.properties-help-section{background:var(--navy);color:#fff}
.properties-help-card{display:flex;align-items:center;justify-content:space-between;gap:44px}
.properties-help-card h2{color:#fff}
.properties-help-card .eyebrow{color:rgba(255,255,255,.74)}
.properties-help-card .lead{margin-top:14px;color:rgba(255,255,255,.76)}
.properties-help-card>.btn{flex:0 0 auto}

@media(max-width:1000px){
  .properties-search-layout{grid-template-columns:1fr}
  .properties-mobile-filter{display:inline-flex}
  .properties-filter-panel{position:fixed;z-index:110;inset:88px 16px 16px;overflow:auto;transform:translateY(120%);transition:transform .22s ease;box-shadow:var(--shadow);overscroll-behavior:contain}
  .properties-filter-panel.is-open{transform:translateY(0)}
  .properties-filter-mobile-actions{position:sticky;z-index:3;bottom:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:14px 18px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(18px)}
  .properties-filter-mobile-clear{min-height:50px;padding:0 8px;border:0;background:transparent;color:var(--green);font:inherit;font-weight:900;cursor:pointer}
  .properties-filter-mobile-apply{min-height:52px;width:100%;padding:12px 18px}
  body.properties-filters-open{overflow:hidden}
  body.properties-filters-open .mobile-cta-dock{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(100%)!important}
  .properties-result-card{grid-template-columns:1fr}
  .properties-result-image-link{min-height:330px}
}

@media(max-width:900px){
  .properties-hero{padding:125px 0 76px}
  .properties-section-heading,.properties-help-card{align-items:flex-start;flex-direction:column}
  .properties-destination-grid{grid-template-columns:1fr}
  .properties-destination-card{min-height:330px}
  .properties-sort-control{width:100%;align-items:flex-start;flex-direction:column}
  .properties-sort-control select{width:100%}
}

@media(max-width:620px){
  .properties-destination-card{min-height:285px;border-radius:28px}
  .properties-destination-card-content{left:22px;right:22px;bottom:22px}
  .properties-result-card{border-radius:26px}
  .properties-result-image-link{min-height:270px}
  .properties-result-body{padding:22px}
  .properties-card-actions{flex-direction:column}
}

#mobileResultsCount{padding:0 3px 0 3px}
