/*!
 * Premium WooCommerce Storefront — theme shield.
 *
 * Loaded last. Every rule is prefixed with `html body .pws-root` (and uses !important
 * where themes commonly fight back) so the storefront looks the same no matter which
 * theme is active (Hello, Astra, Kadence, Blocksy, Divi, Flatsome…).
 */

/* ---------- Typography ---------- */
html body .pws-root,
html body .pws-root :is(h1, h2, h3, h4, h5, h6, p, a, span, strong, b, em, small, li, label, legend, summary, td, th, button, input, select, textarea, time, del, ins, mark, address, bdi) {
	font-family: var(--pws-font) !important;
}
html body .pws-root :is(h1, h2, h3, h4, h5, h6) { text-transform: none !important; font-style: normal; }
html body .pws-root :is(strong, b) { text-transform: none !important; letter-spacing: inherit !important; }
html body .pws-root li { margin-bottom: 0 !important; }
html body .pws-root :is(ul, ol) { list-style: none !important; }
html body .pws-root :is(.pws-prose, .pws-product__short, .pws-faq__answer) ul { list-style: disc !important; }
html body .pws-root :is(.pws-prose, .pws-product__short, .pws-faq__answer) ol { list-style: decimal !important; }
html body .pws-root :is(.pws-prose, .pws-product__short) li + li { margin-top: .35em; }
html body .pws-root img { border: 0 !important; box-shadow: none; }
html body .pws-root del { text-decoration: line-through !important; }
html body .pws-root ins { text-decoration: none !important; background: none !important; }

/* Our intentional uppercase texts */
html body .pws-root .pws-section__title,
html body .pws-root .pws-product__title,
html body .pws-root .pws-archive__title { text-transform: var(--pws-title-transform) !important; }
html body .pws-root :is(.pws-eyebrow, .pws-footer__title, .pws-filters__title, .pws-drawer__title, .pws-dash__card-head h3, .pws-badge, .pws-type-box__label, .pws-search__group, .pws-price-from, .pws-price-block__from, .pws-variation__label) { text-transform: uppercase !important; }
html body .pws-root .pws-nav__link,
html body .pws-root .pws-nav__list > li > a { text-transform: uppercase !important; letter-spacing: .06em !important; }
html body .pws-root .pws-eyebrow { letter-spacing: .12em !important; }
html body .pws-root :is(.pws-footer__title, .pws-dash__card-head h3) { letter-spacing: .06em !important; }
html body .pws-root .pws-variation__label strong { text-transform: none !important; }

