/**
 * 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: auto 280px;
}

/* =========================================================================
 * 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-xl); width: 100%; max-width: 100%; margin-left: auto; margin-right: auto; margin-inline: auto; box-sizing: border-box; display: block; overflow-x: clip; --home-section-padding-block: clamp(1.5rem, 2.5vw, 2.5rem); }
body.admin-bar .prowpsite-places-home:not(:has(.home-block-hero-slider:first-child)) { padding-block-start: calc(var(--space-2xl) + 32px); }
.prowpsite-places-home:has(.home-block-hero-slider:first-child) { padding-block-start: 0; margin-block-start: 0; }
/* Astra / theme: strip container padding so hero can sit flush under header */
body.prowpsite-places-home-active #content.site-content,
body.prowpsite-places-home-active .site-content,
body.prowpsite-places-home-active #content.site-content > .ast-container,
body.prowpsite-places-home-active .site-content > .ast-container,
.site-content:has(.prowpsite-places-home),
#content.site-content:has(.prowpsite-places-home),
.ast-container:has(.prowpsite-places-home),
.site-content .ast-container:has(.prowpsite-places-home) {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-inline: 0 !important;
  margin-block-start: 0 !important;
  max-width: none !important;
  width: 100% !important;
}
.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; margin-block-start: 0 !important; padding-block-start: 0 !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:not(.home-block-hero-slider):not(.ultra-home-hero-slider):not(.ultra-home-hero) { padding-block: var(--home-section-padding-block); animation: prowpsite-home-fade 0.5s ease both; }
.prowpsite-places-home .ultra-home-section.home-block-hero-slider,
.prowpsite-places-home .ultra-home-section.ultra-home-hero-slider,
.prowpsite-places-home .home-block-hero-slider,
.prowpsite-places-home .ultra-home-section.ultra-home-hero {
  padding-block: 0;
  margin-block: 0;
  width: 100vw;
  max-width: 100vw;
  margin-inline: calc(50% - 50vw);
  position: relative;
  box-sizing: border-box;
}
.prowpsite-places-home .home-block-hero-slider + .ultra-home-section,
.prowpsite-places-home .ultra-home-section + .ultra-home-section:not(.home-block-hero-slider):not(.ultra-home-hero-slider):not(.ultra-home-hero) {
  padding-block-start: 0;
  margin-block-start: 0;
}
.prowpsite-places-home .ultra-home-section:nth-child(even):not(.ultra-home-hero):not(.ultra-home-empty-state):not(.home-block-hero-slider) { 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: var(--home-section-inner-max, min(80rem, 100%)); width: 100%; margin-left: auto; margin-right: auto; margin-inline: auto; padding-inline: var(--space-lg); box-sizing: border-box; }
@media (min-width: 640px) { .prowpsite-places-home .ultra-home-inner { padding-inline: var(--space-xl); } }
@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):not(.home-block-hero-slider):not(.ultra-home-hero-slider) { padding-block: var(--home-section-padding-block); }
  .prowpsite-places-home .ultra-home-section + .ultra-home-section:not(.home-block-hero-slider):not(.ultra-home-hero-slider):not(.ultra-home-hero) { padding-block-start: 0; }
}

.prowpsite-places-home .prowpsite-list-all-wrap { text-align: center; margin-block-start: var(--space-md); margin-block-end: 0; }

/* Taxonomy blocks: tighter tail spacing (scroll row + show-more + section end) */
.prowpsite-places-home .ultra-home-section.home-block-taxonomy:not(.home-block-hero-slider):not(.ultra-home-hero-slider):not(.ultra-home-hero) {
  --home-tax-section-padding-block: clamp(1rem, 2vw, 1.75rem);
  --tax-card-scroll-width: clamp(8.5rem, 28vw, 10.5rem);
  --tax-card-scroll-gap: var(--space-xs);
  --tax-card-media-max-height: 5rem;
  padding-block: var(--home-tax-section-padding-block) !important;
  height: auto;
  min-height: 0;
  overflow: visible;
}
@media (min-width: 640px) {
  .prowpsite-places-home .ultra-home-section.home-block-taxonomy:not(.home-block-hero-slider):not(.ultra-home-hero-slider):not(.ultra-home-hero) {
    --tax-card-scroll-width: clamp(10rem, 24vw, 12rem);
    --tax-card-scroll-gap: var(--space-sm);
  }
}
@media (min-width: 768px) {
  .prowpsite-places-home .ultra-home-section.home-block-taxonomy:not(.home-block-hero-slider):not(.ultra-home-hero-slider):not(.ultra-home-hero) {
    --tax-card-scroll-width: clamp(10.5rem, 22vw, 12.5rem);
    --home-tax-section-padding-block: clamp(1rem, 2.2vw, 1.75rem);
    --tax-card-media-max-height: 5.25rem;
  }
}
@media (min-width: 1024px) {
  .prowpsite-places-home .ultra-home-section.home-block-taxonomy:not(.home-block-hero-slider):not(.ultra-home-hero-slider):not(.ultra-home-hero) {
    --tax-card-scroll-width: clamp(11rem, 18vw, 14rem);
    --tax-card-scroll-gap: var(--space-md);
    --tax-card-media-max-height: 5.5rem;
  }
}
.prowpsite-places-home .home-block-taxonomy {
  height: auto;
  min-height: 0;
  overflow: visible;
}
.prowpsite-places-home .home-block-taxonomy .ultra-home-tax-grid:not(.ultra-home-tax-scroll) {
  overflow: visible;
}
.prowpsite-places-home .home-block-taxonomy + .ultra-home-section:not(.home-block-hero-slider):not(.ultra-home-hero-slider):not(.ultra-home-hero) {
  padding-block-start: 0;
}
.prowpsite-places-home .home-block-taxonomy .ultra-home-section-head {
  margin-block-end: var(--space-sm);
}
.prowpsite-places-home .home-block-taxonomy .ultra-home-section-head--modern {
  margin-block-end: var(--space-sm);
}
.prowpsite-places-home .home-block-taxonomy .prowpsite-list-all-wrap {
  margin-block-start: var(--space-sm);
  margin-block-end: 0;
}
.prowpsite-places-home .home-block-taxonomy .ultra-home-tax-scroll {
  flex-wrap: nowrap;
  align-content: flex-start;
  align-items: flex-start;
  height: auto;
  max-height: none;
  padding-block-end: var(--space-xs);
}
/* Taxonomy scroll rows must size to one card line — never defer or reserve phantom height. */
.prowpsite-places-home .home-block-taxonomy.prowpsite-home-below-fold {
  content-visibility: visible;
  contain-intrinsic-size: none;
}
.prowpsite-places-home .home-block-taxonomy .ultra-home-tax-grid.ultra-home-tax-scroll {
  display: flex !important;
  flex-flow: row nowrap;
  align-content: flex-start;
  grid-template-columns: unset !important;
  grid-auto-rows: unset;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  overflow-x: auto;
  overflow-y: hidden;
  flex-wrap: nowrap !important;
  gap: var(--tax-card-scroll-gap, var(--space-sm));
}

