/*
Theme Name: LujoWines
Theme URI: https://lujowines.vn/
Author: LujoWines
Description: Giao diện tông tối sang trọng cho cửa hàng rượu vang và rượu mạnh cao cấp. Block theme nhẹ, tối ưu cho WooCommerce và Rank Math, có popup xác nhận 18+ và công cụ thiết lập danh mục một lần bấm.
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.1.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lujowines
Tags: e-commerce, block-patterns, full-site-editing, dark, wide-blocks
*/

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
::selection { background: var(--wp--preset--color--wine); color: var(--wp--preset--color--contrast); }
img { height: auto; }
:where(h1, h2, h3) em { font-style: italic; color: var(--wp--preset--color--accent-soft); }
a { transition: color .2s ease; }
:focus-visible { outline: 2px solid var(--wp--preset--color--accent-soft); outline-offset: 3px; }

/* Eyebrow label */
.lujo-eyebrow {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin: 0;
}
p.lujo-eyebrow::before { content: ""; display: inline-block; width: 2rem; height: 1px; background: currentColor; vertical-align: middle; margin-right: .75rem; }
p.lujo-eyebrow.has-text-align-center::before { display: none; }
.lujo-eyebrow a { color: inherit; }

/* Outline button */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--accent-soft);
	border: 1px solid var(--wp--preset--color--accent);
	padding: 0.95rem 1.9rem;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
}

/* Section helpers */
.lujo-section__head { margin-bottom: var(--wp--preset--spacing--50); gap: 1rem; }
.lujo-section__head h2 { margin: 0; }
.lujo-more { margin: 0; font-size: 0.8125rem; letter-spacing: .14em; text-transform: uppercase; }
.lujo-more a { border-bottom: 1px solid var(--wp--preset--color--accent); padding-bottom: 4px; }
.lujo-more a::after { content: " →"; }

/* ---------- Header ---------- */
header.wp-block-template-part { position: sticky; top: 0; z-index: 100; }
.admin-bar header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar header.wp-block-template-part { top: 0; } }
.lujo-topbar p { margin: 0; letter-spacing: .08em; }
.lujo-header {
	background: rgba(15, 13, 12, .92);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.lujo-header__row { gap: 1.5rem; }
.lujo-header__brand { flex-shrink: 0; }
.lujo-header .wp-block-site-title { margin: 0; text-transform: uppercase; }
.lujo-header__tools { flex-shrink: 0; color: var(--wp--preset--color--contrast); }
.lujo-header__tools a, .lujo-header__tools button { color: inherit; }

/* Navigation & dropdowns */
.lujo-nav .wp-block-navigation-item__content { padding: .5rem 0; color: var(--wp--preset--color--contrast); }
.lujo-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent-soft); }
.lujo-nav .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--surface-2) !important;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-top: 2px solid var(--wp--preset--color--accent) !important;
	padding: .75rem 0 !important;
	min-width: 240px !important;
	text-transform: none;
	letter-spacing: .02em;
	font-size: 0.9rem;
}
.lujo-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .45rem 1.25rem; }
.lujo-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 2rem; }
.lujo-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; background: transparent !important; padding: 0 0 0 1rem !important; }

/* Search (icon button that expands) */
.lujo-search .wp-block-search__button { background: transparent; border: 0; color: var(--wp--preset--color--contrast); padding: .35rem; }
.lujo-search .wp-block-search__button svg { fill: currentColor; width: 22px; height: 22px; }
.lujo-search .wp-block-search__input { background: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--contrast); border: 1px solid var(--wp--preset--color--line); }
.lujo-search.wp-block-search__button-only:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper { border: 0; }

/* Mini cart & account */
.wc-block-mini-cart__button { color: var(--wp--preset--color--contrast); padding: .35rem; }
.wc-block-mini-cart__badge { background: var(--wp--preset--color--accent) !important; color: var(--wp--preset--color--base) !important; }
.wc-block-customer-account__account-icon { width: 24px; height: 24px; }

