.ec-reviews { background: #212530; color: #fff; padding: clamp(56px, 8vw, 108px) 0; border-top: 4px solid #b18c62; }
.ec-reviews-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 36px; }
.ec-reviews-eyebrow { display: block; color: #d7b68f; font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 14px; }
.ec-reviews-heading h2, .ec-reviews-heading .section-title { color: #fff; font-size: clamp(28px, 3vw, 42px); line-height: 1.2; margin: 0; }
.ec-reviews-heading p { color: #d6d7dc; margin: 14px 0 0; }
.ec-reviews-source { color: #e0bf99; text-decoration: none; border-bottom: 1px solid #8a7259; padding-bottom: 6px; flex-shrink: 0; font-size: 14px; }
.ec-reviews-source:hover { color: #fff; }
.ec-reviews-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.ec-review { display: flex; flex-direction: column; position: relative; margin: 0; padding: 32px; background: #faf8f4; color: #292c34; border-radius: 4px; border-top: 3px solid #b18c62; overflow-wrap: anywhere; }
.ec-review[hidden], .ec-reviews-nav[hidden] { display: none !important; }
.ec-review-quote { position: absolute; right: 24px; top: 2px; font: 86px Georgia, serif; color: #e7dfd3; pointer-events: none; }
.ec-review-rating { position: relative; width: max-content; color: #d7d1c7; font-size: 21px; letter-spacing: 3px; margin-bottom: 24px; line-height: 1.2; }
.ec-review-rating-fill { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; color: #986d34; }
.ec-review-text { position: relative; padding: 0; margin: 0 0 28px; border: 0; font-size: 16px; line-height: 1.85; font-style: normal; }
.ec-review-text p { font-size: inherit; line-height: inherit; margin: 0 0 16px; }
.ec-review-text p:last-child { margin-bottom: 0; }
.ec-review-author { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 22px; border-top: 1px solid #e3ddd4; }
.ec-review-author img, .ec-review-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.ec-review-avatar { display: grid; place-items: center; background: #eae2d6; color: #80603c; font: 42px Georgia, serif; padding-top: 10px; }
.ec-review-author strong { display: block; font-size: 14px; line-height: 1.5; }
.ec-review-author div > span { display: block; font-size: 12px; color: #666771; margin-top: 3px; }
.ec-reviews-nav { display: flex; justify-content: center; align-items: center; gap: 24px; margin-top: 32px; }
.ec-reviews-nav button { background: transparent; color: #fff; border: 1px solid #777b86; border-radius: 3px; padding: 10px 18px; min-height: 44px; font-size: 14px; cursor: pointer; }
.ec-reviews-nav button:hover { background: #343946; border-color: #d7b68f; }
.ec-reviews-nav [role="status"] { font-size: 13px; color: #d6d7dc; font-variant-numeric: tabular-nums; }
.ec-reviews a:focus-visible, .ec-reviews button:focus-visible { outline: 3px solid #e0bf99; outline-offset: 5px; }
@media (max-width: 991px) { .ec-reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ec-reviews-heading { align-items: start; flex-direction: column; } }
@media (max-width: 767px) { .ec-reviews-grid { grid-template-columns: minmax(0, 1fr); } .ec-review { padding: 26px; } .ec-reviews-nav { gap: 14px; } .ec-reviews-nav button { padding: 10px 12px; } }
