/* RC.46 rebuilt from RC.42: single cohesive publishing unit; WooCommerce owns the form. */
.sw-review-publish{--sw-reviews-accent:var(--sw-accent,#27b5c7);color:inherit;max-width:100%;box-sizing:border-box;padding:22px 0 24px;border-bottom:1px solid #e5e7eb}
.sw-review-publish *{box-sizing:border-box}
.sw-review-publish-head{display:grid;grid-template-columns:fit-content(var(--sw-review-left-width,32%)) minmax(0,1fr);gap:var(--sw-review-gap,12px);align-items:start;margin:0 0 20px}
.sw-review-publish h3{margin:0 0 12px;font-size:clamp(18px,2vw,23px);font-weight:700;line-height:1.3;color:inherit}
.sw-review-overall-row{display:flex;align-items:center;gap:12px}
.sw-review-average{font-weight:400;font-size:clamp(39px,4vw,58px);line-height:1}
.sw-review-average-details{display:flex;flex-direction:column;line-height:1.4;font-size:14px}
.sw-review-static-stars{display:flex;gap:2px}
.sw-review-static-star{position:relative;display:inline-block;width:19px;height:19px;font-size:0!important;color:transparent!important;background:#d4d9df;-webkit-mask:var(--sw-review-mask) center/contain no-repeat;mask:var(--sw-review-mask) center/contain no-repeat;--sw-review-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.85c.34 0 .63.19.79.49l2.56 4.95 5.51.82c.75.11 1.04 1.03.49 1.56l-3.98 3.86.94 5.46c.13.77-.68 1.34-1.37.97L12 18.39l-4.94 2.57c-.69.37-1.5-.2-1.37-.97l.94-5.46-3.98-3.86c-.55-.53-.26-1.45.49-1.56l5.51-.82 2.56-4.95c.16-.30.45-.49.79-.49Z'/%3E%3C/svg%3E")}
.sw-review-static-star:before{content:'';position:absolute;inset:0;width:var(--sw-star-fill,0%);background:#ffc83d}
.sw-review-star-grid{display:flex;flex-wrap:wrap;gap:8px;max-width:100%}
.sw-review-star{display:grid;place-items:center;width:var(--sw-review-tile,56px);height:var(--sw-review-tile,56px);padding:0;border:1px solid var(--sw-reviews-accent,#27b5c7);border-radius:var(--sw-review-tile-radius,9px);background:#fff;color:var(--sw-reviews-accent,#27b5c7);cursor:pointer;transition:background-color .2s,color .2s;box-shadow:none}
.sw-review-star-icon{width:var(--sw-review-icon,29px);height:var(--sw-review-icon,29px);fill:none;stroke:currentColor;stroke-width:1.3;stroke-linejoin:round;stroke-linecap:round;transform-origin:50% 50%;transition:transform .33s ease,fill .18s ease;transform:rotate(0deg) scale(1)}
.sw-review-star.is-highlighted,.sw-review-star.is-selected{color:#fff;background:var(--sw-reviews-accent,#27b5c7)}
.sw-review-star.is-highlighted .sw-review-star-icon,.sw-review-star.is-selected .sw-review-star-icon{fill:currentColor;transform:rotate(72deg) scale(var(--sw-review-hover-scale,1.12))}
.sw-review-star:focus-visible{outline:3px solid var(--sw-reviews-accent,#27b5c7);outline-offset:3px}
.sw-review-selected-message{font-size:13px;line-height:1.5;margin:7px 0 0}
/* Only after successful native-form mounting do we hide duplicate Woo titles/stars. */
.sw-review-publish.is-mounted #reply-title,.sw-review-publish.is-mounted #respond .comment-reply-title,.sw-review-publish.is-mounted .comment-form-rating{display:none!important}
.sw-review-publish #review_form_wrapper,.sw-review-publish #review_form,.sw-review-publish #respond{display:block;float:none;max-width:100%;width:100%;margin:0;padding:0}
.sw-review-publish #commentform{display:flex;flex-direction:column;gap:12px;width:100%;max-width:100%;margin:0}
.sw-review-publish #commentform>p,.sw-review-publish #commentform>div{margin:0}
.sw-review-publish #commentform .comment-form-comment{order:0}
.sw-review-publish #commentform .sw-review-photos-field{order:-1;max-width:100%;margin:0 0 2px}
.sw-review-publish #commentform textarea{box-sizing:border-box;width:100%;min-height:112px;max-width:100%;resize:vertical}
.sw-review-publish #commentform .form-submit{margin-top:6px}
.sw-review-publish #commentform input[type=submit],.sw-review-dialog-submit{background:var(--sw-reviews-accent,#27b5c7);color:#fff;border:0;border-radius:5px;cursor:pointer}
.sw-review-publish[data-sw-mode="popup"].is-mounted:not(.is-dialog-open) .sw-review-native-slot{display:none}
.sw-review-publish.is-submitting{cursor:progress}
.sw-review-publish.is-submitting .sw-review-star,.sw-review-publish.is-submitting input[type=submit]{pointer-events:none;opacity:.7}
/* Popup moves the *entire* existing summary + picker + native Woo form together. */
.sw-review-dialog-backdrop{position:fixed;inset:0;z-index:2147482500;background:rgba(12,22,32,.58);display:flex;align-items:center;justify-content:center;padding:clamp(8px,2vw,24px);box-sizing:border-box}
.sw-review-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(760px,100%);max-height:min(94dvh,900px);overflow:hidden;border-radius:14px;background:#fff;color:#16202e;box-shadow:0 16px 55px rgba(0,0,0,.25)}
.sw-review-dialog-head,.sw-review-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 20px;background:#fff}
.sw-review-dialog-head{border-bottom:1px solid #e4e8ec}.sw-review-dialog-head h3{font-size:20px;line-height:1.3;margin:0}
.sw-review-dialog-close{width:36px;height:36px;border:0;background:#f2f5f7;border-radius:50%;font-size:26px;line-height:1;cursor:pointer}
.sw-review-dialog-scroll{overflow-y:auto;overscroll-behavior:contain;padding:0 20px;min-height:0;scrollbar-gutter:stable}
.sw-review-dialog-scroll .sw-review-publish{border:0;padding:18px 0 22px}
.sw-review-dialog-footer{border-top:1px solid #e4e8ec;justify-content:stretch}
.sw-review-dialog-submit{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;font-weight:700}
.sw-review-dialog .form-submit{display:none!important}
.sw-review-dialog .sw-review-publish[data-sw-mode="popup"].is-mounted.is-dialog-open .sw-review-native-slot{display:block}
.sw-review-submit-spinner{display:none;width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:sw-shared-spin .75s linear infinite}
.is-submitting .sw-review-submit-spinner{display:block}
@media(max-width:700px){.sw-review-publish-head{grid-template-columns:1fr;gap:16px}.sw-review-publish{padding:16px 0}.sw-review-dialog-backdrop{padding:0;align-items:stretch}.sw-review-dialog{height:100dvh;max-height:100dvh;border-radius:0}.sw-review-dialog-head,.sw-review-dialog-footer{padding:12px 16px}.sw-review-dialog-scroll{padding:0 16px;scrollbar-gutter:auto}.sw-review-publish.sw-review-style-tiles .sw-review-star{width:clamp(43px,15vw,var(--sw-review-tile,56px));height:clamp(43px,15vw,var(--sw-review-tile,56px))}}
@media(prefers-reduced-motion:reduce){.sw-review-star-icon{transition:none;transform:none!important}.sw-review-submit-spinner{animation:none}}

/* RC.47: theme-scoped star treatments; one cohesive Woo publishing component. */
.sw-review-publish .sw-review-star-icon{display:block;pointer-events:none;backface-visibility:hidden;will-change:transform;transition:transform .4s cubic-bezier(.22,.72,.27,1),fill .28s ease}
.sw-review-publish[data-sw-effect="rotate72"] .sw-review-star-icon{transform:rotate(0) scale(1)}
.sw-review-publish[data-sw-effect="rotate72"] .sw-review-star.is-highlighted .sw-review-star-icon,.sw-review-publish[data-sw-effect="rotate72"] .sw-review-star.is-selected .sw-review-star-icon{transform:rotate(72deg) scale(var(--sw-review-hover-scale,1.12))}
.sw-review-publish[data-sw-effect="grow"] .sw-review-star.is-highlighted .sw-review-star-icon,.sw-review-publish[data-sw-effect="grow"] .sw-review-star.is-selected .sw-review-star-icon{transform:scale(var(--sw-review-hover-scale,1.12))}
.sw-review-publish[data-sw-effect="bounce"] .sw-review-star-icon{transition-timing-function:cubic-bezier(.22,1.5,.3,1)}
.sw-review-publish[data-sw-effect="bounce"] .sw-review-star.is-highlighted .sw-review-star-icon,.sw-review-publish[data-sw-effect="bounce"] .sw-review-star.is-selected .sw-review-star-icon{transform:scale(var(--sw-review-hover-scale,1.12))}
.sw-review-publish[data-sw-effect="fill"] .sw-review-star-icon,.sw-review-publish[data-sw-effect="fill"] .sw-review-star.is-highlighted .sw-review-star-icon,.sw-review-publish[data-sw-effect="fill"] .sw-review-star.is-selected .sw-review-star-icon{transform:none}
.sw-review-publish[data-sw-effect="none"] .sw-review-star-icon,.sw-review-publish[data-sw-motion="0"] .sw-review-star-icon{transform:none!important;transition:none!important}
.sw-review-publish.sw-review-style-stars .sw-review-star,.sw-review-publish.sw-review-style-minimal .sw-review-star{border:0;background:transparent;color:var(--sw-reviews-accent);box-shadow:none}
.sw-review-publish.sw-review-style-stars .sw-review-star.is-highlighted,.sw-review-publish.sw-review-style-stars .sw-review-star.is-selected,.sw-review-publish.sw-review-style-minimal .sw-review-star.is-highlighted,.sw-review-publish.sw-review-style-minimal .sw-review-star.is-selected{color:var(--sw-reviews-accent)}
/* Unframed variants use content-width hit targets instead of invisible 64px cards. */
.sw-review-publish.sw-review-style-stars .sw-review-star{width:calc(var(--sw-review-icon,30px) + 16px);height:calc(var(--sw-review-icon,30px) + 16px)}
.sw-review-publish.sw-review-style-minimal .sw-review-star-grid{gap:3px}
.sw-review-publish.sw-review-style-minimal .sw-review-star{width:calc(var(--sw-review-icon,30px) * .78 + 6px);height:calc(var(--sw-review-icon,30px) * .78 + 6px)}
.sw-review-publish.sw-review-style-minimal .sw-review-star-icon{width:calc(var(--sw-review-icon,30px) * .78);height:calc(var(--sw-review-icon,30px) * .78)}
@media(max-width:700px){.sw-review-publish-head{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.sw-review-publish .sw-review-star-icon{transition:none!important;transform:none!important;will-change:auto}}

/* Device-independent presentations; one WooCommerce form is moved into the chosen layer. */
.sw-review-dialog-backdrop{top:var(--sw-review-visual-top,0px);bottom:auto;height:var(--sw-review-visual-height,100dvh)}
.sw-review-dialog-backdrop--drawer-right{justify-content:flex-end;padding:0}
.sw-review-dialog-backdrop--drawer-right .sw-review-dialog{height:100%;max-height:100%;width:min(560px,100%);border-radius:0}
.sw-review-dialog-backdrop--drawer-bottom{align-items:flex-end;padding:0}
.sw-review-dialog-backdrop--drawer-bottom .sw-review-dialog{width:100%;height:min(85dvh,820px);max-height:100%;border-radius:16px 16px 0 0}
.sw-review-dialog-footer{padding-bottom:max(13px,env(safe-area-inset-bottom,0px))}
@media(max-width:700px){
 .sw-review-dialog-backdrop--modal{padding:12px;align-items:center;justify-content:center}
 .sw-review-dialog-backdrop--modal .sw-review-dialog{width:min(100%,560px);height:auto;max-height:calc(100% - 24px);border-radius:14px}
 .sw-review-dialog-backdrop--drawer-bottom .sw-review-dialog{height:min(86dvh,100%);max-height:100%;border-radius:16px 16px 0 0;animation:sw-review-drawer-rise .28s ease-out both}
 .sw-review-dialog-backdrop--drawer-right .sw-review-dialog{height:100%;max-height:100%;border-radius:0}
 .sw-review-dialog-footer{padding-bottom:max(12px,env(safe-area-inset-bottom,0px))}
}
@keyframes sw-review-drawer-rise{from{transform:translateY(24px);opacity:.96}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.sw-review-dialog-backdrop--drawer-bottom .sw-review-dialog{animation:none}}

/* RC.68 optional native rating-only presentation. */
.sw-review-publish .sw-rating-only-note{font-size:.85rem;opacity:.75;margin:4px 0 12px;}
.sw-rating-only-label{display:inline-block;font-size:.8rem;opacity:.72;margin:3px 0;}

/* RC.69: all outcomes stay in the product page; never navigate to wp-comments-post.php. */
.sw-review-publish.is-submitting :is(input,textarea,select,button),
.sw-review-dialog.is-submitting :is(input,textarea,select,button){cursor:wait;opacity:.65;}
.sw-review-publish.is-submitting #commentform .form-submit{position:relative;}
.sw-review-publish.is-submitting #commentform .form-submit:after{content:"";position:absolute;left:calc(50% - 9px);top:calc(50% - 9px);width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sw-shared-spin .7s linear infinite;pointer-events:none;}

.sw-review-publish.is-submitting #commentform input[type="submit"]{color:transparent!important;}
.sw-review-publish.is-submitting #commentform .form-submit:after{z-index:1}

/* RC.72: constrain the centered modal against theme width/min-width rules.
   Drawer presentations keep their own intentionally edge-anchored geometry. */
.sw-review-dialog-backdrop--modal{left:0;right:0;width:100%;max-width:100vw;}
.sw-review-dialog-backdrop--modal>.sw-review-dialog{box-sizing:border-box;min-width:0;max-width:100%;margin-inline:auto;flex:0 1 760px;}
@media(max-width:700px){.sw-review-dialog-backdrop--modal>.sw-review-dialog{flex-basis:560px;}}

/* RC.73: the permanent product score/picker never leave the Reviews tab. Only
   the original Woo comment form moves to the centered dialog. */
.sw-review-dialog-picker{text-align:center;padding:20px 0 22px;color:#16202e}
.sw-review-dialog-picker h4{margin:0 0 15px;font-size:17px;line-height:1.35;font-weight:700;color:inherit}
.sw-review-dialog-picker .sw-review-star-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.sw-review-dialog-picker .sw-review-star{display:grid;place-items:center;box-sizing:border-box;width:var(--sw-review-tile,56px);height:var(--sw-review-tile,56px);padding:0;border:1px solid var(--sw-reviews-accent,#27b5c7);border-radius:var(--sw-review-tile-radius,9px);background:#fff;color:var(--sw-reviews-accent,#27b5c7);cursor:pointer;box-shadow:none}
.sw-review-dialog-picker .sw-review-star .sw-review-star-icon{width:var(--sw-review-icon,30px);height:var(--sw-review-icon,30px);fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;pointer-events:none}
.sw-review-dialog-picker .sw-review-star.is-selected{background:var(--sw-reviews-accent,#27b5c7);color:#fff}
.sw-review-dialog-picker .sw-review-star.is-selected .sw-review-star-icon{fill:currentColor}
.sw-review-dialog-picker .sw-review-star:focus-visible{outline:2px solid var(--sw-reviews-accent,#27b5c7);outline-offset:2px}
.sw-review-dialog-rating-status{font-size:14px;margin:10px 0 0;min-height:20px;color:#576373}
.sw-review-dialog-scroll #review_form_wrapper,.sw-review-dialog-scroll #review_form,.sw-review-dialog-scroll #respond{float:none;display:block;width:100%;max-width:100%;margin:0;padding:0;box-sizing:border-box}
.sw-review-dialog-scroll #commentform{display:flex;flex-direction:column;gap:12px;width:100%;margin:0}
.sw-review-dialog-scroll #commentform>p,.sw-review-dialog-scroll #commentform>div{margin:0}
.sw-review-dialog-scroll .comment-form-rating{display:none!important}
.sw-review-dialog-scroll #reply-title,.sw-review-dialog-scroll .comment-reply-title{display:none!important}
.sw-review-dialog-scroll #commentform textarea{display:block;width:100%;max-width:100%;min-height:120px;box-sizing:border-box;resize:vertical}
.sw-review-dialog-scroll #commentform .form-submit{display:none!important}
.sw-review-dialog-scroll #commentform :is(input,textarea,select){max-width:100%;box-sizing:border-box}
.sw-review-dialog-scroll #commentform .sw-review-photos-field{order:-1}
.sw-review-dialog.is-submitting :is(input,textarea,select,button){pointer-events:none;opacity:.7}
@media(max-width:700px){.sw-review-dialog-picker{padding:15px 0 18px}.sw-review-dialog-picker .sw-review-star{width:clamp(43px,15vw,var(--sw-review-tile,56px));height:clamp(43px,15vw,var(--sw-review-tile,56px))}}

/* Optional RC.73 review confirmation; defaults to the shared Toast instead. */
.sw-review-thanks-backdrop{position:fixed;inset:0;z-index:2147482601;background:rgba(12,22,32,.58);display:flex;justify-content:center;align-items:center;box-sizing:border-box;padding:16px}
.sw-review-thanks-box{position:relative;box-sizing:border-box;background:#fff;color:#1d2936;border-radius:14px;box-shadow:0 15px 45px rgba(0,0,0,.24);width:min(540px,100%);padding:42px 25px 27px;text-align:center;max-height:92dvh;overflow-y:auto}
.sw-review-thanks-art{font-size:32px;letter-spacing:10px;color:var(--sw-accent,#27b5c7);margin:0 0 12px}
.sw-review-thanks-box h2{font-size:28px;line-height:1.25;margin:0 0 14px;color:inherit}
.sw-review-thanks-box p{line-height:1.5;margin:0 0 20px;overflow-wrap:anywhere}
.sw-review-thanks-close{position:absolute;top:12px;right:12px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;background:#f2f5f7;color:#263846;cursor:pointer;padding:0}
.sw-review-thanks-close svg{display:block;margin:auto}
.sw-review-thanks-done{width:100%;min-height:44px;border:0;border-radius:5px;background:var(--sw-accent,#27b5c7);color:#fff;font-weight:700;cursor:pointer}
.sw-review-thanks-box :is(button):focus-visible{outline:2px solid var(--sw-accent,#27b5c7);outline-offset:2px}

.sw-review-dialog-picker .sw-review-star.is-highlighted{background:var(--sw-reviews-accent,#27b5c7);color:#fff}
.sw-review-dialog-picker .sw-review-star.is-highlighted .sw-review-star-icon{fill:currentColor}

/* RC.76: configurable mobile bottom sheet. Keep other popup presentations
   unchanged and let the visual viewport (keyboard/safe area) constrain height. */
@media(max-width:700px){
 .sw-review-dialog-backdrop--drawer-bottom.sw-review-dialog-height-auto>.sw-review-dialog{
   height:fit-content;max-height:min(var(--sw-review-mobile-drawer-ratio,75%),100%);
   grid-template-rows:auto minmax(0,1fr) auto;
 }
 .sw-review-dialog-backdrop--drawer-bottom.sw-review-dialog-height-fixed>.sw-review-dialog{
   height:min(var(--sw-review-mobile-drawer-ratio,75%),100%);max-height:100%;
   grid-template-rows:auto minmax(0,1fr) auto;
 }
 .sw-review-dialog-backdrop--drawer-bottom .sw-review-dialog-scroll{
   min-height:0;overflow-y:auto;overscroll-behavior:contain;
 }
 .sw-review-dialog-backdrop--drawer-bottom .sw-review-dialog-footer{
   flex-shrink:0;z-index:1;
   padding-bottom:max(12px,env(safe-area-inset-bottom,0px));
 }
}
