.product.pcard.pc-villa {
  --pv-r: var(--pc-r-villa, clamp(18px, 8.8cqi, 34px));
  --pv-pad: clamp(12px, 7.6cqi, 30px);
  --pv-glass: rgba(240, 242, 247, .9);
  --pv-ink: #111418;
  --pv-star: #f7a326;
  container-type: inline-size;
  position: relative;
  display: block;
  aspect-ratio: .635;
  min-height: 260px;
  padding: 0;
  border: 0;
  border-radius: var(--pv-r);
  overflow: hidden;
  isolation: isolate;
  background: #0c1a24;
  color: #fff;
  -webkit-tap-highlight-color: transparent;
}
@supports not (container-type: inline-size) {
  .product.pcard.pc-villa { --pv-r: 26px; --pv-pad: 18px }
}
.product.pcard.pc-villa.pc-sh-soft { box-shadow: 0 10px 28px rgba(12, 22, 34, .16) }
.product.pcard.pc-villa.pc-sh-deep { box-shadow: 0 22px 48px rgba(12, 22, 34, .3) }

.product.pcard.pc-villa .product-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  aspect-ratio: auto;
  border-radius: 0;
  background: linear-gradient(160deg, var(--blue, #1d3b53), var(--green, #0f5e63));
  overflow: hidden;
}
.product.pcard.pc-villa .product-visual img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(.2, .7, .2, 1), opacity .25s ease;
}
.product.pcard.pc-villa .product-visual img.is-swap { opacity: .35 }
.product.pcard.pc-villa .pv-emoji {
  position: absolute;
  inset: 0 0 42% 0;
  display: grid;
  place-items: center;
  font-size: clamp(44px, 26cqi, 96px);
  line-height: 1;
}
.product.pcard.pc-villa .pv-blur {
  position: absolute;
  inset: 0;
  pointer-events: none;
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-mask-image: linear-gradient(to top, #000 0%, #000 38%, rgba(0, 0, 0, .6) 46%, transparent 56%);
  mask-image: linear-gradient(to top, #000 0%, #000 38%, rgba(0, 0, 0, .6) 46%, transparent 56%);
}
.product.pcard.pc-villa .product-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(to top,
    rgba(7, 14, 22, .94) 0%,
    rgba(7, 14, 22, .86) 20%,
    rgba(7, 14, 22, .62) 36%,
    rgba(7, 14, 22, .22) 48%,
    rgba(7, 14, 22, 0) 58%);
}
.product.pcard.pc-villa .product-visual::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 30%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(7, 14, 22, .22), rgba(7, 14, 22, 0));
}
.product.pcard.pc-villa .pv-blur { z-index: 0 }

.product.pcard.pc-villa .pv-top {
  position: absolute;
  inset: var(--pv-pad) var(--pv-pad) auto var(--pv-pad);
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  pointer-events: none;
}
.product.pcard.pc-villa .pv-price,
.product.pcard.pc-villa .pv-colors {
  pointer-events: auto;
  background: var(--pv-glass);
  -webkit-backdrop-filter: blur(10px) saturate(1.4);
  backdrop-filter: blur(10px) saturate(1.4);
  box-shadow: 0 0 0 1px rgba(17, 20, 24, .06), 0 4px 14px rgba(0, 0, 0, .14);
}
.product.pcard.pc-villa .pv-price {
  display: inline-flex;
  align-items: center;
  gap: .38em;
  min-height: clamp(34px, 11.8cqi, 50px);
  padding: 0 clamp(12px, 3.2cqi, 22px);
  border-radius: 999px;
  color: var(--pv-ink);
  white-space: nowrap;
  line-height: 1;
  min-width: 0;
  flex: 0 1 auto;
  overflow: hidden;
}
.product.pcard.pc-villa .pv-price b {
  font-size: clamp(13px, 4.6cqi, 21px);
  font-weight: 800;
  color: var(--pv-ink);
  letter-spacing: -.01em;
}
.product.pcard.pc-villa .pv-price small,
.product.pcard.pc-villa .pv-price em {
  font-size: clamp(10px, 2.9cqi, 13px);
  font-weight: 500;
  font-style: normal;
  color: #4a4f57;
}
.product.pcard.pc-villa .pv-colors {
  --sw-size: clamp(14px, 4.6cqi, 20px);
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: clamp(4px, 1.4cqi, 7px);
  min-height: clamp(34px, 11.8cqi, 50px);
  padding: 0 clamp(8px, 2.6cqi, 14px);
  border-radius: 999px;
}
.product.pcard.pc-villa .pv-sw {
  position: relative;
  width: var(--sw-size);
  height: var(--sw-size);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--sw, #ccc);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .14), 0 0 0 2px transparent;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease;
}
.product.pcard.pc-villa .pv-sw:hover { transform: scale(1.14) }
.product.pcard.pc-villa .pv-sw:focus-visible { outline: 2px solid var(--pv-ink); outline-offset: 2px }
.product.pcard.pc-villa .pv-sw.is-on { box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .14), 0 0 0 2px var(--pv-glass), 0 0 0 3.5px var(--pv-ink) }
.product.pcard.pc-villa .pv-sw.is-out { opacity: .55 }
.product.pcard.pc-villa .pv-sw.is-out::after {
  content: "";
  position: absolute;
  inset: 45% -8%;
  height: 1.5px;
  background: rgba(17, 20, 24, .75);
  transform: rotate(-45deg);
}
.product.pcard.pc-villa .pv-more {
  font-size: clamp(10px, 3cqi, 13px);
  font-weight: 700;
  color: var(--pv-ink);
  text-decoration: none;
  line-height: 1;
  padding-inline-start: 1px;
}

