/**
 * Wedding chassis — rules shared byte-for-byte by BOTH wedding twins.
 *
 * The twins are one parametrised template with two identities: venues and vendors
 * keep their own hero, cards, colour and motion, but the reviews subsystem underneath
 * was copy-pasted into both stylesheets, so a fix to one silently missed the other.
 * Those rules live here once.
 *
 * Loaded BEFORE both theme sheets, so a theme can still override any of it.
 * Nothing here may be redeclared in a theme sheet — surface-css.test.ts fails the
 * build if a rule reappears byte-identical in both themes.
 */

/* For-businesses masthead (venues surface) */
.wvd-fb-masthead {
  padding-top: var(--wv-head-gap);
}

/* Public customer reviews on the venue detail page — mirrors the vendor twin's .wvd-review cards. */
.wvd-reviews { display: flex; flex-direction: column; gap: .9rem; margin-top: 1.1rem; }

.wvd-review { background: var(--paper); border: 1px solid var(--line-soft); border-radius: var(--wv-radius-md);
  padding: 1.1rem 1.2rem; }

.wvd-review p { margin-top: 0; font-family: var(--wv-serif); font-style: italic; font-weight: 330;
  font-size: 1.04rem; color: var(--ink); line-height: 1.5; white-space: pre-line; }

.wvd-rv-by { margin-top: .7rem; font-size: .82rem; color: var(--ink-faint); font-style: normal !important; }

.wvd-rv-by b { color: var(--ink-soft); font-weight: 600; font-style: normal; }

.wvd-rv-response-label { font-size: .74rem !important; font-weight: 600 !important; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-faint) !important; margin-bottom: .3rem; }

.wvd-fineprint { font-size: .83rem; color: var(--ink-faint); margin-top: .9rem; }

/* ── Reviews: rating badge, per-review rating, empty state, sign-in prompt, form ──
   Shared chassis (wv-). Uses --pine (green on venues, plum on vendors) + --gold so one
   block themes correctly on both twins. */
.wv-review-agg { margin-top: 1.1rem; margin-bottom: .2rem; }

.wv-review-badge { display: inline-flex; align-items: center; gap: .35rem; font-size: .92rem; }

.wv-review-badge.is-large { font-size: 1.05rem; }

.wv-review-badge svg { width: 16px; height: 16px; color: var(--gold); flex-shrink: 0; }

.wv-review-badge.is-large svg { width: 19px; height: 19px; }

.wv-review-score { font-weight: 600; color: var(--ink); }

.wv-review-count { color: var(--ink-faint); font-weight: 400; }

.wv-rv-rating { display: inline-flex; align-items: center; gap: .2rem; margin-left: .5rem; font-weight: 600; color: var(--ink-soft); font-style: normal; }

.wv-rv-rating svg { width: 13px; height: 13px; color: var(--gold); }

.wv-review-empty { font-family: var(--wv-serif); font-style: italic; font-weight: 330; font-size: 1.02rem; color: var(--ink-soft); margin-top: 1.1rem; }

.wv-review-signedout { margin-top: 1rem; }

.wv-review-signedout a { display: inline-flex; align-items: center; font-size: .9rem; font-weight: 600; color: var(--pine); text-decoration: underline; text-underline-offset: 3px; }

.wv-review-form-wrap { margin-top: 1.1rem; }

.wv-rvform { background: var(--paper); border: 1px solid var(--line-soft); border-radius: var(--wv-radius-md); padding: 1.1rem 1.15rem; }

.wv-rvform-trigger { display: flex; width: 100%; align-items: center; gap: .7rem; background: var(--paper); border: 1px solid var(--line-soft); border-radius: var(--wv-radius-md); padding: .85rem 1rem; text-align: left; cursor: pointer; color: var(--ink-soft); font-size: .92rem; transition: border-color .15s; }

.wv-rvform-trigger:hover { border-color: var(--pine); }

