/*
 * WooCommerce look of Oxygen's global styles (universal.css, oxygen-woocommerce "Woo global styler").
 * Oxygen printed these on every page; they style plugin markup (WooCommerce, wooptima-ecommerce),
 * so the selectors follow WooCommerce's classes. Kept: the groups that reach the cart, checkout,
 * order-received, account and product pages. Left out: rules for Oxygen's own Woo elements,
 * WooCommerce widgets, select2 and the archive loop (WPGB / wa-instant-search render those),
 * and background images that pointed at missing plugin files.
 *
 * Cascade: on Oxygen this sheet loaded after the plugin styles and the Scripts Organizer snippets
 * (165, 201791, 490229, 500 ...) and won ties of equal specificity. Here it loads before them,
 * so the rules at the end that need to win such a tie carry one extra class (or "body").
 */

.woocommerce {
	-webkit-font-smoothing: antialiased;
}

/* ---- Transitions ---- */

.woocommerce a,
.woocommerce button,
.woocommerce input,
.woocommerce select,
.woocommerce textarea,
.woocommerce .checkbox,
.woocommerce img:not(.zoomImg):not(.pswp__img),
.woocommerce label.woocommerce-form__label.woocommerce-form__label-for-checkbox span::before {
	transition: all ease 0.2s;
}

/* ---- Text ---- */

.woocommerce-account h2,
.woocommerce-checkout h3,
.woocommerce-billing-fields h3,
.woocommerce-Address-title h3,
.woocommerce-MyAccount-content h3,
.woocommerce-EditAccountForm legend,
.woocommerce .cart_totals h2,
.woocommerce .cross-sells h2,
h2.woocommerce-column__title,
h2.woocommerce-order-details__title,
h2.woocommerce-order-downloads__title {
	margin-bottom: 8px;
	color: var(--black);
	font-weight: 700;
	line-height: 1.2;
}

.woocommerce .product-name,
.woocommerce .product-total,
.woocommerce-info,
.woocommerce-error,
.woocommerce-message,
.woocommerce-order p,
.woocommerce-table,
.woocommerce-table--order-downloads,
.woocommerce-orders-table,
.woocommerce-Address address,
.woocommerce-column--billing-address address,
.woocommerce-column--shipping-address address,
.woocommerce-MyAccount-content p,
.woocommerce-ResetPassword p,
.woocommerce-form-track-order p,
.woocommerce-checkout-payment p,
.checkout_coupon p,
ul.woocommerce-shipping-methods,
p.woocommerce-shipping-destination {
	color: var(--wc-legacy-text);
	font-size: 16px;
	font-weight: 400;
	font-style: normal;
	line-height: 1.6;
}

.woocommerce-error strong,
.woocommerce-shipping-destination strong,
.woocommerce-order-overview strong,
.woocommerce-MyAccount-content strong,
.woocommerce-MyAccount-content mark.order-number,
.woocommerce-MyAccount-content mark.order-date,
.woocommerce-MyAccount-content mark.order-status,
.woocommerce p.order-info mark {
	background: transparent;
	color: var(--black);
	font-family: inherit;
	font-weight: 700;
}

.product-quantity,
.woocommerce-Price-amount {
	background: transparent;
	color: var(--black);
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
}

/* ---- Links ---- */

.woocommerce a.remove,
.woocommerce a.reset_variations,
.woocommerce a.shipping-calculator-button,
.woocommerce .product-name a,
.woocommerce .download-product a,
a.woocommerce-remove-coupon,
.woocommerce-info a,
.woocommerce-error a,
.woocommerce-message a,
.woocommerce-checkout-payment a,
.woocommerce-LostPassword a,
.woocommerce-Address-title a,
.woocommerce-MyAccount-navigation-link a,
.woocommerce-MyAccount-content a {
	color: var(--wc-legacy-link);
	font-family: inherit;
	font-weight: 400;
	text-decoration: none;
}