.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) – per-block column counts via prowpsite-home-block-style (PHP)
 * Scroll mode uses --tax-grid-cols on the element for flex-basis math.
 * ========================================================================= */
.prowpsite-places-home .ultra-home-tax-grid.prowpsite-tax-grid:not(.ultra-home-tax-scroll),
.prowpsite-places-home .ultra-home-tax-grid:not(.ultra-home-tax-scroll) {
  display: grid !important;
  width: 100%;
  min-width: 0;
  gap: var(--space-sm);
  align-items: stretch;
  justify-items: stretch;
}
.prowpsite-places-home .ultra-home-tax-grid:not(.ultra-home-tax-scroll) > * {
  min-width: 0 !important;
  max-width: 100% !important;
  width: auto !important;
  flex: none !important;
}

/* Taxonomy list (pill/chip style); columns_per_row via per-block PHP <style> */
.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; 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-grid.ultra-home-tax-scroll {
  display: flex !important;
  flex-flow: row nowrap;
  grid-template-columns: unset !important;
  grid-auto-rows: unset;
  height: auto;
  min-height: 0;
  max-height: none;
  overflow-y: hidden;
  flex-wrap: nowrap !important;
}
.prowpsite-places-home .ultra-home-tax-scroll { display: flex; flex-flow: row nowrap; align-items: flex-start; align-content: flex-start; flex-wrap: nowrap !important; gap: var(--tax-card-scroll-gap, var(--space-sm)); overflow-x: auto; overflow-y: hidden; height: auto; min-height: 0; max-height: none; padding-block-end: var(--space-xs); 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 var(--tax-card-scroll-width, clamp(8.5rem, 28vw, 10.5rem)); width: var(--tax-card-scroll-width, clamp(8.5rem, 28vw, 10.5rem)); max-width: var(--tax-card-scroll-width, clamp(8.5rem, 28vw, 10.5rem)); min-height: 0; 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-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) – per-block column counts via prowpsite-home-block-style (PHP)
 * ========================================================================= */
.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;
}
.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; }