/* ---------- Hero ---------- */
.lujo-hero { position: relative; overflow: hidden; min-height: min(86vh, 780px); display: flex; flex-direction: column; justify-content: center; }
.lujo-hero::after {
	content: ""; position: absolute; inset: auto 0 0 0; height: 1px;
	background: linear-gradient(90deg, transparent, var(--wp--preset--color--accent), transparent);
	opacity: .5;
}
.lujo-hero h1 { margin-top: 1.25rem; margin-bottom: 1.25rem; font-weight: 500; letter-spacing: -.005em; }
.lujo-hero__lead { max-width: 34rem; font-size: 1.125rem; }
.lujo-hero__art { margin: 0; }
.lujo-hero__art img { width: 100%; max-width: 520px; display: block; margin-inline: auto; filter: drop-shadow(0 40px 60px rgba(0,0,0,.6)); }
@media (prefers-reduced-motion: no-preference) {
	.lujo-hero__text > * { animation: lujo-rise .9s cubic-bezier(.2,.7,.2,1) both; }
	.lujo-hero__text > *:nth-child(2) { animation-delay: .08s; }
	.lujo-hero__text > *:nth-child(3) { animation-delay: .16s; }
	.lujo-hero__text > *:nth-child(4) { animation-delay: .24s; }
	.lujo-hero__art { animation: lujo-fade 1.4s ease both .2s; }
}
@keyframes lujo-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes lujo-fade { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }

/* ---------- Trust strip ---------- */
.lujo-trust { border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); }
.lujo-trust__item { padding-left: 1.25rem; border-left: 1px solid var(--wp--preset--color--accent); }
.lujo-trust__item h3, .lujo-trust__item p { margin: 0; }

/* ---------- Category tiles ---------- */
.lujo-cats { gap: 1.25rem; }
.lujo-cat {
	position: relative;
	padding: 2.5rem 1.5rem 2rem;
	background: radial-gradient(120% 100% at 50% 0%, rgba(122,31,43,.28) 0%, var(--wp--preset--color--surface) 60%);
	border: 1px solid var(--wp--preset--color--line);
	transition: border-color .3s ease, transform .3s ease;
	text-align: center;
}
.lujo-cat:hover, .lujo-cat:focus-within { border-color: var(--wp--preset--color--accent); transform: translateY(-4px); }
.lujo-cat__icon { margin: 0 0 .5rem !important; }
.lujo-cat h3 { margin: 0; }
.lujo-cat h3 a { color: var(--wp--preset--color--contrast); }
.lujo-cat h3 a::after { content: ""; position: absolute; inset: 0; }
.lujo-cat p { margin: 0; }

/* ---------- Product cards ---------- */
.wc-block-product-template.lujo-products { gap: 1.25rem !important; }
.lujo-products .wc-block-product {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	padding: 1rem 1rem 1.5rem;
	display: flex;
	flex-direction: column;
	transition: border-color .3s ease;
}
.lujo-products .wc-block-product:hover { border-color: var(--wp--preset--color--accent); }
.lujo-products .wc-block-components-product-image {
	background: #fff;
	margin-bottom: 1rem !important;
}
.lujo-products .wc-block-components-product-image img { object-fit: contain !important; padding: 1rem; box-sizing: border-box; transition: transform .5s ease; }
.lujo-products .wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.04); }
.lujo-card-cat { text-align: center; letter-spacing: .18em; text-transform: uppercase; color: var(--wp--preset--color--accent); margin: 0 0 .35rem !important; }
.lujo-card-cat a { color: inherit; }
.lujo-card-title { font-size: 1.3rem !important; line-height: 1.25; margin: 0 0 .5rem !important; min-height: 2.5em; }
.lujo-products .wc-block-components-product-price { margin-bottom: 1rem !important; color: var(--wp--preset--color--accent-soft); font-weight: 500; }
.lujo-products .wc-block-components-product-price del { color: var(--wp--preset--color--muted); font-weight: 300; }
.lujo-card-btn { margin-top: auto !important; }
.lujo-card-btn .wp-block-button__link,
.lujo-card-btn .wc-block-components-product-button__button {
	width: 100%;
	background: transparent !important;
	color: var(--wp--preset--color--accent-soft) !important;
	border: 1px solid var(--wp--preset--color--line) !important;
	font-size: .75rem !important;
	padding: .8rem 1rem !important;
}
.lujo-card-btn .wp-block-button__link:hover,
.lujo-card-btn .wc-block-components-product-button__button:hover { border-color: var(--wp--preset--color--accent) !important; background: var(--wp--preset--color--accent) !important; color: var(--wp--preset--color--base) !important; }
.wc-block-components-product-sale-badge,
.wc-block-components-product-image .wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--wine) !important;
	color: var(--wp--preset--color--contrast) !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: .7rem !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: .3rem .6rem !important;
}
.lujo-empty { padding: 3rem 1rem; border: 1px dashed var(--wp--preset--color--line); }

