/**
 * Homepage block styles (non-critical; critical hero shell stays inline in home-template.php).
 *
 * @package ProWPSite_Places
 */

/* Below-the-fold performance hint: skip layout/paint for blocks that have not scrolled
 * into view yet. Browsers reserve the intrinsic-size height so the scrollbar stays stable.
 */
.prowpsite-places-home .prowpsite-home-below-fold {
  content-visibility: auto;
  contain-intrinsic-size: 600px;
}

/* =========================================================================
 * Wrapper + section framing (moved from home-template.php)
 * ========================================================================= */
.prowpsite-places-home { font-family: var(--font); background: var(--gray-50); min-height: 100vh; padding-block-end: var(--space-3xl); width: 100%; max-width: 100%; margin-left: auto; margin-right: auto; margin-inline: auto; box-sizing: border-box; display: block; }
body.admin-bar .prowpsite-places-home { padding-block-start: calc(var(--space-2xl) + 32px); }
.site-main:has(.prowpsite-places-home), #primary:has(.prowpsite-places-home), .content-area:has(.prowpsite-places-home) { width: 100% !important; max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; padding-inline: 0 !important; margin-left: auto !important; margin-right: auto !important; }
#primary .prowpsite-places-home,
.content-area .prowpsite-places-home { width: 100% !important; max-width: 100% !important; margin-left: auto !important; margin-right: auto !important; }
[dir="rtl"] #primary .prowpsite-places-home,
[dir="rtl"] .content-area .prowpsite-places-home { margin-left: auto !important; margin-right: auto !important; }
.prowpsite-places-home .ultra-home-section { padding-block: var(--space-3xl); animation: prowpsite-home-fade 0.5s ease both; }
.prowpsite-places-home .ultra-home-section:first-of-type { padding-block-start: 0; }
.prowpsite-places-home .ultra-home-section:nth-child(even):not(.ultra-home-hero):not(.ultra-home-empty-state) { background: var(--surface); }
@keyframes prowpsite-home-fade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .prowpsite-places-home .ultra-home-section { animation: none; } }

.prowpsite-places-home .ultra-home-inner { max-width: 1280px; width: 100%; margin-left: auto; margin-right: auto; margin-inline: auto; padding-inline: var(--space-lg); box-sizing: border-box; }
@media (min-width: 768px) { .prowpsite-places-home .ultra-home-inner { padding-inline: var(--space-2xl); } }
@media (min-width: 1024px) { .prowpsite-places-home .ultra-home-section:not(.ultra-home-hero) { padding-block: var(--space-3xl); } }

.prowpsite-places-home .ultra-home-section-head { margin-block-end: var(--space-xl); text-align: center; }
.prowpsite-places-home .ultra-home-section-head--modern { margin-block-end: clamp(var(--space-xl), 4vw, var(--space-2xl)); }
.prowpsite-places-home .ultra-home-section-eyebrow {
  margin: 0 0 var(--space-sm);
  font-size: clamp(0.75rem, 1.5vw, 0.875rem);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--primary);
  line-height: 1.4;
}
.prowpsite-places-home .ultra-home-section-head--modern .ultra-home-title {
  font-size: clamp(1.5rem, 3vw, 2.125rem);
  font-weight: 800;
  letter-spacing: -0.03em;
}
.prowpsite-places-home .ultra-home-section-head--start { text-align: start; }
.prowpsite-places-home .ultra-home-section-head--start .ultra-home-title::after { margin-inline: 0; }
.prowpsite-places-home .ultra-home-section-subtitle {
  margin: var(--space-sm) auto 0;
  max-width: 640px;
  font-size: var(--font-size-base);
  color: var(--gray-500);
  line-height: 1.6;
}
.prowpsite-places-home .ultra-home-section-head--start .ultra-home-section-subtitle { margin-inline: 0; }
.prowpsite-places-home .ultra-home-title { font-size: clamp(1.35rem, 2.5vw, 1.75rem); font-weight: 700; color: var(--text-dark); margin: 0; letter-spacing: -0.02em; line-height: 1.3; }
.prowpsite-places-home .ultra-home-title::after { content: ''; display: block; width: 48px; height: 4px; background: linear-gradient(90deg, var(--primary), var(--primary-light)); border-radius: var(--radius-full); margin-block-start: var(--space-sm); margin-inline: auto; }

/* =========================================================================
 * Taxonomy grid (cards)
 * ========================================================================= */
.prowpsite-places-home .ultra-home-tax-grid { display: grid; gap: var(--space-lg); }
.prowpsite-places-home .ultra-home-tax-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.prowpsite-places-home .ultra-home-tax-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.prowpsite-places-home .ultra-home-tax-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
.prowpsite-places-home .ultra-home-tax-grid.cols-5 { grid-template-columns: repeat(5, 1fr); }
.prowpsite-places-home .ultra-home-tax-grid.cols-6 { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 768px) { .prowpsite-places-home .ultra-home-tax-grid { grid-template-columns: repeat(2, 1fr); gap: var(--space-md); } }

