.pp-review-feature { width: 100%; padding: clamp(4rem, 7vw, 7rem) 0; overflow: hidden; background: var(--pp-colour-page); }
.pp-review-feature--full-bleed { padding-top: 0; padding-bottom: 0; }
.pp-review-feature--full-bleed .container { max-width: none; padding-right: 0; padding-left: 0; }
.pp-feature-strip--flush-bottom + .pp-review-feature { padding-top: 0; }
.pp-review-feature-media { height: 100%; min-height: 0; overflow: hidden; background: var(--pp-colour-surface-alt); }
.pp-review-feature-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.pp-review-feature--image-top .pp-review-feature-media img { object-position: center top; }
.pp-review-feature--image-center .pp-review-feature-media img { object-position: center; }
.pp-review-feature--image-bottom .pp-review-feature-media img { object-position: center bottom; }
.pp-review-feature--image-cover .pp-review-feature-media img { object-fit: cover; }
.pp-review-feature--image-contain .pp-review-feature-media img { object-fit: contain; }
.pp-review-feature-panel { display: flex; min-height: 0; flex-direction: column; justify-content: center; padding: clamp(2rem, 4vw, 3.5rem); background: var(--pp-colour-surface); }
.pp-review-feature-eyebrow { margin-bottom: 1.25rem; color: var(--pp-colour-muted); font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pp-review-feature-ratings { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; margin-bottom: 1.5rem; }
.pp-review-feature-rating { display: grid; grid-template-columns: auto auto; column-gap: .45rem; align-items: baseline; color: var(--pp-colour-muted); font-size: .78rem; }
.pp-review-feature-stars { grid-column: 1 / -1; color: var(--pp-colour-accent); letter-spacing: .08em; line-height: 1; }
.pp-review-feature-rating strong { color: var(--pp-colour-primary); font-size: 1.05rem; }
.pp-review-feature-quote { position: relative; margin: 0; padding: 2.25rem 0 0; border: 0; }
.pp-review-feature-quote::before { position: absolute; top: 0; left: 0; color: var(--pp-colour-accent); content: '“'; font-family: var(--pp-font-display); font-size: 4.5rem; line-height: .75; }
.pp-review-feature-quote p { margin: 0 0 1.5rem; color: var(--pp-colour-primary); font-family: var(--pp-font-display); font-size: clamp(1.45rem, 2.3vw, 2.35rem); font-weight: 600; line-height: 1.2; }
.pp-review-feature-quote footer { color: var(--pp-colour-muted); font-size: .9rem; line-height: 1.45; }
.pp-review-feature-quote footer strong { color: var(--pp-colour-text); }
.pp-review-feature-panel .pp-text-link { margin-top: 2rem; }
@media (min-width: 992px) { .pp-review-feature > .container > .row > .col-lg-7 { position: relative; } .pp-review-feature-media { position: absolute; inset: 0; width: 100%; height: 100%; } }
@media (min-width: 992px) { .pp-review-feature--image-right > .container > .row > .col-lg-7 { order: 2; } .pp-review-feature--image-right > .container > .row > .col-lg-5 { order: 1; } }
@media (max-width: 991.98px) { .pp-review-feature-media { min-height: 20rem; } .pp-review-feature-panel { min-height: 0; padding: 2.5rem 2rem; } }
@media (max-width: 575.98px) { .pp-review-feature { padding: 3.5rem 0; } .pp-review-feature--full-bleed { padding-top: 0; padding-bottom: 0; } .pp-review-feature-media { min-height: 15rem; } .pp-review-feature-panel { padding: 2rem 1.5rem; } .pp-review-feature-quote p { font-size: 1.55rem; } }
@media (min-width: 992px) { .pp-review-feature--full-bleed .pp-review-feature-panel { padding-top: clamp(1.75rem, 2.5vw, 2.5rem); padding-bottom: clamp(1.75rem, 2.5vw, 2.5rem); } }
@media (max-width: 991.98px) { .pp-review-feature--mobile-overlay > .container > .row { display: grid; } .pp-review-feature--mobile-overlay > .container > .row > .col-lg-7, .pp-review-feature--mobile-overlay > .container > .row > .col-lg-5 { grid-area: 1 / 1; width: 100%; } .pp-review-feature--mobile-overlay > .container > .row > .col-lg-7 { z-index: 0; min-height: clamp(16rem, 58vw, 22rem); } .pp-review-feature--mobile-overlay .pp-review-feature-media { position: relative; height: 100%; min-height: 100%; } .pp-review-feature--mobile-overlay .pp-review-feature-media::after { position: absolute; inset: 0; background: color-mix(in srgb, var(--pp-colour-page) 46%, transparent); content: ''; pointer-events: none; } .pp-review-feature--mobile-overlay > .container > .row > .col-lg-5 { z-index: 1; display: flex; align-items: stretch; } .pp-review-feature--mobile-overlay .pp-review-feature-panel { width: 100%; padding-top: 2rem; padding-bottom: 2rem; background: color-mix(in srgb, var(--pp-colour-surface) 78%, transparent); backdrop-filter: blur(3px); } }
@media (max-width: 991.98px) { .pp-review-feature--image-right > .container > .row > .col-lg-7, .pp-review-feature--image-right > .container > .row > .col-lg-5 { order: initial; } }
@media (max-width: 575.98px) { .pp-review-feature--mobile-overlay .pp-review-feature-panel { padding-top: 1.5rem; padding-bottom: 1.5rem; } }


/* Optional palette-slot colour roles supplied by Fragment::colourStyle(). */
.pp-review-feature {
    background: var(--pp-review-background, var(--pp-colour-page));
    color: var(--pp-review-text, var(--pp-colour-primary));
}

.pp-review-feature-eyebrow,
.pp-review-feature-rating,
.pp-review-feature-quote footer {
    color: var(--pp-review-text, var(--pp-colour-muted));
}

.pp-review-feature-stars,
.pp-review-feature-quote::before {
    color: var(--pp-review-emphasis, var(--pp-colour-accent));
}

.pp-review-feature-rating strong,
.pp-review-feature-quote p,
.pp-review-feature-quote footer strong {
    color: var(--pp-review-title, var(--pp-colour-primary));
}

@media (max-width: 991.98px) {
    .pp-review-feature--mobile-overlay .pp-review-feature-media::after {
        background: color-mix(in srgb, var(--pp-review-background, var(--pp-colour-page)) 46%, transparent);
    }
}