/* ---------- Story & gift ---------- */
.lujo-story__img { margin: 0; position: relative; }
.lujo-story__img img { width: 100%; display: block; border: 1px solid var(--wp--preset--color--line); }
.lujo-story__img::before { content: ""; position: absolute; inset: 1.25rem -1.25rem -1.25rem 1.25rem; border: 1px solid var(--wp--preset--color--accent); opacity: .35; z-index: -1; }
.lujo-story { isolation: isolate; }
.lujo-checks, .lujo-assure { list-style: none; padding-left: 0; }
.lujo-checks li, .lujo-assure li { position: relative; padding-left: 1.75rem; margin-bottom: .5rem; }
.lujo-checks li::before, .lujo-assure li::before { content: ""; position: absolute; left: 0; top: .7em; width: .7rem; height: 1px; background: var(--wp--preset--color--accent); }
.lujo-gift { background-image: radial-gradient(60% 120% at 50% 0%, rgba(198,161,91,.18) 0%, transparent 70%); border-top: 1px solid rgba(198,161,91,.3); border-bottom: 1px solid rgba(198,161,91,.3); }

/* ---------- Posts ---------- */
.lujo-posts .wp-block-post-featured-image { margin-bottom: 1rem; overflow: hidden; background: var(--wp--preset--color--surface-2); aspect-ratio: 3/2; }
.lujo-posts .wp-block-post-featured-image img { transition: transform .5s ease; }
.lujo-posts li:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.lujo-posts .wp-block-post-date { letter-spacing: .14em; text-transform: uppercase; margin-bottom: .25rem; }
.lujo-posts .wp-block-post-title { margin: 0 0 .5rem; }

/* ---------- Shop / product page ---------- */
.lujo-shop .wp-block-query-title { margin-top: 1rem; margin-bottom: .5rem; }
.lujo-shop__bar { padding: 1rem 0; margin-bottom: 1.5rem; border-bottom: 1px solid var(--wp--preset--color--line); align-items: center; }
.lujo-shop__bar .woocommerce-result-count { margin: 0; color: var(--wp--preset--color--muted); font-size: .9rem; }
.woocommerce-breadcrumb, .wc-block-breadcrumbs { color: var(--wp--preset--color--muted); }
.woocommerce-breadcrumb a, .wc-block-breadcrumbs a { color: var(--wp--preset--color--muted); }
.woocommerce-breadcrumb a:hover { color: var(--wp--preset--color--accent-soft); }
.lujo-product__media { min-width: 0; }
.lujo-product__media .woocommerce-product-gallery { box-sizing: border-box; max-width: 100%; background: #fff; border: 1px solid var(--wp--preset--color--line); padding: 1.5rem; }
.lujo-product__media .woocommerce-product-gallery img { object-fit: contain; }
.lujo-product__summary .wp-block-post-title { margin-top: .5rem; margin-bottom: .75rem; }
.lujo-product__summary .wc-block-components-product-price { color: var(--wp--preset--color--accent-soft); font-weight: 500; }
.lujo-product__summary form.cart { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.5rem 0; align-items: stretch; }
.lujo-product__summary form.cart .single_add_to_cart_button { flex: 1; min-width: 12rem; }
.lujo-assure { padding: 1.25rem 0; border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); margin: 1.5rem 0; }
.lujo-assure li { margin-bottom: .35rem; }
.wp-block-woocommerce-product-details { margin-top: var(--wp--preset--spacing--60); }
.woocommerce-tabs .tabs { border-bottom: 1px solid var(--wp--preset--color--line) !important; }
.woocommerce-tabs .tabs li a { color: var(--wp--preset--color--muted) !important; letter-spacing: .12em; text-transform: uppercase; font-size: .8rem; }
.woocommerce-tabs .tabs li.active a { color: var(--wp--preset--color--accent-soft) !important; }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { border-color: var(--wp--preset--color--line) !important; padding: .75rem !important; }
.woocommerce table.shop_attributes tr:nth-child(even) th, .woocommerce table.shop_attributes tr:nth-child(even) td { background: var(--wp--preset--color--surface) !important; }
.wp-block-woocommerce-related-products h2 { text-align: center; margin-top: var(--wp--preset--spacing--60); }