/* Taxonomy list (pill/chip style); columns_per_row applies via data-tax-cols */
.prowpsite-places-home .ultra-home-tax-list { display: flex; flex-wrap: wrap; gap: var(--space-sm); list-style: none; margin: 0; padding: 0; justify-content: center; }
.prowpsite-places-home .ultra-home-tax-list[data-tax-cols] { display: grid; justify-content: stretch; justify-items: stretch; }
@media (min-width: 480px) {
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols] { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 768px) {
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols="2"] { grid-template-columns: repeat(2, 1fr); }
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols="3"] { grid-template-columns: repeat(3, 1fr); }
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols="4"],
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols="5"],
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols="6"] { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols="2"] { grid-template-columns: repeat(2, 1fr); }
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols="3"] { grid-template-columns: repeat(3, 1fr); }
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols="4"] { grid-template-columns: repeat(4, 1fr); }
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols="5"] { grid-template-columns: repeat(5, 1fr); }
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols="6"] { grid-template-columns: repeat(6, 1fr); }
}
@media (max-width: 479px) {
  .prowpsite-places-home .ultra-home-tax-list[data-tax-cols] { grid-template-columns: 1fr; }
}
.prowpsite-places-home .ultra-home-tax-list[data-tax-cols] .ultra-home-tax-list-item { justify-content: center; text-align: center; }
.prowpsite-places-home .ultra-home-tax-list-item { display: inline-flex; align-items: center; gap: var(--space-xs); padding: var(--space-sm) var(--space-lg); background: var(--surface); color: var(--text-dark); text-decoration: none; border-radius: var(--radius-full); border: 1px solid var(--border); font-weight: 500; font-size: var(--font-size-sm); transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease; }
.prowpsite-places-home .ultra-home-tax-list-item:hover { background: var(--primary); color: #fff; border-color: var(--primary); }
.prowpsite-places-home .ultra-home-tax-list:not(.is-expanded) > .prowpsite-list-item--hidden,
.prowpsite-places-home .ultra-home-tax-grid:not(.is-expanded) > .prowpsite-list-item--hidden {
  display: none !important;
}

/* Taxonomy horizontal scroll (cards) */
.prowpsite-places-home .ultra-home-tax-scroll { display: flex; gap: var(--space-md); overflow-x: auto; padding-block-end: var(--space-md); scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--gray-300) transparent; }
.prowpsite-places-home .ultra-home-tax-scroll::-webkit-scrollbar { height: 6px; }
.prowpsite-places-home .ultra-home-tax-scroll::-webkit-scrollbar-thumb { background: var(--gray-300); border-radius: var(--radius-full); }
.prowpsite-places-home .ultra-home-tax-scroll .ultra-home-tax-card { flex: 0 0 200px; scroll-snap-align: start; }
.prowpsite-places-home .ultra-home-tax-card { background: var(--surface); border-radius: var(--radius-lg); box-shadow: 0 1px 3px rgba(0,0,0,0.06); border: 1px solid var(--border); overflow: hidden; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.prowpsite-places-home .ultra-home-tax-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0,0,0,0.1); border-color: var(--primary-light); }
.prowpsite-places-home .ultra-home-tax-card a { text-decoration: none; color: inherit; display: block; }
.prowpsite-places-home .ultra-home-tax-card .ultra-home-tax-card-inner { padding: var(--space-lg); }
.prowpsite-places-home .ultra-home-tax-card .ultra-home-tax-name { font-weight: 600; font-size: var(--font-size-base); color: var(--text-dark); display: block; margin-block-end: 2px; }
.prowpsite-places-home .ultra-home-tax-card .ultra-home-tax-count { font-size: var(--font-size-sm); color: var(--gray-500); }

/* =========================================================================
 * Places grid (cards) – options-driven columns
 * Front page loads cards-critical inline, not places-frontend.css — column
 * rules must live here (data-home-cols from templates/home/blocks/places.php).
 * Carousel rules are duplicated here so they win over the generic grid rule
 * below (home-blocks.css loads after cards-critical inline).
 * ========================================================================= */
.prowpsite-places-home .ultra-home-places-grid:not(.prowpsite-cards-carousel-inner) { display: grid; gap: var(--space-xl); }
.home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) { overflow: visible; min-width: 0; }
.home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid,
.prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid {
  display: grid;
  gap: var(--space-xl);
  width: 100%;
  min-width: 0;
  overflow: visible;
  box-sizing: border-box;
  grid-template-columns: 1fr;
}
.home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid .place-card-wrapper,
.prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid .place-card-wrapper {
  flex: none;
  max-width: none;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}
@media (min-width: 480px) {
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols],
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols] {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
  }
}
@media (min-width: 768px) {
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="2"],
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="2"] { grid-template-columns: repeat(2, 1fr); }
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="3"],
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="3"] { grid-template-columns: repeat(3, 1fr); }
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="4"],
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="5"],
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="6"],
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="4"],
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="5"],
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="6"] { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="2"],
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="2"] { grid-template-columns: repeat(2, 1fr); }
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="3"],
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="3"] { grid-template-columns: repeat(3, 1fr); }
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="4"],
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="4"] { grid-template-columns: repeat(4, 1fr); }
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="5"],
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="5"] { grid-template-columns: repeat(5, 1fr); }
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="6"],
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid[data-home-cols="6"] { grid-template-columns: repeat(6, 1fr); gap: var(--space-lg); }
}
@media (max-width: 479px) {
  .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid,
  .prowpsite-places-home .home-block-places .ultra-home-places-wrap:not(.prowpsite-cards-carousel-mode) .ultra-home-places-grid {
    grid-template-columns: 1fr !important;
    gap: var(--space-lg);
  }
}
.prowpsite-places-home .ultra-home-places-grid .place-card-wrapper { animation: prowpsite-home-fade 0.4s ease both; }
.prowpsite-places-home .ultra-home-places-grid .place-card { border-radius: var(--radius-lg); box-shadow: 0 2px 8px rgba(0,0,0,0.06); transition: transform 0.25s ease, box-shadow 0.25s ease; overflow: hidden; background: var(--surface); }
.prowpsite-places-home .ultra-home-places-grid .place-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,0.1); }
.prowpsite-places-home .ultra-home-places-grid .place-card .place-card-img img { transition: transform 0.4s ease; }
.prowpsite-places-home .ultra-home-places-grid .place-card:hover .place-card-img img { transform: scale(1.03); }

/* Generic (blog post) cards in home collection blocks */
.prowpsite-places-home .prowpsite-generic-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--surface);
  border-radius: var(--radius-lg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
  border: 1px solid var(--border);
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.prowpsite-places-home .prowpsite-generic-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.1);
}
.prowpsite-places-home .prowpsite-generic-card .prowpsite-card-thumb {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--gray-200);
}
.prowpsite-places-home .prowpsite-generic-card .prowpsite-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.prowpsite-places-home .prowpsite-generic-card:hover .prowpsite-card-thumb img { transform: scale(1.03); }
.prowpsite-places-home .prowpsite-generic-card .prowpsite-card-body { padding: var(--space-lg); flex: 1; display: flex; flex-direction: column; gap: var(--space-sm); }
.prowpsite-places-home .prowpsite-generic-card .prowpsite-card-date { font-size: var(--font-size-sm); color: var(--gray-500); }
.prowpsite-places-home .prowpsite-generic-card .prowpsite-card-title { margin: 0; font-size: var(--font-size-base); font-weight: 700; line-height: 1.35; }
.prowpsite-places-home .prowpsite-generic-card .prowpsite-card-title a { color: var(--text-dark); text-decoration: none; }
.prowpsite-places-home .prowpsite-generic-card .prowpsite-card-title a:hover { color: var(--primary); }
.prowpsite-places-home .prowpsite-generic-card .prowpsite-card-excerpt { font-size: var(--font-size-sm); color: var(--gray-600); line-height: 1.5; }

