@import "../mixins/mixins-master";

// Masonry layout — items are absolutely positioned by the testimonials script;
// the container is sized via an explicit height, so the flow-based negative
// gutter margin must be neutralised. A CSS-grid fallback keeps the correct column
// count visible in the brief window before the script runs (e.g. switching to
// masonry in the editor), instead of collapsing to a single full-width column.
.pp-testimonials.pp-testimonials-masonry {
    position: relative;
    margin-left: 0 !important;
    margin-right: 0 !important;
    display: grid;
    grid-template-columns: repeat(var(--pp-gallery-columns, 3), 1fr);
    // Gap doubles as the pre-script gutter (no item padding → no load-in shift)
    // and the source the script reads back via getComputedStyle().column/row-gap.
    gap: var(--grid-row-gap, 0) var(--grid-column-gap, 0);
}

.pp-testimonial {

    .pp-testimonial-name {
        margin-bottom: 0;
	}

    .pp-testimonial-name,
	.pp-testimonial-position {
		color: inherit;
		display: block;
	}
}

.pp-testimonial-skin-1 {

    .pp-testimonial-content {
        margin-bottom: 15px;
    }
}

.pp-testimonial-image {
    border-radius: 50%;

    img {
        border-radius: 50%;
        display: inline-block;
        height: 50px;
        width: 50px;
        vertical-align: middle;
    }
}

.pp-testimonial-skin-3,
.pp-testimonial-skin-4,
.pp-testimonial-skin-5,
.pp-testimonial-skin-6 {
    display: flex;
    align-items: center;

    .pp-testimonial-footer {
        flex-shrink: 0;
    }
}

.pp-testimonial-skin-8 {

	.pp-testimonial-content {
		display: flex;
		align-items: center;
	}
}

.pp-testimonial-skin-5,
.pp-testimonial-skin-6,
.pp-testimonial-skin-8 {

    .pp-testimonial-image {
        flex-shrink: 0;
    }
}

.pp-testimonial-skin-4,
.pp-testimonial-skin-6 {
    flex-direction: row-reverse;
}

.pp-testimonials-h-align-left {

    .pp-testimonial {

        .pp-testimonial-footer {
            justify-content: flex-start;
            text-align: start;
        }
    }

    .pp-testimonial-skin-7 {

        .pp-testimonial-image {
            text-align: start;
        }
    }
}

.pp-testimonials-h-align-center {

    .pp-testimonial-footer {
        display: flex;
        justify-content: center;
        text-align: center;
    }

    .pp-testimonial-skin-7 {

        .pp-testimonial-image {
            text-align: center;
        }
    }
}

.pp-testimonials-h-align-right {

    .pp-testimonial {

        .pp-testimonial-footer-inner {
            justify-content: flex-start;
            flex-direction: row-reverse;
            text-align: end;
        }
    }

    .pp-testimonial-skin-7 {

        .pp-testimonial-image {
            text-align: end;
        }
    }
}

.pp-testimonials-v-align-top {

    .pp-testimonial-skin-3,
    .pp-testimonial-skin-4,
    .pp-testimonial-skin-5,
    .pp-testimonial-skin-6 {
        align-items: flex-start;
    }
}

.pp-testimonials-v-align-bottom {

    .pp-testimonial-skin-3,
    .pp-testimonial-skin-4,
    .pp-testimonial-skin-5,
    .pp-testimonial-skin-6 {
        align-items: flex-end;
    }
}

.pp-testimonials-thumb-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-inline-start: -8px;
}

.pp-testimonials-thumb-item-wrap {
    padding-inline-start: 8px;
}

.pp-testimonials-thumb-item {
    cursor: pointer;
    position: relative;
    padding-top: 30px;

    img {
        border-radius: 50%;
        height: 80px;
        width: 80px;
        object-fit: cover;
        vertical-align: middle;
    }
}

.pp-testimonials-thumb-image {
    border-radius: 50%;
    position: relative;

    @include transition($target: all, $time: 0.25s, $timing-function: linear);

    img {

        @include transition($target: all, $time: 0.25s, $timing-function: linear);
    }
}