.woocommerce a.remove:hover,
.woocommerce a.reset_variations:hover,
.woocommerce a.shipping-calculator-button:hover,
.woocommerce .product-name a:hover,
.woocommerce .download-product a:hover,
a.woocommerce-remove-coupon:hover,
.woocommerce-info a:hover,
.woocommerce-error a:hover,
.woocommerce-message a:hover,
.woocommerce-checkout-payment a:hover,
.woocommerce-LostPassword a:hover,
.woocommerce-Address-title a:hover,
.woocommerce-MyAccount-navigation-link a:hover,
.woocommerce-MyAccount-content a:hover {
	color: var(--wc-legacy-accent);
	text-decoration: underline;
}

/* ---- Boxes: forms, order tables, notices ---- */

.woocommerce .col2-set,
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon,
.woocommerce form.woocommerce-ResetPassword.lost_reset_password,
.woocommerce .woocommerce-EditAccountForm,
.woocommerce .woocommerce-address-fields,
.woocommerce table.shop_table,
.woocommerce-cart .cart-collaterals .cart_totals table,
.woocommerce-form-coupon,
ul.woocommerce-order-overview {
	padding: 20px;
	border: 1px solid var(--wc-legacy-border);
	border-top: 3px solid var(--wc-legacy-accent);
	border-radius: 0;
	border-collapse: collapse;
	background: var(--white);
}

fieldset {
	background: transparent;
}

.woocommerce table tr {
	border-top: 1px solid var(--wc-legacy-border);
}

.woocommerce table.shop_table td,
.woocommerce table.shop_table th,
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th {
	padding: 12px 20px;
	border: none;
	color: var(--wc-legacy-text);
	font-weight: 400;
}

.woocommerce-cart table.cart th,
.woocommerce-cart .cart-collaterals .cart_totals table th,
.woocommerce table.shop_table th,
.woocommerce table.shop_table tfoot th {
	color: var(--wc-legacy-text);
	font-size: 10px;
	font-weight: 400;
	letter-spacing: 1px;
	text-align: left;
	text-transform: uppercase;
}

.woocommerce-cart table.cart img {
	min-width: 64px;
	min-height: 64px;
	border: 1px solid var(--wc-legacy-border);
	overflow: hidden;
}

/* The top border colour and width come from WooCommerce's own notice styles. */
.woocommerce-info,
.woocommerce-error,
.woocommerce-message {
	padding-right: 20px;
	border-right: 1px solid var(--wc-legacy-border);
	border-bottom: 1px solid var(--wc-legacy-border);
	border-left: 1px solid var(--wc-legacy-border);
	border-radius: 0;
	border-collapse: collapse;
	background: var(--white);
}

.woocommerce-info {
	border-top-color: var(--wc-legacy-info);
}

.woocommerce-info::before {
	color: var(--wc-legacy-info);
}

.woocommerce-error {
	border-top-color: var(--wc-legacy-error);
}

.woocommerce-error::before {
	color: var(--wc-legacy-error);
}

.woocommerce-message {
	border-top-color: var(--wc-legacy-accent);
}

.woocommerce-message::before {
	color: var(--wc-legacy-accent);
}

/* ---- Form fields ---- */

.woocommerce form label {
	margin-top: 8px;
	color: var(--wc-legacy-text);
	font-size: 12px;
	font-weight: 400;
	font-style: normal;
}

.woocommerce textarea,
.woocommerce input[type="text"],
.woocommerce input[type="number"],
.woocommerce input[type="tel"],
.woocommerce input[type="email"],
.woocommerce input[type="password"],
.woocommerce-cart table.cart td.actions .coupon .input-text {
	height: auto;
	padding: 8px 12px;
	border: 1px solid var(--wc-legacy-border);
	border-radius: 4px;
	background: var(--white);
	color: var(--black);
	font-family: inherit;
	font-size: 14px;
	outline: none;
	resize: none;
}

.woocommerce textarea:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce input[type="text"]:focus,
.woocommerce input[type="number"]:focus,
.woocommerce input[type="tel"]:focus,
.woocommerce input[type="email"]:focus,
.woocommerce input[type="password"]:focus,
.woocommerce-cart table.cart td.actions .coupon .input-text:focus {
	border: 1px solid var(--wc-legacy-accent);
	box-shadow: var(--shadow-wc-legacy-focus);
}