/* =========================================================================
 * Home places carousel (horizontal scroll track)
 * ========================================================================= */
.prowpsite-home-carousel-on .ultra-home-places-wrap.prowpsite-cards-carousel-mode {
  overflow: visible !important;
  cursor: grab;
  user-select: none;
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.prowpsite-home-carousel-on .ultra-home-places-wrap.prowpsite-cards-carousel-mode:active { cursor: grabbing; }
@media (max-width: 1024px) {
  .prowpsite-home-carousel-on.prowpsite-carousel-device-pc .ultra-home-places-wrap.prowpsite-cards-carousel-mode { cursor: default; user-select: auto; }
}
@media (min-width: 1025px) {
  .prowpsite-home-carousel-on.prowpsite-carousel-device-mobile .ultra-home-places-wrap.prowpsite-cards-carousel-mode { cursor: default; user-select: auto; }
}
.prowpsite-home-carousel-on .ultra-home-places-wrap .ultra-home-places-grid.prowpsite-cards-carousel-inner {
  display: flex !important;
  flex-wrap: nowrap !important;
  flex-direction: row !important;
  align-items: stretch;
  gap: var(--space-xl);
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding-bottom: var(--space-sm);
  grid-template-columns: unset !important;
  grid-template-rows: unset !important;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.prowpsite-home-carousel-on .ultra-home-places-wrap .ultra-home-places-grid.prowpsite-cards-carousel-inner::-webkit-scrollbar { display: none; height: 0; width: 0; }
.prowpsite-home-carousel-on .ultra-home-places-wrap .prowpsite-cards-carousel-inner .place-card-wrapper,
.prowpsite-home-carousel-on .ultra-home-places-wrap .prowpsite-cards-carousel-inner .place-card-wrapper.col-12,
.prowpsite-home-carousel-on .ultra-home-places-wrap .prowpsite-cards-carousel-inner .prowpsite-generic-card-wrapper {
  flex: 0 0 min(280px, 85vw) !important;
  max-width: none !important;
  width: auto !important;
  min-width: 0;
  scroll-snap-align: start;
}
@media (min-width: 1025px) {
  .prowpsite-home-carousel-on[data-cols="2"] .prowpsite-cards-carousel-inner .place-card-wrapper { flex: 0 0 calc((100% - var(--space-xl)) / 2) !important; }
  .prowpsite-home-carousel-on[data-cols="3"] .prowpsite-cards-carousel-inner .place-card-wrapper { flex: 0 0 calc((100% - (2 * var(--space-xl))) / 3) !important; }
  .prowpsite-home-carousel-on[data-cols="4"] .prowpsite-cards-carousel-inner .place-card-wrapper { flex: 0 0 calc((100% - (3 * var(--space-xl))) / 4) !important; }
  .prowpsite-home-carousel-on[data-cols="5"] .prowpsite-cards-carousel-inner .place-card-wrapper { flex: 0 0 calc((100% - (4 * var(--space-xl))) / 5) !important; }
  .prowpsite-home-carousel-on[data-cols="6"] .prowpsite-cards-carousel-inner .place-card-wrapper { flex: 0 0 calc((100% - (5 * var(--space-xl))) / 6) !important; }
  .prowpsite-home-carousel-on.prowpsite-carousel-device-pc .prowpsite-cards-carousel-inner .place-card-wrapper { flex: 0 0 min(300px, 32%) !important; }
  .prowpsite-home-carousel-on.prowpsite-carousel-device-pc[data-cols="3"] .prowpsite-cards-carousel-inner .place-card-wrapper { flex: 0 0 calc((100% - (2 * var(--space-xl))) / 3) !important; }
}
@media (max-width: 1024px) {
  .prowpsite-home-carousel-on.prowpsite-carousel-device-pc .ultra-home-places-wrap .ultra-home-places-grid.prowpsite-cards-carousel-inner {
    overflow-x: visible !important;
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
  }
  .prowpsite-home-carousel-on.prowpsite-carousel-device-pc .prowpsite-cards-carousel-inner .place-card-wrapper { flex: none !important; }
  .prowpsite-home-carousel-on.prowpsite-carousel-device-mobile .prowpsite-cards-carousel-inner .place-card-wrapper { flex: 0 0 min(260px, 82vw) !important; }
}
@media (min-width: 1025px) {
  .prowpsite-home-carousel-on.prowpsite-carousel-device-mobile .ultra-home-places-wrap .ultra-home-places-grid.prowpsite-cards-carousel-inner {
    overflow-x: visible !important;
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
  }
  .prowpsite-home-carousel-on.prowpsite-carousel-device-mobile .prowpsite-cards-carousel-inner .place-card-wrapper { flex: none !important; }
}
.prowpsite-home-carousel-on.home-block-places .ultra-home-inner { position: relative; }
.prowpsite-home-carousel-on.home-block-places .prowpsite-home-carousel-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  box-sizing: border-box;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.6);
  background: rgba(255,255,255,0.78);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text-dark);
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
.prowpsite-home-carousel-on.home-block-places .prowpsite-home-carousel-prev { inset-inline-start: 0; }
.prowpsite-home-carousel-on.home-block-places .prowpsite-home-carousel-next { inset-inline-end: 0; }
.prowpsite-home-carousel-on.home-block-places .prowpsite-home-carousel-nav:hover {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}
[dir="rtl"] .prowpsite-home-carousel-on .ultra-home-places-grid.prowpsite-cards-carousel-inner { direction: rtl; }