/* ---------- Links ---------- */
html body .pws-root a,
html body .pws-root a:is(:hover, :focus, :active, :visited) { text-decoration: none !important; box-shadow: none; }
html body .pws-root :is(.pws-logo, .pws-nav__list > li > a, .pws-dropdown__grid a, .pws-drawer__list > li > a, .pws-drawer__list summary, .pws-drawer__foot a, .pws-card__title a, .pws-card__media, .pws-cat, .pws-hero-card, .pws-search__item, .pws-link-arrow, .pws-pagination a, .pws-chip, .pws-social a, .pws-product__meta a, .pws-dash__orders a, .pws-dash__links a, .pws-account__content a:not(.button):not(.pws-btn), .pws-review__name, .pws-skip),
html body .pws-root :is(.pws-logo, .pws-nav__list > li > a, .pws-dropdown__grid a, .pws-drawer__list > li > a, .pws-drawer__foot a, .pws-card__title a, .pws-card__media, .pws-cat, .pws-hero-card, .pws-search__item, .pws-link-arrow, .pws-pagination a:not(.is-current), .pws-chip, .pws-product__meta a, .pws-dash__orders a, .pws-dash__links a, .pws-account__content a:not(.button):not(.pws-btn)):is(:hover, :focus, :visited) { color: var(--pws-text) !important; }
html body .pws-root :is(.pws-breadcrumbs a, .pws-footer__col a, .pws-product__rating, .pws-drawer__list details a, .pws-drawer__list .sub-menu a) { color: var(--pws-muted) !important; }
html body .pws-root :is(.pws-breadcrumbs a, .pws-footer__col a, .pws-drawer__list details a, .pws-drawer__list .sub-menu a):is(:hover, :focus) { color: var(--pws-text) !important; }
html body .pws-root :is(.pws-dropdown__all, .pws-search__all, .pws-prose a, a.pws-eyebrow, .woocommerce-LostPassword a, .woocommerce-Address-title .edit),
html body .pws-root :is(.pws-dropdown__all, .pws-search__all, .pws-prose a, a.pws-eyebrow, .woocommerce-LostPassword a, .woocommerce-Address-title .edit):is(:hover, :focus, :visited) { color: var(--pws-accent) !important; }
html body .pws-root .pws-prose a { text-decoration: underline !important; text-underline-offset: 3px; }
html body .pws-root .pws-social a:is(:hover, :focus) { color: #fff !important; }
html body .pws-root .pws-pagination .is-current { color: #fff !important; }
html body .pws-root .pws-hero__title,
html body .pws-root .pws-hero__subtitle { color: inherit !important; }
html body .pws-root .pws-hero { color: var(--pws-banner-fg, #111) !important; }
html body .pws-root .pws-hero-card__price { color: var(--pws-accent) !important; }
html body .pws-root .pws-hero-card__name { color: var(--pws-text) !important; }

/* ---------- Buttons ---------- */
html body .pws-root .pws-btn {
	display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 8px;
	height: auto; min-height: 44px; padding: 0 22px !important; margin: 0;
	border-width: 1.5px !important; border-style: solid !important; border-radius: 999px !important;
	font-size: 14px !important; font-weight: 600 !important; line-height: 1 !important;
	text-transform: none !important; letter-spacing: .01em !important; text-shadow: none !important; width: auto;
}
html body .pws-root .pws-btn--block { width: 100% !important; }
html body .pws-root .pws-btn--lg { min-height: 52px; padding: 0 28px !important; font-size: 15px !important; }
html body .pws-root .pws-btn--xl { min-height: 56px; padding: 0 28px !important; font-size: 15px !important; text-transform: uppercase !important; letter-spacing: .04em !important; }
html body .pws-root .pws-btn--link { min-height: 36px; padding: 0 8px !important; border-width: 0 !important; }
html body .pws-root .pws-card__actions .pws-btn { min-height: 40px; font-size: 13px !important; padding: 0 16px !important; }
html body .pws-root .pws-toast__actions .pws-btn { min-height: 40px; font-size: 13px !important; padding: 0 12px !important; }
html body .pws-root .pws-dash__downloads .pws-btn { min-height: 36px; padding: 0 14px !important; font-size: 13px !important; }
html body .pws-root .pws-sticky-buy .pws-btn { min-height: 46px; }
html body .pws-root .pws-btn.is-loading > * { opacity: 0 !important; }
html body .pws-root .pws-btn[disabled],
html body .pws-root .pws-btn--disabled { background: var(--pws-surface) !important; color: var(--pws-soft) !important; border-color: transparent !important; box-shadow: none !important; }
/* Hide WooCommerce's injected "View cart" link — our own confirmation already offers it. */
html body .pws-root a.added_to_cart,
html body .pws-root .added_to_cart.wc-forward { display: none !important; }

/* Other interactive controls themes like to repaint */
html body .pws-root :is(.pws-icon-btn, .pws-round-btn, .pws-qty__btn, .pws-gallery__thumb, .pws-gallery__arrow, .pws-gallery__zoom, .pws-filters__close, .pws-search__close, .pws-toast__close, .pws-lightbox__btn) {
	text-transform: none !important; font-size: inherit; letter-spacing: normal !important; min-height: 0 !important; box-shadow: none; line-height: 1 !important;
}
html body .pws-root .pws-nav__link { padding: 0 14px !important; height: 40px; border-radius: 999px !important; font-size: 13px !important; font-weight: 600 !important; }
html body .pws-root .pws-gallery__thumb { width: auto; height: auto; }

/* ---------- Form controls (filters, sort, quantity, search) ---------- */
html body .pws-root :is(.pws-check, .pws-radio, .pws-pill, .pws-opt) input,
html body .pws-root .pws-rate__stars input {
	position: absolute !important; opacity: 0 !important; width: 1px !important; height: 1px !important; min-width: 0 !important;
	margin: 0 !important; padding: 0 !important; border: 0 !important; clip: rect(0 0 0 0) !important; pointer-events: none !important;
	-webkit-appearance: none !important; appearance: none !important; background: none !important; box-shadow: none !important;
}

html body .pws-root .pws-range { position: relative !important; height: 28px !important; }
html body .pws-root .pws-range .pws-range__input {
	-webkit-appearance: none !important; appearance: none !important; position: absolute !important;
	left: -8px !important; right: -8px !important; top: 4px !important; width: calc(100% + 16px) !important; height: 20px !important;
	margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
	background: transparent !important; box-shadow: none !important; outline: none !important; accent-color: var(--pws-primary);
	pointer-events: none !important; z-index: 2;
}
html body .pws-root .pws-range .pws-range__input:focus-visible { outline: none !important; }
html body .pws-root .pws-range .pws-range__input::-webkit-slider-runnable-track { -webkit-appearance: none !important; background: transparent !important; border: 0 !important; height: 20px !important; box-shadow: none !important; }
html body .pws-root .pws-range .pws-range__input::-moz-range-track { background: transparent !important; border: 0 !important; height: 20px !important; box-shadow: none !important; }
html body .pws-root .pws-range .pws-range__input::-moz-range-progress { background: transparent !important; }
html body .pws-root .pws-range .pws-range__input::-webkit-slider-thumb {
	-webkit-appearance: none !important; appearance: none !important; width: 20px !important; height: 20px !important; margin: 0 !important;
	border-radius: 50% !important; background: #fff !important; border: 2px solid var(--pws-primary) !important;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .18) !important; pointer-events: auto !important; cursor: grab;
}
html body .pws-root .pws-range .pws-range__input::-moz-range-thumb {
	width: 16px !important; height: 16px !important; border-radius: 50% !important; background: #fff !important;
	border: 2px solid var(--pws-primary) !important; box-shadow: 0 1px 4px rgba(0, 0, 0, .18) !important; pointer-events: auto !important; cursor: grab;
}
html body .pws-root .pws-range .pws-range__input:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 4px var(--pws-accent-soft) !important; }
html body .pws-root .pws-range__track { position: absolute !important; top: 12px !important; left: 0 !important; right: 0 !important; height: 4px !important; border-radius: 4px !important; background: var(--pws-border) !important; }
html body .pws-root .pws-range__fill { background: var(--pws-accent) !important; }

html body .pws-root .pws-sort select,
html body .pws-root .pws-select select { height: 42px !important; line-height: normal !important; text-transform: none !important; }
html body .pws-root .pws-select select { height: 48px !important; }
html body .pws-root .pws-qty__input { min-height: 0 !important; height: 40px !important; width: 40px !important; }

/* ---------- Structure themes sometimes pad/float ---------- */
html body .pws-root :is(.pws-grid, .pws-row__track, .pws-cats__grid, .pws-nav__list, .pws-dropdown__grid, .pws-drawer__list, .pws-footer__col ul, .pws-social, .pws-payments, .pws-benefits, .pws-type-box__list, .pws-physical, .pws-features__grid, .pws-reviews__list, .pws-reviews__bars, .pws-dash__stats, .pws-dash__orders, .pws-dash__downloads, .pws-dash__links, .pws-chips, .pws-breadcrumbs ol, .pws-account__nav ul, .pws-cat-chips) { margin-left: 0; padding-left: 0; }
html body .pws-root :is(.pws-grid, .pws-row__track, .pws-cats__grid, .pws-nav__list, .pws-dropdown__grid, .pws-drawer__list, .pws-social, .pws-payments, .pws-dash__stats, .pws-dash__orders, .pws-dash__downloads, .pws-dash__links, .pws-chips, .pws-account__nav ul, .pws-cat-chips) > li::before { content: none !important; display: none !important; }

@media (max-width: 640px) {
	html body .pws-root .pws-btn--xl { min-height: 54px; font-size: 13.5px !important; padding: 0 14px !important; letter-spacing: .02em !important; }
	html body .pws-root .pws-card__actions .pws-btn { min-height: 38px; font-size: 12px !important; padding: 0 10px !important; gap: 6px; }
}

/* Visibility states must beat the display rules above */
html body .pws-root .pws-toolbar__filter { display: none !important; }
html.pws-js body .pws-root .pws-filters__actions .pws-btn--dark { display: none !important; }
@media (max-width: 1024px) {
	html body .pws-root .pws-toolbar__filter { display: inline-flex !important; }
	html.pws-js body .pws-root .pws-filters__actions .pws-btn--dark { display: inline-flex !important; flex: 1; }
}
html body .pws-root [hidden],
html body .pws-root .pws-btn[hidden] { display: none !important; }

/* ---------- Search (pill + round button) ---------- */
html body .pws-root .pws-search__field { border: 2px solid var(--pws-search, var(--pws-accent)) !important; border-radius: 999px !important; background: var(--pws-bg) !important; margin: 0 !important; }
html body .pws-root .pws-search .pws-search__input,
html body .pws-root .pws-search .pws-search__input:is(:focus, :hover) {
	border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; outline: none !important;
	padding: 0 12px 0 0 !important; margin: 0 !important; height: 100% !important; min-height: 0 !important; width: auto !important;
	color: var(--pws-text) !important; font-size: 15px !important; line-height: normal !important;
}
html body .pws-root .pws-search .pws-search__input::placeholder { color: var(--pws-muted) !important; opacity: 1; }
html body .pws-root .pws-search .pws-search__submit,
html body .pws-root .pws-search .pws-search__submit:is(:hover, :focus, :active) {
	width: 38px !important; height: 38px !important; min-width: 38px !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important;
	border: 0 !important; border-radius: 50% !important; background: var(--pws-search, var(--pws-accent)) !important;
	color: var(--pws-search-icon, #111) !important; box-shadow: none !important; text-transform: none !important; line-height: 1 !important;
}
html body .pws-root .pws-search--inline .pws-search__submit { width: 42px !important; height: 42px !important; }
@media (max-width: 640px) {
	html body .pws-root .pws-search__field { height: 46px; padding-left: 16px; }
	html body .pws-root .pws-search .pws-search__input { font-size: 16px !important; }
	html body .pws-root .pws-search .pws-search__submit { width: 36px !important; height: 36px !important; min-width: 36px !important; }
}
