/* ==========================================================================
   Likebreeze — WooCommerce pages.
   Replaces all of WooCommerce's front-end CSS (general, layout, smallscreen);
   WooCommerce Blocks keep their own sheet and are re-skinned at the end.
   Tokens and components come from main.css.
   ========================================================================== */

/* ---------- Shared bits WooCommerce's sheets used to provide ---------- */
.woocommerce img, .woocommerce-page img { height: auto; max-width: 100%; }
.woocommerce .clear, .woocommerce-page .clear { clear: both; }
.woocommerce-store-notice, p.demo_store { position: fixed; inset: auto 0 0; z-index: 99; margin: 0; padding: 12px var(--gutter); background: var(--c-ink); color: var(--c-white); font-size: 14px; text-align: center; }
.woocommerce-store-notice a { color: var(--c-white); text-decoration: underline; }
.blockUI.blockOverlay { position: relative; }
.blockUI.blockOverlay::after {
	content: ""; position: absolute; top: 50%; left: 50%; width: 28px; height: 28px; margin: -14px 0 0 -14px;
	border: 2px solid var(--c-line); border-top-color: var(--c-ink); border-radius: 50%; animation: lb-spin .7s linear infinite;
}
@keyframes lb-spin { to { transform: rotate(360deg); } }
.woocommerce .required, .woocommerce-page .required { color: var(--c-sale); text-decoration: none; border: 0; }
.woocommerce-password-strength { margin-top: 6px; padding: 6px 10px; font-size: 13px; text-align: center; }
.woocommerce-password-strength.strong { background: #e3f4e9; color: #1f6f3f; }
.woocommerce-password-strength.good { background: #fff4d6; color: #7a5a00; }
.woocommerce-password-strength.short, .woocommerce-password-strength.bad { background: #fde7e7; color: #a4161a; }
.woocommerce-password-hint { display: block; margin-top: 6px; font-size: 13px; color: var(--c-muted); }
.password-input { position: relative; display: block; }
.password-input input { padding-inline-end: 48px; }
.show-password-input {
	position: absolute; top: 50%; inset-inline-end: 4px; transform: translateY(-50%);
	width: 44px; height: 44px; background: none; border: 0; cursor: pointer; color: var(--c-muted);
}
.show-password-input::before {
	content: ""; display: block; width: 20px; height: 20px; margin: auto; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.show-password-input.display-password { color: var(--c-ink); }
.woocommerce .woocommerce-form-row, .woocommerce form .form-row { margin: 0 0 18px; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 6px; font-size: 15px; font-weight: 500; line-height: 1.5; }
.woocommerce form .form-row label.checkbox, .woocommerce form .form-row .woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: 10px; font-weight: 400; cursor: pointer; }
.woocommerce form .form-row .optional { color: var(--c-muted); font-weight: 400; }
.woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--c-sale); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: #1f8a4c; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 8px); float: inline-start; }
.woocommerce form .form-row-last { float: inline-end; }
.woocommerce form .form-row-wide, .woocommerce form .form-row.notes, .woocommerce form .form-row.place-order { clear: both; }
.woocommerce-billing-fields__field-wrapper::after, .woocommerce-shipping-fields__field-wrapper::after, .woocommerce-address-fields__field-wrapper::after,
.woocommerce form.login::after, .woocommerce form.register::after, .woocommerce-EditAccountForm::after { content: ""; display: table; clear: both; }
.select2-container { width: 100% !important; }
.select2-container .select2-selection--single { height: 50px; border: 1px solid var(--c-line); border-radius: 0; }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 48px; padding-inline: 16px 40px; color: var(--c-ink); }
.select2-container .select2-selection--single .select2-selection__arrow { height: 48px; }
.select2-container--open .select2-selection--single, .select2-container--focus .select2-selection--single { border-color: var(--c-ink); }
.select2-dropdown { border-color: var(--c-ink); border-radius: 0; }
.select2-results__option { padding: 10px 16px; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--c-ink); }

/* ---------- Product loop grid (shop, categories, related, cross-sells) ---------- */
.woocommerce ul.products, .woocommerce-page ul.products, ul.products, .products.product-grid--shop {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(36px, 3.6vw, 64px) var(--grid-gap);
	margin: 0; padding: 0; list-style: none;
}
.woocommerce ul.products.columns-3, ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-2, ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products::before, .woocommerce ul.products::after, ul.products::before, ul.products::after { content: none; display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product, ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product, .woocommerce-page ul.products[class*="columns-"] li.product {
	float: none; width: auto; margin: 0; padding: 0; list-style: none; position: relative; clear: none;
}
.woocommerce ul.products li.product .product-card, .products.product-grid--shop .product-card { height: 100%; }
.products .product-card__title { font-size: var(--fs-sm); line-height: 1.75; min-height: calc(1.75em * 2); }
.products .product-card__price { font-size: clamp(16px, .25vw + .9rem, 20px); }
.products .product-card__meta { margin-top: auto; padding-top: 14px; }
.products .product-card__title { margin-bottom: 0; }
.products .product-card__body { padding-top: 18px; }

/* ---------- Shop / category page ---------- */
.shop-page .page-header { padding-bottom: clamp(26px, 3vw, 56px); }
.shop-layout { display: block; }
.has-shop-sidebar .shop-layout { display: grid; grid-template-columns: 272px minmax(0, 1fr); gap: clamp(32px, 3.4vw, 64px); align-items: start; }
.shop-main { min-width: 0; }

.shop-sidebar { position: sticky; top: 24px; display: grid; gap: 0; max-height: calc(100vh - 48px); overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; padding-inline-end: 4px; }
.admin-bar .shop-sidebar { top: 56px; max-height: calc(100vh - 80px); }
/* Flat filter column with labelled sections (idea from 21st.dev "Ecommerce Category Page"). */
.shop-sidebar__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 2px solid var(--c-ink); }
.shop-sidebar__title { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 18px; font-weight: 700; }
.shop-sidebar__head .js-filters-close { display: none; }
.shop-sidebar__clear { margin-inline-start: auto; font-size: 14px; color: var(--c-muted); text-decoration: underline; text-underline-offset: 3px; }
.shop-sidebar__clear:hover { color: var(--c-accent); }
.shop-sidebar .widget, .filter-group { margin: 0; padding: 20px 0 22px; background: none; border-bottom: 1px solid var(--c-line); }
.shop-sidebar .widget:last-child, .filter-group:last-child { border-bottom: 0; }
.shop-sidebar .widget__title, .filter-group__title { margin: 0 0 12px; padding: 0; border: 0; font-size: 15px; font-weight: 700; color: var(--c-ink); }
.shop-sidebar .widget ul, .filter-list { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.shop-sidebar .widget li { padding: 0; }
.shop-sidebar .widget li a { display: flex; align-items: center; min-height: 36px; color: var(--c-ink-2); font-size: 15px; }
.shop-sidebar .widget li a:hover { color: var(--c-accent); }
.filter-list__link { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 40px; padding-inline: 10px; margin-inline: 0; font-size: 15px; color: var(--c-ink-2); transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease); }
.filter-list__link:hover { background: var(--c-surface); color: var(--c-ink); }
.filter-list__link[aria-current="page"] { background: var(--c-surface); color: var(--c-ink); font-weight: 700; box-shadow: inset calc(3px * var(--flip) * -1) 0 0 var(--c-accent); }
[dir="rtl"] .filter-list__link[aria-current="page"] { box-shadow: inset -3px 0 0 var(--c-accent); }
.filter-list__link--back { justify-content: flex-start; gap: 6px; color: var(--c-muted); font-size: 14px; }
.filter-list__link--back .icon { transform: scaleX(var(--flip)); }
[dir="rtl"] .filter-list__link--back .icon { transform: none; }
.filter-list__count { min-width: 28px; padding: 1px 8px; border-radius: var(--radius-pill); background: var(--c-surface); font-size: 12px; font-weight: 600; color: var(--c-muted); text-align: center; font-variant-numeric: tabular-nums; }
.filter-list__link:hover .filter-list__count, .filter-list__link[aria-current="page"] .filter-list__count { background: var(--c-white); }
.filter-check { display: flex; align-items: center; gap: 12px; min-height: 40px; font-size: 15px; color: var(--c-ink-2); }
.filter-check:hover { color: var(--c-ink); }
.filter-check__box { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 20px; height: 20px; border: 1px solid var(--c-faint); background: var(--c-white); color: transparent; transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease); }
.filter-check:hover .filter-check__box { border-color: var(--c-ink); }
.filter-check.is-checked .filter-check__box { background: var(--c-ink); border-color: var(--c-ink); color: var(--c-white); }
.filter-price__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.filter-price__field { display: grid; gap: 4px; margin: 0; font-size: 13px; font-weight: 500; color: var(--c-muted); }
.filter-price__field input { min-height: 44px; padding: 8px 12px; font-size: 15px; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.filter-price__field input::-webkit-outer-spin-button, .filter-price__field input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.filter-price__currency { margin: 6px 0 12px; font-size: 13px; color: var(--c-muted); }
.filter-price__submit { width: 100%; min-height: 44px; font-size: 15px; }
.shop-sidebar .product-categories li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.shop-sidebar .product-categories li > a { flex: 1; }
.shop-sidebar .product-categories .count, .shop-sidebar .wc-layered-nav-term .count {
	min-width: 28px; padding: 2px 0; background: none;
	font-size: 13px; color: var(--c-muted); text-align: end; font-variant-numeric: tabular-nums;
}
.shop-sidebar .product-categories .children { flex-basis: 100%; padding-inline-start: 14px; margin: 0 0 6px; border-inline-start: 1px solid var(--c-line); }
.shop-sidebar .product-categories .children a { font-size: 14px; color: var(--c-text); }
.shop-sidebar .current-cat > a, .shop-sidebar .chosen a { color: var(--c-accent); font-weight: 700; }
.shop-sidebar .wc-layered-nav-term a::before {
	content: ""; flex: none; width: 18px; height: 18px; margin-inline-end: 10px; border: 1px solid var(--c-faint); background: var(--c-white);
}
.shop-sidebar .wc-layered-nav-term.chosen a::before { background: var(--c-ink); border-color: var(--c-ink); box-shadow: inset 0 0 0 3px var(--c-white); }
.price_slider_wrapper { padding-top: 6px; }
.price_slider_wrapper .ui-slider { position: relative; height: 2px; margin: 14px 9px 22px; background: var(--c-line); }
.price_slider_wrapper .ui-slider-range { position: absolute; top: 0; height: 100%; background: var(--c-ink); }
.price_slider_wrapper .ui-slider-handle {
	position: absolute; top: -9px; z-index: 2; width: 20px; height: 20px; margin-inline-start: -10px;
	border-radius: 50%; background: var(--c-white); border: 2px solid var(--c-ink); cursor: grab; touch-action: none;
}
.price_slider_wrapper .ui-slider-handle:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 2px; }
.price_slider_amount { display: flex; flex-direction: column; gap: 12px; font-size: 14px; color: var(--c-text); }
.price_slider_amount .price_label { order: -1; font-variant-numeric: tabular-nums; }
.price_slider_amount .button { width: 100%; min-height: 44px; font-size: 15px; }
.price_slider_amount input { display: none; }
.price_slider_amount .clear { display: none; }

