/* Canonical v2 publication: approved subset, centralized and component-scoped.
 * Literal colors occur only in primitive definitions. Scoped roles prevent legacy root token drift. */
.uf-nearby-carousel {
  --uf-oxblood: #6f2932;
  --uf-teal-700: #00686c;
  --uf-status-success-fg: var(--uf-teal-700);
  --uf-oxblood-700: var(--uf-oxblood);
  --uf-neutral-0: #ffffff;
  --uf-neutral-100: #ffffff;
  --uf-neutral-200: #eeeae9;
  --uf-neutral-500: #837f7e;
  --uf-neutral-600: #6a6665;
  --uf-neutral-900: #1e1b1a;
  --uf-surface-page: var(--uf-neutral-100);
  --uf-surface-card: var(--uf-neutral-0);
  --uf-surface-sunken: var(--uf-neutral-200);
  --uf-text-default: var(--uf-neutral-900);
  --uf-text-muted: var(--uf-neutral-600);
  --uf-border-control: var(--uf-neutral-500);
  --uf-action-primary: var(--uf-oxblood-700);
  --uf-action-subtle-hover: var(--uf-neutral-200);
  --uf-action-disabled-bg: var(--uf-neutral-200);
  --uf-action-disabled-fg: var(--uf-neutral-500);
  --uf-selection-subtle-bg: var(--uf-neutral-200);
  --uf-focus-ring: var(--uf-neutral-900);
  --uf-space-1: 4px;
  --uf-space-2: 8px;
  --uf-space-3: 12px;
  --uf-space-4: 16px;
  --uf-space-5: 20px;
  --uf-space-6: 24px;
  --uf-space-8: 32px;
  --uf-space-10: 40px;
  --uf-space-12: 48px;
  --uf-space-16: 64px;
  --uf-space-20: 80px;
  --uf-space-24: 96px;
  --uf-radius-sm: 6px;
  --uf-radius-md: 8px;
  --uf-radius-lg: 12px;
  --uf-radius-xl: 24px;
  --uf-radius-full: 9999px;
  --uf-carousel-control-target: 44px;
  --uf-carousel-arrow-visual: 32px;
  --uf-control-sm: 36px;
  --uf-control-md: 48px;
  --uf-control-lg: 56px;
  --uf-icon-sm: 16px;
  --uf-icon-md: 20px;
  --uf-icon-lg: 24px;
  --uf-stroke-1: 1px;
  --uf-stroke-2: 2px;
  --uf-font-sans: Manrope, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --uf-heading-lg-size: 22px;
  --uf-heading-lg-leading: 28px;
  --uf-heading-lg-weight: 600;
  --uf-heading-lg-tracking: -0.01em;
  --uf-heading-xs-size: 15px;
  --uf-heading-xs-leading: 20px;
  --uf-heading-xs-weight: 600;
  --uf-heading-xs-tracking: 0;
  --uf-body-sm-size: 14px;
  --uf-body-sm-leading: 20px;
  --uf-body-sm-weight: 400;
  --uf-body-sm-tracking: 0;
  --uf-label-sm-size: 12px;
  --uf-label-sm-leading: 16px;
  --uf-label-sm-weight: 600;
  --uf-label-sm-tracking: 0;
}