.pp-testimonials-wrap .pp-testimonials-thumb-item::before {
    content: '';
    position: absolute;
    inset-inline-start: 50%;
    top: 0;
    transform: translate(-50%, -50%) rotate(-45deg);
    transition: opacity .3s ease-in-out;
    opacity: 0;
    height: 15px;
    width: 15px;
    border-top-color: transparent;
    border-inline-end-color: transparent;
    box-sizing: content-box;
    background-clip: content-box;
}

.pp-testimonials-wrap .pp-active-slide .pp-testimonials-thumb-item::before {
    opacity: 1;
}

.pp-testimonials-container,
.pp-testimonial-text {
    position: relative;
}

.pp-testimonials-quote-position-above {

    .pp-testimonial-text {

        &::before {
            content: '\201C';
            display: block;
            font-size: 120px;
            line-height: 90px;
            margin-bottom: -30px;
        }
    }
}

.pp-testimonials-quote-position-before,
.pp-testimonials-quote-position-before-after {

    .pp-testimonial-text {

        &::before {
            display: inline-block;
            content: '\201C';
            font-size: 26px;
        }
    }
}

.pp-testimonials-quote-position-before-after {

    .pp-testimonial-text {

        &::after {
            display: inline-block;
            content: '\201D';
            font-size: 26px;
        }
    }
}

.pp-testimonials-image-inline {

    .pp-testimonial-footer-inner {
        display: flex;
        text-align: start;
        align-items: center;
    }

    &.pp-testimonials-h-align-right {

        .pp-testimonial-image {
            margin: 0 0 0 15px;
        }
    }

    &.pp-testimonials-h-align-left {

        .pp-testimonial-image {
            margin: 0 15px 0 0;
        }
    }
}

.pp-testimonials-image-stacked {

    .pp-testimonial-image {
        display: inline-block;
    }
}

.pp-testimonials-content-bubble {

    .pp-testimonial-content {
        background-color: #e6e9ec;
        padding: 20px;
        position: relative;

        &::after {
            content: "";
            display: block;
            width: 14px;
            height: 14px;
            background-color: #e6e9ec;
            position: absolute;
            border-width: 0;
            box-sizing: content-box;
        }
    }

    .pp-testimonial-skin-1,
    .pp-testimonial-skin-5,
    .pp-testimonial-skin-6 {

        .pp-testimonial-content {

            &::after {
                top: calc(100% - 7px);
                inset-inline-start: 50%;
                transform: translateX(-50%) scaleX(.75) rotate(45deg);
            }
        }
    }

    .pp-testimonial-skin-2,
    .pp-testimonial-skin-7 {

        .pp-testimonial-content {

            &::after {
                bottom: calc(100% - 7px);
                inset-inline-start: 50%;
                transform: translateX(-50%) scaleX(.75) rotate(-135deg);
            }
        }
    }

    .pp-testimonial-skin-3 {

        .pp-testimonial-content {

            &::after {
                top: 50%;
                inset-inline-start: -7px;
                transform: translateY(-50%) scaleY(.75) rotate(135deg);
            }
        }
    }

    .pp-testimonial-skin-4 {

        .pp-testimonial-content {

            &::after {
                top: 50%;
                inset-inline-end: -7px;
                transform: translateY(-50%) scaleY(.75) rotate(315deg);
            }
        }
    }

    &.pp-testimonials-h-align-left {

        .pp-testimonial-skin-1,
        .pp-testimonial-skin-2,
        .pp-testimonial-skin-5,
        .pp-testimonial-skin-6,
        .pp-testimonial-skin-7 {

            .pp-testimonial-content {

                &::after {
                    inset-inline-start: 25px;
                }
            }
        }
    }

    &.pp-testimonials-h-align-right {

        .pp-testimonial-skin-1,
        .pp-testimonial-skin-5,
        .pp-testimonial-skin-6 {

            .pp-testimonial-content {

                &::after {
                    inset-inline-start: auto;
                    inset-inline-end: 25px;
                    transform: translateX(50%) scaleX(.75) rotate(45deg);
                }
            }
        }

        .pp-testimonial-skin-2,
        .pp-testimonial-skin-7 {

            .pp-testimonial-content {

                &::after {
                    inset-inline-start: auto;
                    inset-inline-end: 25px;
                    transform: translateX(50%) scaleX(.75) rotate(-135deg);
                }
            }
        }
    }

    &.pp-testimonials-v-align-top {

        .pp-testimonial-skin-3,
        .pp-testimonial-skin-4 {

            .pp-testimonial-content::after {
                top: 30px;
            }
        }
    }

    &.pp-testimonials-v-align-bottom {

        .pp-testimonial-skin-3,
        .pp-testimonial-skin-4 {

            .pp-testimonial-content::after {
                top: auto;
                bottom: 18px;
            }
        }
    }
}