/* Carousel pagination dots (replaces visible scrollbar) */
.prowpsite-home-carousel-on .prowpsite-carousel-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  margin-block-start: var(--space-md);
  padding-block: var(--space-xs);
  min-height: 28px;
}
.prowpsite-home-carousel-on .prowpsite-carousel-dots[hidden] { display: none !important; }
.prowpsite-home-carousel-on .prowpsite-carousel-dot {
  width: 10px;
  height: 10px;
  min-width: 10px;
  min-height: 10px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--gray-300, #d1d5db);
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.prowpsite-home-carousel-on .prowpsite-carousel-dot:hover {
  background: var(--gray-400, #9ca3af);
  transform: scale(1.1);
}
.prowpsite-home-carousel-on .prowpsite-carousel-dot.is-active {
  background: var(--primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 25%, transparent);
  transform: scale(1.15);
}
.prowpsite-home-carousel-on .prowpsite-carousel-dot:focus { outline: none; }
.prowpsite-home-carousel-on .prowpsite-carousel-dot:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

/* Carousel card polish – equal height, featured vertical stack, touch-friendly CTAs */
.prowpsite-home-carousel-on .prowpsite-cards-carousel-inner .place-card-wrapper,
.prowpsite-home-carousel-on .prowpsite-cards-carousel-inner .prowpsite-generic-card-wrapper {
  display: flex;
  flex-direction: column;
  height: auto;
  align-self: stretch;
}
.prowpsite-home-carousel-on .prowpsite-cards-carousel-inner .place-card,
.prowpsite-home-carousel-on .prowpsite-cards-carousel-inner .prowpsite-generic-card {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.prowpsite-home-carousel-on .place-card--featured .place-card-inner.place-card-featured {
  flex-direction: column;
  min-height: 100%;
}
.prowpsite-home-carousel-on .place-card--featured .place-card-featured-img {
  width: 100%;
  min-width: 0;
  height: 180px;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.prowpsite-home-carousel-on .place-card--featured .place-card-featured-body {
  flex: 1 1 auto;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  padding: var(--space-md) var(--space-lg) var(--space-sm);
}
.prowpsite-home-carousel-on .place-card-day-off {
  top: var(--space-sm);
  inset-inline-end: var(--space-sm);
  inset-inline-start: auto;
  max-width: calc(100% - var(--space-xl));
  z-index: 3;
  border-radius: var(--radius-full);
  box-shadow: var(--prowpsite-shadow-sm, 0 1px 2px rgba(0,0,0,0.08));
}
.prowpsite-home-carousel-on .place-card-cta-split {
  margin-top: auto;
  border-top: 1px solid var(--border, var(--gray-200));
}
.prowpsite-home-carousel-on .place-card-cta-split-btn {
  min-height: 44px;
  padding-block: var(--space-sm);
}
.prowpsite-home-carousel-on .place-card-featured-body {
  display: flex;
  flex-direction: column;
}
.prowpsite-home-carousel-on .place-card-featured-title {
  font-size: clamp(0.95rem, 2vw, 1.05rem);
  line-height: 1.35;
}
.prowpsite-home-carousel-on .place-card-address-inline {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.prowpsite-home-carousel-on .prowpsite-generic-card .prowpsite-card-thumb {
  aspect-ratio: 4 / 3;
  height: auto;
  min-height: 160px;
  max-height: 200px;
}
.prowpsite-home-carousel-on .prowpsite-generic-card .prowpsite-card-body { flex: 1 1 auto; }
.prowpsite-home-carousel-on .prowpsite-generic-card .prowpsite-card-title a { color: var(--text-dark, var(--prowpsite-text-primary)); }
.prowpsite-home-carousel-on .prowpsite-generic-card .prowpsite-card-title a:hover { color: var(--primary, var(--prowpsite-primary)); }

/* =========================================================================
 * Text blocks
 * ========================================================================= */
.prowpsite-places-home .ultra-home-text-grid { display: grid; gap: var(--space-xl); }
.prowpsite-places-home .ultra-home-text-block { background: var(--surface); border-radius: var(--radius-lg); box-shadow: 0 1px 3px rgba(0,0,0,0.06); border: 1px solid var(--border); padding: var(--space-xl); transition: box-shadow 0.2s ease; }
.prowpsite-places-home .ultra-home-text-block:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.08); }
.prowpsite-places-home .ultra-home-text-block.full { grid-column: 1 / -1; }

/* =========================================================================
 * Hero: non-critical layout helpers (hero shell remains inline in template)
 * ========================================================================= */
.prowpsite-places-home .ultra-home-hero-inner { gap: var(--space-xl); padding: var(--space-lg) var(--space-xl); }
.prowpsite-places-home .ultra-home-hero-text { margin-block-end: var(--space-lg); }
.prowpsite-places-home .ultra-home-hero-search { width: 100%; max-width: 100%; padding-inline: var(--space-md); margin-inline: auto; }
.prowpsite-places-home .prowpsite-hero-lazy { background-image: none !important; }
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .prowpsite-search-field label { font-size: 0.875rem; font-weight: 700; color: #000; margin-bottom: var(--space-xs); letter-spacing: 0.02em; text-shadow: 0 0 1px #fff, 0 0 2px #fff, 0 0 3px rgba(255,255,255,0.9), 0 1px 2px rgba(0,0,0,0.2), 0 2px 4px rgba(0,0,0,0.1); }
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra input[type="text"]::placeholder { color: var(--prowpsite-gray-600, #4b5563); }
@media (max-width: 768px) {
  .prowpsite-places-home .ultra-home-hero-inner { padding: var(--space-xl) var(--space-md); gap: var(--space-lg); }
  .prowpsite-places-home .ultra-home-hero-search { padding-inline: var(--space-sm); margin-block-start: var(--space-xl); }
  .prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra form { padding: var(--space-md) var(--space-lg); gap: var(--space-md); }
}

/* =========================================================================
 * Search section (standalone block)
 * ========================================================================= */
.prowpsite-places-home .ultra-home-search-section { padding-block: var(--space-3xl); }
.prowpsite-places-home .ultra-home-search-section .ultra-home-section-head { margin-block-end: var(--space-xl); }
.prowpsite-places-home .ultra-home-search-wrap { max-width: 100%; margin-inline: auto; padding-inline: var(--space-md); }
@media (min-width: 769px) { .prowpsite-places-home .ultra-home-search-wrap { padding-inline: var(--space-lg); } }

/* =========================================================================
 * Banners
 * ========================================================================= */
.prowpsite-places-home .ultra-home-banners-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--space-lg); }
.prowpsite-places-home .ultra-home-banner-card { display: block; text-decoration: none; color: inherit; border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.08); transition: transform 0.2s ease, box-shadow 0.2s ease; background: var(--surface); }
.prowpsite-places-home .ultra-home-banner-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0,0,0,0.12); }
.prowpsite-places-home .ultra-home-banner-img { display: block; padding-bottom: 50%; background-size: cover; background-position: center; background-color: var(--gray-200); }
.prowpsite-places-home .ultra-home-banner-title { display: block; padding: var(--space-md) var(--space-lg); font-weight: 600; font-size: var(--font-size-base); color: var(--text-dark); }
@media (max-width: 768px) { .prowpsite-places-home .ultra-home-banners-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: var(--space-md); } }