/* Image overlay card (full-bleed photo, bottom gradient, white title) */
.prowpsite-places-home {
  --overlay-scrim: var(--prowpsite-overlay-scrim, rgba(0, 0, 0, 0.28));
  --overlay-scrim-hover: var(--prowpsite-overlay-scrim-hover, rgba(0, 0, 0, 0.42));
  --overlay-gradient-start: var(--prowpsite-overlay-gradient-start, rgba(0, 0, 0, 0.92));
  --overlay-gradient-mid: var(--prowpsite-overlay-gradient-mid, rgba(0, 0, 0, 0.62));
  --overlay-gradient-end: var(--prowpsite-overlay-gradient-end, transparent);
  --overlay-gradient-height: var(--prowpsite-overlay-gradient-height, 72%);
  --overlay-gradient-height-hover: var(--prowpsite-overlay-gradient-height-hover, 82%);
  --overlay-card-min-height: var(--prowpsite-overlay-card-min-height, 18rem);
  --overlay-card-aspect: var(--prowpsite-overlay-card-aspect, 3 / 4);
  --overlay-text-shadow: var(--prowpsite-overlay-text-shadow, 0 1px 3px rgba(0, 0, 0, 0.7), 0 0 10px rgba(0, 0, 0, 0.35));
}
.prowpsite-places-home .place-card--overlay,
.prowpsite-places-home .place-card.place-card--overlay.bg-white,
.prowpsite-places-home .prowpsite-overlay-card {
  display: flex;
  flex-direction: column;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible;
  min-height: 0;
  height: 100%;
}
.prowpsite-places-home .ultra-home-places-grid .place-card--overlay:hover,
.prowpsite-places-home .ultra-home-places-grid .prowpsite-overlay-card:hover {
  transform: none;
  box-shadow: none;
}
.prowpsite-overlay-card__shell {
  position: relative;
  width: 100%;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: var(--overlay-card-min-height, 18rem);
  height: 100%;
}
.prowpsite-overlay-card__link {
  position: relative;
  display: block;
  width: 100%;
  flex: 1 1 auto;
  aspect-ratio: var(--overlay-card-aspect, 3 / 4);
  min-height: var(--overlay-card-min-height, 18rem);
  border-radius: var(--radius-lg, 0.75rem);
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  background: var(--gray-800, #1f2937);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  transition: box-shadow 0.25s ease;
  isolation: isolate;
}
.prowpsite-overlay-card__link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--overlay-scrim, rgba(0, 0, 0, 0.28));
  pointer-events: none;
  transition: background 0.3s ease;
}
.prowpsite-overlay-card__link:hover {
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}
.prowpsite-overlay-card__link:hover::before {
  background: var(--overlay-scrim-hover, rgba(0, 0, 0, 0.42));
}
.prowpsite-overlay-card__media {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  z-index: 0;
}
.prowpsite-overlay-card__media--placeholder {
  background: linear-gradient(145deg, var(--primary, #6366f1) 0%, var(--gray-800, #1f2937) 100%);
}
.prowpsite-overlay-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease, filter 0.45s ease;
}
.prowpsite-overlay-card__link:hover .prowpsite-overlay-card__img {
  transform: scale(1.03);
  filter: brightness(0.88);
}
.prowpsite-overlay-card__placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm, 0.5rem);
  padding: var(--space-lg, 1rem);
  text-align: center;
  color: rgba(255, 255, 255, 0.9);
}
.prowpsite-overlay-card__letter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}
.prowpsite-overlay-card__gradient {
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
  block-size: var(--overlay-gradient-height, 72%);
  background: linear-gradient(
    to top,
    var(--overlay-gradient-start, rgba(0, 0, 0, 0.92)) 0%,
    var(--overlay-gradient-mid, rgba(0, 0, 0, 0.62)) 52%,
    var(--overlay-gradient-end, transparent) 100%
  );
  pointer-events: none;
  z-index: 2;
  transition: block-size 0.3s ease, background 0.3s ease;
}
.prowpsite-overlay-card__link:hover .prowpsite-overlay-card__gradient {
  block-size: var(--overlay-gradient-height-hover, 82%);
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.96) 0%,
    rgba(0, 0, 0, 0.78) 58%,
    rgba(0, 0, 0, 0.18) 100%
  );
}
.prowpsite-overlay-card__content {
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0.4rem;
  padding-block-end: var(--space-lg, 1rem);
  padding-block-start: var(--space-2xl, 2rem);
  padding-inline: var(--space-lg, 1rem);
  text-align: start;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  pointer-events: none;
}
.prowpsite-overlay-card__content a,
.prowpsite-overlay-card__content button {
  pointer-events: auto;
}
.prowpsite-overlay-card__title {
  margin: 0;
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  font-weight: 700;
  line-height: 1.35;
  color: #fff;
  text-shadow: var(--overlay-text-shadow, 0 1px 3px rgba(0, 0, 0, 0.7));
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.prowpsite-overlay-card__shell--enriched .prowpsite-overlay-card__wishlist {
  position: absolute;
  inset-block-start: var(--space-sm, 0.5rem);
  inset-inline-start: var(--space-sm, 0.5rem);
  inset-inline-end: auto;
  z-index: 6;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
}
.prowpsite-overlay-card__shell--enriched .prowpsite-overlay-card__rating-pill,
.prowpsite-overlay-card__shell--enriched .place-card-rating-pill.prowpsite-overlay-card__rating-pill {
  position: absolute;
  inset-block-start: var(--space-sm, 0.5rem);
  inset-block-end: auto;
  inset-inline-end: var(--space-sm, 0.5rem);
  inset-inline-start: auto;
  z-index: 6;
}
.prowpsite-overlay-card__meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin-block-start: 0.15rem;
}
.prowpsite-overlay-card__meta-row .place-card-chip--overlay {
  margin: 0;
}
.prowpsite-overlay-card__meta-row .prowpsite-overlay-card__meta--city {
  font-size: 0.75rem;
  opacity: 0.94;
}
.prowpsite-overlay-card__type-in-city {
  display: none;
}
.prowpsite-overlay-card__rating-pill .place-card-rating-pill-reviews {
  font-size: 0.6875rem;
  font-weight: 600;
  opacity: 0.82;
  margin-inline-start: 0.15rem;
}
.prowpsite-overlay-card__date {
  font-size: var(--font-size-sm, 0.875rem);
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.2;
  text-shadow: var(--overlay-text-shadow, 0 1px 3px rgba(0, 0, 0, 0.7));
}
.prowpsite-overlay-card__meta {
  font-size: var(--font-size-sm, 0.875rem);
  color: rgba(255, 255, 255, 0.94);
  line-height: 1.35;
  text-shadow: var(--overlay-text-shadow, 0 1px 3px rgba(0, 0, 0, 0.7));
}
.prowpsite-home-carousel-on .prowpsite-cards-carousel-inner .prowpsite-overlay-card-wrapper,
.prowpsite-home-carousel-on .prowpsite-cards-carousel-inner .place-card-wrapper.place-card-style-overlay {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-width: 0;
  scroll-snap-align: start;
}
.prowpsite-places-home .place-card-rating-pill {
  position: absolute;
}
.prowpsite-overlay-card__shell .place-card-rating-pill,
.prowpsite-overlay-card__shell .prowpsite-overlay-card__rating-pill {
  inset-block-end: auto;
}
.prowpsite-overlay-card__content .place-card-chip-row,
.prowpsite-overlay-card__chip-row {
  position: relative;
  z-index: 3;
  margin-block: 0.15rem 0;
}
.prowpsite-overlay-card__content .place-card-chip--overlay,
.prowpsite-overlay-card__chip-row .place-card-chip--overlay {
  background: rgba(0, 0, 0, 0.48);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.42);
  font-size: 0.625rem;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  text-shadow: none;
}
.prowpsite-overlay-card__content a.place-card-chip--overlay:hover,
.prowpsite-overlay-card__chip-row a.place-card-chip--overlay:hover {
  background: rgba(255, 255, 255, 0.94);
  color: var(--text-dark, #0f172a);
}
.prowpsite-overlay-card__title-link {
  color: inherit;
  text-decoration: none;
}
.prowpsite-overlay-card__title-link:hover {
  text-decoration: underline;
}
.prowpsite-overlay-card__link--enriched {
  text-decoration: none;
  color: #fff;
}
.prowpsite-overlay-card__meta-link {
  color: inherit;
  text-decoration: none;
}
.prowpsite-overlay-card__meta-link:hover {
  text-decoration: underline;
}
.prowpsite-overlay-card__meta--city {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.place-card-type-in-city-link--overlay {
  color: rgba(255, 255, 255, 0.94);
  font-size: 0.75rem;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  text-shadow: var(--overlay-text-shadow, 0 1px 3px rgba(0, 0, 0, 0.7));
}
.place-card-type-in-city-link--overlay:hover {
  text-decoration: underline;
}
.place-card-rating-row--overlay .place-card-reviews-count {
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.75rem;
  text-shadow: var(--overlay-text-shadow, 0 1px 3px rgba(0, 0, 0, 0.7));
}
.prowpsite-home-carousel-on .prowpsite-cards-carousel-inner .place-card--overlay,
.prowpsite-home-carousel-on .prowpsite-cards-carousel-inner .prowpsite-overlay-card {
  flex: 1 1 auto;
  min-height: 100%;
}
.prowpsite-home-carousel-on .prowpsite-overlay-card__link {
  min-height: 100%;
}
.prowpsite-home-carousel-on .ultra-home-places-wrap .ultra-home-places-grid.prowpsite-cards-carousel-inner {
  padding-block: var(--space-sm, 0.5rem);
}
.prowpsite-home-carousel-on .prowpsite-overlay-card__link:hover {
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .prowpsite-overlay-card__link,
  .prowpsite-overlay-card__img,
  .prowpsite-overlay-card__gradient,
  .prowpsite-overlay-card__link::before {
    transition: none;
  }
  .prowpsite-overlay-card__link:hover {
    transform: none;
  }
  .prowpsite-overlay-card__link:hover .prowpsite-overlay-card__img {
    transform: none;
    filter: none;
  }
}

/* =========================================================================
 * 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 a,
.prowpsite-home-carousel-on .ultra-home-places-wrap.prowpsite-cards-carousel-mode button,
.prowpsite-home-carousel-on .ultra-home-places-wrap .prowpsite-cards-carousel-inner a,
.prowpsite-home-carousel-on .ultra-home-places-wrap .prowpsite-cards-carousel-inner button {
  cursor: pointer;
  user-select: auto;
  pointer-events: auto;
}
.prowpsite-home-carousel-on .ultra-home-places-wrap.prowpsite-cards-carousel-mode:active { cursor: grabbing; }
@media (max-width: 1023px) {
  .prowpsite-home-carousel-on.prowpsite-carousel-device-pc .ultra-home-places-wrap.prowpsite-cards-carousel-mode { cursor: default; user-select: auto; }
}
@media (min-width: 1024px) {
  .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;
  touch-action: pan-x;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scroll-padding-inline: var(--space-sm);
  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,
.prowpsite-home-carousel-on .ultra-home-places-wrap .prowpsite-cards-carousel-inner .prowpsite-overlay-card-wrapper,
.prowpsite-home-carousel-on .ultra-home-places-wrap .prowpsite-cards-carousel-inner .place-card-wrapper.place-card-style-overlay {
  flex: 0 0 var(--carousel-card-min, clamp(15rem, 85vw, 17.5rem));
  max-width: none !important;
  width: auto !important;
  min-width: 0;
  scroll-snap-align: start;
  touch-action: pan-x pinch-zoom;
}
.prowpsite-home-carousel-on .ultra-home-places-wrap .prowpsite-cards-carousel-inner .place-card-wrapper a,
.prowpsite-home-carousel-on .ultra-home-places-wrap .prowpsite-cards-carousel-inner .prowpsite-generic-card-wrapper a {
  touch-action: pan-x pinch-zoom;
}
/* Carousel item width from panel cols via --carousel-basis-* (set on section in PHP) */
@media (max-width: calc(var(--bp-mobile-sm, 640px) - 1px)) {
  .prowpsite-home-carousel-on[data-carousel-cols-mobile] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .place-card-wrapper,
  .prowpsite-home-carousel-on[data-carousel-cols-mobile] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .place-card-wrapper.col-12,
  .prowpsite-home-carousel-on[data-carousel-cols-mobile] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .prowpsite-generic-card-wrapper,
  .prowpsite-home-carousel-on[data-carousel-cols-mobile] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .prowpsite-overlay-card-wrapper { flex: 0 0 var(--carousel-basis-mobile, var(--carousel-card-min, clamp(15rem, 85vw, 17.5rem))) !important; }
}
@media (min-width: var(--bp-mobile-sm, 640px)) and (max-width: calc(var(--bp-desktop, 1024px) - 1px)) {
  .prowpsite-home-carousel-on[data-carousel-cols-tablet] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .place-card-wrapper,
  .prowpsite-home-carousel-on[data-carousel-cols-tablet] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .place-card-wrapper.col-12,
  .prowpsite-home-carousel-on[data-carousel-cols-tablet] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .prowpsite-generic-card-wrapper,
  .prowpsite-home-carousel-on[data-carousel-cols-tablet] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .prowpsite-overlay-card-wrapper { flex: 0 0 var(--carousel-basis-tablet, var(--carousel-card-tablet, clamp(14rem, 82vw, 16.25rem))) !important; }
}
@media (min-width: var(--bp-desktop, 1024px)) {
  .prowpsite-home-carousel-on[data-carousel-cols-desktop] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .place-card-wrapper,
  .prowpsite-home-carousel-on[data-carousel-cols-desktop] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .place-card-wrapper.col-12,
  .prowpsite-home-carousel-on[data-carousel-cols-desktop] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .prowpsite-generic-card-wrapper,
  .prowpsite-home-carousel-on[data-carousel-cols-desktop] .ultra-home-places-wrap .prowpsite-cards-carousel-inner .prowpsite-overlay-card-wrapper { flex: 0 0 var(--carousel-basis-desktop, var(--carousel-card-desktop, clamp(16.25rem, 32%, 18.75rem))) !important; }
}
@media (max-width: calc(var(--bp-desktop, 1024px) - 1px)) {
  .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%, var(--tax-card-scroll-width, 15rem)), 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 var(--carousel-card-tablet, clamp(14rem, 82vw, 16.25rem)) !important; }
}
@media (min-width: 1024px) {
  .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%, var(--tax-card-scroll-width, 15rem)), 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: var(--touch-target, 2.75rem);
  height: var(--touch-target, 2.75rem);
  min-width: var(--touch-target, 2.75rem);
  min-height: var(--touch-target, 2.75rem);
  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;
}
/* RTL: native dir=rtl scroll track (matches related places Owl carousel) */
[dir="rtl"] .prowpsite-home-carousel-on .ultra-home-places-grid.prowpsite-cards-carousel-inner,
.prowpsite-home-carousel-on .ultra-home-places-grid.prowpsite-cards-carousel-inner[dir="rtl"] {
  direction: rtl;
  flex-direction: row;
}

