/* Generated by Dudaport: layout for Dudaport's widgets (reviews carousel, radius map).
   Carousel selectors are scoped under `.lsw-reviews .lsw-viewport` so they outrank the Duda widget CSS that still styles
   the same classes (e.g. `.ds-google-reviews .reviews-container { flex-wrap: wrap }`), whichever stylesheet loads last. */
/* Block layout and min-width: 0 so the row of slides never widens the widget or the Duda column it sits in. */
.lsw-reviews.lsw-reviews { --lsw-gap: 16px; display: block; position: relative; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; }
.lsw-reviews .lsw-viewport { position: relative; width: 100%; min-width: 0; }
.lsw-reviews .lsw-viewport .lsw-track { display: flex; flex-wrap: nowrap; align-items: stretch; gap: var(--lsw-gap); margin-top: 0; width: 100%;
  overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.lsw-reviews .lsw-viewport .lsw-track::-webkit-scrollbar { display: none; }
.lsw-reviews .lsw-viewport .lsw-track > .lsw-slide { flex: 0 0 calc((100% - (var(--lsw-per-view, 1) - 1) * var(--lsw-gap)) / var(--lsw-per-view, 1));
  width: auto; min-width: 0; scroll-snap-align: start; box-sizing: border-box; }
.lsw-reviews .lsw-viewport .lsw-track.lsw-grid { display: grid; grid-template-columns: repeat(var(--lsw-per-view, 3), minmax(0, 1fr)); overflow: visible; }
@media (max-width: 767px) {
  .lsw-reviews .lsw-viewport .lsw-track > .lsw-slide { flex-basis: 100%; }
  .lsw-reviews .lsw-viewport .lsw-track.lsw-grid { grid-template-columns: 1fr; }
}
.lsw-reviews .lsw-prev, .lsw-reviews .lsw-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 36px; height: 36px;
  border: 0; border-radius: 50%; background: rgba(0, 0, 0, .45); color: #fff; font-size: 24px; line-height: 36px; cursor: pointer; padding: 0; }
@media (min-width: 768px) { .lsw-reviews .lsw-viewport[data-arrows="true"] { padding: 0 44px; box-sizing: border-box; } } /* arrows beside the review */
@media (max-width: 767px) { .lsw-reviews .lsw-prev, .lsw-reviews .lsw-next { width: 28px; height: 28px; font-size: 20px; line-height: 28px; } }
.lsw-reviews .lsw-prev { left: 0; } .lsw-reviews .lsw-next { right: 0; }
.lsw-prev:focus-visible, .lsw-next:focus-visible, .lsw-dot:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.lsw-reviews .lsw-dots { display: flex; justify-content: center; gap: 8px; margin-top: 12px; }
/* Dots carry a light and a dark ring so they stay visible on any section background, light or dark. */
.lsw-reviews .lsw-dot { width: 10px; height: 10px; border-radius: 50%; border: 0; padding: 0; cursor: pointer;
  background: rgba(255, 255, 255, .75); box-shadow: 0 0 0 1px rgba(0, 0, 0, .35); }
.lsw-reviews .lsw-dot[aria-current="true"] { background: #333; box-shadow: 0 0 0 2px rgba(255, 255, 255, .9); transform: scale(1.2); }
/* Stars: Duda's `.star-rating i` rules set colour and size where its widget CSS is present; these are the fallback. */
.lsw-reviews .star-rating .lsw-star { display: inline-flex; color: #F6BB06; font-size: 16px; margin-right: 2px; }
.lsw-reviews .lsw-star svg { display: block; }
.lsw-reviews-footer { margin-top: 12px; text-align: center; }
.lsw-review-button { margin-left: 8px; }
.lsw-map { min-height: 300px; }
.lsw-map-embed { width: 100%; min-height: 300px; height: 100%; border: 0; }