/* Forms on dark background */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="search"], select, textarea,
.wc-block-components-text-input input, .wc-block-components-textarea, .wc-blocks-components-select__select {
	background-color: var(--wp--preset--color--surface-2) !important;
	color: var(--wp--preset--color--contrast) !important;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: 0 !important;
}
.wc-block-components-text-input label, .wc-blocks-components-select__label { color: var(--wp--preset--color--muted) !important; }
.quantity .qty { min-height: 3rem; width: 4.5rem; text-align: center; }
.wc-block-components-button:not(.is-link) { border-radius: 0 !important; }
.wc-block-components-notice-banner { background: var(--wp--preset--color--surface-2) !important; color: var(--wp--preset--color--contrast) !important; border-color: var(--wp--preset--color--accent) !important; }
.wc-block-components-notice-banner > svg { background: var(--wp--preset--color--accent) !important; fill: var(--wp--preset--color--base) !important; }
.wc-block-components-panel, .wc-block-components-totals-wrapper, .wc-block-components-order-summary { border-color: var(--wp--preset--color--line) !important; }

/* Pagination */
.wp-block-query-pagination { margin-top: var(--wp--preset--spacing--50); gap: .5rem; }
.wp-block-query-pagination-numbers .page-numbers { display: inline-block; min-width: 2.5rem; padding: .5rem; text-align: center; border: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--contrast); }
.wp-block-query-pagination-numbers .page-numbers.current { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent-soft); }

/* ---------- Footer ---------- */
.lujo-footer { border-top: 1px solid var(--wp--preset--color--line); }
.lujo-footer .wp-block-site-title { text-transform: uppercase; margin-bottom: 1rem; }
.lujo-footer__title { font-family: var(--wp--preset--font-family--body) !important; font-size: .75rem !important; font-weight: 500 !important; letter-spacing: .24em; text-transform: uppercase; color: var(--wp--preset--color--accent) !important; margin-bottom: 1.25rem; }
.lujo-footer__links { list-style: none; padding: 0; margin: 0; font-size: .95rem; }
.lujo-footer__links li { margin-bottom: .6rem; }
.lujo-footer__links a { color: var(--wp--preset--color--contrast); }
.lujo-footer__links a:hover { color: var(--wp--preset--color--accent-soft); }
.lujo-footer p { margin-top: 0; }

/* ---------- Age gate ---------- */
.lujo-age-open, .lujo-age-open body { overflow: hidden; }
.lujo-age[hidden], .lujo-age__step[hidden] { display: none !important; }
.lujo-age {
	position: fixed; inset: 0; z-index: 100000;
	display: grid; place-items: center; padding: 1.25rem;
	background: rgba(8, 6, 5, .86);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.lujo-age__box {
	width: 100%; max-width: 30rem; text-align: center;
	padding: 2.75rem 2rem 2rem;
	background: radial-gradient(120% 90% at 50% 0%, #3E0F16 0%, #171412 60%);
	border: 1px solid var(--wp--preset--color--accent);
	box-shadow: 0 30px 80px rgba(0,0,0,.6);
}
.lujo-age__brand { font-family: var(--wp--preset--font-family--heading); font-size: 1.5rem; letter-spacing: .2em; text-transform: uppercase; color: var(--wp--preset--color--accent-soft); margin: 0 0 1.5rem; }
.lujo-age__title { font-size: 2.25rem; margin: 0 0 .75rem; }
.lujo-age__desc { color: var(--wp--preset--color--muted); margin: 0 0 1.75rem; }
.lujo-age__actions { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; }
.lujo-age__actions .wp-element-button { cursor: pointer; }
.lujo-age__no { background: transparent !important; color: var(--wp--preset--color--muted) !important; border-color: var(--wp--preset--color--line) !important; }
.lujo-age__note { margin: 1.75rem 0 0; font-size: .75rem; color: var(--wp--preset--color--muted); letter-spacing: .08em; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.lujo-header .wp-block-site-title { font-size: 1.5rem !important; }
	.lujo-nav { --navigation-layout-justification-setting: flex-end; }
}
@media (max-width: 781px) {
	.lujo-topbar { display: none; }
	.lujo-hero { min-height: 0; text-align: left; }
	.lujo-hero__media { order: -1; }
	.lujo-hero__art img { max-width: 260px; }
	.lujo-header__row { gap: .75rem; }
	.lujo-header__tools { gap: .5rem !important; }
	.lujo-story__img::before { display: none; }
	.wc-block-product-template.lujo-products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .75rem !important; }
	.lujo-products .wc-block-product { padding: .6rem .6rem 1rem; }
	.lujo-card-title { font-size: 1.1rem !important; }
	.lujo-header__row .lujo-nav { order: 3; }
	.lujo-cats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .75rem !important; }
	.lujo-cat { padding: 1.5rem .75rem 1.25rem; }
	.lujo-cat:last-child { grid-column: span 2; }
	.lujo-cat__icon img { width: 56px !important; }
	.lujo-section__head { margin-bottom: var(--wp--preset--spacing--40); }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Zalo-first (v1.1) ---------- */
.lujo-zalo-cta { margin: 1.5rem 0 .5rem; }
.lujo-zalo-btn {
	box-sizing: border-box;
	display: flex; align-items: center; justify-content: center; gap: .65rem;
	width: 100%; min-height: 3.6rem; padding: 1rem 1.5rem;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base) !important;
	border: 1px solid var(--wp--preset--color--accent);
	font-size: .875rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	transition: background-color .2s ease, transform .2s ease;
}
.lujo-zalo-btn:hover { background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--base) !important; transform: translateY(-1px); }
.lujo-zalo-note { margin: .6rem 0 0; font-size: .85rem; color: var(--wp--preset--color--muted); text-align: center; }
.lujo-zalo-note a { white-space: nowrap; }

