/* Elfsight Google Reviews Widget Styles */

/* Main container */
.elfsight-app-735b6449-7208-46e0-a917-36de35315579 {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
}

.es-embed-root {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
    font-size: 14px;
    line-height: 1.4;
    color: #333;
}

.es-main-container {
    position: relative;
}

/* Background styles */
.es-widget-background-container {
    background: transparent;
    border-radius: 0;
}

.es-widget-background-wrapper {
    padding: 0;
}

.es-background-container {
    border-radius: 0;
    position: relative;
}

.es-background-base,
.es-background-overlay {
    display: block;
    background-color: transparent;
}

/* Carousel layout */
.es-carousel-layout-container {
    position: relative;
}

.es-carousel-layout-wrapper {
    width: 100%;
}

/* Outer shell: visible so side arrows (left/right: -16px) are not clipped */
.es-carousel-container {
    position: relative;
    overflow: visible;
}

.es-carousel-outer {
    position: relative;
}

/* Widget root chain: do not clip arrows that sit outside the swiper track */
.elfsight-app-735b6449-7208-46e0-a917-36de35315579,
.elfsight-app-735b6449-7208-46e0-a917-36de35315579 .es-embed-root,
.elfsight-app-735b6449-7208-46e0-a917-36de35315579 .es-main-container,
.elfsight-app-735b6449-7208-46e0-a917-36de35315579 .es-carousel-layout-container,
.elfsight-app-735b6449-7208-46e0-a917-36de35315579 .es-carousel-layout-wrapper {
    overflow: visible !important;
}

/* Swiper carousel — clip slides only inside the track */
.swiper {
    width: 100%;
    height: auto;
    overflow: hidden;
}

.swiper-wrapper {
    display: flex;
    transition: transform 0.3s ease;
}

.elfsight-app-735b6449-7208-46e0-a917-36de35315579 .swiper-slide {
    flex-shrink: 0;
    width: 265px;
    margin-right: 20px;
}

.swiper-slide-visible {
    opacity: 1;
}

/* Reviews widget only: each slide follows its content height so “Read more” can grow the glider. */
.elfsight-app-735b6449-7208-46e0-a917-36de35315579 .swiper-wrapper {
    align-items: flex-start;
}

.elfsight-app-735b6449-7208-46e0-a917-36de35315579 .swiper-slide .es-carousel-layout-item,
.elfsight-app-735b6449-7208-46e0-a917-36de35315579 .swiper-slide .es-review-container,
.elfsight-app-735b6449-7208-46e0-a917-36de35315579 .swiper-slide .es-review-background-container {
    height: auto !important;
    min-height: 0;
}

.elfsight-app-735b6449-7208-46e0-a917-36de35315579 .swiper-slide .lczyGr {
    flex-grow: 0;
}

/* Review cards */
.es-carousel-layout-item {
    height: 100%;
}

