.testimonials-section{
    position:relative;
    padding:48px 0;
    overflow:hidden;
    border-bottom:1px solid rgba(226,205,208,.48);
    background:#fffaf7
}

.testimonials-shell{
    display:grid;
    grid-template-columns:280px minmax(0,1fr) 64px;
    align-items:center;
    gap:28px
}

.testimonials-intro{
    position:relative;
    min-width:0;
    padding:12px 12px 12px 0
}

.testimonials-intro h2{
    margin:0;
    color:#58464b;
    font-family:var(--serif);
    font-size:calc(clamp(31px,2.35vw,39px) - 2px);
    line-height:1.04;
    font-weight:500;
    font-style:italic
}

.testimonials-intro h2 span{
    color:#58464b
}

.testimonials-heart{
    display:block;
    width:42px;
    height:auto;
    margin:18px 0 0 auto;
    object-fit:contain;
    opacity:.86;
    pointer-events:none
}

.testimonials-viewport{
    min-width:0;
    overflow:hidden
}

.testimonials-track{
    display:flex;
    gap:16px;
    width:100%;
    will-change:transform
}

.testimonial-card{
    flex:0 0 calc((100% - 32px) / 3);
    min-width:0;
    min-height:194px;
    height:auto;
    padding:22px 22px 20px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    border:1px solid rgba(232,215,216,.62);
    border-radius:16px;
    background:#fff7f5;
    cursor:pointer;
    outline:none;
    transition:border-color .22s ease,background-color .22s ease,transform .22s ease
}

.testimonial-card:hover,
.testimonial-card:focus-visible{
    border-color:rgba(200,111,130,.38);
    background:#fff3f2
}

.testimonial-copy{
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    align-items:start;
    gap:10px
}

.testimonial-quote{
    display:block;
    color:#e3a8b1;
    font-family:var(--script);
    font-size:55px;
    line-height:.7;
    transform:translateY(2px)
}

.testimonial-card p{
    margin:0;
    color:#5f5054;
    font-size:15px;
    line-height:1.52
}

.testimonial-author{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    margin-top:14px;
    flex-shrink:0
}

.testimonial-avatar,
.testimonial-avatar-placeholder{
    display:block;
    width:42px;
    height:42px;
    flex:0 0 42px;
    border:1px solid rgba(200,111,130,.24);
    border-radius:50%;
    background:#f6e6e8
}

.testimonial-avatar{
    object-fit:cover
}

.testimonial-author div{
    min-width:0
}

.testimonial-author strong{
    display:block;
    margin:0;
    color:#57484c;
    font-size:13px;
    line-height:1.2;
    font-weight:700
}

.testimonials-arrows{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px
}

.testimonial-arrow{
    width:28px;
    height:40px;
    padding:0;
    border:0;
    background:transparent;
    color:#d29aa5;
    cursor:pointer;
    font-family:var(--script);
    font-size:38px;
    line-height:1;
    transition:color .2s ease,transform .2s ease
}

.testimonial-arrow:hover{
    color:#b76878;
    transform:scale(1.08)
}

.testimonial-modal{
    position:fixed;
    inset:0;
    z-index:9999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    opacity:0;
    visibility:hidden;
    transition:opacity .28s ease,visibility .28s ease
}

.testimonial-modal.is-open{
    opacity:1;
    visibility:visible
}

.testimonial-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(61,43,48,.44);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px)
}

.testimonial-modal-dialog{
    position:relative;
    z-index:2;
    width:min(100%,610px);
    max-height:min(82vh,720px);
    overflow:auto;
    padding:42px 44px 40px;
    border:1px solid rgba(226,205,208,.78);
    border-radius:24px;
    background:#fffaf8;
    box-shadow:0 28px 80px rgba(68,42,49,.18);
    transform:translateY(16px) scale(.985);
    transition:transform .28s ease
}

.testimonial-modal.is-open .testimonial-modal-dialog{
    transform:translateY(0) scale(1)
}

.testimonial-modal-close{
    position:absolute;
    top:14px;
    right:16px;
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    padding:0;
    border:0;
    background:transparent;
    color:#b76878;
    cursor:pointer;
    font-size:30px;
    line-height:1
}

.testimonial-modal-quote{
    display:block;
    margin-bottom:12px;
    color:#e3a8b1;
    font-family:var(--script);
    font-size:66px;
    line-height:.62
}

.testimonial-modal-author{
    display:flex;
    align-items:center;
    gap:14px
}

.testimonial-modal-avatar{
    display:block;
    width:58px;
    height:58px;
    flex:0 0 58px;
    border:1px solid rgba(200,111,130,.24);
    border-radius:50%;
    background:#f6e6e8
}

.testimonial-modal-avatar img{
    display:block;
    width:100%;
    height:100%;
    border-radius:inherit;
    object-fit:cover
}

.testimonial-modal-author h3{
    margin:0;
    color:#514146;
    font-family:var(--serif);
    font-size:28px;
    line-height:1;
    font-weight:600
}

.testimonial-modal-story{
    margin:24px 0 0;
    color:#67575c;
    font-size:16px;
    line-height:1.72
}