/* Add to cart becomes the secondary action */
.lujo-cart-secondary form.cart { margin: .75rem 0 1rem !important; }
.lujo-cart-secondary .single_add_to_cart_button,
.lujo-cart-secondary .single_add_to_cart_button.button.alt {
	background: transparent !important;
	color: var(--wp--preset--color--accent-soft) !important;
	border: 1px solid var(--wp--preset--color--line) !important;
}
.lujo-cart-secondary .single_add_to_cart_button:hover { border-color: var(--wp--preset--color--accent) !important; }
.lujo-contact-price { color: var(--wp--preset--color--accent-soft); letter-spacing: .06em; }

/* Floating contact buttons */
.lujo-float {
	position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 9990;
	display: flex; flex-direction: column; align-items: flex-end; gap: .6rem;
}
.lujo-float__btn {
	display: inline-flex; align-items: center; gap: .55rem;
	padding: .75rem 1.1rem; border-radius: 999px;
	font-size: .8125rem; font-weight: 500; letter-spacing: .04em;
	box-shadow: 0 10px 30px rgba(0,0,0,.45);
	transition: transform .2s ease;
}
.lujo-float__btn:hover { transform: translateY(-2px); }
.lujo-float__zalo { background: #0068FF; color: #fff !important; }
.lujo-float__call { background: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--accent-soft) !important; border: 1px solid var(--wp--preset--color--accent); }
@media (prefers-reduced-motion: no-preference) {
	.lujo-float__zalo { animation: lujo-pulse 2.8s ease-out infinite; }
}
@keyframes lujo-pulse { 0% { box-shadow: 0 0 0 0 rgba(0,104,255,.55), 0 10px 30px rgba(0,0,0,.45); } 70% { box-shadow: 0 0 0 14px rgba(0,104,255,0), 0 10px 30px rgba(0,0,0,.45); } 100% { box-shadow: 0 0 0 0 rgba(0,104,255,0), 0 10px 30px rgba(0,0,0,.45); } }
.lujo-toast {
	position: fixed; left: 50%; bottom: 1.5rem; transform: translateX(-50%); z-index: 9995;
	max-width: calc(100% - 2rem); padding: .8rem 1.2rem;
	background: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--accent); font-size: .875rem; text-align: center;
	box-shadow: 0 10px 30px rgba(0,0,0,.5);
}
.lujo-toast[hidden] { display: none; }
/* Ảnh sản phẩm: khung vuông 1:1 thống nhất, nền trắng trùng nền ảnh gốc */
.wc-block-components-product-image { aspect-ratio: 1 / 1; overflow: hidden; background: #fff; }
.wc-block-components-product-image a { display: block; height: 100%; }
.wc-block-components-product-image img,
.woocommerce-product-gallery__image img,
.woocommerce-product-gallery .flex-control-thumbs img,
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img,
.wc-block-mini-cart__products-table img,
.woocommerce-cart-form .product-thumbnail img {
	aspect-ratio: 1 / 1 !important; width: 100% !important; height: auto !important;
	object-fit: contain !important; background: #fff;
}
.wc-block-components-product-image img { height: 100% !important; }
.woocommerce-product-gallery .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-top: .75rem !important; padding: 0; }
.woocommerce-product-gallery .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; list-style: none; border: 1px solid #e8e2d8; }
.woocommerce-product-gallery .flex-control-thumbs img { opacity: .6; cursor: pointer; transition: opacity .2s; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }
@media (max-width: 781px) {
	.lujo-product__media .woocommerce-product-gallery { padding: .75rem; }
	.lujo-float { right: .85rem; bottom: .85rem; }
	.lujo-float__btn { padding: .8rem; }
	.lujo-float__btn span { display: none; }
	.lujo-float__btn svg { width: 24px; height: 24px; }
}
