/*
 * Impulsa Estepona: woocommerce.css
 * Cart, checkout, My Account, shop and product pages in the theme design (tokens come from theme.css).
 * Loaded after theme.css and after Woo's own stylesheets (see functions.php), so rules with the same weight as
 * Woo's win by order. Woo's float layouts become grid/flex; its clearfix pseudo-elements are hidden in those.
 * Compact format: one rule per line when it fits.
 */

:root,
.editor-styles-wrapper {
	--wc-primary: var(--ie-blue);
	--wc-primary-text: #fff;
	--wc-secondary: var(--ie-sand);
	--wc-secondary-text: var(--ie-ink);
	--wc-green: var(--ie-green-2);
	--wc-red: #c0392b;
	--wc-form-border-color: var(--ie-line);
	--wc-form-border-radius: 12px;
	--wc-separator-color: var(--ie-line);
}

/* ---------- Container and typography ---------- */
/* Woo's block-theme sheet caps these wrappers at 1000px; page.html already gives the 1180px .ie-wrap. */
.woocommerce-cart main .woocommerce, .woocommerce-checkout main .woocommerce, .woocommerce-account main .woocommerce,
.woocommerce-cart .wp-block-post-title, .woocommerce-checkout .wp-block-post-title, .woocommerce-account .wp-block-post-title { max-width: none; }

/* Shop and product pages use Woo's own block templates (no .ie-wrap): give <main> the same width and padding. */
.single-product main:not(.ie-main), .post-type-archive-product main:not(.ie-main),
.tax-product_cat main:not(.ie-main), .tax-product_tag main:not(.ie-main) { width: min(var(--ie-max), calc(100% - 2.5rem)); margin-inline: auto; padding-block: 2.5rem 4rem; }

.woocommerce :is(h2, h3) { margin: 0 0 .8rem; font-size: 1.25rem; color: var(--ie-navy); }
.woocommerce-products-header__title, .woocommerce div.product .product_title { margin: 0 0 .6rem; font-size: var(--wp--preset--font-size--x-large, 2rem); color: var(--ie-navy); }
.woocommerce .woocommerce-Price-amount { color: var(--ie-navy); font-weight: 700; }
.woocommerce del, .woocommerce del .woocommerce-Price-amount { color: var(--ie-muted); font-weight: 400; }
.woocommerce ins { background: none; text-decoration: none; }
.woocommerce .woocommerce-breadcrumb { margin: 0 0 1.2rem; font-size: .9rem; color: var(--ie-muted); }
.woocommerce .woocommerce-breadcrumb a { color: var(--ie-muted); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--ie-blue); }

/* ---------- Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice--success {
	display: flow-root; margin: 0 0 1.4rem; padding: 1rem 1.2rem; border: 0; border-left: 4px solid var(--ie-blue); border-radius: 12px;
	background: #e4f3ff; color: var(--ie-ink); list-style: none;
}
.woocommerce-message, .woocommerce-notice--success { border-left-color: var(--ie-green); background: #eaf8e3; }
.woocommerce-error { border-left-color: var(--wc-red); background: #fde7e4; color: #7a1d14; }
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before,
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::after { display: none; }
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button { float: right; margin: 0 0 .4rem 1rem; padding: .45rem 1rem; font-size: .9rem; }
.woocommerce-error li { margin: 0 0 .3rem; }
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) { font-weight: 600; }

/* ---------- Buttons: blue pill by default, green for the main action ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	margin: 0; padding: .8rem 1.4rem; border: 2px solid transparent; border-radius: 999px;
	background: var(--ie-blue); color: #fff; font: inherit; font-weight: 600; line-height: 1.3; text-decoration: none; cursor: pointer;
	box-shadow: 0 8px 22px rgba(28, 123, 196, .30); transition: transform .2s, box-shadow .2s, background .2s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce #respond input#submit:hover { background: var(--ie-blue-2); color: #fff; opacity: 1; transform: translateY(-2px); }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce #respond input#submit.alt,
.woocommerce button.button.woocommerce-form-login__submit, .woocommerce button.button.woocommerce-form-register__submit { background: var(--ie-green); color: #082a0f; box-shadow: 0 8px 22px rgba(108, 192, 74, .35); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover, .woocommerce #respond input#submit.alt:hover,
.woocommerce button.button.woocommerce-form-login__submit:hover, .woocommerce button.button.woocommerce-form-register__submit:hover { background: #7fd05b; color: #082a0f; }
.woocommerce :is(a, button, input).button:is(.disabled, :disabled, [disabled]) { opacity: .5; cursor: not-allowed; transform: none; }
.woocommerce :is(a, button, input).button.alt:is(.disabled, :disabled, [disabled]) { background: var(--ie-green); color: #082a0f; }
.woocommerce :is(a.button, button.button, input.button):focus-visible { outline: 3px solid var(--ie-blue-2); outline-offset: 3px; }
.woocommerce table.shop_table a.button { padding: .45rem 1rem; font-size: .9rem; }
/* Blocktheme sheet stacks the order actions as full-width blocks. */
.woocommerce-account .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-actions a { display: inline-flex; margin: .15rem .3rem .15rem 0; }