/* Ensure scroll track wins over inlined cards-critical device rules */
.prowpsite-home-carousel-on.home-block-places .ultra-home-places-wrap.prowpsite-cards-carousel-mode .ultra-home-places-grid.prowpsite-cards-carousel-inner {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--space-sm);
}

/* 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)); }

/* =========================================================================
 * Taxonomy home block carousel (city / type term cards)
 * ========================================================================= */
.prowpsite-tax-carousel-on .prowpsite-tax-carousel-wrap.prowpsite-cards-carousel-mode {
	position: relative;
	overflow: hidden;
	min-width: 0;
}
.prowpsite-tax-carousel-on .prowpsite-tax-grid-wrap.prowpsite-cards-carousel-mode .ultra-home-tax-grid.prowpsite-cards-carousel-inner {
	display: flex !important;
	flex-flow: row nowrap;
	align-items: stretch;
	gap: var(--space-xl, 12px);
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	grid-template-columns: unset !important;
	touch-action: pan-x;
}
.prowpsite-tax-carousel-on .prowpsite-tax-grid-wrap.prowpsite-cards-carousel-mode .ultra-home-tax-grid.prowpsite-cards-carousel-inner::-webkit-scrollbar {
	display: none;
}
.prowpsite-tax-carousel-on .prowpsite-cards-carousel-inner .ultra-home-tax-card {
	flex: 0 0 var(--carousel-basis-mobile, clamp(8.5rem, 28vw, 10.5rem));
	width: var(--carousel-basis-mobile, clamp(8.5rem, 28vw, 10.5rem));
	max-width: var(--carousel-basis-mobile, clamp(8.5rem, 28vw, 10.5rem));
	min-width: 0;
	scroll-snap-align: start;
}
@media (min-width: 640px) {
	.prowpsite-tax-carousel-on[data-carousel-cols-mobile] .prowpsite-cards-carousel-inner .ultra-home-tax-card {
		flex-basis: var(--carousel-basis-mobile, clamp(8.5rem, 28vw, 10.5rem)) !important;
		width: var(--carousel-basis-mobile, clamp(8.5rem, 28vw, 10.5rem)) !important;
		max-width: var(--carousel-basis-mobile, clamp(8.5rem, 28vw, 10.5rem)) !important;
	}
}
@media (min-width: 768px) {
	.prowpsite-tax-carousel-on[data-carousel-cols-tablet] .prowpsite-cards-carousel-inner .ultra-home-tax-card {
		flex-basis: var(--carousel-basis-tablet, clamp(10rem, 24vw, 12rem)) !important;
		width: var(--carousel-basis-tablet, clamp(10rem, 24vw, 12rem)) !important;
		max-width: var(--carousel-basis-tablet, clamp(10rem, 24vw, 12rem)) !important;
	}
}
@media (min-width: 1024px) {
	.prowpsite-tax-carousel-on[data-carousel-cols-desktop] .prowpsite-cards-carousel-inner .ultra-home-tax-card {
		flex-basis: var(--carousel-basis-desktop, clamp(11rem, 18vw, 14rem)) !important;
		width: var(--carousel-basis-desktop, clamp(11rem, 18vw, 14rem)) !important;
		max-width: var(--carousel-basis-desktop, clamp(11rem, 18vw, 14rem)) !important;
	}
}
.prowpsite-tax-carousel-on.home-block-taxonomy .ultra-home-inner { position: relative; }
.prowpsite-tax-carousel-on.home-block-taxonomy .prowpsite-home-carousel-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	min-width: 2.75rem;
	height: 2.75rem;
	min-height: 2.75rem;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.95);
	color: var(--text-dark, #0f172a);
	box-shadow: 0 4px 14px rgba(15, 23, 42, 0.15);
	cursor: pointer;
}
.prowpsite-tax-carousel-on.home-block-taxonomy .prowpsite-home-carousel-prev { inset-inline-start: 0; }
.prowpsite-tax-carousel-on.home-block-taxonomy .prowpsite-home-carousel-next { inset-inline-end: 0; }
[dir="rtl"] .prowpsite-tax-carousel-on .ultra-home-tax-grid.prowpsite-cards-carousel-inner,
.prowpsite-tax-carousel-on .ultra-home-tax-grid.prowpsite-cards-carousel-inner[dir="rtl"] {
	direction: rtl;
}

