/* Review components use the established Due East palette and typefaces. */
.de-reviews{--review-bg:#f7f4ed;--review-paper:#fffdf8;--review-ink:#1c2321;--review-muted:#5c6560;--review-accent:#7c6a4e;--review-line:rgba(28,35,33,.16);color:var(--review-ink);font-family:var(--font,"Inter",sans-serif);font-size:16px;line-height:1.6}
.review-shell{max-width:1120px;margin:auto;padding:80px 24px}
.review-heading{display:flex;gap:32px;align-items:flex-end;justify-content:space-between;margin-bottom:32px}
.review-heading h2,.review-page-title{font-family:var(--font-display,var(--display,"Instrument Serif",serif));font-size:clamp(36px,4vw,52px);font-weight:400;line-height:1.1;margin:12px 0 16px;letter-spacing:-.02em}
.review-kicker{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--review-accent);font-weight:600}
.review-intro{max-width:580px;color:var(--review-muted);margin:0}
.review-button{border:1px solid var(--review-accent);border-radius:999px;padding:12px 24px;min-height:48px;display:inline-flex;justify-content:center;align-items:center;gap:8px;background:var(--review-accent);color:var(--review-paper);font:600 14px var(--font,"Inter",sans-serif);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .18s,transform .18s}
.review-button:hover{background:#5e5039;transform:translateY(-1px)}
.review-button:disabled{opacity:.55;cursor:wait;transform:none}
.review-button.secondary{background:transparent;color:var(--review-accent)}
.de-reviews :focus-visible{outline:2px solid var(--review-accent);outline-offset:4px}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.review-card{background:var(--review-paper);border:1px solid var(--review-line);border-radius:16px;padding:28px;overflow-wrap:anywhere;min-width:0}
.review-card blockquote{font-size:16px;line-height:1.8;margin:20px 0 24px;white-space:pre-line}
.review-card footer{display:flex;justify-content:space-between;gap:16px;align-items:center;padding-top:16px;border-top:1px solid var(--review-line);font-size:14px}
.review-card small,.review-footnote{font-size:12px;color:var(--review-muted);display:block}
.review-footnote{margin-top:20px;max-width:720px}
.review-empty{padding:36px 0;border-block:1px solid var(--review-line);display:flex;gap:24px;align-items:center}
.review-empty h3{font:400 28px var(--font-display,var(--display,"Instrument Serif",serif));margin:0 0 8px}
.review-empty p{margin:0;max-width:660px;color:var(--review-muted)}
.review-compass{display:inline-block;position:relative;width:26px;height:26px;flex:0 0 26px;border:1px solid currentColor;border-radius:50%;color:var(--review-accent);opacity:.24;pointer-events:none;transition:opacity .18s,background .18s}
.review-compass::before,.review-compass::after{content:"";position:absolute;top:7px;width:0;height:0;border-block:5px solid transparent}
.review-compass::before{left:5px;border-right:8px solid currentColor;opacity:.4}
.review-compass::after{left:13px;border-left:8px solid currentColor}
.review-compass.filled{opacity:1;background:var(--review-accent);color:var(--review-paper);border-color:var(--review-accent)}
.review-rating-display{display:flex;align-items:center;gap:6px}
.review-rating-display .review-score{font-size:12px;margin-left:8px;color:var(--review-muted)}
.review-photos{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}
.review-photos figure{margin:0}
.review-photos img{display:block;width:100%;height:220px;object-fit:contain;background:#f0ede5;border-radius:8px}
.review-photos figcaption{font-size:12px;color:var(--review-muted);padding-top:4px}
.review-dialog{border:1px solid var(--review-line);border-radius:20px;background:var(--review-bg);padding:0;width:min(640px,calc(100vw - 24px));max-height:90dvh;color:var(--review-ink);box-shadow:0 24px 80px #0003}
.review-dialog::backdrop{background:rgba(18,22,20,.55);backdrop-filter:blur(5px)}
.review-dialog[open]{animation:review-appear .2s ease-out}
@keyframes review-appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.review-dialog-inner{padding:32px}
.review-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:24px;position:sticky;top:0;z-index:3;background:var(--review-bg);padding-block:8px}
.review-dialog h2{font:400 36px var(--font-display,var(--display,"Instrument Serif",serif));margin:16px 0}
.review-close{border:1px solid var(--review-line);border-radius:50%;width:44px;height:44px;background:transparent;cursor:pointer;font-size:24px;color:inherit}
.review-form{display:grid;gap:20px;margin-top:24px}
.review-form label,.review-form legend{font-size:14px;font-weight:500}
.review-form input:not([type=radio]):not([type=checkbox]),.review-form textarea,.review-form select{display:block;width:100%;margin-top:8px;font:400 16px var(--font,"Inter",sans-serif);border:1px solid var(--review-line);border-radius:10px;padding:12px;background:var(--review-paper);color:var(--review-ink);box-sizing:border-box}
.review-form textarea{resize:vertical;min-height:128px}
.review-form small,.review-helper{display:block;color:var(--review-muted);font-size:12px;font-weight:400;margin:6px 0 0}
.review-form fieldset{padding:0;margin:0;border:0;min-width:0}
.review-form legend{margin-bottom:8px}
.review-rating-input{display:flex;gap:8px}
.review-rating-choice{position:relative;display:flex;justify-content:center;align-items:center;width:48px;height:48px;border:1px solid var(--review-line);border-radius:50%;cursor:pointer}
.review-rating-choice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.review-rating-choice:focus-within{outline:2px solid var(--review-accent);outline-offset:3px}
.review-rating-choice.selected{border-color:var(--review-accent);background:#7c6a4e0c}
.review-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.review-check{display:flex;gap:12px;align-items:flex-start;line-height:1.6;font-weight:400!important}
.review-check input{width:20px;height:20px;flex:0 0 20px;margin-top:2px;accent-color:var(--review-accent)}
.review-form details{padding:16px;border:1px solid var(--review-line);border-radius:12px}
.review-form summary{font-size:14px;cursor:pointer;font-weight:500}
.review-form details .review-two{margin-top:16px}
.review-form input[type=file]{font-size:12px!important}
.review-status{font-size:14px;min-height:24px;margin:0}
.review-status.error{color:#913d32}
.review-honeypot{position:absolute;left:-10000px;overflow:hidden;width:1px;height:1px}
.review-form [hidden],.de-reviews [hidden]{display:none!important}
.review-success{padding:32px 0}
.review-success p{color:var(--review-muted)}
.reviews-admin-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}
.reviews-admin-list{display:grid;gap:20px}
.reviews-admin-list .review-card{padding:24px}
.reviews-admin-list .review-photos{max-width:560px}
.reviews-admin-list .review-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.review-badge{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--review-accent)}
.review-warning{font-size:14px;padding:16px;border:1px solid var(--review-line);border-radius:12px;color:var(--review-muted);margin:16px 0}
@media(max-width:800px){.review-grid{grid-template-columns:1fr 1fr}.review-heading{align-items:flex-start;flex-direction:column;gap:20px}}
@media(max-width:520px){.review-shell{padding:56px 20px}.review-grid,.review-two{grid-template-columns:1fr}.review-card{padding:24px}.review-dialog-inner{padding:24px}.review-heading h2{font-size:38px}.review-empty{align-items:flex-start}.review-photos img{height:180px}}
@media(prefers-reduced-motion:reduce){.review-dialog[open]{animation:none}.de-reviews *{transition:none!important}}
