.fer-gallery{
    width:100%;
    box-sizing:border-box;
    overflow:hidden;
    font-size:var(--fer-font-size,16pt);
}
.fer-gallery *{box-sizing:border-box}
.fer-track{
    display:grid;
    grid-template-columns:repeat(var(--fer-count,1),minmax(0,1fr));
    gap:1.5em;
    align-items:start;
}
.fer-review{
    min-width:0;
    text-align:center;
    padding:.5em .75em;
}
.fer-review-stars{
    font-size:.95em;
    line-height:1;
    letter-spacing:.12em;
    margin-bottom:.8em;
}
.fer-review-quote{
    border:0;
    margin:0 auto .8em;
    padding:0;
    font:inherit;
    line-height:1.55;
    font-style:normal;
    quotes:none;
}
.fer-review-attribution{
    font-size:.78em;
    line-height:1.4;
    font-weight:600;
}
.fer-review-venue{font-weight:400}
.fer-mode-static .fer-review:nth-child(n+6),
.fer-mode-random_static .fer-review:nth-child(n+6){display:none}

/* JS controls which reviews are visible for fade mode. */
.fer-mode-fade .fer-review{
    display:none;
    opacity:0;
    transition:opacity .65s ease;
}
.fer-mode-fade .fer-review.fer-visible{
    display:block;
    opacity:1;
}
.fer-mode-fade .fer-track{
    grid-template-columns:repeat(var(--fer-count,1),minmax(0,1fr));
}

/* Scroll mode uses a single-row track moved by JS. */
.fer-mode-scroll .fer-track{
    display:flex;
    gap:1.5em;
    transition:transform .7s ease;
    will-change:transform;
}
.fer-mode-scroll .fer-review{
    flex:0 0:calc((100% - (var(--fer-count,1) - 1) * 1.5em) / var(--fer-count,1));
}
@media(max-width:700px){
    .fer-track{grid-template-columns:1fr}
    .fer-mode-fade .fer-track{grid-template-columns:1fr}
    .fer-mode-scroll .fer-review{flex-basis:100%}
}
@media(prefers-reduced-motion:reduce){
    .fer-mode-fade .fer-review,.fer-mode-scroll .fer-track{transition:none}
}


/* v1.1: Stable testimonial viewport. The default accommodates the stars,
   three lines of quote text and the attribution; JS measures longer reviews
   and sets a common height so changing slides never moves the page below. */
.fer-gallery{
    --fer-stable-height: calc(3 * 1.55em + 3.7em);
    min-height:var(--fer-stable-height);
}
.fer-gallery .fer-track{
    min-height:var(--fer-stable-height);
    align-items:stretch;
}
.fer-gallery .fer-review{
    min-height:var(--fer-stable-height);
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
}
.fer-gallery .fer-review-stars,
.fer-gallery .fer-review-quote,
.fer-gallery .fer-review-attribution{flex-shrink:0;}
/* Keep the center of each quote aligned regardless of its line count. */
.fer-gallery .fer-review-quote{width:100%;}
/* JS sets the measured height in pixels for all modes. */
.fer-gallery[data-fer-sized="1"],
.fer-gallery[data-fer-sized="1"] .fer-track,
.fer-gallery[data-fer-sized="1"] .fer-review{
    min-height:var(--fer-stable-height);
}