/* Taxonomy carousel device gates (PC / Mobile / Both) — grid fallback off-device */
@media (max-width: calc(var(--bp-desktop, 1024px) - 1px)) {
	.prowpsite-tax-carousel-on.prowpsite-carousel-device-pc .prowpsite-tax-carousel-wrap.prowpsite-cards-carousel-mode {
		cursor: default;
		user-select: auto;
	}
	.prowpsite-tax-carousel-on.prowpsite-carousel-device-pc .ultra-home-tax-grid.prowpsite-cards-carousel-inner {
		display: grid !important;
		flex-flow: unset;
		overflow-x: visible !important;
		grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--tax-card-scroll-width, 10rem)), 1fr));
		scroll-snap-type: none;
	}
	.prowpsite-tax-carousel-on.prowpsite-carousel-device-pc .prowpsite-cards-carousel-inner .ultra-home-tax-card {
		flex: none !important;
		width: auto !important;
		max-width: none !important;
	}
	.prowpsite-tax-carousel-on.prowpsite-carousel-device-pc .prowpsite-home-carousel-nav,
	.prowpsite-tax-carousel-on.prowpsite-carousel-device-pc .prowpsite-carousel-dots {
		display: none !important;
	}
}
@media (min-width: var(--bp-desktop, 1024px)) {
	.prowpsite-tax-carousel-on.prowpsite-carousel-device-mobile .prowpsite-tax-carousel-wrap.prowpsite-cards-carousel-mode {
		cursor: default;
		user-select: auto;
	}
	.prowpsite-tax-carousel-on.prowpsite-carousel-device-mobile .ultra-home-tax-grid.prowpsite-cards-carousel-inner {
		display: grid !important;
		flex-flow: unset;
		overflow-x: visible !important;
		grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--tax-card-scroll-width, 10rem)), 1fr));
		scroll-snap-type: none;
	}
	.prowpsite-tax-carousel-on.prowpsite-carousel-device-mobile .prowpsite-cards-carousel-inner .ultra-home-tax-card {
		flex: none !important;
		width: auto !important;
		max-width: none !important;
	}
	.prowpsite-tax-carousel-on.prowpsite-carousel-device-mobile .prowpsite-home-carousel-nav,
	.prowpsite-tax-carousel-on.prowpsite-carousel-device-mobile .prowpsite-carousel-dots {
		display: none !important;
	}
}

