/*
 * Unlike the plugin's standalone [lvcal_account] pages, this renders
 * directly inside the active theme's own product page markup — no
 * isolation at all — so typography is reset defensively wherever this
 * runs, the same lesson learned the hard way on the Products Bundle page.
 */
.lvcal-reviews, .lvcal-reviews * {
  box-sizing: border-box;
}
.lvcal-reviews, .lvcal-reviews p, .lvcal-reviews span, .lvcal-reviews div, .lvcal-reviews li, .lvcal-reviews a,
.lvcal-reviews button, .lvcal-reviews input, .lvcal-reviews select, .lvcal-reviews textarea, .lvcal-reviews h2, .lvcal-reviews h3 {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  color: #17181a;
}
.lvcal-reviews ol, .lvcal-reviews ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }

.lvcal-reviews { max-width: 900px; margin: 48px 0; }
.lvcal-reviews-title { font-size: 22px !important; font-weight: 800 !important; margin: 0 0 24px !important; letter-spacing: -.01em; }

.lvcal-reviews-summary { display: grid; grid-template-columns: auto 1fr auto; gap: 40px; align-items: center; padding: 28px 0; border-top: 1px solid #e6e4de; border-bottom: 1px solid #e6e4de; margin-bottom: 32px; }
@media (max-width: 720px) { .lvcal-reviews-summary { grid-template-columns: 1fr; gap: 20px; text-align: center; } }

.lvcal-reviews-average { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 120px; }
@media (max-width: 720px) { .lvcal-reviews-average { align-items: center; } }
.lvcal-reviews-average-number { font-size: 44px !important; font-weight: 800 !important; line-height: 1 !important; }
.lvcal-reviews-count { font-size: 12.5px !important; color: #6c6c68 !important; }

/* Every star anywhere in this module — an inline SVG icon with an exact,
   fixed pixel box, not a "★" text character (every font bakes in its own
   vertical offset for that glyph, which is what made it impossible to
   line up against ordinary text no matter what line-height was set) and
   not WooCommerce's icon-font markup (unreliable to load). */
.lvcal-static-stars { display: inline-flex !important; align-items: center !important; gap: 1px !important; vertical-align: middle !important; }
.lvcal-static-star { display: inline-flex !important; align-items: center !important; color: #e0ded6 !important; }
.lvcal-static-star svg { display: block !important; width: 18px !important; height: 18px !important; flex-shrink: 0 !important; }
.lvcal-static-star.is-filled { color: #d99a2b !important; }
.lvcal-reviews-list .lvcal-static-star svg { width: 14px !important; height: 14px !important; }

.lvcal-reviews-bars { display: flex; flex-direction: column; gap: 6px; width: 100%; max-width: 340px; }
.lvcal-reviews-bar-row { display: flex; align-items: center; gap: 10px; font-size: 12px !important; color: #6c6c68 !important; }
.lvcal-reviews-bar-label { width: 20px !important; flex-shrink: 0; font-weight: 700 !important; }
.lvcal-reviews-bar-track { flex: 1; height: 6px; background: #f2f2ee; border-radius: 999px; overflow: hidden; }
.lvcal-reviews-bar-fill { display: block; height: 100%; background: #0f3d38; border-radius: 999px; }
.lvcal-reviews-bar-count { width: 26px !important; flex-shrink: 0; text-align: right; }

.lvcal-reviews-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
@media (max-width: 720px) { .lvcal-reviews-cta { align-items: center; } }
.lvcal-write-review-btn { background: #0f3d38 !important; color: #fff !important; border: none !important; border-radius: 2px; padding: 9px 28px !important; font-size: 13px !important; font-weight: 800 !important; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; white-space: nowrap; }
.lvcal-write-review-btn:hover { background: #0a2b27 !important; }
.lvcal-reviews-bonus-note { font-size: 13.5px !important; font-weight: 800 !important; color: #5c3c0a !important; background: #fdf3e2; border: 1px solid #d99a2b; border-radius: 3px; padding: 9px 14px !important; margin: 0 !important; }

.lvcal-reviews-empty, .lvcal-reviews .woocommerce-noreviews { font-size: 14px !important; color: #6c6c68 !important; padding: 20px 0; }

.lvcal-reviews-list .commentlist { display: flex !important; flex-direction: column !important; gap: 14px !important; }
.lvcal-reviews-list .commentlist li { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.lvcal-reviews-list .comment_container { display: grid !important; grid-template-columns: 170px 1fr !important; align-items: start !important; gap: 24px !important; background: #fafaf7; border: 1px solid #e6e4de; border-radius: 6px; padding: 20px; }
@media (max-width: 560px) { .lvcal-reviews-list .comment_container { grid-template-columns: 1fr !important; gap: 8px !important; } }

.lvcal-reviews-list .lvcal-review-meta-col { min-width: 0; margin: 0 !important; padding: 0 !important; }
.lvcal-reviews-list .lvcal-static-stars { display: inline-flex !important; align-items: center !important; height: 18px !important; line-height: 18px !important; margin: 0 0 8px !important; }
.lvcal-reviews-list .lvcal-review-byline { font-size: 12.5px !important; color: #6c6c68 !important; margin: 0 !important; line-height: 1.3 !important; }
.lvcal-reviews-list .woocommerce-review__author { font-weight: 800 !important; color: #17181a !important; font-size: 13px !important; margin-left: 4px; }

.lvcal-reviews-list .comment-text { margin: 0 !important; padding: 0 !important; min-width: 0; border: none !important; background: none !important; box-shadow: none !important; }
.lvcal-reviews-list .comment-text > *:first-child { margin-top: 0 !important; }
.lvcal-reviews-list .comment-text > *:last-child { margin-bottom: 0 !important; }
.lvcal-reviews-list .woocommerce-review__published-date { display: block !important; height: 18px !important; line-height: 18px !important; font-size: 12px !important; font-weight: 700 !important; color: #0f3d38 !important; text-transform: uppercase; letter-spacing: .03em; margin: 0 0 8px !important; }
.lvcal-reviews-list .description { margin: 0 !important; }
.lvcal-reviews-list .description p { font-size: 13.5px !important; line-height: 1.6 !important; color: #30302e !important; margin: 0 !important; }
.lvcal-reviews-list .reply { display: none; } /* review replies aren't part of this front-end flow */
.lvcal-reviews-list p.meta { font-size: 12.5px !important; color: #6c6c68 !important; margin: 0 !important; line-height: 1.3 !important; }

.woocommerce-pagination { margin-top: 20px; }
.woocommerce-pagination .page-numbers { display: inline-flex; gap: 6px; list-style: none !important; padding: 0 !important; }
.woocommerce-pagination a, .woocommerce-pagination span.current { display: inline-block; padding: 6px 11px; border: 1px solid #e6e4de; border-radius: 3px; font-size: 12.5px !important; text-decoration: none; }
.woocommerce-pagination span.current { background: #0f3d38; color: #fff; border-color: #0f3d38; }

.lvcal-review-form-wrapper { margin-top: 40px; padding-top: 32px; border-top: 1px solid #e6e4de; max-width: 520px; }
.lvcal-review-form-wrapper #reply-title, .lvcal-review-form-wrapper .comment-reply-title { font-size: 17px !important; font-weight: 800 !important; margin: 0 0 16px !important; }
.lvcal-review-form-wrapper .comment-notes { font-size: 12.5px !important; color: #6c6c68 !important; margin: 0 0 16px !important; }
.lvcal-review-form-wrapper .comment-form-rating label,
.lvcal-review-form-wrapper .comment-form-comment label,
.lvcal-review-form-wrapper .comment-form-author label,
.lvcal-review-form-wrapper .comment-form-email label { display: block; font-size: 11.5px !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: .03em; color: #6c6c68 !important; margin-bottom: 6px !important; }
.lvcal-review-form-wrapper select,
.lvcal-review-form-wrapper textarea,
.lvcal-review-form-wrapper input[type="text"],
.lvcal-review-form-wrapper input[type="email"] { width: 100% !important; border: 1.5px solid #e6e4de !important; border-radius: 2px; padding: 10px 12px !important; font-size: 13.5px !important; font-family: inherit !important; margin-bottom: 16px !important; }
.lvcal-review-form-wrapper p { margin: 0 0 4px !important; }
.lvcal-review-form-wrapper .form-submit input[type="submit"] { background: #0f3d38 !important; color: #fff !important; border: none !important; border-radius: 2px; padding: 13px 30px !important; font-size: 13px !important; font-weight: 800 !important; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; margin-bottom: 0 !important; }
.lvcal-review-form-wrapper .form-submit input[type="submit"]:hover { background: #0a2b27 !important; }

/* Clickable star picker replacing WooCommerce's plain rating <select>. */
.lvcal-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.lvcal-star-picker { display: flex; gap: 6px; margin: 0 0 18px !important; }
.lvcal-star { background: none !important; border: none !important; padding: 0 !important; font-size: 30px !important; line-height: 1 !important; color: #e6e4de !important; cursor: pointer; transition: color .1s ease; }
.lvcal-star.is-filled { color: #d99a2b !important; }
