.customer-reviews { --review-olive: #344831; padding-block:1rem; }
.review-summary { display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:center; }
.review-average { font-size:2.5rem; color:var(--review-olive); }
.review-distribution { display:flex; align-items:center; gap:.75rem; margin:.5rem 0; }
.review-distribution progress { flex:1; min-width:2rem; height:.65rem; accent-color:var(--review-olive); }
.review-filters { display:flex; flex-wrap:wrap; align-items:end; gap:1rem; padding-block:1.5rem; }
.review-filters select,.review-filters button { min-height:2.75rem; border-radius:.75rem; }
.review-entry { padding:1.5rem 0; border-top:1px solid #ddd; overflow-wrap:anywhere; }
.review-verified { display:inline-block; font-size:.8rem; color:#344831; background:#edf1e9; border-radius:1rem; padding:.3rem .6rem; }
.review-stars { color:#344831; font-size:1.5rem; margin:.5rem 0; }
.review-text { white-space:pre-wrap; }
.review-photos { display:flex; gap:.75rem; overflow-x:auto; padding:.5rem 0 1rem; }
.review-photos img { object-fit:cover; border-radius:.75rem; }
.review-photos a { flex-shrink:0; }
#review-lightbox { border:0; border-radius:1rem; max-width:95vw; max-height:95vh; padding:1rem; }
#review-lightbox::backdrop { background:#000b; }
#review-lightbox img { display:block; max-width:85vw; max-height:75vh; object-fit:contain; }
#review-lightbox button { min-height:2.75rem; padding:.5rem 1rem; margin-bottom:.5rem; }
@media(max-width:575px){.review-summary{grid-template-columns:1fr;gap:1rem}.review-filters label{flex:1 1 8rem}.review-filters button{width:100%}}

/* Shared public directory / PDP components. */
.customer-reviews { --review-gold:#956712; --review-border:#e2e4dd; --review-radius:1rem; color:#252b23; }
.reviews-intro { max-width:45rem; margin-bottom:2.5rem; }
.reviews-intro h1 { font-family:var(--font-display,Georgia,serif); font-size:clamp(2rem,4vw,3.5rem); line-height:1.15; }
.reviews-intro>p:last-child,.review-trust { color:#586050; }
.review-summary { background:#f4f5ef; padding:clamp(1.25rem,3vw,2.5rem); border-radius:var(--review-radius); }
.review-average { font-size:3.5rem; line-height:1.2; }
.review-stars { color:var(--review-gold,#956712); letter-spacing:.1em; }
.review-distribution { min-height:2.75rem; color:inherit; text-decoration:none; padding:.25rem .5rem; border-radius:.5rem; }
.review-distribution.selected,.review-distribution:hover { background:#e5e9de; }
.review-distribution progress { accent-color:var(--review-gold); }
.review-distribution>span:last-child { min-width:2rem; text-align:right; }
.review-gallery-heading,.review-results-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:2rem; }
.review-gallery-strip { display:flex; overflow-x:auto; gap:1rem; padding:1rem 0; scroll-snap-type:x proximity; }
.review-gallery-strip>a { flex:0 0 9rem; scroll-snap-align:start; }
.review-photo-tile { position:relative; display:block; border-radius:.75rem; overflow:hidden; background:#e9eae3; color:inherit; }
.review-photo-tile[hidden] { display:none; }
.review-photo-tile::before { content:""; position:absolute; inset:0; background:linear-gradient(110deg,transparent 20%,#ffffff90 45%,transparent 70%); transform:translateX(-100%); animation:review-shimmer 1.4s infinite; }
.review-photo-tile.loaded::before { display:none; }
.review-photo-tile img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; filter:blur(5px); opacity:.4; transition:filter .3s,opacity .3s; }
.review-photo-tile.loaded img { filter:none; opacity:1; }
.review-filters { border-block:1px solid var(--review-border); margin-block:1.5rem; }
.review-filters label { flex:1 1 8rem; min-width:0; font-size:.9rem; font-weight:600; }
.review-filters select { margin-top:.4rem; max-width:100%; }
.review-filters .review-photo-filter { display:flex; align-items:center; gap:.5rem; min-height:2.75rem; }
.review-photo-filter input { width:1.15rem; height:1.15rem; accent-color:var(--review-olive); }
.review-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; align-items:start; }
.product-tabs .review-card-grid,.product-tabs .review-summary { grid-template-columns:minmax(0,1fr); }
.product-tabs .review-summary { padding:1.25rem; }
.review-entry { min-width:0; border:1px solid var(--review-border); padding:1.5rem; border-radius:var(--review-radius); background:#fff; box-shadow:0 6px 22px #26382308; transition:transform .2s,box-shadow .2s; }
@media(hover:hover){.review-entry:hover{transform:translateY(-3px);box-shadow:0 10px 26px #26382312}}
.review-card-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.5rem; }
.review-entry time { display:block; font-size:.8rem; color:#61665c; margin-top:.5rem; }
.review-verified { font-size:.75rem; }
.review-copy summary { list-style:none; cursor:pointer; }
.review-copy summary::-webkit-details-marker { display:none; }
.review-read-more { display:block; text-decoration:underline; margin:.5rem 0 1rem; font-weight:600; }
.review-copy[open] summary .review-text { display:none; }
.review-copy[open] .review-read-more { font-size:0; }
.review-copy[open] .review-read-more::after { content:"Read less"; font-size:1rem; }
.review-photos .review-photo-tile { flex:0 0 4.5rem; }
.review-product { display:flex; gap:.85rem; align-items:center; color:inherit; text-decoration:none; border-top:1px solid var(--review-border); padding-top:1rem; }
.review-product img { border-radius:.5rem; object-fit:cover; width:3.5rem; height:4.5rem; flex-shrink:0; }
.review-product strong,.review-product small,.review-product-link { display:block; }
.review-product small { color:#61665c; margin:.25rem 0; }
.review-product-link { text-decoration:underline; font-size:.9rem; margin-top:.4rem; }
.review-helpful { display:block; margin-top:1rem; font-size:.85rem; color:#586050; }
.review-helpful button { background:transparent; border:1px solid var(--review-border); border-radius:2rem; min-height:2.75rem; padding:.4rem 1rem; }
.review-empty { text-align:center; padding:4rem 1rem; background:#f8f8f5; border-radius:var(--review-radius); }
.review-empty>span { font-size:3rem; color:var(--review-gold); }
.review-empty p { max-width:35rem; margin:1rem auto; }
.review-photo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.review-photo-grid .review-photo-tile>span { display:block; padding:.75rem; }
.review-pagination { display:flex; justify-content:center; flex-wrap:wrap; align-items:center; gap:1.5rem; margin-top:2rem; }
.review-pagination a { padding:.75rem; }
.customer-reviews :focus-visible,#review-lightbox :focus-visible { outline:3px solid #526a45; outline-offset:3px; }
.customer-reviews[aria-busy=true] .review-card-grid { opacity:.4; pointer-events:none; }
.review-modal-open { overflow:hidden; }
#review-lightbox { width:100vw; height:100dvh; max-width:100vw; max-height:100dvh; margin:0; border-radius:0; padding:1rem; background:#f7f7f2; }
.review-lightbox-toolbar { display:flex; justify-content:flex-end; align-items:center; gap:.75rem; }
.review-lightbox-toolbar>span { margin-right:auto; }
.review-lightbox-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(15rem,1fr); gap:2rem; height:calc(100% - 4rem); }
.review-photo-stage { position:relative; min-height:0; display:flex; align-items:center; justify-content:center; overflow:auto; background-position:center; background-repeat:no-repeat; background-size:contain; touch-action:pan-y; }
#review-lightbox #review-full-photo { max-width:100%; max-height:100%; width:100%; height:100%; object-fit:contain; opacity:0; transition:opacity .2s; transform-origin:top left; }
#review-lightbox #review-full-photo.loaded { opacity:1; }
#review-lightbox #review-full-photo[hidden] { display:none; }
.review-photo-stage.is-zoomed { touch-action:pan-x pan-y; }
.review-photo-stage>button { position:absolute; top:50%; border:1px solid #ccc; border-radius:50%; background:#fff; width:3rem; height:3rem; }
[data-photo-prev] { left:.5rem; } [data-photo-next] { right:.5rem; }
.review-lightbox-caption { overflow:auto; padding:1rem; }
.review-lightbox-caption .review-text { overflow-wrap:anywhere; }
@keyframes review-shimmer { to{transform:translateX(100%)} }
@media(max-width:1100px){.review-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.review-lightbox-layout{grid-template-columns:1fr;grid-template-rows:minmax(18rem,60vh) auto;height:auto;gap:1rem}.review-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.review-gallery-heading{align-items:baseline}.review-gallery-heading a{font-size:.85rem}}
@media(max-width:575px){.review-card-grid{grid-template-columns:1fr}.review-entry{padding:1.25rem}.review-filters{gap:.75rem}.review-lightbox-toolbar{gap:.25rem}#review-lightbox{padding:.5rem}.review-gallery-strip>a{flex-basis:7rem}}
@media(prefers-reduced-motion:reduce){.review-entry,.review-photo-tile img,#review-lightbox #review-full-photo{transition:none}.review-photo-tile::before{animation:none}}