/* =========================================================================
 * 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 .home-block-hero-slider .prowpsite-hero-slide,
.prowpsite-places-home .home-block-hero-slider .ultra-home-hero {
  margin-block: 0;
  padding-block: 0;
  padding-inline: var(--space-lg);
}
.prowpsite-places-home .home-block-hero-slider .ultra-home-hero-inner {
  gap: var(--space-xl);
  padding-block: 0;
  padding-inline: var(--space-md);
  max-width: var(--hero-inner-max, min(60rem, 92vw));
}
.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; position: relative; z-index: 5; overflow: visible; }
.prowpsite-places-home .prowpsite-hero-lazy { background-image: none !important; }
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .prowpsite-search-field { flex: 1 1 0; min-width: 0; }
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .prowpsite-search-field.prowpsite-search-what { flex: 1.2 1 0; }
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .prowpsite-search-select-wrap { width: 100%; min-height: var(--touch-target, 2.75rem); }
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .select2-container { width: 100% !important; }
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .select2-container .select2-selection--single {
  display: flex;
  align-items: center;
  min-height: var(--touch-target, 2.75rem);
  height: auto;
}
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .select2-container .select2-selection__rendered { line-height: 1.4; padding-inline-start: 0; }
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .select2-container .select2-selection__arrow { height: 100%; top: 0; }
.prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .prowpsite-search-field.is-loading { opacity: 0.72; pointer-events: none; }
.prowpsite-places-home .prowpsite-search-form-ultra .prowpsite-search-type-hint { margin: 0.35rem 0 0; font-size: 0.8125rem; line-height: 1.4; color: var(--prowpsite-gray-600, #4b5563); }
.prowpsite-places-home .prowpsite-search-form-ultra .prowpsite-search-type-hint.is-error { color: #b91c1c; }
.prowpsite-places-home .prowpsite-search-form-ultra .prowpsite-search-retry { margin-top: 0.35rem; min-height: var(--touch-target, 2.75rem); padding: 0.35rem 0.75rem; border: 1px solid currentColor; border-radius: 999px; background: transparent; cursor: pointer; font-size: 0.875rem; font-weight: 600; }
.prowpsite-places-home .prowpsite-search-form-ultra .prowpsite-search-field .select2-container--disabled .select2-selection--single { opacity: 0.65; cursor: not-allowed; }
.prowpsite-places-home .select2-container--open { z-index: 99999 !important; }
.prowpsite-places-home .select2-dropdown { z-index: 99999 !important; border-radius: var(--radius-lg, 8px); box-shadow: 0 12px 40px rgba(15, 23, 42, 0.18); }
.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 .home-block-hero-slider .ultra-home-hero-inner { padding-inline: var(--space-sm); padding-block: 0; gap: var(--space-lg); }
  .prowpsite-places-home .home-block-hero-slider .ultra-home-hero,
  .prowpsite-places-home .home-block-hero-slider .prowpsite-hero-slide { padding-block: 0; padding-inline: var(--space-md); }
  .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); flex-wrap: wrap !important; }
  .prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .prowpsite-search-field,
  .prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .prowpsite-search-submit { flex: 1 1 100%; }
  .prowpsite-places-home .ultra-home-hero-search .prowpsite-search-form-ultra .prowpsite-search-submit button { width: 100%; }
}

/* =========================================================================
 * Search section (standalone block)
 * ========================================================================= */
