/* Eco Woo Reviews: scoped styling that keeps WooCommerce controls native. */
.ewr-extra-fields .optional { color:#697482; font-size:12px; font-weight:400; }
.ewr-honeypot { display:none!important; }

/* Reusable review surfaces and ratings. */
.ewr-section { margin:28px 0 36px; }
.ewr-heading { margin:0 0 22px; color:#30435f; font-size:clamp(23px,3vw,30px); line-height:1.25; text-align:center; }
.ewr-grid { display:grid; grid-template-columns:repeat(var(--ewr-cols,3),minmax(0,1fr)); gap:18px; }
.ewr-card { display:flex; min-width:0; flex-direction:column; padding:23px; border:1px solid #e1e5eb; border-radius:14px; background:#fff; box-shadow:0 4px 15px rgba(25,42,62,.04); }
.ewr-stars { color:#d89621; font-size:21px; letter-spacing:2px; line-height:1.25; white-space:nowrap; }
.ewr-text { flex:1; margin:15px 0; font-size:14px; line-height:1.65; overflow-wrap:anywhere; }
.ewr-card .ewr-photos { margin:3px 0 14px; }
.ewr-card .ewr-photo { width:59px; height:59px; flex-basis:59px; }
.ewr-card-footer { display:flex; align-items:baseline; flex-wrap:wrap; justify-content:space-between; gap:7px; padding-top:14px; border-top:1px solid #e9edf1; font-size:13px; }
.ewr-card-footer time { color:#697482; font-size:12px; }
.ewr-product-link { display:inline-block; margin-top:10px; color:#30435f; font-size:13px; overflow-wrap:anywhere; }
.ewr-empty { padding:12px 0; color:#697482; }

/* Product score and distribution. */
.ewr-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,1.5fr); align-items:center; gap:22px; }
.ewr-summary-score { display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px; min-width:0; }
.ewr-summary-number { display:flex; align-items:baseline; gap:4px; color:#30435f; white-space:nowrap; }
.ewr-summary-number strong { font-size:40px; line-height:1; font-weight:700; }
.ewr-summary-number span { color:#697482; font-size:14px; }
.ewr-summary-count { flex-basis:100%; color:#697482; font-size:13px; }
.ewr-summary .star-rating { flex:none; margin:0; color:#d89621; }
.ewr-summary-caption { margin:0; color:#697482; font-size:13px; line-height:1.5; }
.ewr-summary--compact { display:block; }
.ewr-summary--compact .ewr-summary-score { gap:6px 8px; }
.ewr-summary--compact .ewr-summary-score>strong,.ewr-summary--compact .ewr-summary-number strong { color:#30435f; font-size:16px; line-height:1.2; }
.ewr-summary--compact .ewr-summary-number span { font-size:12px; }
.ewr-summary--compact .ewr-summary-count { flex-basis:auto; font-size:12px; }
.ewr-summary--compact .ewr-summary-caption { margin-top:3px; font-size:12px; }
.single-product .product-rating-summary:has(.ewr-summary) { display:block!important; height:auto!important; }
.single-product .js-reviews-stats:has(.ewr-summary) { padding:0!important; border:0!important; background:transparent!important; box-shadow:none!important; }
.single-product .js-reviews-stats:empty,.single-product .js-reviews-gallery:empty { display:none; }
.ewr-summary:not(.ewr-summary--compact) { padding:20px 22px; border:1px solid #e4e8ee; border-radius:13px; background:#f8fafc; }
.ewr-gallery-title { margin:0 0 12px; color:#30435f; font-size:17px; }
.ewr-bars { display:grid; gap:7px; min-width:0; }
.ewr-bar-row { display:grid; grid-template-columns:38px minmax(30px,1fr) 22px; align-items:center; gap:8px; color:#566477; font-size:13px; }
.ewr-bar-row>span:last-child { text-align:right; font-variant-numeric:tabular-nums; }
.ewr-bar-track { height:8px; overflow:hidden; border-radius:5px; background:#e5e9ef; }
.ewr-bar-track>span { display:block; height:100%; border-radius:5px; background:#d89621; }

/* Customer photos and keyboard focus. */
.ewr-photos { display:flex; flex-wrap:wrap; gap:9px; margin:14px 0; }
.ewr-photo { display:block; flex:0 0 80px; width:80px; height:80px; overflow:hidden; border:1px solid #dce2ea; border-radius:10px; }
.ewr-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.ewr-photo:focus-visible,.ewr-pagination a:focus-visible { outline:3px solid #30435f; outline-offset:3px; }

/* Native WooCommerce review list, with a card for each customer review. */
.ewr-product-list { min-width:0; scroll-margin-top:90px; }
.ewr-product-list #reviews #comments ol.commentlist { margin:0; padding:0; list-style:none; }
.ewr-product-list #reviews #comments ol.commentlist>li.review { min-width:0; margin:0 0 16px; padding:20px; border:1px solid #e1e5eb; border-radius:13px; background:#fff; box-shadow:0 3px 12px rgba(25,42,62,.035); list-style:none; }
.ewr-product-list .comment_container { display:flex; align-items:flex-start; gap:15px; min-width:0; }
.ewr-product-list .comment_container img.avatar { position:static; float:none; flex:0 0 44px; width:44px; height:44px; margin:0; border:1px solid #e3e8ee; border-radius:50%; object-fit:cover; }
.ewr-product-list .comment_container>.flex-col:first-child:not(.comment-text):not(:has(img)) { display:none; }
.ewr-product-list .comment-text { display:flex; flex-direction:column; flex:1; min-width:0; margin:0!important; padding:0!important; border:0!important; overflow-wrap:anywhere; }
.ewr-product-list .comment-text:before,.ewr-product-list .comment-text:after { display:none!important; }
.ewr-product-list .comment-text .star-rating { order:1; float:none; margin:0 0 12px; color:#d89621; }
.ewr-product-list .comment-text p.meta { order:0; display:flex; align-items:center; flex-wrap:wrap; gap:5px 9px; margin:0 0 10px!important; color:#697482; font-size:13px; line-height:1.45; }
.ewr-product-list .woocommerce-review__author { color:#30435f; font-size:15px; font-style:normal; font-weight:700; }
.ewr-product-list .woocommerce-review__verified { display:inline-block; padding:3px 8px; border-radius:999px; background:#e8f5ed; color:#287346; font-size:11px; font-style:normal; font-weight:600; line-height:1.4; }
.ewr-product-list .woocommerce-review__dash { display:none; }
.ewr-product-list .woocommerce-review__published-date { margin-left:auto; color:#758092; font-size:12px; }
.ewr-product-list .comment-text .description { order:2; font-style:normal; color:#354254; font-size:14px; line-height:1.7; }
.ewr-product-list .comment-text .description p { margin:0 0 10px; font-style:normal; }
.ewr-product-list .ewr-detail { order:3; margin:8px 0; color:#566477; font-size:13px; line-height:1.55; }
.ewr-product-list .ewr-photos { order:4; margin:14px 0 4px; }
.ewr-product-list .children { margin:16px 0 0 24px; padding:0; }
.ewr-product-list[aria-busy=true] { opacity:.6; }
.ewr-pagination { display:flex; flex-wrap:wrap; gap:8px; margin:24px 0; }
.ewr-pagination a,.ewr-pagination .current { display:inline-flex; min-width:42px; min-height:42px; align-items:center; justify-content:center; border:1px solid #dce2ea; border-radius:8px; color:#30435f; font-weight:600; text-decoration:none; }
.ewr-pagination .current { border-color:#30435f; background:#30435f; color:#fff; }

/* Single product review action. */
#reviews-section a[href="#review-form"] { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:10px 18px; border:0!important; border-radius:10px!important; background:#30435f; color:#fff; font-size:14px; font-weight:600; line-height:1.3; text-decoration:none; }
#reviews-section a[href="#review-form"]:hover { background:#24364f; color:#fff; }
#reviews-section a[href="#review-form"]:focus-visible { outline:3px solid #d89621; outline-offset:3px; }

/* Review form card: native form controls and no-JS behavior remain intact. */
#review-form>div:has(.ewr-native-form) { margin:0!important; padding:0!important; border:0!important; background:transparent!important; box-shadow:none!important; }
.ewr-native-form { min-width:0; padding:24px; border:1px solid #e1e5eb; border-radius:14px; background:#fff; box-shadow:0 5px 18px rgba(25,42,62,.045); }
.ewr-form-intro { margin:0 0 20px; }
.ewr-form-intro h3,.ewr-form-intro h4 { margin:0 0 6px; color:#30435f; font-size:20px; line-height:1.3; }
.ewr-form-intro p { margin:0; color:#697482; font-size:13px; line-height:1.55; }
.ewr-native-form #respond { margin:0; }
.ewr-native-form #reply-title:has(#cancel-comment-reply-link[style*="display:none"]),.ewr-native-form #reply-title:has(#cancel-comment-reply-link[style*="display: none"]) { display:none; }
.ewr-native-form #commentform { margin-bottom:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 14px; }
.ewr-native-form #commentform>p,.ewr-native-form #commentform>.comment-form-rating,.ewr-native-form #commentform>.comment-form-comment,.ewr-native-form #commentform>.ewr-extra-fields,.ewr-native-form #commentform>.form-submit,.ewr-native-form #commentform>.comment-notes,.ewr-native-form #commentform>.logged-in-as { grid-column:1/-1; min-width:0; }
.ewr-native-form #commentform>p.comment-form-author,.ewr-native-form #commentform>p.comment-form-email { grid-column:span 1; }
.ewr-native-form #commentform label,.ewr-upload label { display:block; margin:0 0 7px; color:#30435f; font-size:14px; font-weight:600; line-height:1.4; }
.ewr-native-form #commentform .required { color:#a91d2c; }
.ewr-native-form #commentform input[type=text],.ewr-native-form #commentform input[type=email],.ewr-native-form #commentform textarea,.ewr-native-form #commentform select { box-sizing:border-box; display:block; width:100%; max-width:100%; min-height:46px; margin:0; padding:10px 12px; border:1px solid #cfd6df; border-radius:8px; background:#fff; color:#26364b; font-size:16px; line-height:1.4; }
.ewr-native-form #commentform textarea { min-height:130px; resize:vertical; }
.ewr-native-form #commentform input:focus,.ewr-native-form #commentform textarea:focus,.ewr-native-form #commentform select:focus,.ewr-upload input[type=file]:focus-visible { border-color:#30435f; outline:3px solid rgba(48,67,95,.18); outline-offset:1px; }
.ewr-native-form .comment-form-rating { margin:0 0 16px; }
.ewr-native-form .comment-form-rating select { margin-top:8px!important; }
.ewr-native-form .comment-form-rating p.stars { margin:8px 0 0!important; }
.ewr-native-form .comment-form-rating p.stars>span[role="group"] { display:inline-flex; flex-wrap:nowrap; gap:3px; }
.ewr-native-form .comment-form-rating p.stars>span[role="group"]>a { display:inline-flex!important; width:42px; height:42px; border:0!important; align-items:center; justify-content:center; margin:0!important; color:#aeb7c3!important; font-size:0!important; line-height:1!important; text-decoration:none; }
.ewr-native-form .comment-form-rating p.stars>span[role="group"]>a:after { content:none!important; display:none!important; }
.ewr-native-form .comment-form-rating p.stars>span[role="group"]>a:before { content:"★"!important; display:block; color:inherit; font-family:Arial,sans-serif!important; font-size:29px!important; line-height:1!important; letter-spacing:0!important; }
.ewr-native-form .comment-form-rating p.stars>span[role="group"]>a.active,.ewr-native-form .comment-form-rating p.stars>span[role="group"]>a:has(~a.active) { color:#d89621!important; }
.ewr-native-form .comment-form-rating p.stars>span[role="group"]>a:hover,.ewr-native-form .comment-form-rating p.stars>span[role="group"]>a:has(~a:hover) { color:#d89621!important; }
.ewr-native-form .comment-form-rating p.stars>span[role="group"]>a:focus-visible { border-radius:6px; outline:3px solid #30435f; outline-offset:-2px; }
.ewr-upload { margin:16px 0 20px; }
.ewr-upload input[type=file] { display:block; width:100%; max-width:100%; margin:0 0 8px; color:#566477; font-size:13px; }
.ewr-upload input[type=file]::file-selector-button { min-height:38px; margin-right:10px; padding:7px 12px; border:1px solid #cfd6df; border-radius:7px; background:#f5f7fa; color:#30435f; font:inherit; font-size:13px; font-weight:600; line-height:1.3; cursor:pointer; }
.ewr-upload small { display:block; color:#697482; font-size:12px; line-height:1.5; }
.ewr-file-feedback { display:block; min-height:1.4em; margin-top:6px; color:#30435f; font-size:13px; }
.ewr-file-feedback.ewr-error { color:#a91d2c; }
.ewr-native-form #submit { max-width:100%; min-height:46px; padding:10px 22px; border:0; border-radius:9px; background:#30435f; color:#fff; white-space:normal; }
.ewr-native-form #submit:hover { background:#24364f; }
.ewr-form-note { margin:14px 0 0; color:#697482; font-size:12px; line-height:1.5; }
.ewr-detail--advantages strong { color:#287346; }
.ewr-detail--disadvantages strong { color:#30435f; }

/* Image dialog generated by the front-end script. */
.ewr-lightbox { box-sizing:border-box; width:max-content; max-width:calc(100vw - 24px); max-height:calc(100vh - 24px); padding:48px 12px 12px; border:0; border-radius:12px; background:#fff; color:#30435f; }
.ewr-lightbox::backdrop { background:rgba(12,21,34,.78); }
.ewr-lightbox img { display:block; max-width:100%; max-height:calc(100vh - 96px); object-fit:contain; }
.ewr-lightbox-close { position:absolute; top:7px; right:10px; min-height:36px; margin:0; padding:4px 12px; border:0; border-radius:6px; background:#30435f; color:#fff; font-size:13px; }

@media(max-width:849px) {
  .ewr-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ewr-summary:not(.ewr-summary--compact) { grid-template-columns:minmax(0,1fr) minmax(145px,1fr); gap:16px; }
}
@media(max-width:549px) {
  .ewr-grid { grid-template-columns:1fr; gap:12px; }
  .ewr-card { padding:17px; }
  .ewr-summary:not(.ewr-summary--compact) { grid-template-columns:minmax(85px,.8fr) minmax(125px,1.2fr); gap:16px; padding:17px; }
  .ewr-summary--compact .ewr-summary-score>strong,.ewr-summary--compact .ewr-summary-number strong { color:#30435f; font-size:16px; line-height:1.2; }
  .ewr-product-list #reviews #comments ol.commentlist>li.review { padding:16px; }
  .ewr-product-list .comment_container { gap:11px; }
  .ewr-product-list .comment_container img.avatar { flex-basis:36px; width:36px; height:36px; }
  .ewr-product-list .children { margin-left:12px; }
  .ewr-native-form { padding:18px; }
  .ewr-native-form #commentform { grid-template-columns:minmax(0,1fr); }
  .ewr-native-form #commentform>p.comment-form-author,.ewr-native-form #commentform>p.comment-form-email { grid-column:1/-1; }
  .ewr-native-form #submit { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .ewr-product-list { scroll-behavior:auto; } }