.uf-nearby-carousel {
  container: uf-nearby / inline-size;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--uf-space-4);
  min-width: 0;
  margin-block: var(--uf-space-12);
  background: var(--uf-surface-page);
  color: var(--uf-text-default);
  font-family: var(--uf-font-sans);
  font-weight: 400;
  text-align: start;
}
.uf-nearby-carousel *,
.uf-nearby-carousel *::before,
.uf-nearby-carousel *::after { box-sizing: border-box; }
.uf-nearby-carousel [hidden] { display: none !important; }
.uf-nearby-carousel .uf-nearby-carousel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--uf-space-4);
}
.uf-nearby-carousel .uf-nearby-carousel__title {
  margin: 0;
  color: var(--uf-text-default);
  font: var(--uf-heading-lg-weight) var(--uf-heading-lg-size) / var(--uf-heading-lg-leading) var(--uf-font-sans);
  letter-spacing: var(--uf-heading-lg-tracking);
}
.uf-nearby-carousel .uf-nearby-carousel__controls { display: flex; flex: none; }
.uf-nearby-carousel .uf-nearby-carousel__arrow {
  display: grid;
  place-items: center;
  position: static;
  width: var(--uf-carousel-control-target);
  height: var(--uf-carousel-control-target);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--uf-radius-full);
  background: transparent;
  color: var(--uf-text-default);
  box-shadow: none;
  cursor: pointer;
  font: var(--uf-label-sm-weight) var(--uf-label-sm-size) / var(--uf-label-sm-leading) var(--uf-font-sans);
  transition: none;
}
.uf-nearby-carousel .uf-nearby-carousel__arrow > span {
  display: grid;
  place-items: center;
  width: var(--uf-carousel-arrow-visual);
  height: var(--uf-carousel-arrow-visual);
  border: var(--uf-stroke-1) solid var(--uf-border-control);
  border-radius: var(--uf-radius-full);
  background: var(--uf-surface-card);
}
.uf-nearby-carousel .uf-nearby-carousel__arrow svg { width: var(--uf-icon-sm); height: var(--uf-icon-sm); }
.uf-nearby-carousel .uf-nearby-carousel__arrow:enabled:hover > span { background: var(--uf-action-subtle-hover); }
.uf-nearby-carousel .uf-nearby-carousel__arrow:enabled:active > span { background: var(--uf-selection-subtle-bg); }
.uf-nearby-carousel .uf-nearby-carousel__arrow:focus-visible { outline: none; }
.uf-nearby-carousel .uf-nearby-carousel__arrow:focus-visible > span { outline: var(--uf-stroke-2) solid var(--uf-focus-ring); outline-offset: var(--uf-stroke-2); }
.uf-nearby-carousel .uf-nearby-carousel__arrow:disabled { color: var(--uf-action-disabled-fg); cursor: default; opacity: 1; }
.uf-nearby-carousel .uf-nearby-carousel__arrow:disabled > span { border-color: var(--uf-action-disabled-bg); background: var(--uf-surface-card); }
.uf-nearby-carousel .uf-nearby-carousel__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - var(--uf-space-6) * 3) / 4);
  gap: var(--uf-space-6);
  align-items: start;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: var(--uf-space-1);
  list-style: none;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding: var(--uf-space-1);
  scroll-behavior: auto;
  scrollbar-width: none;
}
.uf-nearby-carousel .uf-nearby-carousel__track::-webkit-scrollbar { display: none; }
.uf-nearby-carousel .uf-nearby-carousel__item { min-width: 0; margin: 0; padding: 0; list-style: none; scroll-snap-align: start; }
.uf-nearby-carousel.uf-nearby-carousel--grid .uf-nearby-carousel__track {
  grid-auto-flow: row;
  grid-auto-columns: auto;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: visible;
  scroll-snap-type: none;
  row-gap: var(--uf-space-8);
}
.uf-nearby-carousel .uf-nearby-card {
  position: relative;
  isolation: isolate;
  display: grid;
  align-content: start;
  gap: var(--uf-space-3);
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--uf-radius-lg);
  background: var(--uf-surface-card);
  box-shadow: none;
  transform: none;
}
.uf-nearby-carousel .uf-nearby-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: var(--uf-radius-lg);
  overflow: hidden;
  background: var(--uf-surface-sunken);
}
.uf-nearby-carousel .uf-nearby-card__image { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.uf-nearby-carousel .uf-nearby-card__placeholder { display: grid; place-items: center; height: 100%; color: var(--uf-text-muted); }
.uf-nearby-carousel .uf-nearby-card__placeholder svg { width: var(--uf-icon-lg); height: var(--uf-icon-lg); }
.uf-nearby-carousel .uf-nearby-card__body { display: grid; gap: var(--uf-space-1); min-width: 0; overflow: visible; }
.uf-nearby-carousel .uf-nearby-card__head { display: flex; align-items: start; justify-content: space-between; flex-wrap: wrap; gap: var(--uf-space-2); }
.uf-nearby-carousel .uf-nearby-card__title {
  flex: 1 1 50%;
  min-width: 0;
  margin: 0;
  font: var(--uf-heading-xs-weight) var(--uf-heading-xs-size) / var(--uf-heading-xs-leading) var(--uf-font-sans);
  letter-spacing: var(--uf-heading-xs-tracking);
  overflow-wrap: anywhere;
}
.uf-nearby-carousel .uf-nearby-card__link,
.uf-nearby-carousel .uf-nearby-card__link:visited,
.uf-nearby-carousel .uf-nearby-card__link:hover {
  position: static;
  color: var(--uf-text-default);
  font: inherit;
  text-decoration: none;
}
.uf-nearby-carousel .uf-nearby-card__link::after { content: ""; position: absolute; inset: 0; border-radius: var(--uf-radius-lg); }
.uf-nearby-carousel .uf-nearby-card__link:focus-visible { outline: none; }
.uf-nearby-carousel .uf-nearby-card__link:focus-visible::after { outline: var(--uf-stroke-2) solid var(--uf-focus-ring); outline-offset: var(--uf-stroke-2); }
.uf-nearby-carousel .uf-nearby-card__rating,
.uf-nearby-carousel .uf-nearby-card__meta,
.uf-nearby-carousel .uf-nearby-card__address {
  margin: 0;
  font: var(--uf-body-sm-weight) var(--uf-body-sm-size) / var(--uf-body-sm-leading) var(--uf-font-sans);
  letter-spacing: var(--uf-body-sm-tracking);
}
.uf-nearby-carousel .uf-nearby-card__meta,
.uf-nearby-carousel .uf-nearby-card__address { color: var(--uf-text-muted); white-space: normal; overflow: visible; overflow-wrap: anywhere; height: auto; max-height: none; }
.uf-nearby-carousel .uf-nearby-card__rating { white-space: nowrap; flex: none; color: var(--uf-text-default); }
.uf-nearby-carousel .uf-nearby-card__rating > span[aria-hidden] { display: inline-flex; align-items: center; gap: var(--uf-space-1); }
.uf-nearby-carousel .uf-nearby-card__rating svg { width: var(--uf-icon-sm); height: var(--uf-icon-sm); }
.uf-nearby-carousel .uf-nearby-card__rating b { font-weight: 600; }
.uf-nearby-carousel .uf-nearby-card__count { color: var(--uf-text-muted); }
.uf-nearby-carousel .uf-nearby-card__hours {
  display: flex;
  align-items: center;
  gap: var(--uf-space-1);
  margin: 0;
  color: var(--uf-text-muted);
  font: 500 var(--uf-body-sm-size) / var(--uf-body-sm-leading) var(--uf-font-sans);
}
.uf-nearby-carousel .uf-nearby-card__hours--open { color: var(--uf-status-success-fg); font-weight: 600; }
.uf-nearby-carousel .uf-nearby-card__hours svg { display: block; width: var(--uf-icon-sm); height: var(--uf-icon-sm); }
.uf-nearby-carousel button.uf-nearby-card__save.like-icon {
  position: absolute;
  inset: var(--uf-space-2) var(--uf-space-2) auto auto;
  z-index: 1;
  display: grid;
  place-items: center;
  width: var(--uf-control-sm);
  height: var(--uf-control-sm);
  margin: 0;
  padding: 0;
  border: var(--uf-stroke-1) solid var(--uf-surface-card);
  border-radius: var(--uf-radius-full);
  background: var(--uf-surface-card);
  color: var(--uf-text-default);
  box-shadow: none;
  opacity: 1;
  cursor: pointer;
  font: var(--uf-label-sm-weight) var(--uf-label-sm-size) / var(--uf-label-sm-leading) var(--uf-font-sans);
  transition: none;
  transform: none;
}
/* Neutralize only the inherited native bookmark artwork on this real button. */
.uf-nearby-carousel button.uf-nearby-card__save.like-icon::before,
.uf-nearby-carousel button.uf-nearby-card__save.like-icon::after { content: none !important; display: none !important; }
.uf-nearby-carousel button.uf-nearby-card__save.like-icon:hover { background: var(--uf-action-subtle-hover); border-color: var(--uf-action-subtle-hover); }
.uf-nearby-carousel button.uf-nearby-card__save.like-icon:active { background: var(--uf-selection-subtle-bg); }
.uf-nearby-carousel button.uf-nearby-card__save.like-icon[aria-pressed="true"] { color: var(--uf-action-primary); }
.uf-nearby-carousel button.uf-nearby-card__save.like-icon:focus-visible { outline: var(--uf-stroke-2) solid var(--uf-focus-ring); outline-offset: var(--uf-stroke-2); }
.uf-nearby-carousel .uf-nearby-card__save svg { display: block; width: var(--uf-icon-sm); height: var(--uf-icon-sm); }
.uf-nearby-carousel .uf-nearby-card__saved-icon,
.uf-nearby-carousel .uf-nearby-card__save[aria-pressed="true"] .uf-nearby-card__unsaved-icon { display: none; }
.uf-nearby-carousel .uf-nearby-card__save[aria-pressed="true"] .uf-nearby-card__saved-icon { display: block; }
.uf-nearby-carousel .uf-nearby-carousel__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
@container uf-nearby (width < 880px) {
  .uf-nearby-carousel .uf-nearby-carousel__track { grid-auto-columns: calc((100% - var(--uf-space-6) * 2) / 3); }
}
@container uf-nearby (width < 600px) {
  .uf-nearby-carousel .uf-nearby-carousel__track { grid-auto-columns: 78%; gap: var(--uf-space-4); }
  .uf-nearby-carousel.uf-nearby-carousel--grid .uf-nearby-carousel__track { grid-template-columns: minmax(0, 1fr); grid-auto-columns: auto; }
}
@media (max-width: 767px) { .uf-nearby-carousel { margin-block: var(--uf-space-8); } }
@media (hover: none) { .uf-nearby-carousel .uf-nearby-carousel__controls { display: none; } }