.es-review-container {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.es-review-background-container {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    padding: 16px;
    height: 100%;
    display: flex;
    flex-direction: column;

}

.lczyGr{
    display: flex;
  flex-direction: column;
  position: relative;
  box-sizing: border-box;
  flex-grow: 1;
  transition: background-color 0.1s;
  background-color: rgb(204, 184, 182);
  padding: 24px;
  border: 1px solid transparent;
  border-radius: 8px;
}
.DhnPA {
    max-width: 100%;
    display: grid;
    grid-template-columns: minmax(0px, 1fr);
  }
.kkqaiv.kkqaiv.kkqaiv img, .kkqaiv svg {
    transition: fill 0.2s;
    display: block;
    object-fit: contain;
    width: 16px;
    height: 16px;
  }
  .hBUGyh svg {
    background: none;
  }
.kkqaiv > div {
    display: flex;
    align-items: center;
    justify-content: center;
    width: inherit;
    height: inherit;
  }
  .fwpcct {
    width: 100%;
  }
.eYMHnH{
    position: relative;
    display: block;
    padding: 0px;
    border: medium;
    outline: none;
    border-radius: 50%;
    cursor: pointer;
    background-color: rgb(161, 179, 224);
    fill: rgb(255, 255, 255);
    box-shadow: none;
    transition: background-color 0.3s, box-shadow 0.3s, fill 0.3s;
  }
  .cqAxeQ, .cqAxeQ * {
    box-sizing: border-box !important;
    outline: none !important;
  }
  .dZhZOh {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 100%;
    overflow: visible;
  }
  .jtAqtc {
    z-index: 2;
    flex: 0 1 0%;
    flex-basis: 0%;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
  /* Track / swiper only — clips sliding slides, not the sibling arrow buttons */
  .jwMZDh {
    position: relative;
    z-index: 1;
    overflow: hidden;
    flex: 1 1 0%;
    max-width: 100%;
    min-height: 0;
  }

  /* Let the track grow vertically when a review expands (Swiper updates height via JS). */
  .elfsight-app-735b6449-7208-46e0-a917-36de35315579 .jwMZDh.es-carousel-inner:has(.es-text-shortener-container.is-expanded) {
    overflow: visible;
  }
  .lSLkU {
    display: flex;
    position: relative;
    align-items: center;
    width: 100%;
    overflow: visible;
  }
  .eeecBN {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
/* Author block */
.es-review-author-block-container {
    display: flex;
    align-items: center;
    margin-bottom: 12px;
}

.es-review-avatar-container {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    margin-right: 12px;
    flex-shrink: 0;
    position: relative;
}

.es-review-source-container {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.jPaAjv {
    width: 40px;
    height: 40px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background-color: rgb(248, 248, 248);
    border: 1px solid rgba(17, 17, 17, 0.1);
  }
.es-source-image {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.es-google-icon svg {
    width: 24px;
    height: 24px;
}

/* Author info */
.es-review-author-block-info-container {
    flex: 1;
    min-width: 0;
}

.es-review-link-container {
    text-decoration: none;
    color: inherit;
    display: flex;
    align-items: center;
}

.es-review-link-container:hover {
    text-decoration: none;
}

.es-review-author-name-container {
    display: flex;
    align-items: center;
    margin-bottom: 4px;
}

.es-review-author-name {
    font-weight: 600;
    font-size: 14px;
    color: #333;
    margin-right: 6px;
}

.es-verified-badge {
    display: inline-flex;
    align-items: center;
}

.es-verified-badge-icon {
    width: 14px;
    height: 14px;
}

/* Review info */
.es-review-info-container {
    display: flex;
    align-items: center;
}

.es-review-info-info-block {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Hide relative dates (“6 days ago”, etc.) on each review card */
.es-review-info-date-container,
.es-review-info-date {
    display: none !important;
}

/* Rating */
.es-rating-container {
    margin-bottom: 6px;
}

.es-rating-bar-container {
    display: flex;
    gap: 2px;
}

.es-rating-item {
    position: relative;
    width: 14px;
    height: 14px;
}

.es-rating-item-unfilled svg {
    fill: #E0E0E0;
}

.es-rating-item-unfilled svg path {
    fill: #E0E0E0;
}

/* Gold → blue for carousel stars (YAML + Google embed) */
.es-rating-item-filled svg {
    fill: #1976d2;
}

.es-rating-item-filled svg path {
    fill: #1976d2 !important;
}

/* Elfsight embed: paths use fill="none"; filled layer must paint blue */
.es-rating-stars-item-filled .es-rating-item-filled svg path {
    fill: #1976d2 !important;
}

.es-rating-item svg {
    width: 100%;
    height: 100%;
    display: block;
}

/* Review content */
.es-review-align-container {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.es-review-content-container {
    flex: 1;
}

.es-review-content-text-container {
    margin-top: 8px;
}

.es-text-shortener-container {
    position: relative;
}

/* Offline/static mode: collapse with line clamp; `.is-expanded` toggled by reviews-static.js */
.es-text-shortener-container:not(.is-expanded) .es-text-shortener {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    overflow: hidden !important;
}

.es-text-shortener-container.is-expanded .es-text-shortener {
    display: block !important;
    -webkit-line-clamp: unset !important;
    line-clamp: unset;
    overflow: visible !important;
    word-break: break-word;
}

.es-text-shortener-container.is-expanded {
    overflow: visible;
}

/* Let the active slide grow when text expands; Swiper also calls updateAutoHeight() from JS. */
.swiper-slide:has(.es-text-shortener-container.is-expanded) {
    height: auto !important;
    min-height: 0;
}

.es-text-shortener {
    font-size: 14px;
    line-height: 1.5;
    color: #333;
}

/* _data/testimonials.yml slides in footer carousel */
.footer-yml-testimonial .es-text-shortener {
    white-space: pre-line;
}

.footer-yml-client-name {
    margin: 12px 0 0;
    font-size: 13px;
    color: #333;
    font-weight: 600;
}

.es-text-shortener-control {
    color: #1976D2;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    margin-top: 8px;
    display: inline-block;
    touch-action: manipulation;
    position: relative;
    z-index: 2;
}

.es-text-shortener-control:hover {
    text-decoration: underline;
}

/* Elementor footer HTML widget: avoid clipping absolutely positioned arrows */
.elementor-element-d0725b4.elementor-section,
.elementor-element-d0725b4 .elementor-widget-container,
.elementor-element-d0725b4 > .elementor-container,
.elementor-element-4ae1e07 > .elementor-widget-wrap,
.elementor-element-4ae1e07 {
    overflow: visible !important;
}

/* Carousel arrows — left/right of swiper, vertically centered (override widget inline offsets) */
.lSLkU.es-carousel-outer {
    position: relative;
    overflow: visible;
}

.lSLkU .jtAqtc.es-carousel-arrow-control-container {
    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    box-shadow: none;
}

.lSLkU .jtAqtc[aria-label="Previous"] {
    left: -16px !important;
    right: auto !important;
}

.lSLkU .jtAqtc[aria-label="Next"] {
    right: -16px !important;
    left: auto !important;
}

/* Previous = brand purple; Next keeps default light control from widget (.eYMHnH) */
.lSLkU .jtAqtc[aria-label="Previous"] .eYMHnH {
    background-color: #8d38ff !important;
    background-image: linear-gradient(145deg, #8d38ff 0%, #6b2fc9 100%) !important;
    fill: #fff !important;
    box-shadow: 0 2px 8px rgba(141, 56, 255, 0.35) !important;
}

.lSLkU .jtAqtc[aria-label="Previous"] .eYMHnH:hover,
.lSLkU .jtAqtc[aria-label="Previous"] .eYMHnH:focus-visible {
    background-image: linear-gradient(145deg, #9b4fff 0%, #7d3adb 100%) !important;
}

.lSLkU .jtAqtc[aria-label="Previous"] svg path {
    fill: #ffffff !important;
}

.es-carousel-arrow-control-container:hover {
    filter: brightness(1.02);
}

/* Fallback when class alone is used (no .lSLkU parent) */
.es-carousel-arrow-control-container {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.es-carousel-arrow-control-container[aria-label="Previous"] {
    left: -16px;
}

.es-carousel-arrow-control-container[aria-label="Next"] {
    right: -16px;
}

/* Elementor wrapper styles */
.elementor-section {
    position: relative;
}

.elementor-container {
    display: flex;
    margin-right: auto;
    margin-left: auto;
    position: relative;
}

.elementor-column {
    position: relative;
    min-height: 1px;
    display: flex;
}

.elementor-col-100 {
    width: 100%;
}

.elementor-widget-wrap {
    position: relative;
    width: 100%;
    flex-wrap: wrap;
    align-content: flex-start;
}

.elementor-element-populated {
    display: flex;
    flex-direction: column;
}

.elementor-widget-container {
    position: relative;
}

/* Responsive */
@media (max-width: 768px) {
    .swiper-slide {
        width: 280px;
    }
    
    .es-carousel-arrow-control-container {
        display: none;
    }
}

@media (max-width: 480px) {
    .swiper-slide {
        width: 90vw;
    }
}