/* CPT advertisements block */
.prowpsite-places-home .ultra-home-ads-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--space-lg); }
.prowpsite-places-home .ultra-home-ads-grid--single { grid-template-columns: minmax(0, 1fr); max-width: 960px; margin-inline: auto; }
.prowpsite-places-home .ultra-home-ad-card { display: block; text-decoration: none; color: inherit; border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.08); background: var(--surface); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.prowpsite-places-home .ultra-home-ad-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,0.12); }
.prowpsite-places-home .ultra-home-ad-media { display: block; aspect-ratio: var(--ad-aspect, 3 / 1); background: var(--gray-200); overflow: hidden; }
.prowpsite-places-home .ultra-home-ad-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.prowpsite-places-home .ultra-home-ad-title { display: block; padding: var(--space-md) var(--space-lg); font-weight: 600; font-size: var(--font-size-sm); color: var(--text-dark); }
@media (max-width: 768px) { .prowpsite-places-home .ultra-home-ads-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-md); } }

/* =========================================================================
 * Empty state
 * ========================================================================= */
.prowpsite-places-home .ultra-home-empty-state { text-align: center; padding: var(--space-3xl); }
.prowpsite-places-home .ultra-home-empty-desc { color: var(--gray-500); max-width: 480px; margin-inline: auto; }

/* =========================================================================
 * Dark mode: scope class is on .prowpsite-places-home (no body dependency)
 * ========================================================================= */