/* ---------- Forms ---------- */
.woocommerce form .form-row { margin: 0 0 1rem; padding: 0; }
.woocommerce form .form-row label { margin: 0 0 .35rem; font-weight: 600; line-height: 1.4; color: var(--ie-ink); }
.woocommerce form .form-row label.checkbox, .woocommerce form .form-row label.woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: .5rem; font-weight: 500; }
.woocommerce form .form-row .required { color: var(--wc-red); text-decoration: none; }
.woocommerce input[type="checkbox"], .woocommerce input[type="radio"] { accent-color: var(--ie-blue); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .woocommerce-ordering select, .woocommerce .quantity .qty {
	padding: .75rem 1rem; border: 1px solid var(--ie-line); border-radius: 12px;
	background-color: #fff; color: var(--ie-ink); font: inherit; line-height: 1.4; box-shadow: none;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus,
.woocommerce .woocommerce-ordering select:focus, .woocommerce .quantity .qty:focus { border-color: var(--ie-blue); outline: 3px solid var(--ie-blue-2); outline-offset: 1px; }
.woocommerce .select2-container--default .select2-selection--single { display: flex; align-items: center; height: auto; min-height: 3rem; border: 1px solid var(--ie-line); border-radius: 12px; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { top: 0; height: 100%; }
.woocommerce form fieldset { margin: 1.5rem 0; padding: 1.2rem 1.3rem; border: 1px solid var(--ie-line); border-radius: 14px; }
.woocommerce form legend { padding: 0 .5rem; font-weight: 700; color: var(--ie-navy); }
.woocommerce .quantity .qty { width: 4.4rem; padding-inline: .4rem; text-align: center; }
/* Address fields: two columns from 600px, wide fields span both. */
.woocommerce [class*="-fields__field-wrapper"] .form-row { float: none; width: auto; }
@media (min-width: 600px) {
	.woocommerce [class*="-fields__field-wrapper"] { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1rem; }
	.woocommerce [class*="-fields__field-wrapper"] :is(.form-row-wide, .notes) { grid-column: 1 / -1; }
}

/* ---------- Tables (cart, orders, subscriptions, totals) ---------- */
.woocommerce table.shop_table {
	width: 100%; margin: 0 0 1.5rem; overflow: hidden;
	border: 1px solid var(--ie-line); border-collapse: separate; border-spacing: 0; border-radius: var(--ie-radius); background: #fff;
}
.woocommerce table.shop_table :is(th, td) { padding: .9rem 1.1rem; border-top: 1px solid var(--ie-line); text-align: left; vertical-align: middle; line-height: 1.45; }
.woocommerce table.shop_table thead th { border-top: 0; background: var(--ie-sand); color: var(--ie-muted); font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.woocommerce table.shop_table :is(.product-name, .order-number, .subscription-id) a { color: var(--ie-navy); font-weight: 600; }
@media (max-width: 768px) {
	.woocommerce table.shop_table_responsive tr { padding: .5rem 0; border-top: 1px solid var(--ie-line); }
	.woocommerce table.shop_table_responsive tr:first-child { border-top: 0; }
	.woocommerce table.shop_table_responsive tr td { padding: .35rem 1.1rem; border: 0; }
	.woocommerce table.shop_table_responsive tr:nth-child(2n) td { background: none; }
	.woocommerce table.shop_table_responsive tr td::before { content: attr(data-title); margin-right: 1rem; color: var(--ie-muted); font-weight: 600; }
}

/* ---------- Cart ---------- */
.woocommerce .woocommerce-cart-form .product-thumbnail { width: 88px; }
.woocommerce .woocommerce-cart-form .product-thumbnail a img { width: 72px; border-radius: 12px; }
.woocommerce table.cart td.actions { padding: 1rem 1.1rem; background: var(--ie-sand); }
.woocommerce table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: .6rem; }
.woocommerce table.cart td.actions .coupon::before, .woocommerce table.cart td.actions .coupon::after { display: none; }
.woocommerce table.cart td.actions .coupon .input-text, .woocommerce .woocommerce-cart-form #coupon_code {
	flex: 1 1 160px; width: auto; max-width: 260px; height: auto; margin: 0; padding: .75rem 1rem;
	border: 1px solid var(--ie-line); border-radius: 12px; background-color: #fff; font: inherit; line-height: 1.4;
}
.woocommerce table.cart td.actions .coupon .button { width: auto; float: none; }
.woocommerce .cart-collaterals .cart_totals {
	float: none; width: 100%; max-width: 460px; margin: 0 0 0 auto; padding: 1.4rem;
	border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: var(--ie-sand);
}
.woocommerce .cart_totals table.shop_table, .woocommerce #order_review table.shop_table { margin: 0 0 1.2rem; border: 0; border-radius: 0; background: transparent; }
.woocommerce .cart_totals table.shop_table :is(th, td), .woocommerce #order_review table.shop_table :is(th, td) { padding-inline: 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: flex; margin: 0; padding: 1rem 1.4rem; font-size: 1.1rem; }

/* ---------- Checkout ---------- */
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password {
	margin: 0 0 1.5rem; padding: 1.6rem; border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: #fff;
}
.woocommerce form.checkout_coupon { display: flex; flex-wrap: wrap; gap: .8rem; align-items: flex-start; }
.woocommerce form.checkout_coupon > p:not(.form-row) { flex: 1 0 100%; margin: 0; }
.woocommerce form.checkout_coupon .form-row { float: none; width: auto; margin: 0; }
.woocommerce form.checkout_coupon .form-row-first { flex: 1 1 200px; max-width: 320px; }
.woocommerce form.checkout_coupon .clear { display: none; }
.woocommerce .col2-set::before, .woocommerce .col2-set::after { display: none; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { float: none; width: auto; }
.woocommerce #customer_details .col-2 { margin-top: 1.5rem; }
.woocommerce #order_review { padding: 1.4rem; border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: var(--ie-sand); }
.woocommerce #order_review table.shop_table thead th { background: transparent; }
.woocommerce #order_review .order-total .woocommerce-Price-amount { font-size: 1.3rem; }
@media (min-width: 900px) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); grid-template-rows: auto auto 1fr; column-gap: 2.5rem; align-items: start; }
	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; grid-row: 1; }
	.woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 2 / span 2; }
	.woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 2; }
	.woocommerce-checkout form.checkout > #order_review { grid-column: 2; grid-row: 3; }
}
/* Payment methods */
.woocommerce #payment { background: none; border-radius: 0; }
.woocommerce #payment ul.payment_methods { display: grid; gap: .6rem; margin: 0; padding: 0 0 1rem; border: 0; list-style: none; }
.woocommerce #payment ul.payment_methods::before, .woocommerce #payment ul.payment_methods::after { display: none; }
.woocommerce #payment ul.payment_methods li { padding: .8rem 1rem; border: 1px solid var(--ie-line); border-radius: 12px; background: #fff; line-height: 1.5; }
.woocommerce #payment ul.payment_methods li label { display: inline; font-weight: 600; cursor: pointer; }
.woocommerce #payment div.payment_box { margin: .7rem 0 0; padding: .8rem 1rem; border-radius: 10px; background: var(--ie-sand); color: var(--ie-muted); font-size: .92rem; }
.woocommerce #payment div.payment_box::before { display: none; }
.woocommerce #payment div.form-row { padding: 0; }
.woocommerce #payment #place_order { float: none; width: 100%; margin: 0; padding: 1rem 1.4rem; font-size: 1.1rem; }
.woocommerce .woocommerce-privacy-policy-text p, .woocommerce .woocommerce-terms-and-conditions-wrapper { margin: 0 0 1rem; color: var(--ie-muted); font-size: .85rem; line-height: 1.5; }
.woocommerce .woocommerce-privacy-policy-text a { text-decoration: underline; }
/* Order received */
.woocommerce ul.order_details { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .8rem; margin: 0 0 2rem; padding: 0; }
.woocommerce ul.order_details::before, .woocommerce ul.order_details::after { display: none; }
.woocommerce ul.order_details li {
	float: none; margin: 0; padding: 1rem 1.1rem; border: 1px solid var(--ie-line); border-radius: 14px; background: var(--ie-sand);
	color: var(--ie-muted); font-size: .75rem; letter-spacing: .06em; line-height: 1.3; text-transform: uppercase;
}
.woocommerce ul.order_details li strong { margin-top: .35rem; color: var(--ie-navy); font-size: 1.05rem; letter-spacing: 0; }
.woocommerce .woocommerce-customer-details address, .woocommerce .woocommerce-Address address { width: auto; padding: 1rem 1.2rem; border: 1px solid var(--ie-line); border-radius: 14px; background: #fff; font-style: normal; }

/* ---------- Login and register (My Account, checkout) ---------- */
.woocommerce :is(.u-columns, .addresses).col2-set { display: grid; gap: 1.5rem; }
.woocommerce .u-columns.col2-set > [class*="u-column"] { padding: 1.6rem; border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: #fff; box-shadow: var(--ie-shadow); }
.woocommerce .u-columns form.login, .woocommerce .u-columns form.register { margin: 0; padding: 0; border: 0; }
.woocommerce .col2-set.addresses { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.woocommerce button.button.woocommerce-form-login__submit { float: none; margin-right: 1rem; }
.woocommerce .woocommerce-LostPassword { margin: 1rem 0 0; }
.woocommerce-account .woocommerce > :is(form.login, form.lost_reset_password) { max-width: 520px; }
@media (min-width: 900px) {
	.woocommerce #customer_login { grid-template-columns: 1fr 1fr; }
}

/* ---------- My Account ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-account .woocommerce-MyAccount-navigation { margin: 0 0 1.5rem; }
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: flex; gap: .3rem; margin: 0; padding: .5rem; overflow-x: auto; list-style: none;
	border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: var(--ie-sand);
}
.woocommerce-account .woocommerce-MyAccount-navigation li { flex: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: .6rem 1rem; border-radius: 999px; color: var(--ie-ink); font-weight: 600; white-space: nowrap; text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: #fff; color: var(--ie-blue); text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--ie-navy); color: #fff; text-decoration: none; }
@media (min-width: 900px) {
	.woocommerce-account .woocommerce { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 2rem; }
	.woocommerce-account .woocommerce > * { flex: 1 1 100%; }
	.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation { position: sticky; top: 6.5rem; flex: 0 0 260px; }
	.woocommerce-account .woocommerce > .woocommerce-MyAccount-content { flex: 1 1 0; min-width: 0; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul { flex-direction: column; padding: .8rem; overflow: visible; }
	.woocommerce-account .woocommerce-MyAccount-navigation li a { white-space: normal; }
}

/* ---------- impulsa-core tabs (Mi asociacion, Mi ficha, Mis tokens); base styles live in the plugin ---------- */
.woocommerce .ie-btn { text-decoration: none; }
.woocommerce .ie-btn--green { background: var(--ie-green); color: #082a0f; box-shadow: 0 8px 22px rgba(108, 192, 74, .35); }
.woocommerce .ie-btn--green:hover { background: #7fd05b; }
.woocommerce .ie-btn--outline { border-color: var(--ie-line); background: #fff; color: var(--ie-ink); box-shadow: none; }
.woocommerce .ie-account { display: grid; gap: 1rem; }
.woocommerce .ie-account > * { margin-block: 0; }
.woocommerce .ie-account__status { font-size: 1.15rem; }
.woocommerce .ie-account__expiry { color: var(--ie-muted); }
.woocommerce .ie-account__actions { margin-top: 0; }
.woocommerce :is(.ie-panel, .ie-wallet) { padding: 1.4rem 1.5rem; border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: #fff; box-shadow: var(--ie-shadow); }
.woocommerce .ie-panel__title { margin: 0 0 .6rem; font-size: 1.2rem; color: var(--ie-navy); }
.woocommerce .ie-wallet__vouchers li { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; }
.woocommerce .ie-wallet__history td { padding: .7rem .4rem; border-top: 0; }
/* theme.css uses .ie-form as the newsletter flex row: the profile and offer forms are plain stacked forms. */
.woocommerce .ie-form { display: block; margin-top: 0; }
.woocommerce .ie-form :is(input, textarea, select) { padding: .75rem 1rem; border: 1px solid var(--ie-line); border-radius: 12px; background-color: #fff; }
.woocommerce .ie-notice { border-left: 4px solid var(--ie-green); }
.woocommerce .ie-notice--error { border-left-color: var(--wc-red); }

/* ---------- Product page ---------- */
.woocommerce div.product { margin-bottom: 3rem; }
.woocommerce div.product::before, .woocommerce div.product::after { display: none; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; margin: 0 0 1.5rem; }
.woocommerce div.product div.images img { border-radius: var(--ie-radius); }
@media (min-width: 900px) {
	.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 3rem; align-items: start; }
	.woocommerce div.product > :not(.images, .summary, .onsale) { grid-column: 1 / -1; }
}
.woocommerce div.product p.price, .woocommerce div.product span.price { margin: 0 0 1rem; color: var(--ie-navy); font-size: 2.4rem; font-weight: 800; line-height: 1; }
.woocommerce div.product :is(p.price, span.price) .woocommerce-Price-amount { font-weight: 800; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ie-muted); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin: 1.4rem 0; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { margin: 0; }
.woocommerce div.product form.cart button.single_add_to_cart_button { padding: .95rem 1.8rem; font-size: 1.05rem; }
.woocommerce div.product .product_meta { display: grid; gap: .2rem; color: var(--ie-muted); font-size: .9rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.2rem; padding: 0; overflow: visible; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active::before, .woocommerce div.product .woocommerce-tabs ul.tabs li.active::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 1px solid var(--ie-line); border-radius: 999px; background: #fff; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: .5rem 1.1rem; color: var(--ie-ink); font-weight: 600; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-color: var(--ie-navy); background: var(--ie-navy); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; }
.woocommerce span.onsale, .woocommerce ul.products li.product .onsale {
	top: .8rem; left: .8rem; right: auto; min-width: 0; min-height: 0; margin: 0; padding: .3rem .8rem;
	border-radius: 999px; background: var(--ie-green); color: #082a0f; font-size: .8rem; line-height: 1.2;
}

/* ---------- Shop grid ---------- */
.woocommerce-products-header, .woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { margin-bottom: 1.2rem; }
.woocommerce .woocommerce-result-count { color: var(--ie-muted); font-size: .92rem; line-height: 3rem; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 1.25rem; margin: 0 0 2rem; padding: 0; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
/* Woo's layout sheet sets column widths and margins with four-class selectors, hence !important on those two. */
.woocommerce ul.products[class*="columns-"] li.product {
	display: flex; flex-direction: column; float: none; width: auto !important; margin: 0 !important; padding: 0 0 1.2rem; overflow: hidden;
	border: 1px solid var(--ie-line); border-radius: var(--ie-radius); background: #fff; transition: transform .25s, box-shadow .25s;
}
.woocommerce ul.products li.product:hover { transform: translateY(-6px); box-shadow: var(--ie-shadow); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: block; flex: 1; }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 4 / 3; margin: 0 0 .9rem; border-radius: 0; object-fit: cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: .3rem 1.2rem 0; color: var(--ie-navy); font-size: 1.1rem; }
.woocommerce ul.products li.product .price { margin: .3rem 0 .9rem; padding: 0 1.2rem; color: var(--ie-navy); font-size: 1.1rem; font-weight: 400; }
.woocommerce ul.products li.product .button { align-self: flex-start; margin: .2rem 1.2rem 0; }
.woocommerce ul.products li.product .added_to_cart { margin: .6rem 1.2rem 0; font-weight: 600; }
.woocommerce nav.woocommerce-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0; padding: 0; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { float: none; border: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li :is(a, span) { min-width: 2.5rem; padding: .45rem .95rem; border: 1px solid var(--ie-line); border-radius: 999px; background: #fff; color: var(--ie-ink); font-weight: 600; text-align: center; }
.woocommerce nav.woocommerce-pagination ul li :is(span.current, a:hover, a:focus) { border-color: var(--ie-navy); background: var(--ie-navy); color: #fff; }

@media (prefers-reduced-motion: reduce) {
	.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce ul.products[class*="columns-"] li.product { transition: none; }
	.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce ul.products li.product:hover { transform: none; }
}

/* Product gallery and images never exceed the viewport (mobile). */
.woocommerce div.product div.images,
.woocommerce-product-gallery,
.woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery__image {
	max-width: 100%;
}
.woocommerce-product-gallery img,
.woocommerce ul.products img {
	max-width: 100%;
	height: auto;
}