.product.pcard.pc-villa .pv-flags {
  position: absolute;
  top: calc(var(--pv-pad) + clamp(34px, 11.8cqi, 50px) + 8px);
  inset-inline-start: var(--pv-pad);
  inset-inline-end: auto;
  z-index: 3;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  justify-items: start;
}
.product.pcard.pc-villa .pv-flags > * { box-shadow: 0 3px 10px rgba(0, 0, 0, .16) }

.product.pcard.pc-villa .product-info {
  text-shadow: 0 1px 2px rgba(0, 0, 0, .3);
  position: absolute;
  inset: auto 0 0 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 4.4cqi, 18px);
  padding: 0 var(--pv-pad) var(--pv-pad);
  background: none;
  color: #fff;
  text-align: start;
  pointer-events: none;
}
.product.pcard.pc-villa .product-info > * { pointer-events: auto }

.product.pcard.pc-villa .pv-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}
.product.pcard.pc-villa .product-title {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  margin: 0;
  font-size: clamp(14px, 5cqi, 23px);
  font-weight: 800;
  line-height: 1.35;
}
.product.pcard.pc-villa .product-title a {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  -webkit-line-clamp: unset;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 2px 14px rgba(0, 0, 0, .3);
}
.product.pcard.pc-villa .pv-rate {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  flex: 0 0 auto;
  font-size: clamp(12px, 3.8cqi, 17px);
  color: #fff;
}
.product.pcard.pc-villa .pv-rate b { font-weight: 500; color: #fff }
.product.pcard.pc-villa .pv-rate .sf-i {
  width: 1.2em;
  height: 1.2em;
  color: var(--pv-star);
  fill: var(--pv-star);
  stroke: var(--pv-star);
}

.product.pcard.pc-villa .pv-loc {
  display: flex;
  align-items: center;
  gap: clamp(8px, 3.4cqi, 14px);
  min-width: 0;
  font-size: clamp(12px, 3.8cqi, 17px);
  color: rgba(255, 255, 255, .94);
}
.product.pcard.pc-villa .pv-loc .sf-i {
  flex: 0 0 auto;
  width: 1.45em;
  height: 1.45em;
  stroke-width: 1.5;
}
.product.pcard.pc-villa .pv-loc span {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.product.pcard.pc-villa .pv-specs {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: clamp(11px, 3.4cqi, 15px);
  color: rgba(255, 255, 255, .9);
}
.product.pcard.pc-villa .pv-spec {
  display: inline-flex;
  align-items: center;
  gap: clamp(6px, 2.6cqi, 12px);
  min-width: 0;
  white-space: nowrap;
}
.product.pcard.pc-villa .pv-spec .sf-i {
  flex: 0 0 auto;
  width: 1.5em;
  height: 1.5em;
  stroke-width: 1.5;
}
.product.pcard.pc-villa .pv-spec i {
  font-style: normal;
  overflow: hidden;
  text-overflow: ellipsis;
}
.product.pcard.pc-villa .pv-spec.is-low { color: #ffd2cf }
.product.pcard.pc-villa .pv-specs:has(.pv-spec:only-child),
.product.pcard.pc-villa .pv-specs:has(.pv-spec:nth-child(2):last-child) { justify-content: flex-start; gap: clamp(14px, 8cqi, 34px) }

.product.pcard.pc-villa .pv-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  font-size: clamp(11px, 3.2cqi, 14px);
}
.product.pcard.pc-villa .pv-meta > * {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: .3em .8em;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  background: rgba(255, 255, 255, .14);
  color: #fff;
  font-size: inherit;
  line-height: 1.3;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.product.pcard.pc-villa .pv-meta * { color: #fff }

.product.pcard.pc-villa .fs-box {
  margin: 0;
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .22);
  color: #fff;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.product.pcard.pc-villa .fs-box .fs-ttl,
.product.pcard.pc-villa .fs-box .fs-left { color: rgba(255, 255, 255, .86) }

.product.pcard.pc-villa .product-cta,
.product.pcard.pc-villa .pv-meta > * { text-shadow: none }
.product.pcard.pc-villa .product-cta { margin: clamp(2px, 1.4cqi, 6px) 0 0; position: relative; z-index: 2 }
.product.pcard.pc-villa .pv-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: clamp(38px, 13.8cqi, 58px);
  padding: 0 16px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #1b1d21;
  font: inherit;
  font-size: clamp(12.5px, 3.5cqi, 16px);
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .14);
  transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.product.pcard.pc-villa .pv-btn:hover { background: #f3f4f6; color: #000; box-shadow: 0 10px 24px rgba(0, 0, 0, .2) }
.product.pcard.pc-villa .pv-btn:active { transform: scale(.98) }
.product.pcard.pc-villa .pv-btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px }
.product.pcard.pc-villa .pv-btn[disabled] { background: rgba(255, 255, 255, .5); color: rgba(27, 29, 33, .6); cursor: not-allowed; box-shadow: none }

.product.pcard.pc-villa.pc-btn-d .product-cta { display: block }
@media (max-width: 700px) {
  .product.pcard.pc-villa.pc-btn-d .product-cta { display: none }
}

@media (hover: hover) and (pointer: fine) {
  .product.pcard.pc-villa { transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s ease }
  .product.pcard.pc-villa.pc-hv-lift:hover { transform: translateY(-4px) }
  .product.pcard.pc-villa.pc-hv-lift:hover .product-visual img,
  .product.pcard.pc-villa.pc-hv-zoom:hover .product-visual img { transform: scale(1.06) }
  .product.pcard.pc-villa.pc-hv-glow:hover { box-shadow: 0 0 0 3px color-mix(in srgb, var(--green, #0f5e63) 40%, transparent), 0 18px 40px rgba(12, 22, 34, .26) }
  .product.pcard.pc-villa.pc-hv-none:hover { transform: none }
  .product.pcard.pc-villa.pc-hv-none:hover .product-visual img { transform: none }
}

@container (max-width: 230px) {
  .product.pcard.pc-villa .pv-spec:nth-child(3) { display: none }
  .product.pcard.pc-villa .pv-specs { justify-content: flex-start; gap: 14px }
  .product.pcard.pc-villa .pv-price small { display: none }
  .product.pcard.pc-villa .pv-sw:nth-of-type(n+4) { display: none }
}
@container (max-width: 180px) {
  .product.pcard.pc-villa .pv-spec:nth-child(2) { display: none }
  .product.pcard.pc-villa .pv-loc .sf-i { display: none }
  .product.pcard.pc-villa .pv-sw:nth-of-type(n+3) { display: none }
}

@media (prefers-reduced-motion: reduce) {
  .product.pcard.pc-villa,
  .product.pcard.pc-villa .product-visual img,
  .product.pcard.pc-villa .pv-sw,
  .product.pcard.pc-villa .pv-btn { transition: none; animation: none }
}

