/* Lantern Market: WooCommerce styling (shop, product, cart, checkout, account). */

/* ---------- Breadcrumb + layout ---------- */
.lnmk-shop-wrap { padding-block: 24px 40px; }

.woocommerce-breadcrumb {
	margin: 0 0 20px;
	color: var(--lnmk-muted);
	font-size: 0.85rem;
}

.woocommerce-breadcrumb a { color: var(--lnmk-muted); text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--lnmk-primary); }

.lnmk-shop-layout {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}

.lnmk-shop-toolbar { display: none; margin-bottom: 14px; }
.lnmk-shop-main { min-width: 0; transition: opacity 0.2s; }
.lnmk-shop-main.is-loading { opacity: 0.45; pointer-events: none; }

.woocommerce-products-header { margin-bottom: 8px; }
.woocommerce-products-header__title,
.page-title { margin: 0 0 8px; }

.woocommerce-result-count {
	float: left;
	margin: 10px 0 20px;
	color: var(--lnmk-muted);
	font-size: 0.9rem;
}

.woocommerce-ordering { float: right; margin: 0 0 20px; }
.woocommerce-ordering select { width: auto; min-width: 200px; padding-block: 0.55rem; }

/* ---------- Product grid ---------- */
ul.products,
.woocommerce ul.products,
.woocommerce-page ul.products {
	clear: both;
	display: grid;
	grid-template-columns: repeat(var(--lnmk-columns), minmax(0, 1fr));
	gap: 20px;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}

.lnmk-shop-main ul.products { grid-template-columns: repeat(min(var(--lnmk-columns), 3), minmax(0, 1fr)); }
.lnmk-shop-layout ul.products.columns-4 { grid-template-columns: repeat(min(var(--lnmk-columns), 3), minmax(0, 1fr)); }
.lnmk-products ul.products,
.related ul.products,
.upsells ul.products,
.lnmk-page-wrap ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }

ul.products::before,
ul.products::after { display: none !important; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	display: flex;
}

.lnmk-card {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--lnmk-border);
	border-radius: var(--lnmk-radius);
	background: var(--lnmk-card);
	transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
}

.lnmk-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--lnmk-shadow);
	border-color: color-mix(in srgb, var(--lnmk-primary) 35%, var(--lnmk-border));
}

.lnmk-card__media { position: relative; overflow: hidden; background: var(--lnmk-secondary); }
.lnmk-card__image { display: block; aspect-ratio: 1; }

.lnmk-card__image img,
.woocommerce ul.products li.product .lnmk-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	transition: transform 0.4s;
}

.lnmk-card:hover .lnmk-card__image img { transform: scale(1.05); }

.lnmk-card__badges {
	position: absolute;
	left: 10px;
	top: 10px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
}

.lnmk-badge,
.woocommerce span.onsale {
	position: static;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--lnmk-cta);
	color: #fff;
	font: 800 0.75rem/1.4 var(--lnmk-font-body);
	letter-spacing: 0.02em;
}