.prowpsite-places-home.prowpsite-places-home-dark .place-card,
.prowpsite-places-home.prowpsite-places-home-dark .place-card.bg-white,
.prowpsite-places-home.prowpsite-places-home-dark .place-card-wrapper .place-card { background-color: #1e293b !important; border-color: #334155; color: #f8fafc; }
.prowpsite-places-home.prowpsite-places-home-dark .place-card .text-muted,
.prowpsite-places-home.prowpsite-places-home-dark .place-card-address,
.prowpsite-places-home.prowpsite-places-home-dark .place-card-address-inline,
.prowpsite-places-home.prowpsite-places-home-dark .place-card-meta,
.prowpsite-places-home.prowpsite-places-home-dark .place-card .place-card-reviews-count,
.prowpsite-places-home.prowpsite-places-home-dark .place-card .place-card-cta-detail { color: #cbd5e1 !important; }
@media (prefers-color-scheme: dark) {
  .prowpsite-places-home.prowpsite-places-home-system .place-card,
  .prowpsite-places-home.prowpsite-places-home-system .place-card.bg-white,
  .prowpsite-places-home.prowpsite-places-home-system .place-card-wrapper .place-card { background-color: #1e293b !important; border-color: #334155; color: #f8fafc; }
  .prowpsite-places-home.prowpsite-places-home-system .place-card .text-muted,
  .prowpsite-places-home.prowpsite-places-home-system .place-card-address,
  .prowpsite-places-home.prowpsite-places-home-system .place-card-address-inline,
  .prowpsite-places-home.prowpsite-places-home-system .place-card-meta,
  .prowpsite-places-home.prowpsite-places-home-system .place-card .place-card-reviews-count,
  .prowpsite-places-home.prowpsite-places-home-system .place-card .place-card-cta-detail { color: #cbd5e1 !important; }
}

/* =========================================================================
 * Hero slider
 * ========================================================================= */
.prowpsite-places-home .home-block-hero-slider { padding-block-start: 0; }
.prowpsite-places-home .prowpsite-hero-slider { position: relative; width: 100%; overflow: hidden; }
.prowpsite-places-home .prowpsite-hero-slider-track { position: relative; width: 100%; }
.prowpsite-places-home .prowpsite-hero-slide { position: relative; width: 100%; }
.prowpsite-places-home .prowpsite-hero-slide.is-hidden-slide { display: none; }
.prowpsite-places-home .hero-height-compact .prowpsite-hero-slide { min-height: 42vh; }
.prowpsite-places-home .hero-height-standard .prowpsite-hero-slide { min-height: 70vh; }
.prowpsite-places-home .hero-height-tall .prowpsite-hero-slide { min-height: 88vh; }
.prowpsite-places-home .prowpsite-hero-slider-prev,
.prowpsite-places-home .prowpsite-hero-slider-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  background: rgba(0,0,0,0.45);
  color: #fff;
  border: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  cursor: pointer;
}
.prowpsite-places-home .prowpsite-hero-slider-prev { inset-inline-start: var(--space-md); }
.prowpsite-places-home .prowpsite-hero-slider-next { inset-inline-end: var(--space-md); }
.prowpsite-places-home .prowpsite-hero-slider-dots {
  position: absolute;
  bottom: var(--space-lg);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: var(--space-sm);
  z-index: 3;
}
.prowpsite-places-home .prowpsite-hero-slider-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 0;
  background: rgba(255,255,255,0.5);
  cursor: pointer;
}
.prowpsite-places-home .prowpsite-hero-slider-dot.is-active { background: #fff; }

/* =========================================================================
 * FAQ
 * ========================================================================= */
.prowpsite-places-home .prowpsite-faq-item {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  margin-block-end: var(--space-md);
  background: var(--surface);
  overflow: hidden;
}
.prowpsite-places-home .prowpsite-faq-question {
  padding: var(--space-lg);
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}
.prowpsite-places-home .prowpsite-faq-question::-webkit-details-marker { display: none; }
.prowpsite-places-home .prowpsite-faq-answer { padding: 0 var(--space-lg) var(--space-lg); color: var(--gray-600); }

/* =========================================================================
 * Video facade
 * ========================================================================= */
.prowpsite-places-home .prowpsite-video-facade-shell { position: relative; width: 100%; border-radius: var(--radius-lg); overflow: hidden; background: var(--gray-200); }
.prowpsite-places-home .prowpsite-video-facade {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  padding: 0;
  cursor: pointer;
  position: relative;
  background: transparent;
}
.prowpsite-places-home .prowpsite-video-poster { width: 100%; height: 100%; object-fit: cover; display: block; }
.prowpsite-places-home .prowpsite-video-play-icon {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(0,0,0,0.55);
  box-shadow: 0 0 0 4px rgba(255,255,255,0.35);
}
.prowpsite-places-home .prowpsite-video-play-icon::after {
  content: '';
  position: absolute;
  inset: 50% auto auto 54%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: 12px 0 12px 20px;
  border-color: transparent transparent transparent #fff;
}

/* =========================================================================
 * Stats
 * ========================================================================= */
.prowpsite-places-home .prowpsite-home-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-lg);
}
@media (min-width: 768px) {
  .prowpsite-places-home .prowpsite-home-stats-grid { grid-template-columns: repeat(4, 1fr); }
}
.prowpsite-places-home .prowpsite-stat-card {
  text-align: center;
  padding: var(--space-xl);
  background: var(--surface);
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
}
.prowpsite-places-home .prowpsite-stat-icon { font-size: 1.75rem; color: var(--primary); margin-block-end: var(--space-sm); display: block; }
.prowpsite-places-home .prowpsite-stat-value { font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 800; color: var(--text-dark); }
.prowpsite-places-home .prowpsite-stat-label { color: var(--gray-500); margin-block-start: var(--space-xs); }

/* =========================================================================
 * CTA band
 * ========================================================================= */
.prowpsite-places-home .home-block-cta {
  position: relative;
  background-size: cover;
  background-position: center;
  color: #fff;
  padding-block: var(--space-3xl);
}
.prowpsite-places-home .prowpsite-cta-overlay { position: absolute; inset: 0; background: #000; pointer-events: none; }
.prowpsite-places-home .prowpsite-cta-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-xl);
  text-align: center;
}
.prowpsite-places-home .home-block-cta.align-split .prowpsite-cta-inner {
  justify-content: space-between;
  text-align: start;
}
.prowpsite-places-home .prowpsite-cta-title { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800; margin: 0 0 var(--space-sm); }
.prowpsite-places-home .prowpsite-cta-subtitle { margin: 0; opacity: 0.92; max-width: 560px; }
.prowpsite-places-home .prowpsite-cta-actions { display: flex; flex-wrap: wrap; gap: var(--space-md); justify-content: center; }
@media (max-width: 768px) {
  .prowpsite-places-home .home-block-cta.align-split .prowpsite-cta-inner { flex-direction: column; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .prowpsite-places-home .ultra-home-section { animation: none !important; }
}

/* Luxury taxonomy cards */
.prowpsite-places-home .ultra-home-tax-card--luxury {
  border-radius: var(--radius-xl, 12px);
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.08);
  border: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
}
.prowpsite-places-home .ultra-home-tax-card--luxury:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(15, 23, 42, 0.14);
  border-color: color-mix(in srgb, var(--primary) 35%, var(--border));
}
.prowpsite-places-home .ultra-home-tax-card-link {
  display: flex;
  flex-direction: column;
  min-height: 44px;
  text-decoration: none;
  color: inherit;
}
.prowpsite-places-home .ultra-home-tax-card-media {
  position: relative;
  overflow: hidden;
  background: linear-gradient(145deg, var(--gray-100), var(--gray-200));
}
.prowpsite-places-home .ultra-home-tax-card--luxury .ultra-home-tax-card-media,
.prowpsite-places-home .ultra-home-tax-card--has-image .ultra-home-tax-card-media {
  aspect-ratio: 4 / 3;
}
.prowpsite-places-home .ultra-home-tax-card--luxury.ultra-home-tax-card--has-icon .ultra-home-tax-card-media,
.prowpsite-places-home .ultra-home-tax-card--luxury.ultra-home-tax-card--has-letter .ultra-home-tax-card-media {
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  padding: var(--space-xl);
  background: linear-gradient(145deg, color-mix(in srgb, var(--primary) 12%, #fff), color-mix(in srgb, var(--primary-light, var(--primary)) 8%, var(--gray-50)));
}
.prowpsite-places-home .ultra-home-tax-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}
.prowpsite-places-home .ultra-home-tax-card--luxury:hover .ultra-home-tax-card-img {
  transform: scale(1.06);
}
.prowpsite-places-home .ultra-home-tax-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.05) 20%, rgba(15, 23, 42, 0.72) 100%);
  pointer-events: none;
}
.prowpsite-places-home .ultra-home-tax-card-media-title {
  position: absolute;
  inset-inline: var(--space-md);
  inset-block-end: var(--space-md);
  z-index: 2;
  color: #fff;
  font-weight: 700;
  font-size: clamp(0.95rem, 2vw, 1.05rem);
  line-height: 1.35;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}
.prowpsite-places-home .ultra-home-tax-card-media-badge {
  position: absolute;
  inset-block-start: var(--space-sm);
  inset-inline-end: var(--space-sm);
  z-index: 2;
  padding: 0.2rem 0.55rem;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.92);
  color: var(--text-dark);
  font-size: var(--font-size-sm);
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}
.prowpsite-places-home .ultra-home-tax-card-icon-wrap {
  width: 72px;
  height: 72px;
  min-width: 72px;
  min-height: 72px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.88);
  color: var(--primary);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}
.prowpsite-places-home .ultra-home-tax-card--luxury .ultra-home-tax-card-icon {
  font-size: 1.75rem;
  line-height: 1;
  margin: 0;
}
.prowpsite-places-home .ultra-home-tax-card-letter {
  width: 72px;
  height: 72px;
  min-width: 72px;
  min-height: 72px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--primary);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}
