/* Store Weave controlled icons only. Do not override native Woo/Shoptimizer buttons. */
:is(.sw-review-dialog-close,.sw-display-video-modal__close,.sw-promo-close,.sw-promo-dock-close,
 .sc-ui-qa-modal-close,.sc-ui-community-modal-close,.sc-ui-composer-close,
 .sc-ui-photo-close-btn,.sc-ui-photo-upload-close,.sc-ui-media-browser-close,
 .sw-review-photo-remove){
 display:grid!important;place-items:center!important;
 padding:0!important;text-align:center!important;line-height:1!important;
 box-sizing:border-box!important;flex:none;min-width:30px;min-height:30px;
}
/* Buttons already absolutely positioned by their owner must remain positioned there.
   Only the buttons without a containing block need relative positioning. */
:is(.sw-review-dialog-close,.sw-promo-dock-close,.sc-ui-qa-modal-close,
 .sc-ui-community-modal-close,.sc-ui-composer-close){position:relative;}
/* Unlike a font glyph, the crossing strokes stay centered in every browser. */
:is(.sw-review-dialog-close,.sw-display-video-modal__close,.sw-promo-close,.sw-promo-dock-close,
 .sc-ui-qa-modal-close,.sc-ui-community-modal-close,.sc-ui-composer-close,
 .sc-ui-photo-close-btn,.sc-ui-photo-upload-close,.sc-ui-media-browser-close,
 .sw-review-photo-remove){font-size:0!important;}
:is(.sw-review-dialog-close,.sw-display-video-modal__close,.sw-promo-close,.sw-promo-dock-close,
 .sc-ui-qa-modal-close,.sc-ui-community-modal-close,.sc-ui-composer-close,
 .sc-ui-photo-close-btn,.sc-ui-photo-upload-close,.sc-ui-media-browser-close,
 .sw-review-photo-remove)::before,
:is(.sw-review-dialog-close,.sw-display-video-modal__close,.sw-promo-close,.sw-promo-dock-close,
 .sc-ui-qa-modal-close,.sc-ui-community-modal-close,.sc-ui-composer-close,
 .sc-ui-photo-close-btn,.sc-ui-photo-upload-close,.sc-ui-media-browser-close,
 .sw-review-photo-remove)::after {
 content:""!important;position:absolute!important;left:50%!important;top:50%!important;
 width:16px!important;height:2px!important;border:0!important;border-radius:2px!important;
 background:currentColor!important;transform:translate(-50%,-50%) rotate(45deg)!important;
 pointer-events:none!important;box-shadow:none!important;
}
:is(.sw-review-dialog-close,.sw-display-video-modal__close,.sw-promo-close,.sw-promo-dock-close,
 .sc-ui-qa-modal-close,.sc-ui-community-modal-close,.sc-ui-composer-close,
 .sc-ui-photo-close-btn,.sc-ui-photo-upload-close,.sc-ui-media-browser-close,
 .sw-review-photo-remove)::after{transform:translate(-50%,-50%) rotate(-45deg)!important;}
/* Align arrow internals only; NEVER change display/position/transform rules.
   Hidden buttons remain hidden and directional transforms remain intact. */
:is(.sc-ui-photo-nav-btn,.sc-ui-photo-mobile-nav-btn,.sw-display-hero__nav-btn,
 .sw-display-slider__btn,.sw-display-slider__side-btn,.sw-category-swipe-arrow,
 .sw-promo-arrow,.sw-display-scene-card__arrow,
 .sw-media-lightbox-prev,.sw-media-lightbox-next){
 align-items:center;justify-content:center;box-sizing:border-box;
 text-align:center;line-height:1;padding:0;
}
:is(.sc-ui-photo-nav-btn,.sc-ui-photo-mobile-nav-btn,.sw-display-hero__nav-btn,
 .sw-display-slider__btn,.sw-display-slider__side-btn,.sw-category-swipe-arrow,
 .sw-promo-arrow,.sw-display-scene-card__arrow,
 .sw-media-lightbox-prev,.sw-media-lightbox-next) > svg {
 display:block;flex:none;margin:0;
}

/* RC.72: the Gallery upload close is a positioned glyph host. Without a
   containing block, its ::before/::after strokes position against the page.
   Keep the full-screen gallery lightbox's intentionally absolute close intact. */
.sc-ui-photo-upload-close{position:relative!important;}
/* Reviews close owns a real SVG: never draw a second cross over it. */
.sw-review-dialog-close::before,.sw-review-dialog-close::after{content:none!important;display:none!important;}
.sw-review-dialog-close svg{display:block!important;width:20px!important;height:20px!important;flex:none!important;margin:0!important;}