.lnmk-badge--out { background: #475569; }

.lnmk-card__quick {
	position: absolute;
	left: 10px;
	right: 10px;
	bottom: 10px;
	padding: 9px 12px;
	border: 0;
	border-radius: var(--lnmk-radius-sm);
	background: rgba(255, 255, 255, 0.96);
	color: var(--lnmk-text);
	font: 700 0.85rem var(--lnmk-font-body);
	cursor: pointer;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.2s, transform 0.2s, background-color 0.2s;
	box-shadow: 0 8px 20px -10px rgba(0, 0, 0, 0.4);
}

.lnmk-card:hover .lnmk-card__quick,
.lnmk-card__quick:focus-visible { opacity: 1; transform: none; }
.lnmk-card__quick:hover { background: var(--lnmk-primary); color: #fff; }

.lnmk-card__body { display: flex; flex: 1; flex-direction: column; gap: 4px; padding: 14px 16px 16px; }
.lnmk-card__cat { color: var(--lnmk-muted); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; }

.lnmk-card__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0;
	padding: 0;
	font: 700 1rem/1.35 var(--lnmk-font-heading);
}

.lnmk-card__title a { color: var(--lnmk-text); text-decoration: none; }
.lnmk-card__title a:hover { color: var(--lnmk-primary); }

.lnmk-card__price,
.woocommerce ul.products li.product .price {
	margin: 2px 0 10px;
	color: var(--lnmk-primary);
	font: 800 1.1rem var(--lnmk-font-heading);
}

.price del,
.woocommerce .price del { color: var(--lnmk-muted); font-size: 0.85em; font-weight: 500; opacity: 1; margin-right: 4px; }
.price ins,
.woocommerce .price ins { background: none; color: var(--lnmk-cta); text-decoration: none; }

.lnmk-card__actions { margin-top: auto; }
.lnmk-card__actions .lnmk-btn { width: 100%; }

/* Stars */
.woocommerce .star-rating { color: #f59e0b; font-size: 0.85em; margin: 2px 0; }
.woocommerce .star-rating::before { color: #cbd5e1; }

/* Pagination */
.woocommerce-pagination { text-align: center; margin-top: 8px; }
.woocommerce nav.woocommerce-pagination ul,
.navigation.pagination .nav-links {
	display: inline-flex;
	gap: 6px;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}

.woocommerce nav.woocommerce-pagination ul li { border: 0; overflow: visible; }

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid var(--lnmk-border);
	border-radius: var(--lnmk-radius-sm);
	background: #fff;
	color: var(--lnmk-text);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.navigation.pagination .page-numbers.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--lnmk-primary);
	border-color: var(--lnmk-primary);
	color: #fff;
}

/* ---------- Filters ---------- */
.lnmk-filters {
	position: sticky;
	top: calc(var(--lnmk-header-h) + 20px);
	padding: 20px;
	border: 1px solid var(--lnmk-border);
	border-radius: var(--lnmk-radius);
	background: var(--lnmk-card);
}

body.admin-bar .lnmk-filters { top: calc(var(--lnmk-header-h) + 52px); }

.lnmk-filters__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.lnmk-filters__head h2 { margin: 0; font-size: 1.15rem; }
.lnmk-filters__close { display: none; }
.lnmk-filters__clear { display: inline-block; margin-bottom: 8px; color: var(--lnmk-cta); font-size: 0.85rem; font-weight: 700; }

.lnmk-filter { padding-block: 16px; border-top: 1px solid var(--lnmk-border); }
.lnmk-filter:first-of-type { border-top: 0; }
.lnmk-filter h3 { margin-bottom: 10px; font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--lnmk-muted); }
.lnmk-filter__list { margin: 0; padding: 0; list-style: none; }

.lnmk-filter__list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0 0 2px;
	border-radius: var(--lnmk-radius-sm);
}

.lnmk-filter__list a {
	flex: 1;
	padding: 7px 10px;
	color: var(--lnmk-text);
	font-size: 0.93rem;
	text-decoration: none;
}

.lnmk-filter__list li:hover { background: var(--lnmk-secondary); }
.lnmk-filter__list li.is-current { background: var(--lnmk-primary-tint); }
.lnmk-filter__list li.is-current a { color: var(--lnmk-primary); font-weight: 700; }
.lnmk-filter__count { padding-right: 10px; color: var(--lnmk-muted); font-size: 0.8rem; }

.lnmk-filter__list--toggles a { display: flex; align-items: center; gap: 10px; }
.lnmk-filter__list--toggles a::before {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	border: 1.5px solid #94a3b8;
	border-radius: 5px;
	background: #fff;
}

.lnmk-filter__list--toggles .is-current a::before {
	border-color: var(--lnmk-primary);
	background: var(--lnmk-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8.5 3 3 6-6.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat;
}

.lnmk-price-form__row { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.lnmk-price-form input { padding: 0.55rem 0.7rem; }
.lnmk-price-form .lnmk-btn { width: 100%; }

.lnmk-widget { margin-top: 16px; }
.lnmk-widget__title { font-size: 1rem; }

/* ---------- Single product ---------- */
.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: 20px 48px;
	align-items: start;
}

.single-product div.product > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .images { grid-column: 1; width: 100% !important; float: none !important; margin: 0 !important; position: relative; }
.single-product div.product .summary { grid-column: 2; width: 100% !important; float: none !important; margin: 0 !important; }
.single-product div.product .woocommerce-tabs,
.single-product div.product .related,
.single-product div.product .upsells { grid-column: 1 / -1; }

.woocommerce-product-gallery__wrapper { margin: 0; }

.woocommerce div.product div.images .woocommerce-product-gallery__image,
.woocommerce-product-gallery__image {
	overflow: hidden;
	border: 1px solid var(--lnmk-border);
	border-radius: var(--lnmk-radius);
	background: var(--lnmk-card);
}

.woocommerce div.product div.images img { display: block; width: 100%; }

.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 10px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

.woocommerce div.product div.images .flex-control-thumbs li { float: none; width: auto; }
.woocommerce div.product div.images .flex-control-thumbs img { border-radius: 8px; border: 2px solid transparent; opacity: 0.7; cursor: pointer; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; border-color: var(--lnmk-primary); }

.woocommerce span.onsale.lnmk-badge--sale { position: absolute; left: 14px; top: 14px; z-index: 5; }

.woocommerce div.product .product_title { font-size: clamp(1.7rem, 2.6vw, 2.3rem); margin-bottom: 0.3em; }

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin: 0 0 14px;
	color: var(--lnmk-primary);
	font: 800 1.7rem var(--lnmk-font-heading);
}