.prowpsite-places-home .ultra-home-tax-card--luxury .ultra-home-tax-card-inner {
  padding: var(--space-md) var(--space-lg) var(--space-lg);
  text-align: center;
}
.prowpsite-places-home .ultra-home-tax-card--luxury.ultra-home-tax-card--has-image .ultra-home-tax-card-inner {
  display: none;
}
.prowpsite-places-home .ultra-home-tax-card--has-image:not(.ultra-home-tax-card--luxury) .ultra-home-tax-card-media {
  aspect-ratio: 4 / 3;
}
.prowpsite-places-home .ultra-home-tax-card--has-image:not(.ultra-home-tax-card--luxury) .ultra-home-tax-card-inner {
  padding: var(--space-lg);
}
.prowpsite-places-home .ultra-home-tax-list-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--primary) 12%, #fff);
  color: var(--primary);
  flex-shrink: 0;
}
.prowpsite-places-home .ultra-home-tax-list-item {
  min-height: 44px;
}
.prowpsite-places-home .ultra-home-tax-scroll .ultra-home-tax-card--luxury {
  flex: 0 0 min(240px, 78vw);
  scroll-snap-align: start;
}
@media (prefers-reduced-motion: reduce) {
  .prowpsite-places-home .ultra-home-tax-card--luxury:hover,
  .prowpsite-places-home .ultra-home-tax-card--luxury:hover .ultra-home-tax-card-img {
    transform: none;
  }
}

.prowpsite-places-home .ultra-home-tax-card-placeholder { width: 100%; height: 100%; min-height: 140px; display: flex; align-items: center; justify-content: center; color: var(--primary); opacity: 0.85; background: linear-gradient(145deg, var(--gray-100) 0%, var(--gray-200) 100%); }

/* =========================================================================
 * dPlace-inspired home place cards (badges, chips, vertical featured)
 * ========================================================================= */
.prowpsite-places-home .ultra-home-places-grid .place-card {
  border: 1px solid color-mix(in srgb, var(--border) 85%, transparent);
}
.prowpsite-places-home .place-card-img {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.prowpsite-places-home .place-card-img .prowpsite-place-card-img-wrap,
.prowpsite-places-home .place-card-img > a {
  height: 100%;
}
.prowpsite-places-home .place-card-badge {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.65rem;
  border-radius: var(--radius-full);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
}
.prowpsite-places-home .place-card-badge--popular {
  inset-block-start: var(--space-sm);
  inset-inline-start: var(--space-sm);
  background: linear-gradient(135deg, #f59e0b, #d97706);
  color: #fff;
}
.prowpsite-places-home .place-card-badge--status {
  inset-block-start: var(--space-sm);
  inset-inline-end: var(--space-sm);
}
.prowpsite-places-home .place-card-badge--open {
  background: rgba(22, 163, 74, 0.95);
  color: #fff;
}
.prowpsite-places-home .place-card-badge--closed {
  background: rgba(71, 85, 105, 0.92);
  color: #fff;
}
.prowpsite-places-home .place-card-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-block: 0.35rem 0.5rem;
}
.prowpsite-places-home .place-card-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: var(--radius-full);
  background: color-mix(in srgb, var(--primary) 10%, var(--surface));
  color: var(--primary);
  font-size: 0.6875rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid color-mix(in srgb, var(--primary) 18%, transparent);
  transition: background 0.2s ease, color 0.2s ease;
}
.prowpsite-places-home a.place-card-chip:hover {
  background: var(--primary);
  color: #fff;
}
.prowpsite-places-home .place-card-body {
  padding: var(--space-md) var(--space-lg) var(--space-sm);
}
.prowpsite-places-home .place-card-title-in-body {
  font-size: clamp(0.95rem, 2vw, 1.05rem);
  font-weight: 700;
  line-height: 1.35;
  margin: 0 0 0.35rem;
}
.prowpsite-places-home .place-card-rating-row {
  margin-block-end: 0.35rem;
}
.prowpsite-places-home .place-card-meta--location {
  margin: 0;
  font-size: var(--font-size-sm);
  color: var(--gray-500);
}
.prowpsite-places-home .place-card-address--compact {
  margin: 0.15rem 0 0;
  font-size: var(--font-size-sm);
  color: var(--gray-500);
  line-height: 1.45;
}
.prowpsite-places-home .place-card--featured .place-card-inner.place-card-featured {
  flex-direction: column;
}
.prowpsite-places-home .place-card--featured .place-card-featured-img {
  width: 100%;
  min-width: 0;
  height: auto;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.prowpsite-places-home .place-card--featured .place-card-featured-body {
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  padding: var(--space-md) var(--space-lg);
}
.prowpsite-places-home .place-card--featured .place-card-featured-title {
  font-size: clamp(0.95rem, 2vw, 1.1rem);
}

/* Blog / generic post cards (dPlace blog row) */
.prowpsite-places-home .prowpsite-blog-card {
  height: 100%;
}
.prowpsite-places-home .prowpsite-blog-card-thumb {
  position: relative;
}
.prowpsite-places-home .prowpsite-blog-card-category {
  position: absolute;
  inset-block-end: var(--space-sm);
  inset-inline-start: var(--space-sm);
  z-index: 2;
  padding: 0.2rem 0.6rem;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.92);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--primary);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}
.prowpsite-places-home .prowpsite-blog-card-category a {
  color: inherit;
  text-decoration: none;
}
.prowpsite-places-home .prowpsite-blog-card-date {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gray-500);
}
.prowpsite-places-home .prowpsite-blog-card-title {
  font-size: clamp(1rem, 2vw, 1.125rem);
  line-height: 1.35;
}
.prowpsite-places-home .prowpsite-blog-card-readmore a {
  font-weight: 600;
  color: var(--primary);
  text-decoration: none;
}
.prowpsite-places-home .prowpsite-blog-card-readmore a:hover {
  text-decoration: underline;
}

