/* Lagvis – shared styles beyond theme.json. */

.lagvis-visually-hidden {
	position: absolute !important;
	left: 0; top: 0;
	width: 1px !important; height: 1px !important;
	min-width: 0 !important; max-width: 1px !important;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Header ---------- */
.lagvis-tagline { color: var(--wp--preset--color--muted); }
.lagvis-header .wc-block-mini-cart__button { min-height: 44px; border: 1px solid var(--wp--preset--color--ink); border-radius: 999px; padding: 0 1rem; }

/* ---------- Pattern helpers ---------- */
.lagvis-eyebrow {
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
}
.lagvis-badge {
	display: inline-block;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ground);
	font-size: 0.8125rem;
	font-weight: 600;
	padding: 0.35rem 0.75rem;
	border-radius: 999px;
}
.lagvis-price {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 2.5rem;
	line-height: 1;
}
.lagvis-price del {
	font-family: var(--wp--preset--font-family--body);
	font-weight: 400;
	font-size: 1.125rem;
	color: var(--wp--preset--color--muted);
	margin-left: 0.75rem;
}
.lagvis-facts {
	list-style: none;
	padding: 1.25rem 0 0 !important;
	margin: 1rem 0 0;
	border-top: 1px solid rgba(28, 37, 32, 0.15);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.6rem 1.5rem;
	font-size: 0.9375rem;
	color: #36423B;
}
.lagvis-facts li::before { content: "✓"; color: var(--wp--preset--color--accent); margin-right: 0.5rem; font-weight: 600; }
.lagvis-hero-media { position: relative; }
.lagvis-hero-media .lagvis-badge { position: absolute; top: 1.5rem; left: 1.5rem; z-index: 1; }
.lagvis-hero-media img { width: 100%; height: auto; }
.lagvis-steps { list-style: none; padding: 0 !important; margin: 0; counter-reset: step; display: grid; gap: 1.25rem; }
.lagvis-steps li { counter-increment: step; display: flex; gap: 1rem; }
.lagvis-steps li::before {
	content: counter(step, decimal-leading-zero);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	font-size: 1.25rem;
	color: var(--wp--preset--color--accent);
	min-width: 2rem;
}
.lagvis-card { overflow: hidden; }
.lagvis-card .wp-block-image { margin: 0; }
.lagvis-card .wp-block-image img { width: 100%; height: 320px; object-fit: contain; }

/* Newsletter (works with MailPoet / Mailchimp embed forms dropped in) */
.lagvis-newsletter input[type="email"] {
	min-height: 52px; padding: 0 1.1rem; border-radius: 999px;
	border: 1px solid rgba(28, 37, 32, 0.3); background: #fff; font: inherit;
}

/* ---------- WooCommerce: product grid ---------- */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
	width: auto !important; margin: 0 !important; float: none !important;
	background: #fff; border-radius: 24px; overflow: hidden; padding: 0 0 1.5rem;
	display: flex; flex-direction: column;
}
.woocommerce ul.products li.product a img {
	margin: 0 0 1.25rem; aspect-ratio: 1 / 1; object-fit: cover; background: var(--wp--preset--color--accent-soft);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--wp--preset--font-family--body); font-weight: 600; font-size: 1.125rem;
	padding: 0 1.5rem; color: var(--wp--preset--color--ink);
}
.woocommerce ul.products li.product .price {
	padding: 0 1.5rem; color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 1.25rem;
}
.woocommerce ul.products li.product .price del { font-family: var(--wp--preset--font-family--body); font-weight: 400; font-size: 0.9375rem; color: var(--wp--preset--color--muted); }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .button { margin: auto 1.5rem 0; align-self: flex-start; }
.woocommerce span.onsale {
	background: var(--wp--preset--color--ink); color: var(--wp--preset--color--ground);
	border-radius: 999px; min-height: 0; min-width: 0; line-height: 1; padding: 0.45rem 0.75rem;
	font-size: 0.8125rem; font-weight: 600; top: 1rem; left: 1rem; right: auto; margin: 0;
}