.shop-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--c-line); }
.shop-toolbar .woocommerce-result-count { margin: 0; margin-inline-end: auto; color: var(--c-muted); font-size: 14px; }
.shop-toolbar .woocommerce-ordering { margin: 0; }
.shop-toolbar .woocommerce-ordering select { min-width: 220px; min-height: 44px; font-size: 15px; border-color: var(--c-line); cursor: pointer; }
.shop-toolbar .woocommerce-ordering select:hover { border-color: var(--c-ink); }
.active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: -8px 0 28px; }
.active-filters__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.active-filters__chip { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 12px 0 14px; border-radius: var(--radius-pill); background: var(--c-ink); color: var(--c-white); font-size: 13px; }
.active-filters__chip:hover { background: var(--c-accent); color: var(--c-white); }
.active-filters__clear { font-size: 13px; color: var(--c-muted); text-decoration: underline; text-underline-offset: 3px; }
.shop-toolbar__filters { display: none; min-height: 46px; padding: 0 18px; font-size: 15px; }
.woocommerce-no-products-found .woocommerce-info { justify-content: center; padding-block: 28px; margin-bottom: 20px; }
.no-products-help { display: grid; justify-items: center; gap: 20px; padding: 8px 0 40px; text-align: center; }
.no-products-help .search-form { width: min(560px, 100%); }
.no-products-help__label { margin: 0; color: var(--c-muted); font-size: 15px; }
.no-products-help .shop-chips { justify-content: center; margin: 0; flex-wrap: wrap; }

/* ---------- Notices (classic + blocks) ---------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px;
	margin: 0 0 28px; padding: 16px 20px; list-style: none;
	background: var(--c-surface); border-inline-start: 3px solid var(--c-ink); font-size: 15px; line-height: 1.7; color: var(--c-ink);
}
.woocommerce-message { border-color: #1f8a4c; background: #f0f8f3; }
.woocommerce-error { border-color: var(--c-sale); background: #fdf1f1; flex-direction: column; align-items: flex-start; gap: 4px; }
.woocommerce-error li { margin: 0; }
.woocommerce-info { border-color: var(--c-accent); }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-inline-start: auto; min-height: 40px; padding: 0 18px; font-size: 14px; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button) { text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-message:focus, .woocommerce-error:focus, .woocommerce-info:focus { outline: none; }

/* ---------- Single product ---------- */
.product-page { padding-top: clamp(14px, 1.4vw, 24px); padding-bottom: var(--section-space); }
.product-page .woocommerce-breadcrumb { margin-bottom: clamp(18px, 1.8vw, 32px); }
/* Gallery + summary sit in their own grid (.product-main, opened/closed in inc/woocommerce.php),
   so a sticky column stops at the end of that row and never slides over the tabs and reviews below. */
.woocommerce div.product, div.product.type-product { display: block; position: relative; }
.product-main {
	position: relative; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
	gap: 0 clamp(32px, 5vw, 96px); align-items: start;
}
.woocommerce div.product .woocommerce-product-gallery, .woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; margin: 0; min-width: 0; }
.product-main > :not(.woocommerce-product-gallery):not(.summary):not(.product-gallery-badge) { grid-column: 1 / -1; }
.woocommerce div.product > .woocommerce-tabs, .woocommerce div.product > .related, .woocommerce div.product > .upsells { clear: both; }
/* Badge on the gallery corner (idea from 21st.dev "Featured Product Showcase"). */
.product-gallery-badge {
	position: absolute; top: 16px; inset-inline-start: 16px; z-index: 6;
	padding: 6px 14px; background: var(--c-sale); color: var(--c-white); font-size: 14px; font-weight: 700; line-height: 1.5;
}
.product-gallery-badge--soldout { background: var(--c-ink); }