.pp-thumb-nav-gray .pp-testimonials-thumb-image,
.pp-thumb-nav-gray-hover .pp-testimonials-thumb-image:hover,
.pp-thumb-nav-gray-active .pp-active-slide .pp-testimonials-thumb-image {

    img {
        filter: grayscale(100%);
    }
}

.pp-thumb-nav-gray {

    .pp-testimonials-thumb-image:hover,
    .pp-active-slide .pp-testimonials-thumb-image {

        img {
            filter: none;
        }
    }
}

.elementor-star-rating {
    color: var(--e-rating-icon-color);
    font-family: eicons, sans-serif;
    font-size: var(--e-rating-icon-font-size);
    display: inline-block;

	i {
		display: inline-block;
		position: relative;
		font-style: normal;
		cursor: default;

		&::before {
			content: '\e934';
			display: block;
			font-size: inherit;
			font-family: inherit;
			position: absolute;
			overflow: hidden;
			color: var(--e-rating-icon-marked-color);
			top: 0;
			inset-inline-start: 0;
		}
	}

	.elementor-star-empty::before {
		content: none
	}

	.elementor-star-1::before {
		width: 10%
	}

	.elementor-star-2::before {
		width: 20%
	}

	.elementor-star-3::before {
		width: 30%
	}

	.elementor-star-4::before {
		width: 40%
	}

	.elementor-star-5::before {
		width: 50%
	}

	.elementor-star-6::before {
		width: 60%
	}

	.elementor-star-7::before {
		width: 70%
	}

	.elementor-star-8::before {
		width: 80%
	}

	.elementor-star-9::before {
		width: 90%
	}
}

.elementor--star-style-star_unicode .elementor-star-rating i:not(.elementor-star-empty)::before {
    content: "\002605";
}

.pp-testimonials {
    --e-rating-gap: 0;
    --e-rating-icon-font-size: 16px;
    --e-rating-icon-color: #ccd6df;
    --e-rating-icon-marked-color: #f0ad4e;
    --e-rating-icon-marked-width: 100%;
    --e-rating-justify-content: flex-start
}

.pp-testimonials .e-rating-wrapper {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: inherit;
    margin-block-end:calc(0px - var(--e-rating-gap));margin-inline-end: calc(0px - var(--e-rating-gap));
    width: -moz-fit-content;
    width: fit-content
}

.pp-testimonials .e-rating-wrapper .e-icon {
    margin-block-end:var(--e-rating-gap);margin-inline-end: var(--e-rating-gap);
    position: relative
}

.pp-testimonials .e-rating-wrapper .e-icon-wrapper.e-icon-marked {
    --e-rating-icon-color: var(--e-rating-icon-marked-color);
    height: 100%;
    inset-inline-start: 0;
    overflow: hidden;
    position: absolute;
    top: 0;
    width: var(--e-rating-icon-marked-width);
    z-index: 1
}

.pp-testimonials .e-rating-wrapper .e-icon-wrapper :is(i,svg) {
    display: flex;
    flex-shrink: 0
}

.pp-testimonials .e-rating-wrapper .e-icon-wrapper i {
    color: var(--e-rating-icon-color);
    font-size: var(--e-rating-icon-font-size)
}

.pp-testimonials .e-rating-wrapper .e-icon-wrapper svg {
    height: var(--e-rating-icon-font-size);
    width: auto;
    fill: var(--e-rating-icon-color)
}

.pp-swiper-slider-dots-outside {

    .pp-swiper-slider .swiper-pagination {
        position: static;
    }
}