/* ---------- WooCommerce: buttons ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce button.button.alt, .woocommerce a.button.alt {
	background: var(--wp--preset--color--accent); color: #fff;
	border-radius: 999px; padding: 0.95rem 1.75rem; font-weight: 600; font-family: inherit;
	min-height: 48px; line-height: 1.1;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover {
	background: var(--wp--preset--color--ink); color: #fff;
}
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled { background: var(--wp--preset--color--accent); opacity: 0.45; }

/* ---------- WooCommerce: single product ---------- */
.woocommerce div.product { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem; align-items: start; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images { background: var(--wp--preset--color--accent-soft); border-radius: 28px; overflow: hidden; }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product .product_title { font-size: var(--wp--preset--font-size--huge); margin-bottom: 0.75rem; }
.woocommerce div.product p.price, .woocommerce div.product span.price {
	color: var(--wp--preset--color--ink); font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 2.25rem;
}
.woocommerce div.product p.price del { font-family: var(--wp--preset--font-family--body); font-weight: 400; font-size: 1.125rem; color: var(--wp--preset--color--muted); }
.woocommerce div.product p.price ins { text-decoration: none; }
.woocommerce div.product .woocommerce-product-details__short-description { font-size: 1.125rem; color: var(--wp--preset--color--muted); }
.woocommerce div.product form.cart { margin: 1.5rem 0; }
.woocommerce div.product form.cart table.variations { margin-bottom: 1rem; border: 0; }
.woocommerce div.product form.cart table.variations tr { display: block; margin-bottom: 1.25rem; }
.woocommerce div.product form.cart table.variations th, .woocommerce div.product form.cart table.variations td { display: block; padding: 0; text-align: left; }
.woocommerce div.product form.cart table.variations th label { font-weight: 600; margin-bottom: 0.6rem; display: inline-block; }
.woocommerce div.product form.cart table.variations select {
	min-height: 48px; border-radius: 12px; border: 1px solid rgba(28, 37, 32, 0.3); padding: 0 1rem; background: #fff; font: inherit;
}
.woocommerce div.product form.cart .reset_variations { font-size: 0.875rem; margin-left: 0.5rem; }
.woocommerce div.product form.cart .quantity .qty { box-sizing: border-box; height: 48px; padding: 0 0.5rem !important; border-radius: 999px; border: 1px solid rgba(28, 37, 32, 0.3); width: 4.5rem; font: inherit; background: #fff; }
.woocommerce div.product form.cart table.variations td.value { position: relative; }
.woocommerce .woocommerce-variation-add-to-cart { display: flex; gap: 0.75rem; align-items: center; }
.woocommerce .woocommerce-variation-add-to-cart .button { margin-top: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 1.5rem; border-bottom: 1px solid rgba(28, 37, 32, 0.15); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: none; border: 0; border-radius: 0; margin: 0 1.5rem 0 0; padding: 0; }
.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 { padding: 0.75rem 0; font-weight: 600; color: var(--wp--preset--color--muted); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--wp--preset--color--ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--wp--preset--color--ink); }
.woocommerce table.shop_attributes { border-top: 1px solid rgba(28, 37, 32, 0.15); }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { border-bottom: 1px solid rgba(28, 37, 32, 0.15); padding: 0.75rem 0; background: none !important; font-style: normal; }

/* Swatches */
.lagvis-swatches { display: flex; gap: 0.875rem; flex-wrap: wrap; }
.lagvis-swatch {
	width: 48px; height: 48px; border-radius: 999px; cursor: pointer; padding: 0;
	border: 1px solid rgba(28, 37, 32, 0.25);
	transition: box-shadow 0.15s ease;
}
.lagvis-swatch[aria-checked="true"] { box-shadow: 0 0 0 3px var(--wp--preset--color--ground), 0 0 0 5px var(--wp--preset--color--ink); }
.lagvis-swatch:focus-visible { outline: 2px solid var(--wp--preset--color--ink); outline-offset: 4px; }
.lagvis-swatch:disabled { opacity: 0.3; cursor: not-allowed; }
.lagvis-swatches__chosen { font-weight: 400; color: var(--wp--preset--color--muted); }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color: var(--wp--preset--color--accent); background: #fff; border-radius: 12px; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--wp--preset--color--accent); }

/* ---------- Small screens ---------- */
@media (max-width: 860px) {
	.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
	.woocommerce div.product { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
	.lagvis-facts { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
	.woocommerce ul.products { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Fixes: button box and sale badge placement ---------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 0 1.5rem; min-height: 48px;
}
.woocommerce ul.products li.product { position: relative; }
.woocommerce ul.products li.product .onsale,
.woocommerce div.product > span.onsale {
	position: absolute; top: 1rem; left: 1rem; right: auto; margin: 0; z-index: 2;
}
.woocommerce ul.products li.product .button,
.woocommerce div.product form.cart .button {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 0 1.5rem; min-height: 48px; line-height: 1; margin-top: 0.5rem;
}