/* Gallery. */
.woocommerce-product-gallery { position: relative; opacity: 1 !important; }
.woocommerce-product-gallery__wrapper { margin: 0; padding: 0; }
.woocommerce-product-gallery .flex-viewport, .woocommerce-product-gallery__wrapper { background: var(--c-surface); }
.woocommerce-product-gallery__image { position: relative; overflow: hidden; }
.woocommerce-product-gallery__image a { display: block; }
.woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 1; object-fit: contain; padding: 8%; mix-blend-mode: multiply; }
.woocommerce-product-gallery__image .zoomImg { background: var(--c-surface); padding: 0; aspect-ratio: auto; }
.woocommerce-product-gallery:not(.flexslider-enabled) .woocommerce-product-gallery__image:nth-child(n+2) { display: none; }
.woocommerce-product-gallery__trigger {
	position: absolute; top: 16px; inset-inline-end: 16px; z-index: 5; width: 44px; height: 44px;
	display: inline-flex; align-items: center; justify-content: center; background: var(--c-white); border-radius: 50%; font-size: 0;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
}
.woocommerce-product-gallery__trigger::before {
	content: ""; width: 20px; height: 20px; background: var(--c-ink);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce-product-gallery__trigger img, .woocommerce-product-gallery__trigger span { display: none !important; }
.flex-control-thumbs { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 10px 0 0; padding: 0; list-style: none; }
.flex-control-thumbs li { margin: 0 !important; width: auto !important; float: none !important; background: var(--c-surface); }
.flex-control-thumbs img { aspect-ratio: 1; object-fit: contain; mix-blend-mode: multiply; cursor: pointer; opacity: .55; outline: 1px solid transparent; outline-offset: -1px; transition: opacity var(--dur); }
.flex-control-thumbs img.flex-active, .flex-control-thumbs img:hover { opacity: 1; outline-color: var(--c-ink); }
.flex-direction-nav { list-style: none; margin: 0; padding: 0; }
.flex-direction-nav a { position: absolute; top: 45%; z-index: 4; width: 44px; height: 44px; font-size: 0; background: rgba(0, 0, 0, .2); }
.flex-direction-nav a::before { content: ""; position: absolute; inset: 0; margin: auto; width: 11px; height: 11px; border: solid var(--c-white); border-width: 0 0 2px 2px; transform: rotate(45deg); }
.flex-direction-nav .flex-prev { left: 0; }
.flex-direction-nav .flex-next { right: 0; }
.flex-direction-nav .flex-next::before { transform: rotate(-135deg); }
.flex-direction-nav .flex-disabled { display: none; }

/* Summary. */
.product-page .summary { display: flex; flex-direction: column; }
/* Whichever column is shorter follows the scroll (the taller one fills the row, so it cannot move).
   Only on screens tall enough to show the whole column, otherwise the buy button could stay out of view. */
@media (min-width: 1024px) and (min-height: 820px) {
	.product-main > .woocommerce-product-gallery, .product-main > .summary { position: sticky; top: 24px; }
	.admin-bar .product-main > .woocommerce-product-gallery, .admin-bar .product-main > .summary { top: 56px; }
}
.product-brand { align-self: flex-start; margin-bottom: 12px; font-family: "Pretendard", var(--font); font-size: 14px; font-weight: 600; letter-spacing: .08em; color: var(--c-muted); text-transform: uppercase; }
.product-brand:hover { color: var(--c-accent); }
.product-page .product_title { margin: 0; font-size: clamp(24px, 1.9vw, 38px); font-weight: 700; line-height: 1.45; color: var(--c-ink); text-wrap: balance; }
.product-summary__rating { display: flex; align-items: center; gap: 10px; margin-top: 12px; font-size: 14px; color: var(--c-muted); }
.product-summary__rating:empty { display: none; }
.product-summary__reviews { text-decoration: underline; text-underline-offset: 3px; }
.product-summary__score { font-size: 15px; font-weight: 700; color: var(--c-ink); font-variant-numeric: tabular-nums; }
.product-summary__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin: 22px 0 0; padding: 22px 0; border-block: 1px solid var(--c-line); }
.product-summary__discount { padding: 3px 10px; background: var(--c-sale); color: var(--c-white); font-size: 15px; font-weight: 700; line-height: 1.5; align-self: center; }
.product-summary__current { font-size: clamp(24px, 1.6vw, 32px); font-weight: 700; color: var(--c-ink); line-height: 1.2; font-variant-numeric: tabular-nums; }
.product-summary__current .woocommerce-Price-currencySymbol, .product-summary__regular .woocommerce-Price-currencySymbol { font-size: .55em; font-weight: 400; color: var(--c-text); }
.product-summary__regular { font-size: 16px; color: var(--c-muted); }
.woocommerce-product-details__short-description { margin-top: 22px; color: var(--c-text); font-size: 15px; line-height: 1.9; }
.woocommerce-product-details__short-description ul { margin: 0; padding-inline-start: 1.1em; }
.woocommerce-product-details__short-description li::marker { color: var(--c-accent); }
.product-page .stock { margin: 18px 0 0; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.product-page .stock::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.product-page .stock.out-of-stock { color: var(--c-sale); }
.product-page .stock.in-stock { color: #1f8a4c; }
.product-page form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; margin: 22px 0 0; }
.product-page form.cart .single_add_to_cart_button { flex: 1 1 200px; min-height: 58px; font-size: 17px; font-weight: 600; }
.product-page form.cart .single_add_to_cart_button.disabled { opacity: .45; cursor: not-allowed; }
.product-page form.cart .single_add_to_cart_button.loading { opacity: .7; }
.product-page form.cart.variations_form { display: block; }
.product-page .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 10px; }
.product-page .single_variation_wrap .woocommerce-variation { margin-bottom: 14px; }
.product-page .single_variation_wrap .woocommerce-variation-price { font-size: 20px; font-weight: 700; }
.product-page .single_variation_wrap .woocommerce-variation-price del { font-size: 15px; font-weight: 400; color: var(--c-muted); }
.product-page .single_variation_wrap .woocommerce-variation-price ins { text-decoration: none; }
.product-page .single_variation_wrap .woocommerce-variation-availability .stock { margin-top: 8px; }
.product-page table.variations { width: 100%; margin: 0 0 18px; border: 0; }
.product-page table.variations tr { display: block; margin-bottom: 14px; }
.product-page table.variations th, .product-page table.variations td { display: block; padding: 0; text-align: start; border: 0; }
.product-page table.variations th label { margin-bottom: 10px; font-size: 15px; font-weight: 700; }
.product-page .reset_variations { display: inline-block; margin-top: 10px; font-size: 14px; color: var(--c-muted); text-decoration: underline; text-underline-offset: 3px; }
.product-summary__wish .product-card__icon { width: 58px; height: 58px; border: 1px solid var(--c-line); color: var(--c-ink); }
.product-summary__wish .product-card__icon:hover { border-color: var(--c-ink); }
.woocommerce-grouped-product-list { width: 100%; margin-bottom: 16px; }
.woocommerce-grouped-product-list td { padding: 12px 8px; border-bottom: 1px solid var(--c-line); vertical-align: middle; }

/* Variation swatches (built by main.js from the native selects). */
.lb-swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.lb-swatch {
	min-width: 64px; min-height: 44px; padding: 0 18px; border: 1px solid var(--c-line); background: var(--c-white);
	font-size: 15px; color: var(--c-ink); transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.lb-swatch:hover { border-color: var(--c-ink); }
.lb-swatch[aria-pressed="true"] { border-color: var(--c-ink); background: var(--c-ink); color: var(--c-white); }
.lb-swatch:disabled { color: var(--c-faint); border-style: dashed; cursor: not-allowed; background: var(--c-white); }
.variations select.lb-swatched { position: absolute !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* Quantity − / +. */
.quantity { display: inline-flex; align-items: stretch; height: 58px; border: 1px solid var(--c-line); background: var(--c-white); }
.quantity .qty { width: 52px; min-height: 0; height: 100%; padding: 0; border: 0 !important; box-shadow: none !important; text-align: center; font-size: 17px; font-weight: 600; -moz-appearance: textfield; font-variant-numeric: tabular-nums; }
.quantity .qty::-webkit-outer-spin-button, .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qty-btn { width: 44px; display: inline-flex; align-items: center; justify-content: center; color: var(--c-ink); }
.qty-btn:hover { background: var(--c-surface); }
.quantity.hidden { display: none; }

.trust-points { list-style: none; margin: 24px 0 0; padding: 18px 20px; display: grid; gap: 12px; background: var(--c-surface); }
.trust-points li { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--c-ink-2); }
.trust-points .icon { color: var(--c-accent); }
.product_meta { display: grid; gap: 6px; margin-top: 22px; font-size: 14px; color: var(--c-muted); }
.product_meta > span > a, .product_meta .sku { color: var(--c-ink-2); }
.product_meta a:hover { color: var(--c-accent); }

/* Tabs (Figma tab_btn). */
.woocommerce-tabs { margin-top: clamp(56px, 5.2vw, 100px); }
.woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; row-gap: 8px; margin: 0 0 36px; padding: 0 0 18px; list-style: none; border-bottom: 1px solid var(--c-line); }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs::after { content: none; }
.woocommerce-tabs ul.tabs li { position: relative; flex: none; margin: 0; padding: 0; border: 0; background: none; }
.woocommerce-tabs ul.tabs li + li::before { content: ""; position: absolute; inset-inline-start: 0; top: 50%; width: 2px; height: 16px; background: var(--c-divider); transform: translateY(-50%); }
.woocommerce-tabs ul.tabs li a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 28px; font-size: var(--fs-lg); font-weight: 700; color: var(--c-faint); white-space: nowrap; }
.woocommerce-tabs ul.tabs li:first-child a { padding-inline-start: 0; }
.woocommerce-tabs ul.tabs li a:hover { color: var(--c-text); }
.woocommerce-tabs ul.tabs li.active a { color: var(--c-accent); }
.woocommerce-Tabs-panel { max-width: 920px; font-size: 16px; line-height: 1.9; color: var(--c-ink-2); }
.woocommerce-Tabs-panel > h2:first-child { display: none; }
.woocommerce-Tabs-panel h3 { margin-top: 1.6em; font-size: 18px; }
.woocommerce-product-attributes { border: 0; }
.woocommerce-product-attributes th, .woocommerce-product-attributes td { padding: 14px 16px; border-bottom: 1px solid var(--c-line); text-align: start; vertical-align: top; }
.woocommerce-product-attributes th { width: 220px; background: var(--c-surface); font-weight: 600; }
.woocommerce-product-attributes td p { margin: 0; }