.woocommerce div.product p.price ins { color: var(--lnmk-cta); }
.woocommerce-product-details__short-description { margin-bottom: 18px; color: var(--lnmk-muted); }

.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; margin: 0 0 20px; }
.woocommerce div.product form.cart .variations { width: 100%; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { display: block; padding: 4px 0; text-align: left; }

.woocommerce .quantity .qty {
	width: 84px;
	height: 100%;
	min-height: 48px;
	padding: 0 12px;
	text-align: center;
}

.woocommerce div.product form.cart .button.single_add_to_cart_button {
	min-height: 48px;
	padding-inline: 2rem;
	background: var(--lnmk-cta);
	font-size: 1rem;
}

.woocommerce div.product form.cart .button.single_add_to_cart_button:hover { background: var(--lnmk-cta-dark); }

.product_meta { padding-top: 14px; border-top: 1px solid var(--lnmk-border); color: var(--lnmk-muted); font-size: 0.88rem; }
.product_meta > span { display: block; margin-bottom: 4px; }

.lnmk-trust-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
	margin: 0 0 20px;
	padding: 14px 16px;
	border-radius: var(--lnmk-radius-sm);
	background: var(--lnmk-primary-tint);
	list-style: none;
	font-size: 0.88rem;
	font-weight: 600;
}

.lnmk-trust-list li { display: inline-flex; align-items: center; gap: 8px; color: var(--lnmk-primary-dark); }
.lnmk-trust-list svg { width: 18px; height: 18px; }

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 6px;
	margin: 20px 0 0;
	padding: 0;
	border-bottom: 1px solid var(--lnmk-border);
	list-style: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 12px 18px;
	border-bottom: 3px solid transparent;
	color: var(--lnmk-muted);
	font-weight: 700;
	text-decoration: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { border-color: var(--lnmk-primary); color: var(--lnmk-primary); }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0; padding: 24px 0; }
.related.products > h2,
.upsells.products > h2 { margin-top: 24px; }

/* ---------- Notices ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0 0 20px;
	padding: 14px 18px;
	border: 0;
	border-left: 4px solid var(--lnmk-primary);
	border-radius: var(--lnmk-radius-sm);
	background: var(--lnmk-primary-tint);
	color: var(--lnmk-text);
	list-style: none;
}

.woocommerce-message { border-color: var(--lnmk-success); background: #ecfdf5; }
.woocommerce-error { border-color: var(--lnmk-danger); background: #fef2f2; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-message .button { order: 2; margin-left: auto; }

/* ---------- Cart + checkout (classic markup) ---------- */
.woocommerce table.shop_table {
	width: 100%;
	border: 1px solid var(--lnmk-border);
	border-radius: var(--lnmk-radius);
	border-collapse: separate;
	border-spacing: 0;
	background: var(--lnmk-card);
	overflow: hidden;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td { padding: 14px 16px; border-top: 1px solid var(--lnmk-border); text-align: left; }
.woocommerce table.shop_table thead th { border-top: 0; background: var(--lnmk-secondary); font-size: 0.82rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--lnmk-muted); }
.woocommerce table.shop_table td.product-thumbnail img { width: 72px; border-radius: 8px; }
.woocommerce-cart-form__cart-item .product-name a { color: var(--lnmk-text); font-weight: 700; text-decoration: none; }
.woocommerce a.remove { color: var(--lnmk-danger) !important; font-size: 1.3rem; }
.woocommerce a.remove:hover { background: var(--lnmk-danger); color: #fff !important; }

.woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; max-width: 420px; margin-left: auto; }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 1.3rem; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	padding: 1rem;
	background: var(--lnmk-cta);
	font-size: 1.05rem;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: var(--lnmk-cta-dark); }
.woocommerce #payment { border-radius: var(--lnmk-radius); background: var(--lnmk-card); border: 1px solid var(--lnmk-border); }
.woocommerce #payment #place_order { float: none; width: 100%; padding: 1rem; background: var(--lnmk-cta); font-size: 1.05rem; }
.woocommerce #payment #place_order:hover { background: var(--lnmk-cta-dark); }
.woocommerce form .form-row { margin: 0 0 14px; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 4px; font-weight: 600; font-size: 0.9rem; }