@media(max-width:1180px){
    .testimonials-shell{
        grid-template-columns:245px minmax(0,1fr) 56px;
        gap:22px
    }

    .testimonial-card{
        flex-basis:calc((100% - 16px) / 2)
    }
}

@media(max-width:820px){
    .testimonials-section{
        padding:46px 0
    }

    .testimonials-shell{
        grid-template-columns:1fr;
        gap:26px
    }

    .testimonials-intro{
        width:min(100%,420px);
        margin:auto;
        padding:0;
        text-align:center
    }

    .testimonials-heart{
        margin:16px auto 0
    }

    .testimonial-card{
        flex-basis:78%;
        min-height:198px
    }

    .testimonials-arrows{
        justify-content:center
    }
}

@media(max-width:520px){
    .testimonials-section{
        padding:40px 0
    }

    .testimonials-intro h2{
        font-size:30px
    }

    .testimonial-card{
        flex-basis:92%;
        min-height:210px;
        padding:21px
    }

    .testimonial-card p{
        font-size:14px
    }

    .testimonial-modal{
        padding:14px
    }

    .testimonial-modal-dialog{
        padding:38px 24px 30px;
        border-radius:20px
    }

    .testimonial-modal-author h3{
        font-size:25px
    }

    .testimonial-modal-story{
        font-size:15px;
        line-height:1.66
    }
}

@media(prefers-reduced-motion:reduce){
    .testimonials-track,
    .testimonial-card,
    .testimonial-modal,
    .testimonial-modal-dialog{
        transition:none!important
    }
}

.reviews-faq{
    width:min(calc(100% - 40px),var(--max));
    margin:38px auto 0
}

.reviews-faq-list{
    min-width:0;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    column-gap:clamp(42px,5vw,82px)
}

.reviews-faq-column{
    min-width:0
}

.reviews-faq-item{
    border-bottom:1px solid rgba(211,183,189,.7)
}

.reviews-faq-column .reviews-faq-item:first-child{
    border-top:1px solid rgba(211,183,189,.7)
}

.reviews-faq-q{
    width:100%;
    min-height:64px;
    display:grid;
    grid-template-columns:minmax(0,1fr) 34px;
    align-items:center;
    gap:18px;
    padding:0;
    border:0;
    background:transparent;
    color:#55464a;
    text-align:left;
    cursor:pointer;
    font-family:var(--serif);
    font-size:calc(clamp(19px,1.35vw,23px) - 2px);
    line-height:1.2;
    font-weight:500
}

.reviews-faq-icon{
    position:relative;
    width:32px;
    height:32px;
    justify-self:end;
    border:1px solid rgba(200,111,130,.42);
    border-radius:50%;
    transition:background-color .24s ease,border-color .24s ease,transform .3s ease
}

.reviews-faq-icon::before,
.reviews-faq-icon::after{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:13px;
    height:1.5px;
    border-radius:999px;
    background:#c86f82;
    transform:translate(-50%,-50%);
    transition:transform .3s ease,background-color .24s ease
}

.reviews-faq-icon::after{
    transform:translate(-50%,-50%) rotate(90deg)
}

.reviews-faq-item.is-open .reviews-faq-icon{
    background:#c86f82;
    border-color:#c86f82;
    transform:rotate(180deg)
}

.reviews-faq-item.is-open .reviews-faq-icon::before,
.reviews-faq-item.is-open .reviews-faq-icon::after{
    background:#fff
}

.reviews-faq-item.is-open .reviews-faq-icon::after{
    transform:translate(-50%,-50%) rotate(0)
}

.reviews-faq-a{
    display:grid;
    grid-template-rows:0fr;
    opacity:0;
    transition:grid-template-rows .36s cubic-bezier(.22,.61,.36,1),opacity .24s ease
}

.reviews-faq-a>div{
    overflow:hidden
}

.reviews-faq-a p{
    max-width:none;
    margin:0;
    padding:0 52px 18px 0;
    color:#756268;
    font-size:15px;
    line-height:1.6
}

.reviews-faq-item.is-open .reviews-faq-a{
    grid-template-rows:1fr;
    opacity:1
}

.reviews-faq-q:hover .reviews-faq-icon{
    background:#c86f82;
    border-color:#c86f82
}

.reviews-faq-q:hover .reviews-faq-icon::before,
.reviews-faq-q:hover .reviews-faq-icon::after{
    background:#fff
}

@media(max-width:820px){
    .reviews-faq{
        width:min(calc(100% - 36px),var(--max));
        margin-top:34px
    }

    .reviews-faq-list{
        grid-template-columns:1fr;
        column-gap:0
    }

    .reviews-faq-column + .reviews-faq-column .reviews-faq-item:first-child{
        border-top:0
    }
}

@media(max-width:520px){
    .reviews-faq{
        margin-top:30px
    }

    .reviews-faq-q{
        min-height:62px;
        grid-template-columns:minmax(0,1fr) 32px;
        gap:13px;
        font-size:20px;
        line-height:1.3
    }

    .reviews-faq-icon{
        width:30px;
        height:30px
    }

    .reviews-faq-a p{
        padding:0 42px 17px 0;
        font-size:14px;
        line-height:1.58
    }
}