/* Ratings + reviews. */
.star-rating { position: relative; display: inline-block; width: 100px; height: 20px; overflow: hidden; font-size: 0; line-height: 0; flex: none; }
.star-rating::before, .star-rating span {
	content: ""; position: absolute; top: 0; inset-inline-start: 0; height: 100%;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m10 1.5 2.6 5.4 5.9.8-4.3 4.1 1 5.8L10 14.8l-5.2 2.8 1-5.8L1.5 7.7l5.9-.8z'/%3E%3C/svg%3E") 0 0 / 20px 20px repeat-x;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m10 1.5 2.6 5.4 5.9.8-4.3 4.1 1 5.8L10 14.8l-5.2 2.8 1-5.8L1.5 7.7l5.9-.8z'/%3E%3C/svg%3E") 0 0 / 20px 20px repeat-x;
}
.star-rating::before { width: 100%; background: var(--c-line); }
.star-rating span { background: var(--c-accent); padding: 0; }
.star-rating span strong, .star-rating span::before { display: none; }
#reviews { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: clamp(32px, 4vw, 64px); align-items: start; max-width: none; }
#reviews #comments { min-width: 0; }
#reviews .woocommerce-Reviews-title { font-size: 20px; margin-bottom: 20px; }
#reviews ol.commentlist { list-style: none; margin: 0; padding: 0; }
#reviews ol.commentlist li { padding: 22px 0; border-bottom: 1px solid var(--c-line); }
#reviews ol.commentlist li:first-child { padding-top: 0; }
#reviews .comment_container { display: flex; gap: 14px; }
#reviews .comment_container img.avatar { width: 44px; height: 44px; border-radius: 50%; float: none; position: static; padding: 0; border: 0; }
#reviews .comment-text { flex: 1; margin: 0; padding: 0; border: 0; }
#reviews .comment-text .star-rating { float: none; margin-bottom: 6px; width: 80px; height: 16px; }
#reviews .comment-text .star-rating::before, #reviews .comment-text .star-rating span { -webkit-mask-size: 16px 16px; mask-size: 16px 16px; }
#reviews .meta { font-size: 13px; color: var(--c-muted); margin-bottom: 6px; }
#reviews .woocommerce-review__author { color: var(--c-ink); font-weight: 700; font-size: 15px; }
#reviews .woocommerce-review__verified { color: #1f8a4c; }
#reviews .description p { margin: 0; font-size: 15px; }
#reviews .woocommerce-noreviews { color: var(--c-muted); }
#review_form_wrapper { padding: clamp(22px, 2.2vw, 34px); background: var(--c-surface); }
#review_form .comment-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
#review_form .comment-form > * { grid-column: 1 / -1; margin: 0 0 14px; }
#review_form .comment-form > .comment-form-author, #review_form .comment-form > .comment-form-email { grid-column: auto; }
#review_form .comment-notes { font-size: 13px; color: var(--c-muted); }
#review_form label { font-size: 14px; }
#review_form input[type="text"], #review_form input[type="email"], #review_form textarea { background: var(--c-white); }
#review_form .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--c-text); }
#review_form .comment-form-cookies-consent label { font-weight: 400; font-size: 13px; margin: 0; }
#review_form .comment-reply-title { display: block; font-size: 18px; font-weight: 700; margin-bottom: 14px; }
#review_form .comment-form-rating label { font-weight: 600; }
#review_form .form-submit .submit { width: 100%; min-height: 52px; }
/* p.stars also matches the theme's display-only .stars (main.css) — undo that so only one row of stars shows. */
p.stars { width: auto; height: auto; margin: 6px 0 16px; }
p.stars::before, p.stars::after { content: none; display: none; }
p.stars span { display: inline-flex; gap: 4px; }
p.stars a { position: relative; display: inline-block; width: 32px; height: 32px; font-size: 0; }
p.stars a::before {
	content: ""; position: absolute; inset: 2px; background: var(--c-line);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m10 1.5 2.6 5.4 5.9.8-4.3 4.1 1 5.8L10 14.8l-5.2 2.8 1-5.8L1.5 7.7l5.9-.8z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m10 1.5 2.6 5.4 5.9.8-4.3 4.1 1 5.8L10 14.8l-5.2 2.8 1-5.8L1.5 7.7l5.9-.8z'/%3E%3C/svg%3E") center / contain no-repeat;
}
p.stars:hover a::before, p.stars.selected a::before { background: var(--c-accent); }
p.stars a:hover ~ a::before, p.stars.selected a.active ~ a::before { background: var(--c-line); }
p.stars.selected a.active::before { background: var(--c-accent); }

/* Related / up-sells / cross-sells headings = homepage section titles. */
.related > h2, .upsells > h2, .cross-sells > h2 {
	margin: clamp(64px, 5.2vw, 100px) 0 clamp(20px, 2.1vw, 40px);
	font-size: var(--fs-section); font-weight: 600; line-height: 1.2; text-transform: uppercase; color: #000;
}

/* Sticky buy bar (mobile only). */
.sticky-cart { display: none; }

/* ---------- Classic cart (shortcode) ---------- */
.entry-content--wide > *, .entry-content--wide > .alignwide, .entry-content--wide > .alignfull { max-width: none; margin-inline: 0; }
.entry-content--wide { font-size: 16px; line-height: 1.6; color: var(--c-ink); }
.entry-content--wide a:not(.button):not(.wp-block-button__link):not(.wp-element-button) { text-decoration: none; color: var(--c-ink); }
.entry-content--wide a:not(.button):not(.wp-block-button__link):not(.wp-element-button):hover { color: var(--c-accent); }
.woocommerce-cart-form { margin-bottom: 40px; }
.woocommerce-cart .entry-content--wide > .woocommerce:has(.woocommerce-cart-form) {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 400px); gap: 0 clamp(32px, 4vw, 64px); align-items: start;
}
.woocommerce-cart .entry-content--wide > .woocommerce:has(.woocommerce-cart-form) > .woocommerce-notices-wrapper,
.woocommerce-cart .entry-content--wide > .woocommerce:has(.woocommerce-cart-form) > .woocommerce-cart-form { grid-column: 1; }
.woocommerce-cart .entry-content--wide > .woocommerce:has(.woocommerce-cart-form) .cart-collaterals { display: contents; }
.woocommerce-cart .entry-content--wide > .woocommerce:has(.woocommerce-cart-form) .cart-collaterals .cart_totals { grid-column: 2; grid-row: 1 / span 3; position: sticky; top: 24px; }
.woocommerce-cart .entry-content--wide > .woocommerce:has(.woocommerce-cart-form) .cart-collaterals .cross-sells { grid-column: 1; }
.admin-bar.woocommerce-cart .cart-collaterals .cart_totals { top: 56px; }
table.shop_table.cart { border-top: 0; }
table.shop_table .product-price, table.shop_table .product-subtotal { font-variant-numeric: tabular-nums; white-space: nowrap; }
table.shop_table { width: 100%; border: 0; border-collapse: collapse; font-size: 15px; }
table.shop_table th { padding: 14px 12px; text-align: start; font-weight: 600; color: var(--c-muted); border-bottom: 1px solid var(--c-ink); font-size: 13px; }
table.shop_table td { padding: 20px 12px; border-bottom: 1px solid var(--c-line); vertical-align: middle; }
table.shop_table .product-thumbnail { width: 110px; }
table.shop_table .product-thumbnail img { width: 90px; height: 90px; object-fit: contain; background: var(--c-surface); padding: 6px; }
table.shop_table .product-name a { font-weight: 600; }
table.shop_table .product-remove { width: 48px; }
table.shop_table .product-remove a.remove {
	display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%;
	font-size: 22px; line-height: 1; color: var(--c-muted) !important; text-decoration: none;
}
table.shop_table .product-remove a.remove:hover { background: var(--c-sale); color: var(--c-white) !important; }
table.shop_table .product-subtotal { font-weight: 700; }
table.shop_table td.actions { padding-top: 24px; border-bottom: 0; }
table.shop_table td.actions .coupon { display: inline-flex; flex-wrap: wrap; gap: 10px; }
table.shop_table td.actions .coupon label { display: none; }
table.shop_table td.actions .coupon input { width: 220px; }
table.shop_table td.actions > .button { float: inline-end; }
table.shop_table .quantity { height: 46px; }
table.shop_table .quantity .qty { width: 44px; font-size: 15px; }
table.shop_table .qty-btn { width: 36px; }
.cart-collaterals { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: 40px; }
.cart-collaterals .cross-sells { grid-column: 1; grid-row: 1; }
.cart-collaterals .cart_totals { grid-column: 2; grid-row: 1; width: auto; float: none; padding: 28px; background: var(--c-surface); }
.cart_totals h2 { font-size: 20px; margin-bottom: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--c-ink); }
.cart_totals table.shop_table td, .cart_totals table.shop_table th { padding-block: 14px; vertical-align: top; }
.cart_totals .woocommerce-shipping-destination, .cart_totals .woocommerce-shipping-calculator { font-size: 13px; color: var(--c-muted); }
.cart_totals table.shop_table th { border: 0; color: var(--c-ink); font-size: 15px; font-weight: 400; padding-inline-start: 0; }
.cart_totals table.shop_table td { text-align: end; padding-inline-end: 0; }
.cart_totals .order-total td, .cart_totals .order-total th { font-size: 19px; font-weight: 700; border-bottom: 0; }
.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-shipping-methods li { margin-bottom: 6px; }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 58px; font-size: 17px; }
.cart-empty.woocommerce-info { justify-content: center; font-size: 17px; padding-block: 40px; }
.return-to-shop { text-align: center; }

/* ---------- Classic checkout (shortcode) ---------- */
/* Name / mobile / country the customer already gave (inc/woocommerce.php): kept in the form, not shown. */
.woocommerce-checkout .form-row.lb-field-known { display: none !important; }
/* Two-up fields from Iranian checkout plugins (form-right / form-left) get a float but no width. */
.woocommerce-checkout form .form-row.form-right, .woocommerce-checkout form .form-row.form-left,
.woocommerce-account form .form-row.form-right, .woocommerce-account form .form-row.form-left { width: calc(50% - 8px); }
.woocommerce form .form-row.form-right { clear: right; }
.woocommerce form .form-row .select2-container, .woocommerce form .form-row select:not(.select2-hidden-accessible) { width: 100% !important; }
/* Some plugins add their own required star next to WooCommerce's. */
.woocommerce form .form-row label .required ~ .required { display: none; }
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { display: flow-root; }
form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 480px); grid-template-rows: auto auto 1fr; gap: 0 56px; align-items: start; }
form.checkout > .woocommerce-NoticeGroup, form.checkout > .col2-set { grid-column: 1; }
form.checkout > .col2-set { grid-row: 1 / span 3; }
form.checkout > .woocommerce-NoticeGroup { grid-row: auto; }
form.checkout #order_review_heading, form.checkout #order_review { grid-column: 2; }
form.checkout #order_review_heading { grid-row: 1; margin: 0; padding: 28px 28px 0; background: var(--c-surface); font-size: 20px; }
form.checkout #order_review { grid-row: 2; padding: 16px 28px 28px; background: var(--c-surface); position: sticky; top: 24px; }
.col2-set { display: grid; gap: 30px; }
.col2-set .col-1, .col2-set .col-2, .woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2, .woocommerce-page .col2-set .col-1, .woocommerce-page .col2-set .col-2 { float: none; width: auto; max-width: none; }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3 { font-size: 20px; margin-bottom: 18px; }
#order_review table.shop_table th, #order_review table.shop_table td { padding-inline: 0; background: none; }
#order_review .order-total th, #order_review .order-total td { font-size: 19px; font-weight: 700; }
#payment { margin-top: 20px; background: none; }
#payment ul.payment_methods { list-style: none; margin: 0 0 20px; padding: 0; border: 0; }
#payment ul.payment_methods li { padding: 14px 0; border-bottom: 1px solid var(--c-line); }
#payment ul.payment_methods li label { display: inline; margin-inline-start: 8px; font-weight: 600; }
#payment .payment_box { margin-top: 10px; padding: 14px 16px; background: var(--c-white); font-size: 14px; color: var(--c-text); }
#payment .payment_box p:last-child { margin: 0; }
#payment #place_order { width: 100%; min-height: 58px; font-size: 17px; margin-top: 10px; }
.woocommerce-terms-and-conditions-wrapper { font-size: 14px; color: var(--c-text); }

