/* Island Compass - Villas listing. Ported from Villas.dc.html.
   Filter controls are reproduced faithfully but are inert in the source design;
   only search and sort are wired there. */

.ic-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:10px;white-space:nowrap;font-family:var(--font-sans);font-size:var(--text-caption);color:var(--text-tertiary)}
.ic-crumb a{color:var(--text-tertiary);text-decoration:none}
.ic-crumb a:hover{color:var(--pink-700)}
.ic-crumb-now{color:var(--text-primary)}
.ic-vil-h1{max-width:24ch}
.ic-vil-lede p{font-family:var(--font-sans);font-size:var(--text-body-lg);font-weight:300;line-height:var(--leading-body);color:var(--text-secondary);margin:0;max-width:64ch}
.ic-vil-split{align-items:flex-start}
.ic-vil-aside{position:sticky;top:104px}
.ic-vil-main{min-width:0}
.ic-filters{display:flex;flex-direction:column;gap:var(--space-7);padding:var(--space-7);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card)}
.ic-filters__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4)}
.ic-filters__title{font-family:var(--font-display);font-size:var(--text-h3);font-weight:400;margin:0}
.ic-filters__reset{background:none;border:0;padding:0;cursor:pointer;font-family:var(--font-sans);font-size:var(--text-caption);color:var(--palm-700);text-decoration:underline;text-underline-offset:3px}
.ic-field{display:flex;flex-direction:column;gap:var(--space-4)}
.ic-field__label{font-family:var(--font-sans);font-size:var(--text-eyebrow);font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-tertiary)}
.ic-chiprow{display:flex;flex-wrap:wrap;gap:8px}
.ic-chip{padding:9px 15px;min-height:38px;background:var(--surface-card);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-pill);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-caption);transition:var(--transition-control)}
.ic-chip:hover{border-color:var(--palm-500)}
.ic-chip.is-on{background:var(--palm-800);color:var(--shell-50);border-color:var(--palm-800)}
.ic-bed{width:42px;height:40px;background:var(--surface-card);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-control);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-body-sm);transition:var(--transition-control)}
.ic-bed:hover{border-color:var(--palm-500)}
.ic-bed.is-on{background:var(--palm-800);color:var(--shell-50);border-color:var(--palm-800)}
.ic-select{width:100%;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-control);padding:11px 13px;font-family:var(--font-sans);font-size:var(--text-body-sm);color:var(--text-primary);transition:var(--transition-control)}
.ic-select:focus{border-color:var(--border-focus);outline:none;box-shadow:var(--ring-focus)}
.ic-select--sm{padding:7px 11px;font-size:var(--text-caption);width:auto}
.ic-featlist{display:flex;flex-direction:column;gap:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-hairline)}
.ic-check{display:flex;align-items:center;gap:10px;cursor:pointer;font-family:var(--font-sans);font-size:var(--text-body-sm);color:var(--text-secondary)}
.ic-check input{width:17px;height:17px;accent-color:var(--palm-800);cursor:pointer}
.ic-filters__note{display:flex;gap:9px;font-family:var(--font-sans);font-size:12px;line-height:1.55;color:var(--text-tertiary);margin:0;padding-top:var(--space-5);border-top:1px solid var(--border-hairline)}
.ic-filters__note svg{flex:0 0 auto;margin-top:2px}
.ic-searchbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);scroll-margin-top:120px}
.ic-searchbar__input{position:relative;flex:1 1 240px;min-width:0;display:flex;align-items:center}
.ic-searchbar__input svg{position:absolute;left:13px;color:var(--text-tertiary);pointer-events:none}
.ic-searchbar__input input{width:100%;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-control);padding:12px 14px 12px 40px;font-family:var(--font-sans);font-size:var(--text-body-sm);color:var(--text-primary);transition:var(--transition-control)}
.ic-searchbar__input input:focus{border-color:var(--border-focus);outline:none;box-shadow:var(--ring-focus)}
.ic-searchbar__sort{flex:0 0 auto;display:flex;align-items:center;gap:10px}
.ic-searchbar__sort label{font-family:var(--font-sans);font-size:var(--text-caption);color:var(--text-secondary)}
.ic-countbar{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-hairline)}
.ic-countbar p{font-family:var(--font-sans);font-size:var(--text-body-sm);color:var(--text-secondary);margin:0}
.ic-countbar__note{font-size:var(--text-caption)!important;color:var(--text-tertiary)!important}
.ic-pc{position:relative;background:var(--surface-card);border-radius:var(--radius-card);overflow:hidden}
.ic-pc__badgewrap{position:absolute;top:14px;left:14px;z-index:2}
.ic-pc__media{position:relative;overflow:hidden;border-radius:var(--radius-media) var(--radius-media) 0 0}
.ic-pc__media::after{content:"";position:absolute;inset:0;background:var(--scrim-bottom);pointer-events:none}
.ic-pc__img img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;transition:var(--transition-media)}
.ic-pc:hover .ic-pc__img img{transform:var(--media-zoom)}
.ic-pc__body{padding:var(--gap-card)}
.ic-pc__title{font-family:var(--font-display);font-size:var(--text-h3);font-weight:400;line-height:var(--leading-heading);margin:0}
.ic-pc__title a{color:var(--text-primary);text-decoration:none}
.ic-pc__loc p{font-family:var(--font-sans);font-size:var(--text-caption);color:var(--text-tertiary);margin:0}
.ic-pc__price{display:flex;flex-direction:column;gap:2px;padding-top:var(--space-3);border-top:1px solid var(--border-hairline);margin-top:var(--space-2)}
.ic-pc__price-main{font-family:var(--font-sans);font-size:var(--text-body-sm);color:var(--text-primary)}
.ic-pc__price-note{font-family:var(--font-sans);font-size:var(--text-caption);color:var(--text-tertiary)}
.ic-sand-card{justify-content:center;padding:clamp(24px,3vw,36px);background:var(--surface-sand);border-radius:var(--radius-card)}
.ic-sand-copy p{font-family:var(--font-sans);font-size:var(--text-body-sm);line-height:var(--leading-body);color:var(--text-secondary);margin:0}
.ic-pager{display:flex;align-items:center;justify-content:center;gap:8px;padding-top:var(--space-6)}
.ic-pager__btn{display:grid;place-items:center;min-width:40px;height:40px;border-radius:var(--radius-control);font-family:var(--font-sans);font-size:var(--text-body-sm)}
.ic-pager__btn.is-off{width:40px;border:1px solid var(--border-subtle);color:var(--text-disabled)}
.ic-pager__btn.is-now{background:var(--palm-800);color:var(--shell-50)}
.ic-cta-inner{align-items:center;text-align:center}
.ic-cta-h{color:var(--shell-50)!important;max-width:24ch}
.ic-cta-copy p{font-family:var(--font-sans);font-size:var(--text-body);font-weight:300;line-height:var(--leading-body);color:var(--text-on-dark-muted);margin:0;max-width:56ch}
.ic-cta-row{flex-wrap:wrap;justify-content:center}
.ic-btn-primary-md .elementor-button{background:var(--palm-800);color:var(--shell-50);border:1px solid var(--palm-800);padding:13px 26px;font-size:var(--text-body-sm)}
.ic-btn-primary-md .elementor-button:hover{background:var(--palm-700);border-color:var(--palm-700);color:var(--shell-50)}
.ic-btn-pink-lg .elementor-button{background:var(--pink-200);color:var(--ink-900);border:1px solid var(--pink-200);padding:17px 34px;font-size:var(--text-body)}
.ic-btn-pink-lg .elementor-button:hover{background:var(--pink-300);border-color:var(--pink-300);color:var(--ink-900)}
.ic-btn-outline-lg .elementor-button{background:transparent;color:var(--shell-50);border:1px solid rgba(253,251,248,.42);padding:17px 34px;font-size:var(--text-body)}
.ic-btn-outline-lg .elementor-button:hover{background:rgba(253,251,248,.12);border-color:var(--shell-50);color:var(--shell-50)}
@media (max-width:1119px){.ic-vil-split{flex-direction:column}.ic-vil-aside{position:static;width:100%!important}.ic-searchbar__sort{display:none}}