.woocommerce-checkout h3 { font-size: 1.25rem; }
.woocommerce-checkout #order_review_heading { margin-top: 24px; }

/* ---------- Cart + checkout (blocks) ---------- */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { font-family: var(--lnmk-font-body); }

.wc-block-cart,
.wc-block-checkout { margin-block: 0; }

.wc-block-components-button:not(.is-link) {
	border-radius: var(--lnmk-radius-sm);
	background: var(--lnmk-primary);
	color: #fff;
	font-weight: 700;
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--lnmk-cta) !important;
	color: #fff !important;
}

.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover { background: var(--lnmk-cta-dark) !important; }

.wc-block-cart .wc-block-cart-items,
.wc-block-components-sidebar .wp-block-woocommerce-cart-order-summary-block,
.wc-block-checkout__main,
.wc-block-checkout__sidebar .wc-block-components-order-summary {
	background: var(--lnmk-card);
}

.wp-block-woocommerce-cart-order-summary-block,
.wc-block-components-sidebar-layout .wc-block-components-main .wc-block-components-checkout-step,
.wc-block-checkout__sidebar {
	border-radius: var(--lnmk-radius);
}

.wc-block-components-sidebar .wc-block-components-totals-wrapper { border-color: var(--lnmk-border); }
.wc-block-components-product-name { color: var(--lnmk-text); font-weight: 700; text-decoration: none; }
.wc-block-cart-item__image img { border-radius: 8px; }
.wc-block-components-text-input input:focus,
.wc-block-components-select .wc-blocks-components-select__select:focus { border-color: var(--lnmk-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--lnmk-primary) 20%, transparent); }

.wc-block-cart table.wc-block-cart-items { border: 1px solid var(--lnmk-border); border-radius: var(--lnmk-radius); overflow: hidden; }
.wc-block-cart table.wc-block-cart-items th { background: var(--lnmk-secondary); }

.wc-block-components-order-summary,
.wc-block-checkout__main > form { padding: 0; }

/* ---------- Account ---------- */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: 32px; align-items: start; }
.woocommerce-account .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-MyAccount-navigation ul { margin: 0; padding: 8px; border: 1px solid var(--lnmk-border); border-radius: var(--lnmk-radius); background: var(--lnmk-card); list-style: none; }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 14px; border-radius: var(--lnmk-radius-sm); color: var(--lnmk-text); font-weight: 600; text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a,
.woocommerce-MyAccount-navigation a:hover { background: var(--lnmk-primary-tint); color: var(--lnmk-primary); }
.woocommerce-account .woocommerce:not(:has(.woocommerce-MyAccount-navigation)) { display: block; max-width: 560px; }
.woocommerce form.login,
.woocommerce form.register { padding: 24px; border: 1px solid var(--lnmk-border); border-radius: var(--lnmk-radius); background: var(--lnmk-card); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.lnmk-products ul.products,
	.lnmk-page-wrap ul.products,
	.related ul.products,
	.upsells ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.lnmk-shop-toolbar { display: block; }
	.lnmk-shop-layout { grid-template-columns: 1fr; }

	.lnmk-filters {
		position: fixed;
		left: 0;
		top: 0;
		bottom: 0;
		z-index: 110;
		width: min(340px, 88vw);
		overflow-y: auto;
		border-radius: 0;
		transform: translateX(-102%);
		transition: transform 0.25s;
	}

	body.admin-bar .lnmk-filters { top: 0; }
	.lnmk-filters.is-open { transform: none; }
	.lnmk-filters__close { display: inline-flex; }

	.lnmk-shop-main ul.products,
	.lnmk-shop-layout ul.products.columns-4,
	.lnmk-products ul.products,
	.lnmk-page-wrap ul.products,
	.related ul.products,
	.upsells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.single-product div.product { grid-template-columns: 1fr; }
	.single-product div.product .woocommerce-product-gallery,
	.single-product div.product .images,
	.single-product div.product .summary { grid-column: 1; }
	.woocommerce-account .woocommerce { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
	ul.products { gap: 12px; }
	.lnmk-card__body { padding: 10px 12px 12px; }
	.lnmk-card__title { font-size: 0.92rem; }
	.lnmk-card__quick { display: none; }
	.woocommerce-result-count { float: none; }
	.woocommerce-ordering { float: none; }
	.woocommerce-ordering select { width: 100%; }
	.woocommerce table.shop_table_responsive tr td::before { color: var(--lnmk-muted); }
}

@media (hover: none) {
	.lnmk-card__quick { display: none; }
}