.wv-rvform-avatar { display: inline-flex; align-items: center; justify-content: center; width: 2.1rem; height: 2.1rem; flex-shrink: 0; border-radius: 999px; background: var(--pine); color: #fff; font-weight: 700; font-size: .85rem; }

.wv-rvform-head { display: flex; align-items: center; gap: .7rem; }

.wv-rvform-head h3 { font-family: var(--wv-serif); font-size: 1.15rem; font-weight: 440; color: var(--ink); margin: 0; }

.wv-rvform-crits { display: flex; flex-direction: column; gap: .7rem; margin-top: 1rem; }

.wv-rvform-crit { display: flex; flex-direction: column; gap: .4rem; }

.wv-rvform-crit-label { font-size: .85rem; font-weight: 500; color: var(--ink-soft); }

.wv-rvform-cells { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid var(--line-soft); border-radius: 10px; overflow: hidden; }

.wv-rvform-cell { height: 2.5rem; min-width: 0; padding: 0 .25rem; font-size: .82rem; font-weight: 500; color: var(--ink-faint); background: transparent; border: 0; border-left: 1px solid var(--line-soft); cursor: pointer; transition: background .12s, color .12s; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.wv-rvform-cell:first-child { border-left: 0; }

.wv-rvform-cell:hover { background: rgba(0,0,0,.03); }

.wv-rvform-cell.is-on { color: var(--pine); font-weight: 700; box-shadow: inset 0 -2px 0 var(--pine); }

.wv-rvform-textarea { width: 100%; margin-top: 1rem; padding: .75rem .8rem; resize: none; border: 1px solid var(--line-soft); border-radius: 10px; font: inherit; font-size: .9rem; color: var(--ink); background: #fff; outline: none; transition: border-color .15s; }

.wv-rvform-textarea:focus { border-color: var(--pine); }

.wv-rvform-textarea::placeholder { color: var(--ink-faint); }

.wv-rvform-err { margin-top: .5rem; font-size: .85rem; color: #b23b3b; }

.wv-rvform-actions { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--line-soft); }

.wv-rvform-cancel { padding: .55rem .9rem; font-size: .88rem; font-weight: 600; color: var(--ink-soft); background: transparent; border: 0; border-radius: 999px; cursor: pointer; }

.wv-rvform-cancel:hover { background: rgba(0,0,0,.04); }

.wv-rvform-publish { padding: .55rem 1.15rem; font-size: .88rem; font-weight: 600; color: #fff; background: var(--pine); border: 0; border-radius: 999px; cursor: pointer; transition: opacity .15s; }

.wv-rvform-publish:hover { opacity: .9; }

.wv-rvform-publish:disabled { opacity: .6; cursor: default; }

.wv-rvform-done { text-align: center; }

.wv-rvform-done p { font-weight: 600; color: var(--ink); }

.wv-rvform-link { margin-top: .5rem; font-size: .88rem; font-weight: 600; color: var(--pine); background: transparent; border: 0; cursor: pointer; }

/* ── Reviews: verified badge, report control, "your review" panel ── */
.wv-rv-verified { margin-left: .45rem; font-size: .68rem; font-weight: 700; font-style: normal; letter-spacing: .03em; text-transform: uppercase; color: var(--pine); vertical-align: middle; }

.wv-rv-actions { margin-left: .5rem; }

.wv-rv-report { background: none; border: 0; padding: 0; font: inherit; font-size: .78rem; font-style: normal; color: var(--ink-faint); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }

.wv-rv-report:hover { color: var(--ink-soft); }

.wv-rv-reported { font-size: .78rem; font-style: normal; color: var(--ink-faint); }

.wv-review-mine { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; margin-top: 1.1rem; padding: .8rem 1rem; border: 1px solid var(--line-soft); border-radius: var(--wv-radius-md); background: var(--paper); }

.wv-review-mine-label { font-size: .88rem; font-weight: 600; color: var(--ink-soft); }

.wv-review-mine-actions { display: flex; gap: .5rem; }

.wvd-vr-score { font-weight: 600; color: var(--ink); }

.wvd-vr-count { color: var(--ink-faint); }

/* Report modal sub-copy + a 10px indent on the owner reply card for clearer hierarchy. */
.wv-report-sub { font-size: .9rem; line-height: 1.5; color: var(--ink-soft); margin-bottom: .9rem; }

/* Owner-facing review rows in the my-listing editor — shared by both twins. */

.ml-review-link-row { display: flex; gap: .4rem; margin-top: .7rem; }

.ml-review-link { flex: 1; min-width: 0; padding: .5rem .6rem; font-size: .8rem; color: var(--ink-soft); background: #fff; border: 1px solid var(--line-soft); border-radius: 8px; outline: none; }

.ml-review-copy { flex-shrink: 0; padding: .5rem .9rem; font-size: .82rem; font-weight: 600; color: #fff; background: var(--pine); border: 0; border-radius: 8px; cursor: pointer; transition: opacity .15s; }

.ml-review-copy:hover { opacity: .9; }

.ml-review-msg { box-sizing: border-box; width: 100%; margin-top: .5rem; padding: .5rem .6rem; font-size: .8rem; line-height: 1.5; color: var(--ink-soft); background: #fff; border: 1px solid var(--line-soft); border-radius: 8px; outline: none; resize: none; }

.ml-review-msg-copy { width: 100%; margin-top: .4rem; padding: .5rem .9rem; font-size: .82rem; font-weight: 600; color: var(--ink-soft); background: #fff; border: 1px solid var(--line-soft); border-radius: 8px; cursor: pointer; transition: background .15s; }

.ml-review-msg-copy:hover { background: #f6f4ef; }
