/* Keep the Elementor widget and its carousel runtime inside the page inline-size.
 * The carousel track is intentionally wider than its viewport, but it must never
 * contribute that width to the document scroll area on narrow screens. */
.elementor-widget-mod_testimonial_review,.elementor-widget-mod_testimonial_review>.elementor-widget-container{min-width:0;max-width:100%}
.mod-testimonial-review{--mod-tr-columns:3;--mod-tr-gap:24px;--mod-tr-dot-size:9px;--mod-tr-dot-active-width:24px;position:relative;width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.mod-testimonial-review__track{display:grid;grid-template-columns:repeat(var(--mod-tr-columns),minmax(0,1fr));gap:var(--mod-tr-gap);min-width:0}
.mod-testimonial-review--list .mod-testimonial-review__track{grid-template-columns:1fr}
.mod-testimonial-review--masonry .mod-testimonial-review__track{display:block;columns:var(--mod-tr-columns);column-gap:var(--mod-tr-gap)}
.mod-testimonial-review--masonry .mod-testimonial-review__card{break-inside:avoid;margin:0 0 var(--mod-tr-gap)}
.mod-testimonial-review__card{position:relative;overflow:hidden;display:flex;flex-direction:column;min-width:0;max-width:100%;box-sizing:border-box;transition-property:background-color,color,border-color,box-shadow,transform;transition-timing-function:ease}
.mod-testimonial-review--equal .mod-testimonial-review__card{height:100%}
.mod-testimonial-review__body{display:flex;flex-direction:column;flex:1;min-width:0;box-sizing:border-box}
.mod-testimonial-review__media{width:100%;overflow:hidden;margin:0;line-height:0;aspect-ratio:16/9}
.mod-testimonial-review__media img{display:block;width:100%;height:100%;object-fit:cover}
.mod-testimonial-review__quote{font-family:Georgia,serif;line-height:.75;font-weight:700;opacity:.95}
.mod-testimonial-review__review{line-height:1.65;overflow-wrap:anywhere}
.mod-testimonial-review__reviewer{display:flex;align-items:center;gap:12px;min-width:0}
.mod-testimonial-review--preset-centered .mod-testimonial-review__reviewer{justify-content:center;flex-direction:column;text-align:center}
.mod-testimonial-review--preset-quote .mod-testimonial-review__quote{font-size:3.5em;opacity:.22;position:absolute;right:20px;top:20px}
.mod-testimonial-review--preset-quote .mod-testimonial-review__body{position:relative}
.mod-testimonial-review--preset-compact .mod-testimonial-review__quote{display:none}
.mod-testimonial-review__avatar{flex:0 0 auto;overflow:hidden;line-height:0;background:#eef1f5}
.mod-testimonial-review__avatar img{width:100%;height:100%;display:block;object-fit:cover}
.mod-testimonial-review__identity{min-width:0}
.mod-testimonial-review__name{font-weight:700}
.mod-testimonial-review__meta{font-size:.88em;opacity:.72;margin-top:2px}
.mod-testimonial-review__rating-wrap{display:flex;align-items:center}
.mod-testimonial-review--preset-centered .mod-testimonial-review__rating-wrap{justify-content:center}
.mod-testimonial-review__rating{display:inline-flex;align-items:center}
.mod-testimonial-review__rating-item{position:relative;display:inline-grid;line-height:1;width:1em;height:1em}
.mod-testimonial-review__rating-empty,.mod-testimonial-review__rating-fill{grid-area:1/1;display:block;line-height:1}
.mod-testimonial-review__rating-empty svg,.mod-testimonial-review__rating-fill svg{width:1em;height:1em;display:block;fill:currentColor}
.mod-testimonial-review__rating-fill{overflow:hidden;white-space:nowrap}
.mod-testimonial-review__score{display:inline-flex;align-items:baseline;gap:3px;font-weight:600}
.mod-testimonial-review__score strong{font-size:1.35em;line-height:1}
.mod-testimonial-review__score span{font-size:.72em;opacity:.75}
.mod-testimonial-review__source{display:inline-flex;align-self:flex-start;margin-top:auto;font-size:.84em;text-decoration:none}
.mod-testimonial-review--preset-centered .mod-testimonial-review__source{align-self:center}
.mod-testimonial-review__demo{position:absolute;z-index:3;top:10px;right:10px;padding:4px 7px;border-radius:999px;background:#fff3cd;color:#6b4e00;border:1px solid #ffd76b;font-size:10px;font-weight:800;letter-spacing:.08em}
.mod-testimonial-review--clickable .mod-testimonial-review__card{cursor:pointer}
.mod-testimonial-review__viewport{position:relative;width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow:hidden}
.mod-testimonial-review--carousel .mod-testimonial-review__track,.mod-testimonial-review--spotlight .mod-testimonial-review__track{display:flex;width:100%;max-width:100%;min-width:0;box-sizing:border-box;gap:var(--mod-tr-gap);transition:transform .45s cubic-bezier(.22,.61,.36,1);will-change:transform}
.mod-testimonial-review--carousel .mod-testimonial-review__card{flex:0 0 calc((100% - (var(--mod-tr-columns) - 1)*var(--mod-tr-gap))/var(--mod-tr-columns))}
.mod-testimonial-review--spotlight .mod-testimonial-review__card{flex:0 0 100%}
.mod-testimonial-review--spotlight{max-width:960px;margin-inline:auto}
.mod-testimonial-review__arrow{z-index:6}
.mod-testimonial-review__dots{display:flex;align-items:center;justify-content:center;gap:8px;margin:18px 0 0;padding:0}
.mod-testimonial-review .mod-testimonial-review__dot{display:block;flex:0 0 auto;box-sizing:border-box;width:var(--mod-tr-dot-size)!important;height:var(--mod-tr-dot-size)!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%;background:#c7ccd4;box-shadow:none!important;outline-offset:3px;font-size:0!important;line-height:0!important;text-indent:-9999px;overflow:hidden;appearance:none;-webkit-appearance:none;cursor:pointer;transition:width .2s ease,height .2s ease,background-color .2s ease,opacity .2s ease}
.mod-testimonial-review .mod-testimonial-review__dot.is-active{width:var(--mod-tr-dot-active-width)!important;height:var(--mod-tr-dot-size)!important;background:#2e5bff}
.mod-testimonial-review .mod-testimonial-review__dot:focus:not(:focus-visible){outline:0!important}
.mod-testimonial-review .mod-testimonial-review__dot:focus-visible{outline:2px solid currentColor}
.mod-testimonial-review--marquee .mod-testimonial-review__viewport{overflow:hidden}
.mod-testimonial-review--marquee .mod-testimonial-review__track{display:flex;gap:var(--mod-tr-gap);width:max-content;will-change:transform}
.mod-testimonial-review--marquee .mod-testimonial-review__card{flex:0 0 var(--mod-tr-item-width,320px);width:var(--mod-tr-item-width,320px)}
.mod-testimonial-review--marquee[data-marquee-direction="up"],.mod-testimonial-review--marquee[data-marquee-direction="down"]{height:var(--mod-tr-marquee-height,520px)}
.mod-testimonial-review--marquee[data-marquee-direction="up"] .mod-testimonial-review__viewport,.mod-testimonial-review--marquee[data-marquee-direction="down"] .mod-testimonial-review__viewport{height:100%}
.mod-testimonial-review--marquee[data-marquee-direction="up"] .mod-testimonial-review__track,.mod-testimonial-review--marquee[data-marquee-direction="down"] .mod-testimonial-review__track{flex-direction:column;width:100%;height:max-content}
.mod-testimonial-review--marquee[data-marquee-direction="up"] .mod-testimonial-review__card,.mod-testimonial-review--marquee[data-marquee-direction="down"] .mod-testimonial-review__card{width:100%;flex:0 0 auto}

/* Mobile viewport containment. A negative inherited arrow offset is useful on desktop,
 * but on phones it can enlarge the document scrollable area and shift fixed/floating UI.
 * Clamp only Testimonial carousel/spotlight arrows to the widget edge on mobile. */
@media (max-width:767px){
.elementor-widget-mod_testimonial_review,.elementor-widget-mod_testimonial_review>.elementor-widget-container,.mod-testimonial-review--carousel,.mod-testimonial-review--spotlight{width:100%;max-width:100%;min-width:0}
.mod-testimonial-review--carousel .mod-testimonial-review__arrow--prev.mod-shared-arrow,.mod-testimonial-review--spotlight .mod-testimonial-review__arrow--prev.mod-shared-arrow{left:max(0px,var(--mod-arrow-side-offset))!important}
.mod-testimonial-review--carousel .mod-testimonial-review__arrow--next.mod-shared-arrow,.mod-testimonial-review--spotlight .mod-testimonial-review__arrow--next.mod-shared-arrow{right:max(0px,var(--mod-arrow-side-offset))!important}
}
@media (prefers-reduced-motion:reduce){.mod-testimonial-review__track,.mod-testimonial-review__card{transition-duration:0.001ms!important;animation-duration:0.001ms!important}.mod-testimonial-review--marquee .mod-testimonial-review__track{transform:none!important}}