/* Hero slider luxury polish */
.prowpsite-places-home .hero-height-standard .prowpsite-hero-slide { min-height: 78vh; }
.prowpsite-places-home .prowpsite-hero-slider-dots { bottom: var(--space-xl); }
.prowpsite-places-home .prowpsite-hero-slider-dot.is-active {
  width: 28px;
  border-radius: var(--radius-full);
  background: #fff;
}

/* =========================================================================
 * Explore-by-city + category destination cards (dPlace)
 * ========================================================================= */
.prowpsite-places-home .ultra-home-tax-card--explore-city .ultra-home-tax-card-media,
.prowpsite-places-home .ultra-home-tax-card--destination .ultra-home-tax-card-media {
  aspect-ratio: 16 / 10;
}
.prowpsite-places-home .ultra-home-tax-card--explore-city.ultra-home-tax-card--has-image .ultra-home-tax-card-inner,
.prowpsite-places-home .ultra-home-tax-card--destination.ultra-home-tax-card--has-image .ultra-home-tax-card-inner {
  display: none;
}
.prowpsite-places-home .ultra-home-tax-card--category .ultra-home-tax-card-media {
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  padding: var(--space-xl);
  background: linear-gradient(145deg, color-mix(in srgb, var(--primary) 10%, #fff), var(--surface));
}
.prowpsite-places-home .ultra-home-tax-card--category .ultra-home-tax-card-icon-wrap {
  width: 80px;
  height: 80px;
  min-width: 80px;
  min-height: 80px;
}
.prowpsite-places-home .ultra-home-tax-card--category .ultra-home-tax-card-inner {
  padding: var(--space-md) var(--space-lg) var(--space-lg);
  text-align: center;
}
.prowpsite-places-home .ultra-home-tax-card--category .ultra-home-tax-count {
  display: inline-flex;
  margin-inline: auto;
  padding: 0.15rem 0.6rem;
  border-radius: var(--radius-full);
  background: color-mix(in srgb, var(--primary) 12%, var(--surface));
  color: var(--primary);
  font-weight: 700;
  font-size: 0.75rem;
}
.prowpsite-places-home .home-block-tax-style-explore_by_city .ultra-home-section-head,
.prowpsite-places-home .home-block-tax-style-luxury_cards .ultra-home-section-head,
.prowpsite-places-home .home-block-places .ultra-home-section-head--start {
  text-align: start;
}
.prowpsite-places-home .home-block-tax-style-explore_by_city .ultra-home-title::after,
.prowpsite-places-home .home-block-tax-style-luxury_cards .ultra-home-title::after,
.prowpsite-places-home .home-block-places .ultra-home-section-head--start .ultra-home-title::after {
  margin-inline: 0;
}

/* Rating pill + price level on home place cards */
.prowpsite-places-home .place-card-rating-pill {
  position: absolute;
  inset-block-end: var(--space-sm);
  inset-inline-start: var(--space-sm);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.3rem 0.65rem;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.95);
  color: var(--text-dark);
  font-size: 0.8125rem;
  font-weight: 700;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.18);
  line-height: 1;
}
.prowpsite-places-home .place-card-rating-pill .prowpsite-icon-star {
  color: var(--prowpsite-rating-gold, #b45309);
  fill: var(--prowpsite-rating-gold, #b45309);
}
.prowpsite-places-home .place-card-price-level {
  margin-inline-start: auto;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #16a34a;
  letter-spacing: 0.04em;
}
.prowpsite-places-home .place-card-price-level--solo {
  margin: 0 0 0.35rem;
}
.prowpsite-places-home .place-card-price-muted {
  color: var(--gray-300, #d1d5db);
  font-weight: 500;
}
.prowpsite-places-home .place-card-rating-row {
  align-items: center;
}
.prowpsite-places-home .place-card-rating-row--home-compact {
  gap: var(--space-sm);
  font-size: var(--font-size-sm);
  color: var(--gray-500);
}
.prowpsite-places-home .place-card-rating-row--home-compact .place-card-reviews-count {
  color: var(--gray-500);
}
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra form,
.prowpsite-places-home .ultra-home-search-wrap .prowpsite-search-form-ultra form {
  border-radius: 999px !important;
  padding: 0.65rem 0.75rem 0.65rem 1rem !important;
  gap: var(--space-sm) !important;
  box-shadow: 0 20px 50px rgba(15, 23, 42, 0.14), 0 0 0 1px rgba(15, 23, 42, 0.04) !important;
}
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra input[type="text"],
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra select,
.prowpsite-places-home .ultra-home-search-wrap .prowpsite-search-form-ultra input[type="text"],
.prowpsite-places-home .ultra-home-search-wrap .prowpsite-search-form-ultra select,
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .select2-container .select2-selection--single,
.prowpsite-places-home .ultra-home-search-wrap .prowpsite-search-form-ultra .select2-container .select2-selection--single {
  border-radius: 999px !important;
  min-height: 48px !important;
  border: 1px solid rgba(15,23,42,0.08) !important;
}
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .prowpsite-search-submit button,
.prowpsite-places-home .ultra-home-search-wrap .prowpsite-search-form-ultra .prowpsite-search-submit button {
  border-radius: 999px !important;
  min-height: 48px !important;
  padding-inline: 1.5rem !important;
  font-weight: 700;
}
@media (max-width: 768px) {
  .prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra form,
  .prowpsite-places-home .ultra-home-search-wrap .prowpsite-search-form-ultra form {
    border-radius: var(--radius-xl, 12px) !important;
    flex-wrap: wrap !important;
    padding: var(--space-md) !important;
  }
  .prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra input[type="text"],
  .prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra select,
  .prowpsite-places-home .ultra-home-search-wrap .prowpsite-search-form-ultra input[type="text"],
  .prowpsite-places-home .ultra-home-search-wrap .prowpsite-search-form-ultra select {
    border-radius: var(--radius-lg, 8px) !important;
    min-height: 44px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .prowpsite-places-home .ultra-home-places-grid .place-card:hover,
  .prowpsite-places-home .ultra-home-places-grid .place-card:hover .place-card-img img,
  .prowpsite-places-home .ultra-home-tax-card:hover,
  .prowpsite-places-home .ultra-home-tax-card:hover .ultra-home-tax-card-img {
    transform: none;
  }
}