.prowpsite-places-home .ultra-home-search-section { padding-block: var(--home-section-padding-block); }
.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: 0; margin-block: 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: var(--hero-height-compact, clamp(280px, 42vh, 480px)); }
.prowpsite-places-home .hero-height-standard .prowpsite-hero-slide { min-height: var(--hero-height, clamp(360px, 65vh, 720px)); }
.prowpsite-places-home .hero-height-tall .prowpsite-hero-slide { min-height: clamp(480px, 88vh, 900px); }
.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: var(--touch-target, 2.75rem);
  height: var(--touch-target, 2.75rem);
  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 – compact luxury v2 */
.prowpsite-places-home .ultra-home-tax-card--luxury.ultra-home-tax-card--compact-v2 {
  border-radius: var(--radius-lg, 10px);
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.07);
  border: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
  transition: box-shadow 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}
.prowpsite-places-home .ultra-home-tax-card--luxury.ultra-home-tax-card--compact-v2:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
  border-color: color-mix(in srgb, var(--primary) 42%, var(--border));
}
.prowpsite-places-home .ultra-home-tax-card--luxury .ultra-home-tax-card-link:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}
.prowpsite-places-home .ultra-home-tax-card-media {
  position: relative;
  overflow: hidden;
  min-height: 0;
  flex: 0 0 auto;
  background: linear-gradient(145deg, color-mix(in srgb, var(--primary) 12%, #fff), color-mix(in srgb, var(--primary) 6%, var(--gray-100, #f1f5f9)));
}
.prowpsite-places-home .ultra-home-tax-card--luxury.ultra-home-tax-card--has-image .ultra-home-tax-card-media {
  aspect-ratio: 16 / 10;
  width: 100%;
  min-height: 0;
}
.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,
.prowpsite-places-home .ultra-home-tax-card--destination.ultra-home-tax-card--has-letter .ultra-home-tax-card-media,
.prowpsite-places-home .ultra-home-tax-card--destination.ultra-home-tax-card--has-icon .ultra-home-tax-card-media,
.prowpsite-places-home .ultra-home-tax-card--category.ultra-home-tax-card--has-icon .ultra-home-tax-card-media,
.prowpsite-places-home .ultra-home-tax-card--category.ultra-home-tax-card--has-letter .ultra-home-tax-card-media {
  aspect-ratio: unset;
  height: clamp(3.25rem, 8vw, 4.25rem);
  max-height: 4.25rem;
  min-height: 3.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-xs) var(--space-sm);
  background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 16%, #fff) 0%, color-mix(in srgb, var(--primary) 8%, var(--gray-50, #f8fafc)) 55%, color-mix(in srgb, var(--primary) 4%, #fff) 100%);
}
.prowpsite-places-home .ultra-home-tax-card-icon-wrap {
  width: 52px;
  height: 52px;
  min-width: 52px;
  min-height: 52px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: var(--primary);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.1);
  border: 1px solid color-mix(in srgb, var(--primary) 12%, transparent);
}
.prowpsite-places-home .ultra-home-tax-card-icon--svg {
  width: 28px;
  height: 28px;
  display: block;
  stroke: currentColor;
  flex-shrink: 0;
}
.prowpsite-places-home .ultra-home-tax-card--luxury .ultra-home-tax-card-icon {
  font-size: 1.5rem;
  line-height: 1;
  margin: 0;
  color: var(--primary);
}
.prowpsite-places-home .ultra-home-tax-card-letter {
  width: 52px;
  height: 52px;
  min-width: 52px;
  min-height: 52px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font, 'Tajawal', sans-serif);
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 800;
  color: var(--primary);
  background: #fff;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.1);
  border: 1px solid color-mix(in srgb, var(--primary) 12%, transparent);
  overflow: visible;
  text-align: center;
  flex-shrink: 0;
}
.prowpsite-places-home .ultra-home-tax-card--luxury .ultra-home-tax-card-inner {
  padding: var(--space-sm) var(--space-md) var(--space-md);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  flex: 1 1 auto;
}
.prowpsite-places-home .ultra-home-tax-card--luxury .ultra-home-tax-name {
  font-weight: 700;
  font-size: clamp(0.875rem, 1.6vw, 0.95rem);
  color: var(--text-dark);
  display: block;
  line-height: 1.35;
  margin: 0;
}
.prowpsite-places-home .ultra-home-tax-card--luxury .ultra-home-tax-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0.2rem 0.65rem;
  border-radius: var(--radius-full);
  background: color-mix(in srgb, var(--primary) 11%, var(--gray-100, #f1f5f9));
  color: var(--gray-600, #64748b);
  font-size: var(--font-size-sm);
  font-weight: 600;
  line-height: 1.2;
}
.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-scroll .ultra-home-tax-card--luxury {
  flex: 0 0 var(--tax-card-scroll-width, clamp(8.5rem, 28vw, 10.5rem));
  width: var(--tax-card-scroll-width, clamp(8.5rem, 28vw, 10.5rem));
  max-width: var(--tax-card-scroll-width, clamp(8.5rem, 28vw, 10.5rem));
  min-height: 0;
  scroll-snap-align: start;
}
/* Luxury cards in grid mode: compact cells, respect cols-N / data-tax-cols */
.prowpsite-places-home .ultra-home-tax-grid:not(.ultra-home-tax-scroll) .ultra-home-tax-card--luxury {
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
@media (prefers-reduced-motion: reduce) {
  .prowpsite-places-home .ultra-home-tax-card--luxury:hover,
  .prowpsite-places-home .ultra-home-tax-card--luxury.ultra-home-tax-card--compact-v2:hover {
    transform: none;
  }
}

.prowpsite-places-home .ultra-home-tax-card-placeholder { width: 100%; height: 100%; min-height: 0; 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-wishlist {
  color: var(--gray-600, #4b5563);
}
.prowpsite-places-home .place-card-wishlist .prowpsite-icon-heart,
.prowpsite-places-home .place-card-wishlist svg {
  stroke: var(--gray-600, #4b5563);
  fill: none;
}
.prowpsite-places-home .place-card-wishlist:hover,
.prowpsite-places-home .place-card-wishlist.is-active,
.prowpsite-places-home .place-card-wishlist[aria-pressed="true"] {
  color: #dc2626;
}
.prowpsite-places-home .place-card-wishlist:hover .prowpsite-icon-heart,
.prowpsite-places-home .place-card-wishlist:hover svg,
.prowpsite-places-home .place-card-wishlist.is-active .prowpsite-icon-heart,
.prowpsite-places-home .place-card-wishlist[aria-pressed="true"] .prowpsite-icon-heart,
.prowpsite-places-home .place-card-wishlist.is-active svg,
.prowpsite-places-home .place-card-wishlist[aria-pressed="true"] svg {
  stroke: #dc2626;
}
.prowpsite-places-home .place-card-wishlist.is-active .prowpsite-icon-heart,
.prowpsite-places-home .place-card-wishlist[aria-pressed="true"] .prowpsite-icon-heart,
.prowpsite-places-home .place-card-wishlist.is-active svg,
.prowpsite-places-home .place-card-wishlist[aria-pressed="true"] svg {
  fill: #dc2626;
}
.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: var(--hero-height, clamp(360px, 65vh, 720px)); }
.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:not(.ultra-home-tax-card--has-letter):not(.ultra-home-tax-card--has-icon) .ultra-home-tax-card-media,
.prowpsite-places-home .ultra-home-tax-card--destination:not(.ultra-home-tax-card--has-letter):not(.ultra-home-tax-card--has-icon) .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,
  .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: var(--radius-lg, 8px) !important;
    min-height: 44px !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 {
    min-height: 44px !important;
    width: 100%;
  }
}
@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;
  }
}