/* Order received. */
ul.woocommerce-order-overview { display: flex; flex-wrap: wrap; gap: 20px 40px; margin: 0 0 40px; padding: 28px; list-style: none; background: var(--c-surface); }
ul.woocommerce-order-overview li { font-size: 13px; color: var(--c-muted); }
ul.woocommerce-order-overview li strong { display: block; margin-top: 4px; font-size: 17px; color: var(--c-ink); }
.woocommerce-thankyou-order-received { font-size: 22px; font-weight: 700; }
.woocommerce-order-details, .woocommerce-customer-details { margin-top: 40px; }
.woocommerce-order-details__title, .woocommerce-column__title { font-size: 20px; }

/* ---------- My account ---------- */
.woocommerce-account.logged-in .entry-content--wide > .woocommerce { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: clamp(32px, 4vw, 64px); align-items: start; }
.woocommerce-account:not(.logged-in) .entry-content--wide .woocommerce,
.woocommerce-account.woocommerce-lost-password .entry-content--wide .woocommerce { display: block; }
.account-sidebar { position: sticky; top: 24px; min-width: 0; border: 1px solid var(--c-line); }
.woocommerce-MyAccount-navigation { min-width: 0; }
.admin-bar .account-sidebar { top: 56px; }
.account-user { display: flex; align-items: center; gap: 12px; padding: 20px; background: var(--c-surface); }
.account-user .avatar { flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--c-white); }
.account-user__text { display: flex; flex-direction: column; min-width: 0; line-height: 1.5; }
.account-user__hello { font-size: 13px; color: var(--c-muted); }
.account-user__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px; }
.woocommerce-MyAccount-navigation li a {
	display: flex; align-items: center; gap: 12px; min-height: 48px; padding-inline: 14px;
	font-size: 15px; color: var(--c-ink-2); transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.woocommerce-MyAccount-navigation li a::before {
	content: ""; flex: none; width: 20px; height: 20px; background: currentColor;
	-webkit-mask: var(--nav-icon, none) center / contain no-repeat; mask: var(--nav-icon, none) center / contain no-repeat;
}
.woocommerce-MyAccount-navigation li a:hover { background: var(--c-surface); color: var(--c-ink); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--c-ink); color: var(--c-white); font-weight: 600; }
.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--c-line); }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--c-muted); }
.woocommerce-MyAccount-navigation-link--dashboard a { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Cpath d='M10 20v-6h4v6'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--orders a { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3 8 4.5v9L12 21l-8-4.5v-9L12 3z'/%3E%3Cpath d='m4 7.5 8 4.5 8-4.5'/%3E%3Cpath d='M12 12v9'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--downloads a { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11'/%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3Cpath d='M5 20h14'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--edit-address a { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--payment-methods a { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='5' width='19' height='14' rx='1.5'/%3E%3Cpath d='M2.5 10h19M6 15h4'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--edit-account a { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--customer-logout a { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h5v16h-5'/%3E%3Cpath d='M10 8l-4 4 4 4'/%3E%3Cpath d='M6 12h10'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-MyAccount-content > p:first-of-type { font-size: 16px; }
.woocommerce-MyAccount-content mark { background: none; font-weight: 700; color: var(--c-ink); }
.woocommerce-MyAccount-content > h2, .woocommerce-MyAccount-content > h3 { font-size: 22px; }
.account-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 28px 0 0; padding: 0; list-style: none; }
.account-tile {
	display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 16px; align-items: center;
	height: 100%; padding: 22px; border: 1px solid var(--c-line); transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.account-tile:hover { border-color: var(--c-ink); color: var(--c-ink); box-shadow: var(--shadow-card); }
.account-tile__icon { grid-row: 1 / span 2; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--c-surface); color: var(--c-accent); }
.account-tile__title { font-size: 17px; font-weight: 700; }
.account-tile__desc { font-size: 14px; color: var(--c-muted); }
.woocommerce-orders-table, .woocommerce-table--order-downloads { border: 1px solid var(--c-line) !important; }
.woocommerce-orders-table th { background: var(--c-surface); }
.woocommerce-orders-table td, .woocommerce-orders-table th { padding-inline: 16px !important; }
.woocommerce-orders-table__cell-order-status { font-weight: 600; }
.woocommerce-MyAccount-content .woocommerce-info { margin-top: 0; }
.woocommerce .u-columns.col2-set, #customer_login { grid-template-columns: 1fr 1fr; gap: clamp(24px, 3vw, 48px); max-width: 1040px; margin-inline: auto; }
.woocommerce-account:not(.logged-in) .entry-content--wide > .woocommerce > h2,
.woocommerce-account #customer_login h2 { font-size: 22px; margin-bottom: 16px; }
.woocommerce-account:not(.logged-in) .entry-content--wide > .woocommerce > h2 { text-align: center; }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password {
	height: calc(100% - 52px); margin: 0; padding: clamp(22px, 2.4vw, 36px); border: 1px solid var(--c-line); background: var(--c-white);
}
.woocommerce-account:not(.logged-in) .entry-content--wide > .woocommerce > form.login,
.woocommerce form.lost_reset_password { max-width: 480px; margin-inline: auto; height: auto; }
.woocommerce form.login .button, .woocommerce form.register .button, .woocommerce form.lost_reset_password .button { width: 100%; min-height: 54px; margin-top: 4px; }
.woocommerce form.login .form-row:has(.woocommerce-form-login__rememberme) { display: flex; flex-direction: column; gap: 12px; }
.woocommerce-form-login__rememberme { display: flex !important; align-items: center; gap: 8px; font-weight: 400 !important; }
.woocommerce form.register p:not(.form-row) { font-size: 14px; color: var(--c-text); line-height: 1.8; }
.woocommerce-privacy-policy-text p { font-size: 13px; color: var(--c-muted); line-height: 1.8; }
.lost_password { margin: 14px 0 0; text-align: center; }
.lost_password a { font-size: 14px; color: var(--c-muted) !important; text-decoration: underline !important; text-underline-offset: 3px; }
.woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.woocommerce-Address { padding: 24px; background: var(--c-surface); }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.woocommerce-Address-title h2 { font-size: 17px; margin: 0; }
.woocommerce-Address address { font-style: normal; line-height: 1.9; }
.woocommerce-orders-table .button, .woocommerce-orders-table__cell-order-actions .button { min-height: 38px; padding: 0 14px; font-size: 14px; margin: 2px; }
.woocommerce-EditAccountForm fieldset { margin: 24px 0; padding: 20px; border: 1px solid var(--c-line); }
.woocommerce-EditAccountForm legend { padding: 0 8px; font-weight: 700; }

/* ---------- WooCommerce Blocks: cart + checkout + mini cart ---------- */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-family: var(--font); color: var(--c-ink); }
.wp-block-woocommerce-cart.alignwide, .wp-block-woocommerce-checkout.alignwide { margin-inline: 0; max-width: none; }
.wc-block-components-sidebar-layout { margin: 0; }
.wc-block-components-sidebar .wc-block-components-panel, .wc-block-components-sidebar .wc-block-components-totals-wrapper { border-color: var(--c-line); }
.wp-block-woocommerce-cart-totals-block, .wp-block-woocommerce-checkout-order-summary-block {
	padding: 24px 28px 28px !important; background: var(--c-surface); border: 0 !important; border-radius: 0 !important;
}
.wc-block-cart .wc-block-cart__totals-title, .wc-block-components-checkout-order-summary__title-text, .wc-block-components-title.wc-block-components-title {
	font-size: 18px !important; font-weight: 700 !important; text-transform: none !important; color: var(--c-ink);
}
.wc-block-cart .wc-block-cart__totals-title { padding: 0 0 12px !important; margin: 0 !important; text-align: start !important; }
.wc-block-components-totals-item { font-size: 15px; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 19px !important; font-weight: 700 !important; }
.wc-block-components-totals-item__value, .wc-block-components-product-price, .wc-block-formatted-money-amount { font-variant-numeric: tabular-nums; }
.wc-block-cart-items { border: 0 !important; }
.wc-block-cart-items th { padding: 0 0 14px !important; border-bottom: 1px solid var(--c-ink) !important; font-size: 13px !important; font-weight: 600 !important; color: var(--c-muted); text-transform: none !important; }
/* Block cart / checkout / mini cart print prices in a left-to-right <bdi>, which puts the currency
   on the wrong side in Persian. Laid out right-to-left it follows the store setting (e.g. "۱۲۰٬۰۰۰ تومان"). */
[dir="rtl"] .wc-block-formatted-money-amount bdi, [dir="rtl"] .wc-block-components-formatted-money-amount bdi,
[dir="rtl"] .wc-block-formatted-money-amount, [dir="rtl"] .wc-block-components-formatted-money-amount { direction: rtl !important; unicode-bidi: isolate !important; }

/* Narrow cart (phones, or WooCommerce's own small-container classes): image | name, price, qty, total.
   WooCommerce's fixed 80px + 132px columns plus the wider cells pushed the row total off-screen. */
@media (max-width: 767px) {
	.wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row {
		grid-template-columns: 76px minmax(0, 1fr) !important; column-gap: 14px; width: 100%;
	}
	.wc-block-cart table.wc-block-cart-items .wc-block-cart-item__image { width: auto !important; padding-inline-end: 0 !important; grid-column: 1; grid-row: 1 / span 2; }
	.wc-block-cart table.wc-block-cart-items .wc-block-cart-item__product { grid-column: 2; grid-row: 1; width: auto !important; min-width: 0; padding-bottom: 6px !important; }
	.wc-block-cart table.wc-block-cart-items .wc-block-cart-item__total {
		grid-column: 2 !important; grid-row: 2 !important; justify-self: start; align-self: start; width: auto !important;
		padding: 0 0 18px !important; text-align: start !important; white-space: nowrap;
	}
	.wc-block-cart table.wc-block-cart-items .wc-block-cart-item__total .wc-block-cart-item__total-price-and-sale-badge-wrapper { align-items: flex-start; }
	.wc-block-cart table.wc-block-cart-items .wc-block-cart-item__total .wc-block-components-product-price { font-size: 16px; font-weight: 700; }
	.wc-block-cart table.wc-block-cart-items .wc-block-components-product-name { white-space: normal; overflow-wrap: anywhere; }
	.wc-block-cart .wc-block-components-sidebar { padding-inline: 0; }
}
/* Divider on the row: WooCommerce lays the total cell out as flex, so per-cell borders would not line up. */
.wc-block-cart-items td { border-top: 0 !important; border-bottom: 0 !important; padding-block: 22px !important; vertical-align: top; }
.wc-block-cart-items .wc-block-cart-items__row { border-bottom: 1px solid var(--c-line); }
.wc-block-cart-item__total .wc-block-components-product-price__value { font-weight: 700; font-size: 16px; }
@media (min-width: 1024px) {
	.wc-block-components-sidebar-layout .wc-block-components-sidebar { position: sticky; top: 24px; align-self: flex-start; }
	.admin-bar .wc-block-components-sidebar-layout .wc-block-components-sidebar { top: 56px; }
}
.wc-block-cart-item__image { width: 104px !important; padding-inline-end: 20px !important; }
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img { background: var(--c-surface); aspect-ratio: 1; object-fit: contain; padding: 6px; mix-blend-mode: multiply; }
.wc-block-components-product-name { font-weight: 600 !important; font-size: 15px !important; color: var(--c-ink) !important; text-decoration: none !important; line-height: 1.6 !important; }
.wc-block-components-product-name:hover { color: var(--c-accent) !important; }
.wc-block-components-product-metadata { font-size: 13px; color: var(--c-muted); }
.wc-block-cart-items .wc-block-components-product-metadata__description, .wc-block-components-order-summary .wc-block-components-product-metadata__description { display: none; }
.wc-block-components-product-badge, .wc-block-components-sale-badge { border-radius: 0 !important; border-color: var(--c-sale) !important; color: var(--c-sale) !important; font-weight: 700; font-size: 12px !important; }
.wc-block-components-product-price__regular { color: var(--c-muted); }
.wc-block-components-quantity-selector { border-radius: 0 !important; border-color: var(--c-line) !important; min-height: 42px; width: 112px !important; }
.wc-block-components-quantity-selector::after { border-radius: 0 !important; border-color: var(--c-line) !important; }
.wc-block-components-quantity-selector input { font-weight: 600; font-size: 15px; box-shadow: none !important; }
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { min-width: 36px; color: var(--c-ink); opacity: 1; }
.wc-block-cart-item__remove-link { font-size: 13px !important; color: var(--c-muted) !important; text-decoration: underline !important; text-underline-offset: 3px; }
.wc-block-cart-item__remove-link:hover { color: var(--c-sale) !important; }

/* Inputs, selects, radios, checkboxes. */
.wc-block-components-text-input input, .wc-block-components-text-input textarea,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-form .wc-block-components-text-input input {
	border: 1px solid var(--c-line) !important; border-radius: 0 !important; background: var(--c-white) !important;
	color: var(--c-ink) !important; font-family: var(--font) !important; box-shadow: none !important;
}
.wc-block-components-text-input input:focus, .wc-blocks-components-select .wc-blocks-components-select__select:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus {
	border-color: var(--c-ink) !important; box-shadow: 0 0 0 1px var(--c-ink) !important;
}
.wc-blocks-components-select .wc-blocks-components-select__container { border-radius: 0 !important; background: var(--c-white); }
.wc-block-components-text-input label, .wc-blocks-components-select__label, .wc-block-components-combobox .wc-block-components-combobox-control label { color: var(--c-muted) !important; font-family: var(--font) !important; }
.wc-block-components-validation-error { color: var(--c-sale) !important; font-size: 13px; }
.wc-block-components-text-input.has-error input { border-color: var(--c-sale) !important; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-radius: 0 !important; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted { box-shadow: inset 0 0 0 1.5px var(--c-ink) !important; border-radius: 0 !important; }
.wc-block-components-radio-control--highlight-checked { border-radius: 0 !important; }
.wc-block-components-radio-control--highlight-checked::after { border-radius: 0 !important; border-color: var(--c-line) !important; }
.wc-block-components-radio-control__input:checked { border-color: var(--c-ink) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--c-ink) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] { border-radius: 0 !important; border-color: var(--c-faint) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--c-ink) !important; border-color: var(--c-ink) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--c-white) !important; }
.wc-block-components-checkout-step__title { font-size: 19px !important; font-weight: 700 !important; }
/* Checkout sections with an icon and a divider (idea from 21st.dev "Checkout Form"). */
.wc-block-checkout__main .wc-block-components-checkout-step { padding-top: 28px; margin-bottom: 28px !important; border-top: 1px solid var(--c-line); }
.wc-block-checkout__main .wc-block-components-checkout-step:first-child, .wc-block-checkout__main .wc-block-components-checkout-step:first-of-type { padding-top: 0; border-top: 0; }
.wc-block-components-checkout-step__heading { display: flex; align-items: center; }
.wc-block-components-checkout-step__title { display: inline-flex !important; align-items: center; gap: 12px; }
.wc-block-components-checkout-step__title::before {
	content: ""; flex: none; width: 36px; height: 36px; background-color: var(--c-surface); background-repeat: no-repeat; background-position: center; background-size: 20px;
	background-image: var(--step-icon, none);
}
#contact-fields { --step-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
#shipping-fields, #billing-fields { --step-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
#shipping-option { --step-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h11v10H3z'/%3E%3Cpath d='M14 10h4l3 3v3h-7'/%3E%3Ccircle cx='7' cy='17.5' r='1.8'/%3E%3Ccircle cx='17' cy='17.5' r='1.8'/%3E%3C/svg%3E"); }
#payment-method { --step-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='5' width='19' height='14' rx='1.5'/%3E%3Cpath d='M2.5 10h19M6 15h4'/%3E%3C/svg%3E"); }
#order-notes { --step-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h10l4 4v12H5z'/%3E%3Cpath d='M9 12h6M9 16h4'/%3E%3C/svg%3E"); }
.wc-block-components-checkout-step:not(#contact-fields):not(#shipping-fields):not(#billing-fields):not(#shipping-option):not(#payment-method):not(#order-notes) .wc-block-components-checkout-step__title::before { display: none; }
.wc-block-components-checkout-step__description { color: var(--c-muted); font-size: 14px; }
.wc-block-checkout__actions_row .wc-block-components-checkout-return-to-cart-button { color: var(--c-muted); font-size: 14px; }
.wc-block-components-panel__button { font-size: 15px !important; font-weight: 600; }
.wc-block-components-totals-coupon__form .wc-block-components-button { min-height: 50px; }

/* Buttons (proceed, place order, coupon apply, mini cart). */
.wc-block-components-button:not(.is-link):not(.wc-block-components-quantity-selector__button),
.wp-block-woocommerce-cart .wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-mini-cart__footer-checkout {
	min-height: 56px; border-radius: 0 !important; border: 1px solid var(--c-ink) !important;
	background: var(--c-ink) !important; color: var(--c-white) !important; font-family: var(--font) !important; font-size: 16px !important; font-weight: 600 !important;
	box-shadow: none !important; transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.wc-block-components-button:not(.is-link):not(.wc-block-components-quantity-selector__button):hover,
.wc-block-components-checkout-place-order-button:hover { background: var(--c-accent) !important; border-color: var(--c-accent) !important; }
.wc-block-components-button.outlined, .wc-block-mini-cart__footer-cart { background: var(--c-white) !important; color: var(--c-ink) !important; }
.wc-block-components-notice-banner { border-radius: 0 !important; font-size: 14px; }
.wc-block-components-notice-banner.is-error { border-color: var(--c-sale) !important; background: #fdf1f1 !important; }
.wc-block-components-notice-banner.is-success { border-color: #1f8a4c !important; background: #f0f8f3 !important; }
.wc-block-components-notice-banner.is-info { border-color: var(--c-accent) !important; }
.wc-block-components-skeleton__element-placeholder { border-radius: 0 !important; }

/* Empty cart: theme icon, a real "go to shop" button and product cards that match the shop grid. */
.wp-block-woocommerce-empty-cart-block { padding-top: clamp(8px, 2vw, 24px); }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { margin: 0; font-size: clamp(20px, .6vw + 1rem, 26px); font-weight: 700; color: var(--c-ink); }
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
	content: "" !important; display: block !important;
	width: 96px !important; height: 96px !important; margin: 0 auto 22px !important; border-radius: 50%;
	-webkit-mask: none !important; mask: none !important;
	background: var(--c-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff6339' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 7h14l-1.2 11.1a2 2 0 0 1-2 1.9H8.2a2 2 0 0 1-2-1.9L5 7z'/%3E%3Cpath d='M9 10V6a3 3 0 0 1 6 0v4'/%3E%3C/svg%3E") center / 44px no-repeat !important;
}
.wp-block-woocommerce-empty-cart-block > .wc-block-cart__empty-cart__title + p { margin: 18px 0 0; }
.wp-block-woocommerce-empty-cart-block > .wc-block-cart__empty-cart__title + p a {
	display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 32px;
	background: var(--c-ink); border: 1px solid var(--c-ink); color: var(--c-white) !important; font-weight: 600;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.wp-block-woocommerce-empty-cart-block > .wc-block-cart__empty-cart__title + p a:hover { background: var(--c-accent); border-color: var(--c-accent); }
.wp-block-woocommerce-empty-cart-block > .wp-block-separator { width: 100%; max-width: none !important; height: 0; margin: clamp(48px, 5vw, 80px) 0 clamp(28px, 3vw, 44px) !important; border: 0; border-top: 1px solid var(--c-line); background: none; opacity: 1; }
.wp-block-woocommerce-empty-cart-block > .wp-block-separator::before { content: none !important; }
.wp-block-woocommerce-empty-cart-block > h2:not(.wc-block-cart__empty-cart__title) {
	margin: 0 0 clamp(20px, 2.1vw, 36px); font-size: clamp(22px, 1vw + .9rem, 32px); font-weight: 700; color: var(--c-ink); text-align: start !important;
}

/* Product grids from WooCommerce blocks (empty cart "New in store" and similar). */
.wc-block-grid .wc-block-grid__products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(28px, 3vw, 48px) var(--grid-gap); margin: 0 !important; padding: 0; list-style: none; }
.wc-block-grid.has-3-columns .wc-block-grid__products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wc-block-grid .wc-block-grid__product {
	position: relative; display: flex; flex-direction: column; width: auto !important; max-width: none !important; flex: none !important;
	margin: 0 !important; padding: 0 !important; border: 0 !important; text-align: start !important; list-style: none;
}
.wc-block-grid .wc-block-grid__product-link { display: block; color: var(--c-ink) !important; }
.wc-block-grid .wc-block-grid__product-image { position: relative; margin: 0 0 16px !important; aspect-ratio: 1; overflow: hidden; background: var(--c-surface); }
.wc-block-grid .wc-block-grid__product-image img {
	width: 100% !important; height: 100% !important; object-fit: contain; padding: 12%; mix-blend-mode: multiply;
	transition: transform 400ms var(--ease);
}
.wc-block-grid .wc-block-grid__product:hover .wc-block-grid__product-image img { transform: scale(1.04); }
.wc-block-grid .wc-block-grid__product-title {
	margin: 0 !important; font-family: var(--font) !important; font-size: var(--fs-sm) !important; font-weight: 400 !important; line-height: 1.75 !important; color: var(--c-text);
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(1.75em * 2);
}
.wc-block-grid .wc-block-grid__product-link:hover .wc-block-grid__product-title { color: var(--c-ink); }
.wc-block-grid .wc-block-grid__product-price { margin: auto 0 0 !important; padding-top: 10px; font-size: clamp(16px, .25vw + .9rem, 19px) !important; font-weight: 700; color: var(--c-ink); font-variant-numeric: tabular-nums; }
.wc-block-grid .wc-block-grid__product-price del { margin-inline-start: 8px; font-size: 14px; font-weight: 400; color: var(--c-muted); }
.wc-block-grid .wc-block-grid__product-price ins { text-decoration: none; }
.wc-block-grid .wc-block-grid__product-price .woocommerce-Price-currencySymbol { font-size: .75em; font-weight: 400; }
.wc-block-grid .wc-block-grid__product-onsale {
	position: absolute; top: 0; inset-inline-start: 0; z-index: 1; margin: 0 !important; padding: 6px 10px !important;
	border: 0 !important; border-radius: 0 !important; background: var(--c-sale) !important; color: var(--c-white) !important; font-size: 13px !important; font-weight: 700;
}
.wc-block-grid .wc-block-grid__product-add-to-cart { margin: 14px 0 0 !important; width: 100%; }
.wc-block-grid .wc-block-grid__product-add-to-cart .wp-block-button__link {
	display: flex !important; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 46px; margin: 0 !important; padding: 0 16px !important;
	border: 1px solid var(--c-ink) !important; border-radius: 0 !important; background: var(--c-white) !important; color: var(--c-ink) !important;
	font-family: var(--font) !important; font-size: 15px !important; font-weight: 600; line-height: 1.2; white-space: nowrap;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.wc-block-grid .wc-block-grid__product-add-to-cart .wp-block-button__link:hover { background: var(--c-ink) !important; color: var(--c-white) !important; }
.wc-block-grid .wc-block-grid__product-add-to-cart .wp-block-button__link.loading { opacity: .6; }
.wc-block-grid .wc-block-grid__product-add-to-cart .wp-block-button__link.added::after { content: none; }
.wc-block-grid .wc-block-grid__product-add-to-cart .added_to_cart { display: block; margin-top: 8px; font-size: 13px; text-align: center; color: var(--c-accent-dark) !important; text-decoration: underline; text-underline-offset: 3px; }
.wc-block-grid .wc-block-grid__product-rating { margin: 6px 0 0 !important; }
@media (max-width: 1199px) {
	.wc-block-grid .wc-block-grid__products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.wc-block-grid .wc-block-grid__products > :nth-child(n+4) { display: none; }
}
@media (max-width: 767px) {
	.wc-block-grid .wc-block-grid__products, .wc-block-grid.has-3-columns .wc-block-grid__products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
	.wc-block-grid .wc-block-grid__products > :nth-child(n+4) { display: flex; }
	.wc-block-grid .wc-block-grid__product-title { font-size: 14px !important; }
	.wc-block-grid .wc-block-grid__product-add-to-cart .wp-block-button__link { min-height: 42px; font-size: 13px !important; padding: 0 8px !important; }
	.wc-block-cart__empty-cart__title.with-empty-cart-icon::before { width: 80px !important; height: 80px !important; background-size: 36px !important; }
}
.wc-block-components-skeleton__element { border-radius: 0 !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
	.woocommerce ul.products, ul.products, .woocommerce ul.products.columns-3, ul.products.columns-3, .products.product-grid--shop { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.has-shop-sidebar .shop-layout { grid-template-columns: 228px minmax(0, 1fr); gap: 28px; }
	.has-shop-sidebar ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	form.checkout { grid-template-columns: 1fr; }
	form.checkout > .col2-set { grid-row: auto; }
	form.checkout #order_review_heading, form.checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
	form.checkout #order_review_heading { margin-top: 30px; }
	.cart-collaterals { grid-template-columns: 1fr; }
	.cart-collaterals .cart_totals { grid-column: 1; grid-row: auto; }
	.woocommerce-cart .entry-content--wide > .woocommerce:has(.woocommerce-cart-form) { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-cart .entry-content--wide > .woocommerce:has(.woocommerce-cart-form) .cart-collaterals .cart_totals { grid-column: 1; grid-row: auto; position: static; }
	#reviews { grid-template-columns: 1fr; }
}

@media (max-width: 1023px) {
	.has-shop-sidebar .shop-layout { display: block; }
	.has-shop-sidebar ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.shop-toolbar__filters { display: inline-flex; }
	.shop-sidebar {
		position: fixed; top: 0; bottom: 0; inset-inline-start: 0; z-index: 210; width: min(360px, 88vw);
		align-content: start; padding: 16px 20px 24px; overflow-y: auto; background: var(--c-white); box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .45);
		transform: translateX(calc(-110% * var(--flip))); visibility: hidden;
		transition: transform 260ms var(--ease), visibility 260ms;
	}
	.shop-sidebar.is-open { transform: none; visibility: visible; }
	.shop-sidebar__head .js-filters-close { display: inline-flex; margin-inline-end: -10px; }
	.shop-sidebar__title { font-size: 20px; }

	.product-main { grid-template-columns: minmax(0, 1fr); }
	.product-page .summary { padding-top: 24px; }
	.woocommerce-account.logged-in .entry-content--wide > .woocommerce { grid-template-columns: 1fr; gap: 24px; }
	.account-sidebar { position: static; border: 0; }
	.account-user { padding: 14px 16px; }
	.woocommerce-MyAccount-navigation ul { display: flex; gap: 6px; overflow-x: auto; padding: 12px 0 0; scrollbar-width: none; }
	.woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
	.woocommerce-MyAccount-navigation li a { white-space: nowrap; min-height: 42px; padding-inline: 14px; border: 1px solid var(--c-line); border-radius: var(--radius-pill); font-size: 14px; }
	.woocommerce-MyAccount-navigation li a::before { width: 18px; height: 18px; }
	.woocommerce-MyAccount-navigation li.is-active a { border-color: var(--c-ink); }
	.woocommerce-MyAccount-navigation-link--customer-logout { margin: 0; padding: 0; border: 0; }

	.sticky-cart {
		position: fixed; inset-inline: 0; bottom: var(--bottom-bar-h); z-index: 55;
		display: flex; align-items: center; gap: 12px; padding: 10px var(--gutter);
		background: var(--c-white); border-top: 1px solid var(--c-line); box-shadow: 0 -6px 20px rgba(0, 0, 0, .06);
		transform: translateY(120%); visibility: hidden; transition: transform 260ms var(--ease), visibility 260ms;
	}
	.sticky-cart.is-visible { transform: none; visibility: visible; }
	.sticky-cart__info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
	.sticky-cart__name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 13px; color: var(--c-text); }
	.sticky-cart__price { font-weight: 700; }
	.sticky-cart .button { min-height: 48px; padding: 0 22px; font-size: 15px; }
}

@media (max-width: 767px) {
	.woocommerce ul.products, ul.products, .woocommerce ul.products.columns-3, ul.products.columns-3, .has-shop-sidebar ul.products, .products.product-grid--shop { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 12px; }
	.shop-toolbar { gap: 10px; margin-bottom: 20px; }
	.shop-toolbar .woocommerce-result-count { flex-basis: 100%; order: 3; margin: 0; font-size: 13px; }
	.shop-toolbar .woocommerce-ordering { flex: 1; }
	.shop-toolbar .woocommerce-ordering select { min-width: 0; width: 100%; }
	.shop-toolbar__filters { flex: 1; }
	.products .product-card__title { font-size: 14px; }
	.woocommerce-tabs ul.tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
	.woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }
	.woocommerce-tabs ul.tabs li a { padding-inline: 16px; font-size: 17px; }
	.woocommerce-product-attributes th { width: 40%; }
	#review_form_wrapper { padding: 20px; margin-inline: calc(var(--gutter) * -1); }
	.product-page form.cart .single_add_to_cart_button { flex-basis: 100%; order: 3; }
	.product-page .woocommerce-variation-add-to-cart .single_add_to_cart_button { flex-basis: 100%; order: 3; }
	.product-page .quantity { flex: 1; justify-content: space-between; }
	.product-page .quantity .qty { flex: 1; }
	.flex-control-thumbs { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
	.product-page { padding-bottom: calc(var(--section-space) + 76px); }
	.trust-points { margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }

	table.shop_table_responsive thead { display: none; }
	table.shop_table_responsive tr { display: grid; grid-template-columns: 84px 1fr auto; column-gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--c-line); }
	table.shop_table_responsive td { display: block; padding: 3px 0; border: 0; text-align: start !important; }
	table.shop_table_responsive td::before { display: none; }
	table.shop_table_responsive .product-thumbnail { grid-row: 1 / span 4; grid-column: 1; width: auto; }
	table.shop_table_responsive .product-thumbnail img { width: 84px; height: 84px; }
	table.shop_table_responsive .product-remove { grid-column: 3; grid-row: 1; width: auto; }
	table.shop_table_responsive .product-name, table.shop_table_responsive .product-price, table.shop_table_responsive .product-quantity, table.shop_table_responsive .product-subtotal { grid-column: 2; }
	table.shop_table_responsive td.actions { grid-column: 1 / -1; }
	table.shop_table td.actions .coupon { display: flex; width: 100%; margin-bottom: 10px; }
	table.shop_table td.actions .coupon input { flex: 1; width: auto; }
	table.shop_table td.actions > .button { float: none; width: 100%; }
	.cart_totals table.shop_table_responsive tr { display: flex; justify-content: space-between; gap: 12px; }
	.cart-collaterals .cart_totals { padding: 20px var(--gutter); margin-inline: calc(var(--gutter) * -1); }

	.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; float: none; }
	.woocommerce form .form-row.form-right, .woocommerce form .form-row.form-left { width: 100% !important; float: none !important; }
	form.checkout #order_review_heading, form.checkout #order_review { margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
	.woocommerce .u-columns.col2-set, #customer_login, .woocommerce-Addresses { grid-template-columns: 1fr; }
	.account-tiles { grid-template-columns: 1fr; gap: 10px; margin-top: 20px; }
	.account-tile { padding: 16px; }
	.account-tile__icon { width: 44px; height: 44px; }
	.woocommerce form.login, .woocommerce form.register { height: auto; padding: 20px; }

	.wp-block-woocommerce-cart-totals-block, .wp-block-woocommerce-checkout-order-summary-block { padding-inline: 20px !important; }
	.wc-block-cart-item__image { width: 84px !important; padding-inline-end: 14px !important; }
	.wc-block-components-quantity-selector { width: 104px !important; }
}

/* ---------- Ideas from 21st.dev previews (v1.3.0) ---------- */

/* Purchase steps + secure note (21st.dev "Checkout Block"). */
.checkout-steps-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; margin-top: 22px; }
.checkout-steps { display: flex; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.checkout-steps__item { display: flex; align-items: center; font-size: 14px; color: var(--c-muted); }
.checkout-steps__item + .checkout-steps__item::before { content: ""; width: clamp(20px, 4vw, 56px); height: 1px; margin-inline: 12px; background: var(--c-line); }
.checkout-steps__item.is-done + .checkout-steps__item::before { background: var(--c-ink); }
.checkout-steps__item a, .checkout-steps__item > .checkout-steps__label { display: inline-flex; align-items: center; }
.checkout-steps__item a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: inherit; }
.checkout-steps__item a:hover { color: var(--c-accent); }
.checkout-steps__num {
	display: inline-flex; align-items: center; justify-content: center; flex: none; width: 30px; height: 30px; margin-inline-end: 10px;
	border: 1px solid var(--c-line); border-radius: 50%; font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums;
}
.checkout-steps__item a .checkout-steps__num { margin-inline-end: 0; }
.checkout-steps__item.is-current { color: var(--c-ink); font-weight: 700; }
.checkout-steps__item.is-current .checkout-steps__num { background: var(--c-ink); border-color: var(--c-ink); color: var(--c-white); }
.checkout-steps__item.is-done { color: var(--c-ink-2); }
.checkout-steps__item.is-done .checkout-steps__num { border-color: var(--c-ink); color: var(--c-ink); }
.checkout-steps__aside { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; font-size: 14px; }
.checkout-steps__back { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--c-muted); }
.checkout-steps__back .icon { transform: scaleX(var(--flip)); }
[dir="rtl"] .checkout-steps__back .icon { transform: none; }
.checkout-steps__back:hover { color: var(--c-ink); }
.checkout-steps__secure { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid #cfe8d8; background: #f0f8f3; color: #1f6f3f; font-weight: 600; }

/* Discounts in green (21st.dev "Order Summary Separator"). */
.wc-block-components-totals-discount .wc-block-components-totals-item__value,
.cart-discount td, .cart-discount td .amount { color: #1f8a4c !important; }

/* Card rating line on shop / category cards (21st.dev "Ecommerce Category Page", "Product Card"). */
.product-card__rating { display: flex; align-items: center; gap: 6px; margin-top: 8px; }
.product-card__rating .stars { width: 70px; height: 14px; }
.product-card__rating .stars::before, .product-card__rating .stars::after { -webkit-mask-size: 14px 14px; mask-size: 14px 14px; }
.product-card__rating-count { font-size: 12px; color: var(--c-muted); font-variant-numeric: tabular-nums; }

/* Category chips + share button (21st.dev "Product Detail Page"). */
.product-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.product-chips a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border: 1px solid var(--c-line); border-radius: var(--radius-pill); font-size: 13px; color: var(--c-ink-2); }
.product-chips a:hover { border-color: var(--c-ink); color: var(--c-ink); }
.product-summary__wish { display: flex; gap: 10px; }
.product-summary__wish .product-share { width: 58px; height: 58px; border: 1px solid var(--c-line); color: var(--c-ink); }
.product-summary__wish .product-share:hover { border-color: var(--c-ink); }
.product-share.is-copied::after {
	content: attr(data-tip); position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%);
	padding: 6px 10px; background: var(--c-ink); color: var(--c-white); font-size: 12px; white-space: nowrap;
}

@media (max-width: 767px) {
	.checkout-steps__label { font-size: 13px; }
	.checkout-steps__item:not(.is-current) .checkout-steps__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.checkout-steps-bar { gap: 12px; }
	.product-card__rating { margin-top: 4px; }
}