.woocommerce form .form-row .input-text::placeholder,
.woocommerce-page form .form-row .input-text::placeholder,
.woocommerce-page table.cart td.actions .input-text::placeholder {
	color: var(--wc-legacy-border);
	font-family: inherit;
}

.woocommerce .quantity .qty {
	appearance: none;
	min-width: 56px;
	height: 100%;
	margin-right: 12px;
	padding: 8px 9px;
	background-color: var(--white);
}

/* −/+ stepper (cart): a narrow centred number field between the two buttons, no native spinner. */
.woocommerce .quantity:has(.qty_button) .qty {
	appearance: textfield;
	width: 44px;
	min-width: 0;
	margin-right: 0;
	padding: 8px 4px;
	text-align: center;
}

.woocommerce .quantity:has(.qty_button) .qty::-webkit-inner-spin-button,
.woocommerce .quantity:has(.qty_button) .qty::-webkit-outer-spin-button {
	display: none;
	margin: 0;
	-webkit-appearance: none;
}

.woocommerce input[type="number"]::-webkit-inner-spin-button,
.woocommerce input[type="number"]::-webkit-outer-spin-button {
	width: 24px;
	height: 48px;
	margin-right: -9px;
	opacity: 0.01;
	cursor: pointer;
}

.woocommerce input[type="radio"] {
	appearance: none;
	width: 24px;
	height: 24px;
	border: 1px solid var(--wc-legacy-border);
	border-radius: 100%;
	background: var(--white);
	outline: none;
	cursor: pointer;
}

.woocommerce input[type="radio"]:hover {
	border: 1px solid var(--wc-legacy-accent);
	box-shadow: var(--shadow-wc-legacy-focus);
}

.woocommerce input[type="radio"]:checked {
	background: var(--black);
	box-shadow: inset 0 0 0 8px var(--white);
}

.woocommerce input[type="radio"]:checked:hover {
	box-shadow: inset 0 0 0 8px var(--white), var(--shadow-wc-legacy-focus);
}

.woocommerce label[for="payment_method_bacs"],
.woocommerce label[for="payment_method_cod"] {
	display: flex;
	flex-direction: row;
}

.woocommerce label[for="payment_method_bacs"] img,
.woocommerce label[for="payment_method_cod"] img {
	width: 32px;
}

/* Login form "remember me": a drawn box instead of the native checkbox. The checked-state tick
   image of the original pointed at a missing file, so only the empty box remains. */
.woocommerce-form-login input[type="checkbox"] {
	display: none !important; /* original rule (beats WooCommerce's own display) */
	opacity: 0.01;
	user-select: none;
}

.woocommerce-form-login label.woocommerce-form__label.woocommerce-form__label-for-checkbox.woocommerce-form-login__rememberme {
	position: relative;
	margin-top: 34px;
	padding-left: 16px;
	cursor: pointer;
}

.woocommerce-form-login label.woocommerce-form__label.woocommerce-form__label-for-checkbox.woocommerce-form-login__rememberme span {
	margin-left: 18px;
}

.woocommerce-form-login label.woocommerce-form__label.woocommerce-form__label-for-checkbox.woocommerce-form-login__rememberme span::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 24px;
	height: 24px;
	border: 1px solid var(--wc-legacy-border);
	border-radius: 4px;
	background-color: var(--white);
}

/* ---- Buttons ---- */

/* Secondary */
.woocommerce a.button,
.woocommerce a.button.alt,
.woocommerce button.button,
.woocommerce button.button.alt {
	display: flex;
	flex-direction: row;
	justify-content: center;
	padding: 16px 24px;
	border: 1px solid var(--wc-legacy-text);
	border-radius: 4px;
	background: var(--wc-legacy-text);
	color: var(--white);
	font-family: inherit;
	font-size: 12px;
	line-height: 1.2;
	letter-spacing: 1px;
	text-align: center;
	text-transform: uppercase;
	outline: none;
}

.woocommerce a.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button:hover,
.woocommerce button.button.alt:hover {
	border: 1px solid var(--wc-legacy-button-hover);
	background: var(--wc-legacy-button-hover);
	color: var(--white);
}

