.reader-reviews{background:#ead6b2;border-top:1px solid #bb915a40;border-bottom:1px solid #bb915a40;padding:65px 0}
.reviews-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.reviews-heading h2{font-size:38px;letter-spacing:-1px;margin-bottom:12px}.reviews-heading p{font-size:16px;color:#625038;max-width:550px}
.review-pill{display:inline-flex;justify-content:center;align-items:center;width:fit-content;min-height:44px;padding:9px 18px;gap:8px;background:#2f3117;color:#f6e7c6;border:1px solid #bb915a;border-radius:999px;font-size:14px;line-height:1.4;white-space:nowrap;box-shadow:0 2px 7px #674c241a;transition:transform .24s,box-shadow .24s,background .24s}
.review-pill.secondary{background:#eed7b0;color:#30200f}.review-pill:disabled{opacity:.55;cursor:not-allowed}.review-pill:not(:disabled):active{transform:scale(.98)}
.review-summary{display:flex;align-items:center;gap:12px;margin-bottom:22px;font-size:15px;color:#625038}.rating-stars{font-size:19px;letter-spacing:2px;color:#916727;white-space:nowrap}.average-stars{background:linear-gradient(to right,#916727 var(--rating-fill),#c9b38b var(--rating-fill));background-clip:text;-webkit-background-clip:text;color:transparent}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-height:620px;overflow:auto;scroll-behavior:smooth;padding:3px 2px 12px;scrollbar-width:thin}
.review-card{min-width:0;align-self:start;background:#f0dfbf;border:1px solid #bb915a66;border-radius:16px;padding:21px;box-shadow:0 5px 17px #78511f0d;transition:transform .24s,box-shadow .24s}.review-card blockquote{margin:14px 0 18px;font-size:16px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.review-card h3{font:600 15px Arial,sans-serif;color:#35351b}.review-card time{display:block;margin-top:6px;font-size:13px;color:#625038}
.review-empty{font-size:16px;color:#625038;padding:23px;border:1px dashed #bb915a80;border-radius:14px;background:#f0dfbf66}
#review-dialog{width:min(540px,calc(100% - 28px));border-radius:18px;max-height:90dvh;overflow:auto;padding:25px;background:#f0dfbf;box-shadow:0 20px 60px #30200f35}#review-dialog[open]{display:block;animation:review-fade .2s ease}#review-dialog::backdrop{background:#30200f99}
.review-modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.review-modal-head h2{font-size:29px;letter-spacing:-.5px}.review-close{background:transparent;border:1px solid #bb915a;border-radius:50%;width:44px;height:44px;flex-shrink:0;color:#30200f;font-size:23px}
.review-form label{display:block;font-size:14px;color:#30200f}.review-names{display:grid;grid-template-columns:2fr 1fr;gap:14px}.review-form input:not([type=radio]),.review-form textarea{width:100%;margin:7px 0 17px;padding:10px 12px;font:16px/1.5 Arial,sans-serif;color:#30200f;background:#f8edda;border:1px solid #bda176;border-radius:9px}.review-form textarea{min-height:120px;resize:vertical}.review-form input:focus-visible,.review-form textarea:focus-visible{outline:2px solid #805c2e;outline-offset:2px}
.review-rating{border:0;padding:0;margin:0 0 16px}.review-rating legend{font-size:14px}.review-stars-input{display:flex;gap:3px;margin-top:5px}.review-stars-input label{position:relative;display:grid;place-items:center;width:44px;height:44px;cursor:pointer}.review-stars-input input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;margin:0}.review-stars-input span{font-size:30px;color:#bbaa87;transition:color .2s,transform .2s}.review-stars-input label.selected span{color:#916727}.review-stars-input input:focus-visible+span{outline:2px solid #805c2e;outline-offset:3px;border-radius:4px}
.review-note{font-size:13px;color:#625038;margin-bottom:15px}.review-message{font-size:15px;margin:12px 0;color:#625038}.review-message.error{color:#873a24}.review-admin-link{display:inline-block;margin-top:18px;font-size:14px;text-decoration:underline;color:#625038}[hidden]{display:none!important}
.admin-reviews{max-width:1050px;margin:50px auto;padding:0 24px}.admin-reviews h1{font-size:42px;margin:25px 0 14px}.admin-reviews>p{color:#625038}.admin-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0}.admin-tabs button[aria-pressed=true]{background:#2f3117;color:#f6e7c6}.admin-review-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-card-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.admin-status{display:block;font-size:13px;color:#625038;margin-top:8px}
@media(hover:hover){.review-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #78511f1a}.review-pill:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 5px 12px #674c2428}.review-stars-input label:hover span{color:#916727;transform:scale(1.06)}}
@media(max-width:900px){.review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.reader-reviews{padding:44px 0}.reviews-heading{display:block}.reviews-heading h2{font-size:32px}.reviews-heading .review-pill{margin-top:18px}.review-grid{display:flex;max-height:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding-bottom:14px}.review-card{flex:0 0 86%;scroll-snap-align:start;padding:18px}.review-summary{flex-wrap:wrap;gap:6px 12px}.review-names{grid-template-columns:1.8fr 1fr;gap:10px}#review-dialog{padding:20px}.admin-review-list{grid-template-columns:1fr}.admin-reviews{margin:25px auto}.admin-reviews h1{font-size:34px}}
@keyframes review-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.review-grid{scroll-behavior:auto}#review-dialog[open]{animation:none}.review-card:hover,.review-pill:hover,.review-stars-input label:hover span{transform:none}}

/* Reference-led reader reviews treatment. */
.reader-reviews{position:relative;isolation:isolate;overflow:hidden;padding:72px 0 76px;background:#ead6b2;border-top:1px solid #8b642f45;border-bottom:1px solid #8b642f45}
.reader-reviews::before,.reader-reviews::after{position:absolute;z-index:0;top:28px;color:#6b673e;font:130px/1 Georgia,serif;opacity:.12;pointer-events:none}
.reader-reviews::before{content:"❦";left:-20px;transform:rotate(-22deg)}.reader-reviews::after{content:"❧";right:-14px;top:auto;bottom:20px;transform:rotate(20deg)}
.review-wrap{position:relative;z-index:1;max-width:1160px}
.reviews-intro{text-align:center;max-width:760px;margin:0 auto}.reviews-kicker{display:flex;align-items:center;justify-content:center;gap:13px;color:#765329;font-size:12px;font-weight:700;letter-spacing:2px;line-height:1.5;margin:0 0 14px}.reviews-kicker span{width:72px;height:1px;background:#966c34;opacity:.72}.reviews-intro h2{margin:0;color:#30200f;font-size:clamp(40px,5vw,60px);letter-spacing:-1.8px}.reviews-divider{display:flex;align-items:center;justify-content:center;gap:12px;margin:15px auto 13px;color:#8c632f}.reviews-divider span{width:85px;height:1px;background:#966c34}.reviews-divider b{font:26px/1 Georgia,serif;transform:rotate(-8deg);font-weight:400}.reviews-subtitle{margin:0;color:#5f4a2f;font:18px/1.6 Georgia,serif}
.reviews-toolbar{display:flex;flex-direction:column;align-items:center;gap:13px;margin:27px 0 24px}.reader-reviews.has-reviews .reviews-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px}.reader-reviews.has-reviews .review-summary{grid-column:2;justify-self:center}.reader-reviews.has-reviews .review-write{grid-column:3;justify-self:end}
.review-summary{display:flex;align-items:center;justify-content:center;gap:12px;margin:0;color:#5f4a2f;font-size:16px;line-height:1.4;text-align:center}.review-summary .rating-stars{font-size:22px;letter-spacing:3px;color:#98682d}.review-summary .empty-stars{font-size:30px;letter-spacing:4px;color:#a07235;font-weight:400}.review-summary .average-stars{font-size:24px;letter-spacing:3px}
.review-write{min-height:45px;padding:8px 10px 8px 16px;gap:10px;background:#2f3117;color:#f6e7c6;border:1px solid #ba8d52;border-radius:999px;box-shadow:0 3px 9px #5e411c2b}.review-feather{width:19px;height:19px;flex:0 0 19px}.review-arrow{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;flex:0 0 27px;border-radius:50%;background:#d6a46a;color:#30200f;font-size:17px;line-height:1;transition:transform .24s ease,background .24s ease}.review-write:hover{background:#464923}.review-write:hover .review-arrow{transform:translateX(2px);background:#e1b77d}
.review-empty{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:900px;min-height:164px;margin:14px auto 0;padding:30px 30px 29px;background:#f0dfbf;border:1px solid #a87836;border-radius:10px;box-shadow:0 9px 20px #6b451a1f,inset 0 0 0 4px #f0dfbf,inset 0 0 0 5px #bb915a5c}.review-empty::before,.review-empty::after{position:absolute;color:#766844;font:42px/1 Georgia,serif;opacity:.5;pointer-events:none}.review-empty::before{content:"❧";left:24px;bottom:16px;transform:rotate(-28deg)}.review-empty::after{content:"❧";right:24px;top:17px;transform:rotate(150deg)}.empty-panel-stars{color:#98682d;font-size:27px;letter-spacing:5px;line-height:1;margin-bottom:15px}.review-empty-title{margin:0 0 5px;color:#30200f;font:28px/1.25 Georgia,serif;text-align:center}.review-empty>p:last-child{margin:0;color:#5f4a2f;font:16px/1.55 Georgia,serif;text-align:center}
.review-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-height:none;overflow:visible;padding:3px 2px 12px}.review-card{position:relative;background:#f0dfbf;border:1px solid #a87836;border-radius:9px;padding:22px 23px 20px;box-shadow:0 7px 16px #6b451a1c,inset 0 0 0 3px #f0dfbf,inset 0 0 0 4px #bb915a48;transition:transform .24s ease,box-shadow .24s ease}.review-card::before,.review-card::after{position:absolute;color:#776745;font:31px/1 Georgia,serif;opacity:.48;pointer-events:none}.review-card::before{content:"❧";top:13px;right:13px;transform:rotate(150deg)}.review-card::after{content:"❧";bottom:12px;left:14px;transform:rotate(-25deg)}.review-card blockquote{margin:15px 0 22px;color:#3c2b18;font:17px/1.55 Georgia,serif;min-height:105px}.review-card h3{margin:0;color:#30200f;font:600 15px/1.4 Arial,sans-serif}.review-card time{margin-top:4px;color:#755d3f;font-size:13px}.review-card .rating-stars{font-size:20px;letter-spacing:3px;color:#98682d}.review-card .review-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;border-top:1px solid #a8783652;padding-top:14px}@media(hover:hover){.review-card:hover{transform:translateY(-3px);box-shadow:0 11px 22px #6b451a2b,inset 0 0 0 3px #f0dfbf,inset 0 0 0 4px #bb915a48}}
@media(max-width:720px){.reader-reviews{padding:52px 0 57px}.reader-reviews::before,.reader-reviews::after{font-size:90px}.reviews-kicker{gap:9px;font-size:10px;letter-spacing:1.6px}.reviews-kicker span{width:34px}.reviews-intro h2{font-size:39px;letter-spacing:-1px}.reviews-divider{margin:12px auto 11px;gap:8px}.reviews-divider span{width:50px}.reviews-divider b{font-size:22px}.reviews-subtitle{font-size:16px;padding:0 18px}.reviews-toolbar,.reader-reviews.has-reviews .reviews-toolbar{display:flex;flex-direction:column;gap:12px;margin:24px 0 22px}.reader-reviews.has-reviews .review-summary,.reader-reviews.has-reviews .review-write{justify-self:auto}.review-summary{flex-wrap:wrap;gap:5px 10px}.review-summary .empty-stars{font-size:27px}.review-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:3px 0 14px;margin-right:-20px}.review-grid::-webkit-scrollbar{display:none}.review-card{flex:0 0 86%;scroll-snap-align:start;padding:20px 19px 18px}.review-card blockquote{min-height:0;font-size:16px;margin:14px 0 19px}.review-empty{min-height:148px;padding:29px 26px}.review-empty-title{font-size:24px}.review-empty>p:last-child{font-size:15px}.review-empty::before{left:12px}.review-empty::after{right:12px}}
@media(prefers-reduced-motion:reduce){.review-card:hover{transform:none}.review-write:hover .review-arrow{transform:none}}

/* Keep the ornament understated while giving the section the illustrated apothecary edge treatment. */
.reader-reviews::before,.reader-reviews::after{content:"";width:190px;height:190px;background:url('assets/apothecary-mark.png') center/contain no-repeat;font-size:0;opacity:.10}
.reader-reviews::before{left:-34px;top:15px;transform:rotate(-12deg)}
.reader-reviews::after{right:-34px;bottom:13px;top:auto;transform:scaleX(-1) rotate(-12deg)}
.reader-reviews:not(.has-reviews) .review-summary{flex-direction:column;gap:6px}
@media(max-width:720px){.reader-reviews::before,.reader-reviews::after{width:108px;height:108px;opacity:.08}.reader-reviews::before{left:-30px;top:28px}.reader-reviews::after{right:-30px;bottom:14px}}