/* Tertiary (outlined) */
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce a.added_to_cart,
.woocommerce .cart .button,
.woocommerce .cart input.button,
.woocommerce table.my_account_orders .button,
td a.woocommerce-MyAccount-downloads-file.button.alt {
	padding: 16px 24px;
	border: 1px solid var(--wc-legacy-accent);
	border-radius: 4px;
	background: var(--white);
	color: var(--wc-legacy-accent);
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 1px;
	text-align: center;
	text-transform: uppercase;
	outline: none;
}

.woocommerce button.button:disabled:hover,
.woocommerce button.button:disabled[disabled]:hover,
.woocommerce a.added_to_cart:hover,
.woocommerce .cart .button:hover,
.woocommerce .cart input.button:hover,
.woocommerce table.my_account_orders .button:hover,
td a.woocommerce-MyAccount-downloads-file.button.alt:hover {
	border: 1px solid var(--wc-legacy-link);
	background: var(--white);
	color: var(--wc-legacy-link);
}

.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce input.button.disabled,
.woocommerce input.button:disabled {
	filter: grayscale(100%);
}

/* Primary */
.woocommerce button[type="submit"],
.woocommerce button[name="woocommerce-form-login__submit"],
.woocommerce button[name="save_account_details"],
.woocommerce button[name="save_address"] {
	padding: 16px 24px;
	border: 1px solid var(--wc-legacy-accent);
	border-radius: 4px;
	background-color: var(--wc-legacy-accent);
	color: var(--white);
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 1px;
	text-align: center;
	text-transform: uppercase;
	outline: none;
	cursor: pointer;
}

.woocommerce button[type="submit"]:hover,
.woocommerce button[name="woocommerce-form-login__submit"]:hover,
.woocommerce button[name="save_account_details"]:hover,
.woocommerce button[name="save_address"]:hover {
	border: 1px solid var(--wc-legacy-link);
	background-color: var(--wc-legacy-link);
}

/* ---- Ties Oxygen won by load order ----
 * Snippet 165 sets `.woocommerce form label { margin: 0 }`, snippet 201791 styles the account
 * tables, wooptima-reviews the product review form. The checkout login form is left out of the
 * label rule: snippet 165 resets its labels with a more specific rule on both stacks.
 */
.woocommerce-cart .woocommerce form label,
.woocommerce-checkout .woocommerce form:not(.woocommerce-form-login) label,
.woocommerce-account .woocommerce-MyAccount-content form label {
	margin-top: 8px;
}

.woocommerce-account .woocommerce-Address-title h3,
.woocommerce-account .woocommerce-MyAccount-content h3 {
	margin-bottom: 8px;
}

.woocommerce-account .woocommerce table.shop_table th,
.woocommerce-account .woocommerce table.shop_table td {
	padding: 12px 20px;
	border: none;
	color: var(--wc-legacy-text);
	font-weight: 400;
}

.woocommerce-account .woocommerce table.shop_table th {
	font-size: 10px;
	letter-spacing: 1px;
	text-align: left;
	text-transform: uppercase;
}

/* Single product (the body carries .single-product and .woocommerce there). */
body.single-product form label {
	margin-top: 8px;
	color: var(--wc-legacy-text);
	font-size: 12px;
	font-weight: 400;
	font-style: normal;
}

body.single-product input[type="text"],
body.single-product input[type="email"],
body.single-product textarea {
	height: auto;
	padding: 8px 12px;
	border: 1px solid var(--wc-legacy-border);
	border-radius: 4px;
	background: var(--white);
	color: var(--black);
	font-family: inherit;
	font-size: 14px;
	outline: none;
	resize: none;
}

body.single-product input[type="text"]:focus,
body.single-product input[type="email"]:focus,
body.single-product textarea:focus {
	border: 1px solid var(--wc-legacy-accent);
	box-shadow: var(--shadow-wc-legacy-focus);
}

body.single-product button[type="submit"]:hover {
	border: 1px solid var(--wc-legacy-link);
	background-color: var(--wc-legacy-link);
}
