/*
 * Omid Charity Storefront v5 — refactored
 * Scope: WooCommerce shop archives, single product, cart, checkout.
 * Brand: #004851 (teal) / #92842c (gold)
 *
 * v2.7.0 — mobile + cross-browser (Firefox / Safari / Chrome) pass:
 *  - Archive toolbar is now rendered by inc/omid-shop-archive.php (the root
 *    woocommerce.php never used archive-product.php, so the mobile filter
 *    button never existed). Floats replaced by a grid with named areas.
 *  - Product cards no longer use percentage heights / aspect-ratio-relative
 *    image heights (resolved differently by Firefox); thumbnails use the
 *    padding box + absolutely positioned image.
 *  - Filter drawer anchored to the correct physical edge in RTL, hidden with
 *    visibility, sized with top/bottom (iOS), no `inset`/`dvh` dependency.
 *  - Responsive column counts actually apply (the parent's !important grid
 *    columns are overridden by more specific selectors).
 *  - iOS input zoom, touch hover, Safari < 16 overflow fallbacks.
 *
 * WHAT CHANGED FROM THE PREVIOUS VERSION (and why each was a real bug):
 *
 * 1. Removed ~5 overlapping "patch layers" ("2.4", "2.6", "2.6.2", "2.6.3",
 *    "final compatibility") that redeclared the same selectors over and
 *    over (`.om-sproduct__gallery`, `.om-sproduct__summary`,
 *    `.om-woo-layout`, checkout grid, etc.). They didn't agree with each
 *    other in a few places, so the actual rendered result depended on
 *    source order rather than on any single readable rule. Each concern
 *    now lives in exactly one place.
 *
 * 2. Font family conflict: the file first forced a custom font
 *    (`--om-store-font`, Farhang2/Farhang2FaNum) onto body, inputs and
 *    buttons with `!important`, then later — in the section titled
 *    "2.6.2 final production polish" — reset the very same elements back
 *    to `font-family: inherit !important`. The reset always won (it came
 *    later with equal specificity + !important), so the custom font never
 *    actually applied to any form control or button. Fixed by keeping a
 *    single font rule.
 *
 * 3. Dead/contradictory rules:
 *    - `.om-sproduct__purchase-head > span` was hidden with
 *      `display:none !important` near the top of the file, then given
 *      color/size/weight styling further down. The styled version could
 *      never be seen. The hide rule is removed (the eyebrow label is a
 *      real, intended UI element).
 *    - `.om-store-order__secure`, `.om-store-order__lead`, and
 *      `.om-cart-choice` were fully styled (padding, borders, colors)
 *      and then unconditionally hidden with `display:none !important`
 *      later in the file. The unused styling was removed along with the
 *      now-pointless selectors; only the hide rule remains, with a note.
 *
 * 4. RTL/LTR bug: the storefront explicitly supports an English/LTR mode
 *    (`.oml-lang-en` / `.oml-dir-ltr`), but nearly every directional value
 *    in the old file was physical (`border-right`, `padding-right`,
 *    `right: 16px`, `background-position: left 12px center`, etc.) rather
 *    than logical. That meant the LTR variant inherited RTL-only visuals:
 *    accent bars on the wrong edge, notice icons and dropdown arrows on
 *    the wrong side, nested category indentation growing the wrong way.
 *    Also, `.woocommerce-message`/`.woocommerce-info` had their icon
 *    repositioned to the right in a later rule, but `.woocommerce-error`
 *    was never included in that override, so error notices kept the
 *    original (large) left padding while the icon rendered wherever
 *    WooCommerce's own theme put it — icon/text could overlap. Fixed by
 *    converting directional properties to CSS logical properties
 *    (`padding-inline-start/end`, `border-inline-start`,
 *    `inset-inline-start/end`, `margin-inline-end`) so both directions
 *    render correctly from the same rule, with the few properties that
 *    have no logical equivalent (background-position keywords) given an
 *    explicit `.oml-lang-en`/`.oml-dir-ltr` override.
 *
 * 5. `form.cart` grid layout was declared three different ways
 *    (92px / 86px columns, then a 520px-capped 2-column variant) with no
 *    clear ownership. Consolidated into the two variants that actually
 *    exist in the markup — `.om-sproduct__purchase--standard` and
 *    `.om-sproduct__purchase--wreath` — each with one definition.
 *
 * 6. Collapsed duplicate `@media (max-width: 860px)` / `(max-width: 600px)`
 *    blocks (there were 4–5 of each) into one block per breakpoint so a
 *    given selector's responsive behavior is defined once.
 *
 * 7. Hiding `#billing_country_field` (including the hidden input) with
 *    `display:none` is kept, since this is a single-country checkout by
 *    design, but it's now grouped with a comment so a future edit doesn't
 *    reintroduce a visible-but-unstyled country field.
 *
 * 8. Minor: replaced a couple of hard-coded hex greys
 *    (`fill:#d5dddd`, `color:#96a2a5`, `color:#8a1c13`) with clearly named
 *    local custom properties so the rating-star / muted-price / stock
 *    colors are defined once and easy to re-theme.
 */

body.woocommerce,
body.woocommerce-page {
	--om-shop-brand: #004851;
	--om-shop-brand-strong: #003941;
	--om-shop-brand-soft: #eaf4f3;
	--om-shop-gold: #92842c;
	--om-shop-gold-soft: #f6f2df;
	--om-shop-ink: #18333a;
	--om-shop-muted: #66777c;
	--om-shop-line: #dbe5e6;
	--om-shop-canvas: #f5f8f8;
	--om-shop-white: #fff;
	--om-shop-danger: #b42318;
	--om-shop-star-off: #d5dddd;
	--om-shop-strike: #96a2a5;
	--om-shop-stock-text: #8a1c13;
	--om-shop-radius-sm: 10px;
	--om-shop-radius: 16px;
	--om-shop-radius-lg: 22px;
	--om-shop-shadow: 0 14px 40px rgba(0, 72, 81, .09);
	--om-shop-shadow-hover: 0 20px 48px rgba(0, 72, 81, .15);
	--om-store-font: "Farhang2FaNum", var(--site-font), sans-serif;
	color: var(--om-shop-ink);
	font-family: var(--om-store-font);
	overflow-x: clip;
}

body.woocommerce.oml-lang-en,
body.woocommerce.oml-dir-ltr,
body.woocommerce-page.oml-lang-en,
body.woocommerce-page.oml-dir-ltr {
	--om-store-font: "Farhang2", var(--site-font), sans-serif;
}

body.woocommerce *,
body.woocommerce *::before,
body.woocommerce *::after,
body.woocommerce-page *,
body.woocommerce-page *::before,
body.woocommerce-page *::after {
	box-sizing: border-box;
}

body.woocommerce #content,
body.woocommerce-page #content,
body.woocommerce .site-main,
body.woocommerce-page .site-main {
	min-width: 0;
}

/* Apply the storefront font consistently. Icon fonts (e.g. dashicons)
   are not targeted by this selector list, so icon glyphs are unaffected. */
body.woocommerce .om-woo-main,
body.woocommerce-page .om-woo-main,
body.woocommerce .om-shop-toolbar,
body.woocommerce .om-woo-aside,
body.woocommerce .om-pcard,
body.woocommerce .om-sproduct,
body.woocommerce .om-cart-wrap,
body.woocommerce-checkout form.checkout,
body.woocommerce-checkout form.checkout_coupon,
body.woocommerce button,
body.woocommerce input,
body.woocommerce select,
body.woocommerce textarea {
	font-family: var(--om-store-font);
}

/* ----------------------------------------------------------------
 * Breadcrumb + notices
 * ---------------------------------------------------------------- */

body.woocommerce .woocommerce-breadcrumb,
body.woocommerce-page .woocommerce-breadcrumb {
	max-width: 1240px;
	margin: 18px auto 22px !important;
	padding: 10px 14px;
	color: var(--om-shop-muted);
	font-size: 13px;
	line-height: 1.8;
	background: #fff;
	border: 1px solid var(--om-shop-line);
	border-radius: 12px;
}

body.woocommerce .woocommerce-breadcrumb a,
body.woocommerce-page .woocommerce-breadcrumb a {
	color: var(--om-shop-brand);
	font-weight: 750;
	text-decoration: none;
}

body.woocommerce .woocommerce-notices-wrapper,
body.woocommerce-page .woocommerce-notices-wrapper {
	width: min(1240px, calc(100% - 32px));
	margin: 14px auto;
}

body.woocommerce .woocommerce-message,
body.woocommerce .woocommerce-info,
body.woocommerce .woocommerce-error,
body.woocommerce-page .woocommerce-message,
body.woocommerce-page .woocommerce-info,
body.woocommerce-page .woocommerce-error {
	position: relative;
	margin: 0 0 16px !important;
	padding: 14px 18px !important;
	padding-inline-end: 54px !important;
	color: var(--om-shop-ink);
	background: #fff;
	border: 1px solid var(--om-shop-line);
	border-inline-start: 4px solid var(--om-shop-brand);
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(0, 72, 81, .06);
	line-height: 1.9;
	list-style: none;
}

/* All three notice types get their status icon pinned to the same
   (inline-end) edge, so it never overlaps text and stays consistent
   between success/info/error and between RTL and LTR. */
body.woocommerce .woocommerce-message::before,
body.woocommerce .woocommerce-info::before,
body.woocommerce .woocommerce-error::before,
body.woocommerce-page .woocommerce-message::before,
body.woocommerce-page .woocommerce-info::before,
body.woocommerce-page .woocommerce-error::before {
	position: absolute !important;
	top: 50% !important;
	inset-inline-end: 16px !important;
	inset-inline-start: auto !important;
	margin: 0 !important;
	transform: translateY(-50%);
}

body.woocommerce .woocommerce-error,
body.woocommerce-page .woocommerce-error {
	border-inline-start-color: var(--om-shop-danger);
}

body.woocommerce .woocommerce-message .button,
body.woocommerce-page .woocommerce-message .button {
	color: #fff !important;
	background: var(--om-shop-brand) !important;
	border-radius: 9px !important;
}

/* ----------------------------------------------------------------
 * Shop / archive
 * ---------------------------------------------------------------- */

/* `body.archive.woocommerce` covers the shop page and every product
   taxonomy (categories, tags, attributes). Only the theme's own <main> is
   targeted so plugin markup (modals, carts) can never be resized.
   Hello Elementor's theme.css caps `.site-main` at 500/600/800/1140px per
   breakpoint (with a more specific selector than the old rule here), which
   squeezed the shop to a single 440px product column on 1024px screens
   (iPad landscape, small laptops). The single-product rule already lifted
   that cap; archives now do the same. */
body.woocommerce.archive main.om-woo-main {
	width: min(1240px, calc(100% - 32px));
	max-width: none;
	margin-right: auto;
	margin-left: auto;
	padding-bottom: 56px;
}

body.post-type-archive-product .page-header,
body.tax-product_cat .page-header,
body.tax-product_tag .page-header,
body.woocommerce-shop .page-header {
	margin: 30px 0 22px;
}

body.post-type-archive-product .page-title,
body.tax-product_cat .page-title,
body.tax-product_tag .page-title,
body.woocommerce-shop .page-title {
	margin: 0;
	color: var(--om-shop-brand);
	font-size: clamp(25px, 4vw, 38px);
	font-weight: 900;
	line-height: 1.5;
	letter-spacing: -.02em;
}

body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header,
body.tax-product_tag .woocommerce-products-header {
	margin-bottom: 18px;
}

body.post-type-archive-product .term-description,
body.tax-product_cat .term-description,
body.tax-product_tag .term-description {
	margin: 30px 0;
	padding: clamp(18px, 3vw, 30px);
	color: var(--om-shop-ink);
	background: #fff;
	border: 1px solid var(--om-shop-line);
	border-radius: var(--om-shop-radius-lg);
	box-shadow: 0 10px 30px rgba(0, 72, 81, .06);
}

body.woocommerce .term-description h2,
body.woocommerce .term-description h3 {
	margin: 28px 0 10px;
	color: var(--om-shop-brand);
	font-weight: 900;
	line-height: 1.7;
}

body.woocommerce .term-description h2:first-child,
body.woocommerce .term-description h3:first-child {
	margin-top: 0;
}

body.woocommerce .term-description p,
body.woocommerce .term-description li {
	color: var(--om-shop-muted);
	font-size: 14px;
	line-height: 2.1;
}

body.woocommerce .term-description ul,
body.woocommerce .term-description ol {
	margin: 12px 0 18px;
	padding-inline-start: 22px;
}

.om-no-products {
	display: grid;
	place-items: center;
	gap: 12px;
	min-height: 230px;
	padding: 30px;
	color: var(--om-shop-muted);
	background: #fff;
	border: 1px dashed rgba(0, 72, 81, .26);
	border-radius: var(--om-shop-radius-lg);
}

.om-no-products svg {
	color: var(--om-shop-gold);
}

/* --- Archive toolbar: result summary, mobile filter button, sort ---
 *
 * Rendered by inc/omid-shop-archive.php on `woocommerce_before_shop_loop`.
 * It replaces WooCommerce's floated result count + sort form, whose float
 * geometry (and the select's intrinsic width) differed between Firefox,
 * Safari and Chrome. CSS grid with named areas behaves identically in every
 * engine that supports it (Safari 10.1+, Firefox 52+, Chrome 57+).
 */

body.woocommerce .om-shop-toolbar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
	grid-template-areas: "summary order";
	align-items: center;
	gap: 12px 20px;
	width: 100%;
	margin: 0 0 18px;
	padding: 14px 18px;
	background:
		linear-gradient(135deg, rgba(0, 72, 81, .05), rgba(146, 132, 44, .08)),
		#fff;
	border: 1px solid rgba(0, 72, 81, .16);
	border-radius: var(--om-shop-radius-lg);
	box-shadow: 0 10px 30px rgba(0, 72, 81, .06);
}

body.woocommerce .om-shop-toolbar--empty {
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "summary reset";
}

.om-shop-toolbar__summary {
	grid-area: summary;
	min-width: 0;
}

.om-shop-toolbar__count {
	display: block;
	color: var(--om-shop-brand);
	font-size: 18px;
	font-weight: 900;
	line-height: 1.6;
}

.om-shop-toolbar__range {
	display: block;
	margin-top: 2px;
	color: var(--om-shop-muted);
	font-size: 12.5px;
	line-height: 1.8;
}

.om-shop-order {
	grid-area: order;
	display: flex;
	align-items: center;
	min-width: 0;
}

.om-shop-order__label {
	display: block;
	flex: 0 0 auto;
	margin: 0;
	margin-inline-end: 10px;
	color: var(--om-shop-brand);
	font-size: 12.5px;
	font-weight: 800;
	line-height: 1.4;
	white-space: nowrap;
}

body.woocommerce .om-shop-order form.woocommerce-ordering {
	display: block;
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
	margin: 0 !important;
	float: none !important;
	text-align: start !important;
}

/* WooCommerce 9.7+ can print its own label; the toolbar already has one. */
body.woocommerce .om-shop-order form.woocommerce-ordering > label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* One select definition for every engine: native arrows removed
   (`-moz-appearance` for Firefox < 80, `-webkit-appearance` for Safari),
   a single SVG arrow, zero vertical padding and `line-height: normal` so the
   text is vertically centred instead of being clipped (Firefox honours
   vertical padding inside a fixed-height select, Chrome mostly ignores it). */
body.woocommerce .om-shop-order select.orderby,
body.woocommerce-page .om-shop-order select.orderby {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	display: block;
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 46px !important;
	min-height: 46px !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 14px 0 40px !important;
	color: var(--om-shop-ink) !important;
	background-color: #fff !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23004851' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: left 14px center !important;
	background-size: 16px 16px !important;
	border: 1px solid #cddcdd !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	outline: 0;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: normal !important;
	text-align: start;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
	cursor: pointer;
	transition: border-color .2s ease, box-shadow .2s ease;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
}

body.woocommerce .om-shop-order select.orderby::-ms-expand {
	display: none;
}

body.woocommerce .om-shop-order select.orderby option {
	color: var(--om-shop-ink);
	background: #fff;
	font-weight: 400;
}

body.woocommerce .om-shop-order select.orderby:hover {
	border-color: rgba(0, 72, 81, .45) !important;
}

body.woocommerce .om-shop-order select.orderby:focus {
	border-color: var(--om-shop-gold) !important;
	box-shadow: 0 0 0 3px rgba(146, 132, 44, .2) !important;
}

/* background-position has no logical equivalent with reliable support. */
html[dir="ltr"] body.woocommerce .om-shop-order select.orderby,
body.woocommerce.oml-dir-ltr .om-shop-order select.orderby,
body.woocommerce.oml-lang-en .om-shop-order select.orderby {
	padding: 0 40px 0 14px !important;
	background-position: right 14px center !important;
}

.om-mobile-filter-toggle,
.om-mobile-filter-head,
.om-filter-backdrop {
	display: none;
}

body.woocommerce .om-mobile-filter-toggle {
	grid-area: filter;
	position: relative;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
	height: 46px;
	min-height: 46px;
	margin: 0;
	padding: 0 12px;
	color: #fff;
	background: var(--om-shop-brand);
	border: 1px solid var(--om-shop-brand);
	border-radius: 12px;
	box-shadow: 0 6px 16px rgba(0, 72, 81, .16);
	font-family: inherit;
	font-size: 14px;
	font-weight: 850;
	line-height: 1.2;
	text-transform: none;
	white-space: nowrap;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
}

body.woocommerce .om-mobile-filter-toggle:hover,
body.woocommerce .om-mobile-filter-toggle:focus,
body.woocommerce .om-mobile-filter-toggle:active,
body.woocommerce .om-mobile-filter-toggle[aria-expanded="true"] {
	color: #fff;
	background: var(--om-shop-brand-strong);
	border-color: var(--om-shop-brand-strong);
}

body.woocommerce .om-mobile-filter-toggle:focus-visible {
	outline: 3px solid rgba(146, 132, 44, .55);
	outline-offset: 2px;
}

body.woocommerce .om-mobile-filter-toggle svg {
	display: block;
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	margin: 0;
	margin-inline-end: 7px;
}

.om-mobile-filter-toggle__text {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

.om-mobile-filter-toggle__badge {
	display: inline-block;
	min-width: 20px;
	height: 20px;
	margin: 0;
	margin-inline-start: 7px;
	padding: 0 6px;
	color: var(--om-shop-brand);
	background: #fff;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 900;
	line-height: 20px;
	text-align: center;
}

.om-shop-toolbar__reset {
	grid-area: reset;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 16px;
	color: var(--om-shop-brand) !important;
	background: #fff;
	border: 1px solid var(--om-shop-brand);
	border-radius: 12px;
	font-size: 14px;
	font-weight: 850;
	line-height: 1.3;
	text-align: center;
	text-decoration: none !important;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
}

.om-shop-toolbar__reset:hover,
.om-shop-toolbar__reset:focus {
	color: #fff !important;
	background: var(--om-shop-brand);
}

/* The notices wrapper sits inside the product column; keep it aligned with
   the cards instead of the old `calc(100% - 32px)` inset. */
body.woocommerce .om-woo-main-col .woocommerce-notices-wrapper {
	width: 100%;
	margin: 0 0 12px;
}

body.woocommerce .om-woo-main-col .woocommerce-notices-wrapper:empty {
	margin: 0;
}

/* ----------------------------------------------------------------
 * Product grid + card
 *
 * Cross-browser notes (this block is the fix for the Firefox archive bug):
 * - The parent theme gave cards `height:100%` + `container-type:inline-size`
 *   and this file added `min-height:100%`. Percentage heights inside an
 *   auto-sized grid row, together with an `aspect-ratio` thumbnail whose
 *   image is `height:100%`, are resolved differently by Gecko, WebKit and
 *   Blink: in Firefox the image could ignore the square box and the card
 *   bodies did not line up. Grid items already stretch to the row height,
 *   so no percentage height is needed at all.
 * - The square thumbnail uses the padding-top box and an absolutely
 *   positioned image, which renders the same in every engine (including
 *   Safari < 15 that has no `aspect-ratio`).
 * - The parent declared its grid columns with !important, which silently
 *   disabled every responsive column count below. The selectors here are
 *   more specific, so the breakpoints at the end of the file apply again.
 * - No flex `gap` (Safari < 14.1 ignores it); spacing uses margins/grid gap.
 * ---------------------------------------------------------------- */

body.woocommerce ul.products,
body.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important;
	align-items: stretch;
	gap: 20px !important;
	float: none !important;
	clear: both;
	width: 100% !important;
	max-width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.woocommerce ul.products::before,
body.woocommerce ul.products::after,
body.woocommerce-page ul.products::before,
body.woocommerce-page ul.products::after {
	display: none !important;
	content: none !important;
}

/* Third-party product loops that still print <li class="product">. */
body.woocommerce ul.products > li.product,
body.woocommerce-page ul.products > li.product {
	float: none !important;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	clear: none !important;
}

body.woocommerce .om-pcard,
body.woocommerce-page .om-pcard {
	position: relative;
	display: flex !important;
	flex-direction: column;
	width: auto;
	min-width: 0;
	height: auto;
	min-height: 0;
	margin: 0;
	padding: 0;
	float: none;
	overflow: hidden;
	isolation: isolate;
	container-type: normal;
	background: #fff;
	border: 1px solid var(--om-shop-line);
	border-radius: var(--om-shop-radius);
	box-shadow: 0 8px 28px rgba(0, 72, 81, .06);
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
	-webkit-tap-highlight-color: rgba(0, 72, 81, .08);
}

/* No "lift" on touch screens: iOS/Android keep :hover after a tap, which
   left the tapped card floating. Desktop hover is restored further down. */
body.woocommerce .om-pcard:hover,
body.woocommerce-page .om-pcard:hover {
	transform: none;
}

body.woocommerce .om-pcard:focus-within,
body.woocommerce-page .om-pcard:focus-within {
	transform: none;
}

body.woocommerce .om-pcard:hover .om-pcard__thumb img,
body.woocommerce-page .om-pcard:hover .om-pcard__thumb img {
	transform: none;
}

body.woocommerce .om-pcard__thumb,
body.woocommerce-page .om-pcard__thumb {
	position: relative;
	display: block;
	flex: 0 0 auto;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	margin: 0;
	overflow: hidden;
	background: #f0f4f3;
	border-radius: 0;
}

body.woocommerce .om-pcard__thumb::before,
body.woocommerce-page .om-pcard__thumb::before {
	content: "";
	display: block;
	width: 100%;
	padding-top: 100%;
}

body.woocommerce .om-pcard__thumb > img:not(.om-media-icon-img),
body.woocommerce-page .om-pcard__thumb > img:not(.om-media-icon-img) {
	position: absolute;
	inset: 0;
	top: 0;
	left: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: cover;
	object-position: center;
	border-radius: 0 !important;
	transition: transform .35s ease;
}

body.woocommerce .om-pcard__badge,
body.woocommerce .om-pcard__stock-badge,
body.woocommerce-page .om-pcard__badge,
body.woocommerce-page .om-pcard__stock-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 26px;
	padding: 3px 10px;
	font-size: 11px;
	font-weight: 850;
	line-height: 1.6;
	border-radius: 999px;
}

/* Physical offsets: Safari 14 lacks `aspect-ratio`, so the parent's
   fallback gave every thumbnail child `inset:0`, stretching the badge
   over the whole image. Explicit edges neutralise that. */
body.woocommerce .om-pcard__badge,
body.woocommerce-page .om-pcard__badge {
	position: absolute;
	z-index: 2;
	top: 12px;
	right: auto;
	bottom: auto;
	left: 12px;
	width: auto;
	height: auto;
	color: #fff;
	background: var(--om-shop-brand);
}

html[dir="ltr"] body.woocommerce .om-pcard__badge,
body.woocommerce.oml-dir-ltr .om-pcard__badge,
body.woocommerce.oml-lang-en .om-pcard__badge {
	right: 12px;
	left: auto;
}

body.woocommerce .om-pcard__badge--sale,
body.woocommerce-page .om-pcard__badge--sale {
	background: var(--om-shop-gold);
}

body.woocommerce .om-pcard__body,
body.woocommerce-page .om-pcard__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
	padding: 16px;
	gap: 0;
}

.om-pcard__availability {
	margin-bottom: 8px;
}

.om-pcard__stock-badge {
	color: var(--om-shop-stock-text);
	background: #fff0ee;
	border: 1px solid #ffd0cb;
}

.om-pcard__stock-badge--reserved {
	color: #765f08;
	background: #fff9df;
	border-color: #ead98a;
}

body.woocommerce .om-pcard__cat,
body.woocommerce-page .om-pcard__cat {
	display: block;
	align-self: stretch;
	max-width: 100%;
	margin: 0 0 6px;
	overflow: hidden;
	color: var(--om-shop-gold) !important;
	font-size: 11.5px;
	font-weight: 800;
	line-height: 1.7;
	text-decoration: none !important;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body.woocommerce .om-pcard__title,
body.woocommerce-page .om-pcard__title {
	margin: 0 0 10px !important;
	padding: 0 !important;
	color: var(--om-shop-ink);
	font-size: 15px !important;
	font-weight: 850 !important;
	line-height: 1.75 !important;
}

/* Two-line clamp; `max-height` keeps the clamp where -webkit-line-clamp is
   not applied, so card heights stay uniform in every browser. */
body.woocommerce .om-pcard__title a,
body.woocommerce-page .om-pcard__title a {
	display: block;
	display: -webkit-box;
	max-height: 3.5em;
	overflow: hidden;
	color: var(--om-shop-ink) !important;
	text-decoration: none !important;
	overflow-wrap: break-word;
	word-wrap: break-word;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

body.woocommerce .om-pcard__rating,
body.woocommerce-page .om-pcard__rating {
	display: flex;
	gap: 0;
	margin: 0 0 12px;
	direction: ltr;
	justify-content: flex-end;
}

.om-pcard__rating svg {
	width: 15px;
	height: 15px;
	margin: 0 1px;
	fill: var(--om-shop-star-off);
}

.om-pcard__rating svg.on,
.om-pcard__rating svg.half {
	fill: var(--om-shop-gold);
}

body.woocommerce .om-pcard__footer,
body.woocommerce-page .om-pcard__footer {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: stretch;
	gap: 10px;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid #edf1f1;
}

body.woocommerce .om-pcard__price,
body.woocommerce-page .om-pcard__price {
	min-width: 0;
	min-height: 0;
	color: var(--om-shop-brand);
	font-size: 15px;
	font-weight: 900;
	line-height: 1.6;
	overflow-wrap: break-word;
	word-wrap: break-word;
}

.om-pcard__price del {
	margin-inline-start: 5px;
	color: var(--om-shop-strike);
	font-size: 12px;
}

.om-pcard__price ins {
	text-decoration: none;
}

body.woocommerce .om-pcard__btn,
body.woocommerce-page .om-pcard__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: 8px 12px;
	color: #fff !important;
	background: var(--om-shop-brand);
	border: 1px solid var(--om-shop-brand);
	border-radius: 11px;
	font-size: 13px;
	font-weight: 850;
	line-height: 1.4;
	text-align: center;
	text-decoration: none !important;
	white-space: normal;
	transition: background-color .2s ease, border-color .2s ease;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
}

body.woocommerce .om-pcard__btn:focus,
body.woocommerce .om-pcard__btn:active,
body.woocommerce-page .om-pcard__btn:focus,
body.woocommerce-page .om-pcard__btn:active {
	color: #fff !important;
	background: var(--om-shop-brand-strong);
	border-color: var(--om-shop-brand-strong);
}

@media (hover: hover) and (pointer: fine) {
	body.woocommerce .om-pcard:hover,
	body.woocommerce-page .om-pcard:hover {
		transform: translateY(-5px);
		border-color: rgba(146, 132, 44, .55);
		box-shadow: var(--om-shop-shadow-hover);
	}

	body.woocommerce .om-pcard:hover .om-pcard__thumb img,
	body.woocommerce-page .om-pcard:hover .om-pcard__thumb img {
		transform: scale(1.035);
	}

	body.woocommerce .om-pcard__btn:hover,
	body.woocommerce-page .om-pcard__btn:hover {
		background: var(--om-shop-gold);
		border-color: var(--om-shop-gold);
	}
}

/* --- Pagination (flex + margins: identical with or without flex gap) --- */

body.woocommerce nav.woocommerce-pagination {
	margin: 32px 0 10px;
	text-align: center;
}

body.woocommerce nav.woocommerce-pagination ul,
body.woocommerce nav.woocommerce-pagination ul.page-numbers {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	white-space: normal;
	list-style: none;
	border: 0 !important;
}

body.woocommerce nav.woocommerce-pagination ul li {
	display: block;
	float: none;
	margin: 4px !important;
	padding: 0;
	overflow: visible;
	border: 0 !important;
}

body.woocommerce nav.woocommerce-pagination ul li a,
body.woocommerce nav.woocommerce-pagination ul li span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 10px;
	color: var(--om-shop-brand);
	background: #fff;
	border: 1px solid var(--om-shop-line);
	border-radius: 10px;
	box-shadow: none;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
}

body.woocommerce nav.woocommerce-pagination ul li span.current,
body.woocommerce nav.woocommerce-pagination ul li a:hover,
body.woocommerce nav.woocommerce-pagination ul li a:focus {
	color: #fff;
	background: var(--om-shop-brand);
	border-color: var(--om-shop-brand);
}

body.woocommerce nav.woocommerce-pagination ul li span.dots {
	min-width: 28px;
	background: transparent;
	border-color: transparent;
}

/* ----------------------------------------------------------------
 * Shared shop/single layout shell (main column + optional sidebar)
 * ---------------------------------------------------------------- */

.om-woo-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
	align-items: start;
	gap: clamp(16px, 2vw, 24px);
	width: 100%;
}

.om-woo-main-col,
.om-woo-aside {
	min-width: 0;
}

/* Desktop archive sidebar: stick below the fixed header instead of sliding
   under it (the parent used `top:18px`, the header is ~64px tall). */
body.woocommerce.archive .om-woo-aside {
	position: -webkit-sticky;
	position: sticky;
	top: calc(var(--om-h-h, 70px) + 12px);
}

/* Block layout + margins instead of flex `gap`, which Safari < 14.1 drops. */
.om-woo-aside__box {
	display: block;
	width: 100%;
	padding: 14px;
	background: #fff;
	border: 1px solid var(--om-shop-line);
	border-radius: 16px;
	box-shadow: 0 10px 30px rgba(0, 72, 81, .07);
}

.om-woo-aside__box > * {
	margin-top: 0;
	margin-bottom: 14px;
}

.om-woo-aside__box > *:last-child {
	margin-bottom: 0;
}

/* Cart and checkout are full width: there is intentionally no shop
   sidebar on these transactional pages. */
body.woocommerce-cart .om-woo-layout,
body.woocommerce-checkout .om-woo-layout {
	display: block !important;
	width: 100% !important;
}

body.woocommerce-cart .om-woo-main-col,
body.woocommerce-checkout .om-woo-main-col {
	width: 100% !important;
	max-width: none !important;
}

/* ----------------------------------------------------------------
 * Single product
 * ---------------------------------------------------------------- */

body.single-product main.om-woo-main {
	width: min(1240px, calc(100% - 32px));
	margin-inline: auto;
	max-width: none;
	padding-bottom: 60px;
}

body.single-product .om-woo-layout {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 300px) !important;
	gap: clamp(16px, 2vw, 24px) !important;
}

body.single-product .om-woo-main-col {
	width: 100% !important;
	max-width: 100% !important;
}

body.single-product .om-woo-aside {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	position: static !important;
	inset-inline-start: auto !important;
	top: auto !important;
	align-self: start;
	max-height: none !important;
	overflow: visible !important;
	min-width: 0 !important;
}

.om-sproduct {
	width: 100%;
}

.om-sproduct__main {
	display: grid !important;
	grid-template-columns: minmax(280px, .86fr) minmax(0, 1.14fr) !important;
	align-items: start !important;
	gap: clamp(18px, 2.4vw, 30px) !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 0 16px !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.om-sproduct__gallery,
.om-sproduct__summary {
	min-width: 0;
	margin: 0 !important;
	padding: clamp(14px, 1.5vw, 19px) !important;
	background: #fff !important;
	border: 1px solid var(--om-shop-line) !important;
	border-radius: 17px !important;
	box-shadow: 0 9px 28px rgba(0, 72, 81, .055) !important;
}

.om-sproduct__gallery {
	position: sticky;
	top: calc(var(--om-h-h, 70px) + 12px);
}

.om-sproduct__gallery .woocommerce-product-gallery {
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
}

.om-sproduct__gallery .woocommerce-product-gallery__wrapper,
.om-sproduct__gallery .woocommerce-product-gallery__image {
	border-radius: 15px;
	overflow: hidden;
}

.om-sproduct__gallery img {
	width: 100%;
	height: auto;
}

.om-sproduct__gallery .woocommerce-product-gallery__image img {
	max-height: 535px !important;
	object-fit: contain !important;
}

.om-sproduct__gallery .flex-control-thumbs li {
	width: 58px !important;
	height: 58px !important;
}

.om-sproduct__summary {
	display: flex !important;
	flex-direction: column;
	float: none !important;
	gap: 12px !important;
}

.om-sproduct__cat {
	display: inline-flex;
	padding: 5px 10px !important;
	color: var(--om-shop-gold) !important;
	background: var(--om-shop-gold-soft);
	border-radius: 999px;
	font-size: 11px !important;
	font-weight: 850;
	text-decoration: none !important;
}

.om-sproduct__title,
body.single-product h1.product_title {
	position: static !important;
	display: block !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	clip: auto !important;
	clip-path: none !important;
	white-space: normal !important;
	border: 0 !important;
	color: var(--om-shop-brand) !important;
	font-family: var(--om-store-font) !important;
	font-size: clamp(24px, 2.25vw, 32px) !important;
	font-weight: 900 !important;
	line-height: 1.5 !important;
}

/* A legacy cached hero wrapper may still contain the product title;
   the canonical, single visible title is the H1 beside the gallery. */
body.single-product .om-hero .om-hero-title {
	display: none !important;
}

.om-sproduct__price {
	margin: 0 !important;
	padding: 11px 14px !important;
	color: var(--om-shop-brand);
	font-size: clamp(18px, 1.8vw, 23px) !important;
	font-weight: 950;
}

.om-sproduct__price del {
	color: var(--om-shop-strike);
	font-size: 15px;
}

.om-sproduct__price ins {
	text-decoration: none;
}

.om-sproduct__short {
	padding: 13px 14px !important;
	color: var(--om-shop-muted);
	font-size: 14px;
	line-height: 2;
}

.om-sproduct__short > :first-child {
	margin-top: 0 !important;
}

.om-sproduct__short > :last-child {
	margin-bottom: 0 !important;
}

.om-sproduct__short ul {
	display: grid;
	gap: 5px !important;
}

.om-sproduct__short ul li {
	padding-inline-start: 22px !important;
	font-size: 13px !important;
	line-height: 1.75 !important;
}

.om-sproduct__short ul li::before {
	top: .62em !important;
	width: 10px !important;
	height: 10px !important;
	border-width: 1px !important;
}

.om-sproduct__short blockquote {
	margin-top: 10px !important;
	padding: 11px 13px !important;
	font-size: 12px !important;
	line-height: 1.85 !important;
}

.om-sproduct__meta,
.om-sproduct__share {
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid #edf1f1;
}

.om-sproduct__share {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 2px !important;
}

.om-sproduct__share > a {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	background: var(--om-shop-canvas);
	border: 1px solid var(--om-shop-line);
	border-radius: 10px;
}

.om-sproduct__share svg {
	width: 19px;
	height: 19px;
}

.om-copy-ok {
	display: none !important;
}

/* --- Purchase panel: shared base + two layout variants --- */

.om-sproduct__purchase-head {
	margin-bottom: 12px;
}

.om-sproduct__purchase-head > span {
	display: block;
	color: var(--om-shop-gold);
	font-size: 12px;
	font-weight: 850;
}

.om-sproduct__purchase-head h2 {
	margin: 4px 0 5px;
	color: var(--om-shop-brand);
	font-size: 21px;
	font-weight: 900;
	line-height: 1.6;
}

.om-sproduct__purchase-head p {
	margin: 0;
	max-width: 680px;
	color: var(--om-shop-muted);
	font-size: 13px;
	line-height: 1.9;
}

.om-sproduct__purchase--standard,
.om-sproduct__purchase--wreath {
	margin-top: 12px;
}

.om-sproduct__purchase--wreath {
	width: 100%;
	padding: clamp(16px, 2vw, 22px) !important;
	background: #fff;
	border: 1px solid var(--om-shop-line);
	border-radius: 17px !important;
	box-shadow: 0 9px 28px rgba(0, 72, 81, .055) !important;
}

.om-sproduct__purchase--wreath .om-sproduct__purchase-head {
	margin: 0 0 16px;
	padding: 0 0 14px;
	border-bottom: 1px solid var(--om-shop-line);
}

.om-sproduct__purchase--wreath .om-sproduct__purchase-head h2 {
	font-size: clamp(20px, 2vw, 25px);
}

.om-sproduct form.cart {
	display: grid !important;
	gap: 12px;
	margin: 0 !important;
	padding: 0;
}

.om-sproduct form.cart .om-store-order,
.om-sproduct form.cart .variations,
.om-sproduct form.cart .single_variation_wrap,
.om-sproduct form.cart .woocommerce-variation,
.om-sproduct form.cart .om-cart-choice {
	grid-column: 1 / -1;
}

.om-sproduct__purchase--standard form.cart {
	grid-template-columns: minmax(82px, .25fr) minmax(190px, 1fr);
	max-width: 520px;
}

.om-sproduct__purchase--standard form.cart .quantity {
	grid-column: 1;
}

.om-sproduct__purchase--standard form.cart .single_add_to_cart_button {
	grid-column: 2;
}

.om-sproduct__purchase--wreath form.cart {
	grid-template-columns: minmax(82px, .22fr) repeat(2, minmax(180px, 1fr));
}

.om-sproduct form.cart .quantity {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: 0 !important;
	float: none !important;
}

.om-sproduct form.cart .quantity .qty {
	width: 100%;
	height: 50px;
	margin: 0;
	color: var(--om-shop-brand);
	background: #fff;
	border: 1px solid var(--om-shop-line);
	border-radius: 11px;
	font-family: inherit;
	font-weight: 900;
}

.om-sproduct form.cart .single_add_to_cart_button,
.om-sproduct form.cart .om-buy-now {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	min-height: 50px;
	margin: 0 !important;
	padding: 10px 16px !important;
	border: 1px solid var(--om-shop-brand) !important;
	border-radius: 11px !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 900 !important;
	line-height: 1.5 !important;
	cursor: pointer;
}

.om-sproduct form.cart .single_add_to_cart_button {
	color: #fff !important;
	background: var(--om-shop-brand) !important;
}

.om-sproduct form.cart .om-buy-now {
	color: var(--om-shop-brand) !important;
	background: #fff !important;
}

.om-sproduct form.cart .single_add_to_cart_button:hover {
	background: var(--om-shop-gold) !important;
	border-color: var(--om-shop-gold) !important;
}

.om-sproduct form.cart .om-buy-now:hover {
	color: #fff !important;
	background: var(--om-shop-gold) !important;
	border-color: var(--om-shop-gold) !important;
}

.om-cart-choice {
	margin: 0 !important;
	color: var(--om-shop-muted);
	font-size: 11.5px;
	line-height: 1.8;
}

.om-stock-notice {
	margin-top: 20px;
	padding: 16px;
	background: #fff8f6;
	border: 1px solid #ffd6cf;
	border-radius: 13px;
}

/* --- "Store order" fields (recipient/delivery details on the product page) --- */

.om-store-order {
	overflow: visible;
	margin: 0 0 2px;
	padding: clamp(14px, 2vw, 20px);
	background: linear-gradient(180deg, #fbfdfd 0%, #f4f8f8 100%);
	border: 1px solid #d7e3e4;
	border-radius: 16px;
	box-shadow: inset 0 1px 0 #fff;
}

.om-store-order__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(0, 72, 81, .1);
}

.om-store-order__eyebrow {
	display: block;
	margin-bottom: 2px;
	color: var(--om-shop-gold);
	font-size: 11px;
	font-weight: 850;
}

.om-store-order__header h2 {
	margin: 2px 0 0;
	color: var(--om-shop-brand);
	font-size: 18px;
	font-weight: 900;
	line-height: 1.65;
}

/* The secure badge, intro lead-in and duplicate "choice" note were fully
   styled in an earlier iteration and then hidden unconditionally — kept
   hidden by design (the info is redundant with the header), unused
   styling removed. */
.om-store-order__secure,
.om-store-order__lead {
	display: none !important;
}

.om-store-order__notice {
	display: grid;
	gap: 2px;
	margin: 0 0 16px;
	padding: 11px 13px;
	color: #675916;
	background: #fffaf0;
	border: 1px solid rgba(146, 132, 44, .2);
	border-inline-start: 4px solid var(--om-shop-gold);
	border-radius: 10px;
	font-size: 12.5px;
	line-height: 1.9;
}

.om-fields-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 13px 14px;
}

.om-field-group-title {
	grid-column: 1 / -1;
	margin: 6px 0 -1px !important;
	padding: 0 0 7px;
	padding-inline-end: 10px;
	color: var(--om-shop-brand) !important;
	border-inline-start: 3px solid var(--om-shop-gold);
	border-bottom: 1px dashed rgba(0, 72, 81, .13);
	font-size: 13px !important;
	font-weight: 900 !important;
	line-height: 1.6 !important;
}

.om-field-group-title:first-child {
	margin-top: 0 !important;
}

.om-field-row,
.om-store-order .form-row {
	display: flex !important;
	flex-direction: column;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

.om-field-row--full {
	grid-column: 1 / -1;
}

.om-field-row.is-recipient-self-hidden {
	display: none !important;
}

.om-field-row label,
.om-store-order .form-row label {
	display: block;
	margin: 0 0 6px;
	color: var(--om-shop-ink);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.7;
}

.om-field-row .required,
.om-store-order .required {
	color: var(--om-shop-danger);
	text-decoration: none;
}

.om-field-row input,
.om-field-row select,
.om-field-row textarea,
.om-store-order .form-row input,
.om-store-order .form-row select,
.om-store-order .select2-selection {
	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	min-height: 47px;
	margin: 0 !important;
	padding: 10px 12px !important;
	color: var(--om-shop-ink) !important;
	background: #fff !important;
	border: 1px solid #ccd9da !important;
	border-radius: 10px !important;
	font-family: inherit !important;
	font-size: 13px !important;
	line-height: 1.75 !important;
	outline: none !important;
	box-shadow: none !important;
}

.om-field-row select,
.om-store-order .form-row select {
	-webkit-appearance: none;
	appearance: none;
	overflow: hidden;
	text-overflow: ellipsis;
	padding-inline-end: 38px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23004851' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: left 12px center !important;
	background-size: 17px 17px !important;
}

/* background-position has no logical-property equivalent with reliable
   support, so the LTR variant gets an explicit mirrored override. */
body.woocommerce.oml-lang-en .om-field-row select,
body.woocommerce.oml-dir-ltr .om-field-row select,
body.woocommerce.oml-lang-en .om-store-order .form-row select,
body.woocommerce.oml-dir-ltr .om-store-order .form-row select {
	background-position: right 12px center !important;
}

.om-field-row select option,
.om-store-order .form-row select option {
	font-family: inherit;
	font-size: 13px;
}

.om-field-row textarea {
	min-height: 92px;
	resize: vertical;
}

.om-field-row input:focus,
.om-field-row select:focus,
.om-field-row textarea:focus,
.om-store-order .form-row input:focus,
.om-store-order .form-row select:focus {
	border-color: var(--om-shop-gold) !important;
	box-shadow: 0 0 0 3px rgba(146, 132, 44, .13) !important;
}

.om-recipient-self {
	grid-column: 1 / -1;
	padding: 11px 12px !important;
	background: #fff;
	border: 1px solid rgba(0, 72, 81, .16);
	border-radius: 11px;
}

.om-recipient-self > label {
	display: inline-flex !important;
	align-items: center;
	gap: 9px;
	width: fit-content;
	margin: 0 !important;
	color: var(--om-shop-brand) !important;
	cursor: pointer;
}

.om-recipient-self input[type="checkbox"] {
	position: absolute;
	width: 1px !important;
	height: 1px !important;
	min-height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	opacity: 0;
	overflow: hidden;
}

.om-recipient-self__control {
	position: relative;
	display: inline-block;
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	background: #fff;
	border: 2px solid #9fb6b8;
	border-radius: 7px;
	transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.om-recipient-self input:checked + .om-recipient-self__control {
	background: var(--om-shop-brand);
	border-color: var(--om-shop-brand);
}

.om-recipient-self input:checked + .om-recipient-self__control::after {
	content: "";
	position: absolute;
	top: 3px;
	inset-inline-end: 6px;
	width: 6px;
	height: 10px;
	border: solid #fff;
	border-width: 0 0 2px 2px;
	transform: rotate(-45deg);
}

body.woocommerce.oml-lang-en .om-recipient-self input:checked + .om-recipient-self__control::after,
body.woocommerce.oml-dir-ltr .om-recipient-self input:checked + .om-recipient-self__control::after {
	transform: rotate(45deg) scaleX(-1);
}

.om-recipient-self input:focus-visible + .om-recipient-self__control {
	box-shadow: 0 0 0 3px rgba(146, 132, 44, .18);
}

.om-recipient-self small {
	display: block;
	margin: 5px 0 0;
	margin-inline-end: 31px;
	color: var(--om-shop-muted);
	font-size: 10.5px;
	line-height: 1.7;
}

/* --- Donation amount picker --- */

.om-donation-section {
	margin-top: 17px;
	padding: 15px;
	background: linear-gradient(135deg, #fffdf6, #f8fbfa);
	border: 1px solid rgba(146, 132, 44, .25);
	border-radius: 14px;
}

.om-donation-section__head {
	display: grid;
	gap: 3px;
	margin-bottom: 12px;
}

.om-donation-section__head strong {
	color: var(--om-shop-brand);
	font-size: 15px;
}

.om-donation-section__head span {
	color: var(--om-shop-muted);
	font-size: 11.5px;
}

.om-donation-presets {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}

.om-donation-btn,
.om-sproduct .om-donation-btn,
.om-sproduct button.om-donation-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	min-width: 0 !important;
	min-height: 42px !important;
	margin: 0 !important;
	padding: 8px 7px !important;
	color: var(--om-shop-brand) !important;
	background: #fff !important;
	border: 1px solid rgba(0, 72, 81, .22) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	font-family: inherit;
	font-size: 11px !important;
	font-weight: 850 !important;
	line-height: 1.45 !important;
	white-space: normal;
	cursor: pointer;
}

/* :focus-visible lives in its own rule: Safari < 15.4 drops a whole rule
   when one selector in the list is unknown, which also killed :hover. */
.om-donation-btn:hover,
.om-sproduct .om-donation-btn:hover {
	color: var(--om-shop-brand) !important;
	background: var(--om-shop-gold-soft) !important;
	border-color: var(--om-shop-gold) !important;
}

.om-donation-btn:focus-visible,
.om-sproduct .om-donation-btn:focus-visible {
	color: var(--om-shop-brand) !important;
	background: var(--om-shop-gold-soft) !important;
	border-color: var(--om-shop-gold) !important;
}

.om-donation-btn.is-active,
.om-donation-btn.active,
.om-sproduct .om-donation-btn.is-active,
.om-sproduct .om-donation-btn.active {
	color: #fff !important;
	background: var(--om-shop-brand) !important;
	border-color: var(--om-shop-brand) !important;
}

.om-donation-custom {
	display: grid;
	grid-template-columns: minmax(120px, .38fr) minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	margin-top: 12px;
	color: var(--om-shop-ink);
	font-size: 12px;
	font-weight: 800;
}

.om-donation-custom input {
	width: 100%;
	min-width: 0;
	min-height: 43px;
	padding: 8px 11px;
	background: #fff;
	border: 1px solid var(--om-shop-line);
	border-radius: 9px;
}

.om-donation-summary {
	display: grid;
	gap: 7px;
	margin-top: 14px;
	padding: 12px;
	padding-top: 12px;
	background: rgba(255, 255, 255, .85);
	border-top: 1px dashed rgba(0, 72, 81, .16);
	border-radius: 10px;
}

.om-sum-row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	color: var(--om-shop-muted);
	font-size: 12px;
}

.om-sum-row strong {
	color: var(--om-shop-ink);
}

.om-sum-total {
	margin-top: 3px;
	padding-top: 9px;
	color: var(--om-shop-brand);
	border-top: 1px solid #edf1f1;
	font-size: 14px;
	font-weight: 900;
}

.om-sum-total strong {
	color: var(--om-shop-brand);
}

/* --- Tabs + related products --- */

.om-sproduct__tabs,
.om-sproduct__related {
	margin-top: 18px !important;
	padding: 24px;
	background: #fff;
	border: 1px solid var(--om-shop-line);
	border-radius: var(--om-shop-radius-lg);
	box-shadow: 0 10px 32px rgba(0, 72, 81, .06);
}

.om-sproduct__tabs .woocommerce-tabs {
	padding: 0;
}

.om-sproduct__tabs .tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 20px !important;
	padding: 0 !important;
	list-style: none !important;
	border-bottom: 1px solid var(--om-shop-line);
}

.om-sproduct__tabs .tabs::before,
.om-sproduct__tabs .tabs::after {
	display: none !important;
}

.om-sproduct__tabs .tabs li {
	margin: 0 0 -1px !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
}

.om-sproduct__tabs .tabs li::before,
.om-sproduct__tabs .tabs li::after {
	display: none !important;
}

.om-sproduct__tabs .tabs li a {
	display: inline-flex;
	align-items: center;
	padding: 11px 14px !important;
	color: var(--om-shop-muted) !important;
	text-decoration: none !important;
	border-bottom: 2px solid transparent;
	font-weight: 800;
}

.om-sproduct__tabs .tabs li.active a {
	color: var(--om-shop-brand) !important;
	border-bottom-color: var(--om-shop-gold);
}

.om-sproduct__tabs .woocommerce-Tabs-panel img {
	max-width: 100%;
	height: auto;
	display: block;
}

.om-sproduct__related > section > h2,
.om-sproduct__related > h2 {
	margin: 0 0 20px;
	color: var(--om-shop-brand);
	font-size: 24px;
	font-weight: 900;
}

/* --- Review form --- */

body.single-product #review_form #respond,
body.single-product #review_form form.comment-form {
	width: 100% !important;
	max-width: 100% !important;
}

body.single-product #review_form .comment-form-email,
body.single-product #review_form input[type="email"] {
	display: none !important;
}

body.single-product #review_form .comment-form-author,
body.single-product #review_form .comment-form-mobile,
body.single-product #review_form .comment-form-comment,
body.single-product #review_form .comment-form-rating {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 12px !important;
}

body.single-product #review_form input:not([type="checkbox"]):not([type="submit"]),
body.single-product #review_form textarea {
	width: 100% !important;
	max-width: 100% !important;
	border: 1px solid var(--om-shop-line) !important;
	border-radius: 10px !important;
}

/* --- PhotoSwipe close control ---
   PhotoSwipe ships its close control as a sprite. Some optimization
   modes strip that sprite, so a self-contained, always-visible control
   is provided here. The close button sits in a fixed page corner (a
   convention independent of text direction), placed at the inline-start
   corner to match the rest of the UI's reading order. */
body.single-product .pswp--open .pswp__top-bar,
body.single-product .pswp--open .pswp__ui {
	opacity: 1 !important;
	visibility: visible !important;
}

body.single-product .pswp {
	z-index: 2147483646 !important;
}

body.single-product .pswp__top-bar {
	position: fixed !important;
	top: 0 !important;
	right: 0 !important;
	bottom: auto !important;
	left: 0 !important;
	inset: 0 0 auto 0 !important;
	height: 72px !important;
	z-index: 2147483647 !important;
	pointer-events: none !important;
	background: transparent !important;
}

body.single-product .pswp__button--close {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	position: fixed !important;
	top: max(12px, env(safe-area-inset-top)) !important;
	inset-inline-start: max(12px, env(safe-area-inset-left)) !important;
	inset-inline-end: auto !important;
	width: 46px !important;
	height: 46px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 2px solid #fff !important;
	border-radius: 50% !important;
	background: #004851 !important;
	background-image: none !important;
	color: #fff !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	z-index: 2147483647 !important;
	cursor: pointer !important;
	font-size: 0 !important;
	line-height: 1 !important;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .28) !important;
}

body.single-product .pswp__button--close::before {
	content: "×" !important;
	display: block !important;
	color: #fff !important;
	font-family: Arial, sans-serif !important;
	font-size: 33px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	transform: translateY(-1px) !important;
}

/* ----------------------------------------------------------------
 * Cart
 * ---------------------------------------------------------------- */

.om-cart-wrap {
	width: min(1240px, calc(100% - 32px));
	margin: 28px auto 60px;
}

.om-cart-header {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 22px;
	padding: 20px 22px;
	color: #fff;
	background: linear-gradient(135deg, var(--om-shop-brand), #08727a);
	border-radius: var(--om-shop-radius-lg);
	box-shadow: var(--om-shop-shadow);
}

.om-cart-header-icon {
	display: grid;
	flex: 0 0 50px;
	place-items: center;
	width: 50px;
	height: 50px;
	background: rgba(255, 255, 255, .13);
	border-radius: 13px;
}

.om-cart-header-icon svg {
	width: 25px;
	fill: #fff;
}

.om-cart-header h1 {
	margin: 0 0 3px;
	color: #fff;
	font-size: 25px;
	font-weight: 900;
}

.om-cart-header p {
	margin: 0;
	color: rgba(255, 255, 255, .82);
	font-size: 13px;
}

.om-cart-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(300px, .75fr);
	align-items: start;
	gap: 22px;
}

.om-cart-items-col,
.om-cart-totals-box,
.om-cart-trust {
	padding: 18px;
	background: #fff;
	border: 1px solid var(--om-shop-line);
	border-radius: var(--om-shop-radius);
	box-shadow: 0 10px 30px rgba(0, 72, 81, .06);
}

.om-cart-totals-col {
	position: sticky;
	top: 20px;
	display: grid;
	gap: 14px;
}

.om-cart-item {
	display: grid;
	grid-template-columns: 86px minmax(0, 1fr) minmax(92px, auto) 86px minmax(92px, auto) 38px;
	align-items: center;
	gap: 13px;
	padding: 16px 0;
	border-bottom: 1px solid #edf1f1;
}

.om-ci-thumb img {
	width: 86px;
	height: 86px;
	object-fit: cover;
	border-radius: 11px;
}

.om-ci-name a {
	color: var(--om-shop-brand) !important;
	font-weight: 900;
	text-decoration: none !important;
}

.om-ci-meta dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 3px 8px;
	margin: 7px 0 0;
	color: var(--om-shop-muted);
	font-size: 11px;
}

.om-ci-label {
	display: block;
	margin-bottom: 3px;
	color: var(--om-shop-muted);
	font-size: 10.5px;
}

.om-ci-qty .qty {
	width: 70px;
	height: 42px;
	border: 1px solid var(--om-shop-line);
	border-radius: 9px;
}

.om-remove-btn {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	color: var(--om-shop-danger);
	background: #fff3f1;
	border-radius: 9px;
}

.om-remove-btn svg {
	width: 18px;
	fill: currentColor;
}

.om-cart-actions {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin-top: 18px;
}

.om-coupon-box,
.om-cart-actions-btns {
	display: flex;
	gap: 8px;
}

.om-coupon-input {
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid var(--om-shop-line);
	border-radius: 9px;
}

.om-coupon-btn,
.om-continue-shopping,
.om-update-cart,
.om-cart-wrap .checkout-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 44px;
	padding: 8px 13px !important;
	color: var(--om-shop-brand) !important;
	background: #fff !important;
	border: 1px solid var(--om-shop-brand) !important;
	border-radius: 9px !important;
	font-family: inherit !important;
	font-size: 12px !important;
	font-weight: 850 !important;
	text-decoration: none !important;
}

.om-cart-wrap .checkout-button {
	width: 100%;
	min-height: 50px;
	margin-top: 16px !important;
	color: #fff !important;
	background: var(--om-shop-brand) !important;
}

.om-cart-wrap .checkout-button:hover {
	background: var(--om-shop-gold) !important;
	border-color: var(--om-shop-gold) !important;
}

.om-cart-totals-head,
.om-cart-items-head {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 14px;
	color: var(--om-shop-brand);
}

.om-cart-totals-head svg,
.om-cart-items-head svg {
	width: 22px;
	fill: currentColor;
}

.om-cart-totals-head h3,
.om-cart-items-head h3 {
	margin: 0;
	font-size: 16px;
	font-weight: 900;
}

.om-tr {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 0;
	color: var(--om-shop-muted);
	border-bottom: 1px solid #edf1f1;
	font-size: 12px;
}

.om-tr.order-total {
	color: var(--om-shop-brand);
	font-size: 15px;
	font-weight: 900;
}

.om-cart-trust {
	display: grid;
	gap: 10px;
}

.om-trust-item {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--om-shop-muted);
	font-size: 11.5px;
}

.om-trust-item svg {
	width: 18px;
	fill: var(--om-shop-gold);
}

/* ----------------------------------------------------------------
 * Checkout
 * ---------------------------------------------------------------- */

body.woocommerce-checkout .woocommerce {
	width: min(1120px, calc(100% - 24px));
	max-width: 1120px;
	margin: 14px auto 38px;
}

body.woocommerce-checkout form.checkout {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr) !important;
	align-items: start !important;
	gap: 16px 20px !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: clamp(16px, 2.2vw, 24px) !important;
	background: #fff !important;
	border: 1px solid var(--om-shop-line) !important;
	border-radius: 18px !important;
	box-shadow: 0 12px 36px rgba(0, 72, 81, .065) !important;
}

body.woocommerce-checkout #customer_details {
	grid-column: 1 !important;
	grid-row: 1 / span 2 !important;
	display: block !important;
	width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 16px !important;
	background: #f8fbfa !important;
	border: 1px solid var(--om-shop-line) !important;
	border-radius: 14px !important;
}

body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
}

/* Only billing details are collected; the separate shipping-address
   column and block are intentionally not shown. */
body.woocommerce-checkout #customer_details .col-2,
body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout .shipping_address {
	display: none !important;
}

body.woocommerce-checkout .woocommerce-billing-fields > h3 {
	margin: 0 0 13px !important;
	color: var(--om-shop-brand) !important;
	font-size: 18px !important;
	font-weight: 900 !important;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 12px !important;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper::after {
	content: "";
	display: table;
	clear: both;
}

body.woocommerce-checkout .form-row,
body.woocommerce-checkout .form-row-first,
body.woocommerce-checkout .form-row-last,
body.woocommerce-checkout .form-row-wide {
	float: none !important;
	clear: none !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.woocommerce-checkout .form-row-wide,
body.woocommerce-checkout #billing_phone_field,
body.woocommerce-checkout #billing_receiver_is_customer_field,
body.woocommerce-checkout #billing_address_1_field,
body.woocommerce-checkout #billing_country_field,
body.woocommerce-checkout .om-checkout-intro {
	grid-column: 1 / -1 !important;
}

/* Single-country checkout by design: the country field (and its hidden
   input) is not shown to the shopper. If this site ever needs to sell
   internationally, remove this block rather than editing around it. */
body.woocommerce-checkout #billing_country_field,
body.woocommerce-checkout input[type="hidden"]#billing_country {
	display: none !important;
}

body.woocommerce-checkout .form-row label {
	display: block !important;
	margin: 0 0 5px !important;
	color: #29484e !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 1.65 !important;
}

body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .select2-container,
body.woocommerce-checkout .select2-selection {
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	background: #fff !important;
	border: 1px solid var(--om-shop-line) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	font-family: inherit;
}

body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .select2-selection {
	min-height: 44px !important;
	padding: 8px 11px !important;
}

body.woocommerce-checkout .form-row textarea {
	min-height: 88px !important;
	padding: 10px 11px !important;
	resize: vertical !important;
}

body.woocommerce-checkout #billing_receiver_is_customer_field {
	margin: 4px 0 14px !important;
	padding: 11px 13px !important;
	background: #f7faf9;
	border: 1px solid var(--om-shop-line);
	border-radius: 10px;
}

body.woocommerce-checkout #billing_receiver_is_customer_field label {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0 !important;
	color: var(--om-shop-brand);
	font-weight: 850;
	cursor: pointer;
}

body.woocommerce-checkout #billing_receiver_is_customer {
	width: 19px;
	height: 19px;
	margin: 0;
	accent-color: var(--om-shop-brand);
}

body.woocommerce-checkout .om-checkout-recipient.is-om-hidden {
	display: none !important;
}

.om-checkout-intro {
	display: grid;
	gap: 4px;
	margin: 0 0 18px;
	padding: 13px 15px;
	color: #22464d;
	background: rgba(0, 72, 81, .055);
	border: 1px solid rgba(0, 72, 81, .15);
	border-inline-start: 4px solid var(--om-shop-gold);
	border-radius: 11px;
}

.om-checkout-intro strong {
	color: var(--om-shop-brand);
	font-size: 14px;
}

.om-checkout-intro span {
	color: var(--om-shop-muted);
	font-size: 12px;
	line-height: 1.8;
}

.om-checkout-intro--saved {
	background: #f2faf5;
	border-color: #cde7d5;
}

body.woocommerce-checkout #order_review_heading {
	grid-column: 2 !important;
	grid-row: 1 !important;
	align-self: end !important;
	margin: 0 !important;
	padding: 1px 2px 0 !important;
	color: var(--om-shop-brand) !important;
	font-size: 18px !important;
	font-weight: 900 !important;
}

body.woocommerce-checkout #order_review {
	grid-column: 2 !important;
	grid-row: 2 !important;
	width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 14px !important;
	background: #f8fbfa !important;
	border: 1px solid var(--om-shop-line) !important;
	border-radius: 14px !important;
}

body.woocommerce-checkout table.shop_table {
	width: 100% !important;
	margin: 0 0 12px !important;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	table-layout: auto !important;
	border: 1px solid var(--om-shop-line) !important;
	border-radius: 11px !important;
	overflow: hidden !important;
}

body.woocommerce-checkout table.shop_table th,
body.woocommerce-checkout table.shop_table td {
	padding: 9px 10px !important;
	vertical-align: top !important;
	border-color: #e3ecec !important;
	font-size: 11.5px !important;
	line-height: 1.7 !important;
}

body.woocommerce-checkout table.shop_table .product-name {
	width: 68% !important;
}

body.woocommerce-checkout table.shop_table .product-total {
	white-space: nowrap !important;
}

body.woocommerce-checkout table.shop_table dl.variation,
body.woocommerce-checkout table.shop_table .wc-item-meta {
	display: grid !important;
	grid-template-columns: auto 1fr !important;
	gap: 2px 5px !important;
	margin: 5px 0 0 !important;
	color: #70858a !important;
	font-size: 10px !important;
}

body.woocommerce-checkout #payment {
	margin: 0 !important;
	padding: 12px !important;
	background: #f1f5f5 !important;
	border: 0 !important;
	border-radius: 11px !important;
}

body.woocommerce-checkout #payment ul.payment_methods {
	margin: 0 0 10px !important;
	padding: 0 !important;
	border: 0 !important;
}

body.woocommerce-checkout #payment li.wc_payment_method {
	margin: 0 !important;
	padding: 10px 0 !important;
	border-bottom: 1px solid #dfe8e8 !important;
}

body.woocommerce-checkout #payment .payment_box {
	margin: 7px 0 0 !important;
	padding: 10px !important;
	background: #fff !important;
	border-radius: 8px !important;
	font-size: 11px !important;
}

body.woocommerce-checkout #payment .place-order {
	margin: 0 !important;
	padding: 10px 0 0 !important;
}

body.woocommerce-checkout #payment .woocommerce-privacy-policy-text {
	margin-bottom: 10px !important;
	color: #60767b !important;
	font-size: 11px !important;
	line-height: 1.8 !important;
}

body.woocommerce-checkout #place_order {
	width: 100%;
	min-height: 52px;
	color: #fff !important;
	background: var(--om-shop-brand) !important;
	border: 0 !important;
	border-radius: 11px !important;
	font-family: inherit;
	font-weight: 900;
}

body.woocommerce-checkout #place_order:hover {
	background: var(--om-shop-gold) !important;
}

/* --- Coupon form (sits outside form.checkout) --- */

body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout form.checkout_coupon,
body.woocommerce-checkout .woocommerce-notices-wrapper {
	width: min(1120px, calc(100% - 24px));
	max-width: 1120px;
	margin-inline: auto;
}

body.woocommerce-checkout form.checkout_coupon {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	gap: 10px !important;
	padding: 14px !important;
	border: 1px solid var(--om-shop-line) !important;
	border-radius: 12px !important;
}

body.woocommerce-checkout form.checkout_coupon > p:first-child {
	grid-column: 1 / -1 !important;
}

body.woocommerce-checkout form.checkout_coupon .form-row {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
}

/* --- WooCommerce Blocks checkout (if the block-based checkout is used) --- */

body.woocommerce-checkout .wc-block-checkout,
body.woocommerce-checkout .wc-block-components-sidebar-layout {
	width: 100%;
	max-width: 1120px;
	margin-inline: auto;
}

/* ----------------------------------------------------------------
 * Mobile filter drawer (shop/archive sidebar on small screens)
 *
 * Previous version: `inset-inline-end:0` + `translateX(105%)`. In an RTL
 * document inline-end is the LEFT edge, so the "closed" drawer was pushed
 * from the left edge back into the viewport: a 5px strip on phones and up to
 * the whole 390px panel on 600–860px tablets, covering products. It was also
 * never `visibility:hidden`, so its links stayed focusable while closed.
 *
 * Now: anchored to the physical right edge (left for LTR pages), hidden with
 * transform + visibility, sized with top/bottom instead of 100vh (iOS Safari
 * toolbars), no `inset` shorthand (Safari < 14.1) and no `dvh` dependency.
 * ---------------------------------------------------------------- */

@keyframes omFilterFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

@media (max-width: 860px) {
	body.woocommerce .om-mobile-filter-toggle {
		display: flex;
	}

	/* Opener created by JS for pages cached before this version. */
	body.woocommerce .om-mobile-filter-toggle--injected {
		clear: both;
		margin: 0 0 14px;
	}

	body.woocommerce .om-woo-aside#omShopFilters {
		position: fixed !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: auto !important;
		z-index: 999994;
		display: block !important;
		/* The parent gives .om-woo-aside `align-self:start`. Engines that apply
		   box alignment to absolutely positioned boxes (Chrome 125+, recent
		   Firefox/Safari) then shrink-wrap the drawer to its content height,
		   ignoring top/bottom — it grew taller than the screen and could not
		   scroll. `stretch` restores the inset-defined height everywhere. */
		align-self: stretch !important;
		justify-self: auto !important;
		width: 88% !important;
		max-width: 400px !important;
		height: auto !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		background: #f7f9f9;
		box-shadow: -18px 0 42px rgba(9, 25, 29, .2);
		visibility: hidden;
		-webkit-transform: translate3d(100%, 0, 0);
		transform: translate3d(100%, 0, 0);
		transition: transform .28s ease, visibility 0s linear .28s;
	}

	body.woocommerce.om-filters-open .om-woo-aside#omShopFilters {
		visibility: visible;
		-webkit-transform: none;
		transform: none;
		transition: transform .28s ease, visibility 0s linear 0s;
	}

	html[dir="ltr"] body.woocommerce .om-woo-aside#omShopFilters,
	body.woocommerce.oml-dir-ltr .om-woo-aside#omShopFilters,
	body.woocommerce.oml-lang-en .om-woo-aside#omShopFilters {
		right: auto !important;
		left: 0 !important;
		box-shadow: 18px 0 42px rgba(9, 25, 29, .2);
		-webkit-transform: translate3d(-100%, 0, 0);
		transform: translate3d(-100%, 0, 0);
	}

	html[dir="ltr"] body.woocommerce.om-filters-open .om-woo-aside#omShopFilters,
	body.woocommerce.oml-dir-ltr.om-filters-open .om-woo-aside#omShopFilters,
	body.woocommerce.oml-lang-en.om-filters-open .om-woo-aside#omShopFilters {
		-webkit-transform: none;
		transform: none;
	}

	body.woocommerce .om-woo-aside#omShopFilters .om-woo-aside__box {
		min-height: 100%;
		padding: 0 14px 14px !important;
		padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px)) !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		overflow: visible !important;
	}

	body.woocommerce .om-mobile-filter-head {
		position: -webkit-sticky;
		position: sticky;
		top: 0;
		z-index: 3;
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin: 0 -14px 14px !important;
		padding: 12px 14px;
		padding-top: calc(12px + env(safe-area-inset-top, 0px));
		color: var(--om-shop-brand);
		background: #fff;
		border-bottom: 1px solid var(--om-shop-line);
		box-shadow: 0 6px 18px rgba(0, 72, 81, .06);
	}

	body.woocommerce .om-mobile-filter-head strong {
		display: block;
		min-width: 0;
		margin: 0;
		margin-inline-end: 10px;
		font-size: 15px;
		font-weight: 900;
		line-height: 1.5;
		outline: 0;
	}

	body.woocommerce .om-mobile-filter-head button {
		display: flex;
		flex: 0 0 40px;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		min-width: 40px;
		margin: 0;
		padding: 0;
		color: var(--om-shop-brand);
		background: var(--om-shop-brand-soft);
		border: 0;
		border-radius: 50%;
		box-shadow: none;
		font-size: 24px;
		line-height: 1;
		cursor: pointer;
		-webkit-appearance: none;
		appearance: none;
		-webkit-tap-highlight-color: transparent;
		touch-action: manipulation;
	}

	body.woocommerce .om-mobile-filter-head button svg {
		display: block;
		width: 20px;
		height: 20px;
	}

	/* reset.css gives every button `transition: all .3s`, which also delays
	   the inherited `visibility` when the drawer opens; the close button
	   would stay hidden (and unfocusable) for the first frame. */
	body.woocommerce .om-woo-aside#omShopFilters .om-mobile-filter-head button {
		transition: background-color .2s ease, color .2s ease;
	}

	/* reset.css paints button:focus solid teal; programmatic focus on open
	   should not look "pressed" on touch screens. */
	body.woocommerce .om-mobile-filter-head button:focus,
	body.woocommerce .om-mobile-filter-head button:active {
		color: var(--om-shop-brand);
		background: var(--om-shop-brand-soft);
	}

	body.woocommerce .om-mobile-filter-head button:focus-visible {
		color: #fff;
		background: var(--om-shop-brand);
		outline: 2px solid var(--om-shop-gold);
		outline-offset: 2px;
	}

	/* The backdrop is a <button>; reset.css paints every button:hover solid
	   teal, which flashed an opaque layer over the page on tap/hover. */
	body.woocommerce .om-filter-backdrop:not([hidden]),
	body.woocommerce .om-filter-backdrop:not([hidden]):hover,
	body.woocommerce .om-filter-backdrop:not([hidden]):focus,
	body.woocommerce .om-filter-backdrop:not([hidden]):active {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 999993;
		display: block;
		width: 100%;
		height: 100%;
		margin: 0;
		padding: 0;
		background: rgba(9, 25, 29, .55);
		border: 0;
		border-radius: 0;
		outline: 0;
		box-shadow: none;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
		touch-action: none;
		-webkit-animation: omFilterFadeIn .2s ease;
		animation: omFilterFadeIn .2s ease;
	}

	html.om-filters-open,
	body.om-filters-open {
		overflow: hidden !important;
	}

	#omShopFilters,
	#omShopFilters .omW,
	#omShopFilters .om-woo-aside__box,
	#omShopFilters form,
	#omShopFilters input,
	#omShopFilters select,
	#omShopFilters button {
		max-width: 100% !important;
		box-sizing: border-box !important;
	}

	#omShopFilters .omW {
		padding: 12px !important;
		background: #fff;
	}

	#omShopFilters .omW__t {
		font-size: 14px !important;
		margin-bottom: 9px !important;
	}

	#omShopFilters .om-price-inputs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 7px;
	}

	#omShopFilters .om-price-inputs input,
	#omShopFilters .om-search-form input {
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		min-height: 44px !important;
		font-size: 16px !important;
	}

	#omShopFilters .om-price-inputs input[type="number"] {
		-moz-appearance: textfield;
	}

	#omShopFilters .om-price-inputs input[type="number"]::-webkit-inner-spin-button,
	#omShopFilters .om-price-inputs input[type="number"]::-webkit-outer-spin-button {
		margin: 0;
		-webkit-appearance: none;
	}

	#omShopFilters .om-price-form button,
	#omShopFilters .om-search-form button {
		min-height: 44px !important;
	}

	#omShopFilters .om-search-form button {
		width: 48px;
		height: 44px;
	}

	#omShopFilters .om-cat-list li a,
	#omShopFilters .om-cat-list__link {
		min-height: 44px;
		padding-top: 9px;
		padding-bottom: 9px;
	}

	#omShopFilters .om-cat-list__link--depth-4,
	#omShopFilters .om-cat-list__link--depth-5,
	#omShopFilters .om-cat-list__link--depth-6,
	#omShopFilters .om-cat-list__link--depth-7,
	#omShopFilters .om-cat-list__link--depth-8 {
		padding-inline-start: 42px !important;
	}
}

/* ----------------------------------------------------------------
 * Responsive — general layout, consolidated one block per breakpoint
 * ---------------------------------------------------------------- */

@media (max-width: 1160px) {
	.om-sproduct__main {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.om-sproduct__gallery {
		position: static;
		max-width: 620px !important;
		margin-inline: auto;
	}
}

@media (max-width: 1100px) {
	.om-cart-item {
		grid-template-columns: 78px minmax(0, 1fr) 86px 80px 36px;
	}

	.om-ci-price {
		display: none;
	}

	body.single-product .om-woo-layout {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body.single-product .om-woo-aside {
		position: static !important;
		max-height: none !important;
		overflow: visible !important;
	}
}

@media (max-width: 940px) {
	body.woocommerce-checkout form.checkout {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body.woocommerce-checkout #customer_details,
	body.woocommerce-checkout #order_review_heading,
	body.woocommerce-checkout #order_review {
		grid-column: 1 !important;
		grid-row: auto !important;
	}
}

@media (max-width: 860px) {
	.om-cart-wrap {
		width: min(100% - 22px, 1240px);
	}

	body.post-type-archive-product .om-woo-layout,
	body.tax-product_cat .om-woo-layout,
	body.tax-product_tag .om-woo-layout,
	body.woocommerce-shop .om-woo-layout,
	.om-woo-layout {
		display: block !important;
	}

	body.single-product .om-woo-aside {
		position: static !important;
		order: 2;
	}

	body.single-product .om-woo-main-col {
		order: 1;
	}

	.om-cart-layout {
		grid-template-columns: 1fr;
	}

	.om-cart-totals-col {
		position: static;
	}

	.om-cart-item {
		grid-template-columns: 72px minmax(0, 1fr) 82px 34px;
	}

	.om-ci-subtotal {
		display: none;
	}

	.om-cart-actions {
		flex-direction: column;
	}

	.om-sproduct__gallery,
	.om-sproduct__summary,
	.om-sproduct__purchase--wreath {
		padding: 11px !important;
		border-radius: 13px !important;
	}

	.om-sproduct__main {
		gap: 11px !important;
	}

	.om-sproduct__title,
	body.single-product h1.product_title {
		font-size: 22px !important;
	}

	.om-sproduct__gallery .woocommerce-product-gallery__image img {
		max-height: min(70vh, 430px) !important;
	}

	.om-sproduct__share {
		gap: 7px !important;
	}

	body.woocommerce-checkout form.checkout_coupon {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body.woocommerce-checkout form.checkout_coupon .form-row,
	body.woocommerce-checkout form.checkout_coupon button {
		width: 100% !important;
	}

	body.woocommerce-checkout .wc-block-components-sidebar-layout {
		display: block !important;
	}

	body.woocommerce-checkout .wc-block-components-sidebar,
	body.woocommerce-checkout .wc-block-components-main {
		width: 100% !important;
		padding: 0 !important;
	}
}

@media (max-width: 760px) {
	.om-sproduct form.cart {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

@media (max-width: 600px) {
	body.woocommerce-checkout .woocommerce {
		width: min(100% - 14px, 1120px);
		margin-top: 8px;
	}

	body.woocommerce-checkout form.checkout {
		gap: 12px !important;
		padding: 9px !important;
		border-radius: 14px !important;
	}

	body.woocommerce-checkout #customer_details,
	body.woocommerce-checkout #order_review {
		padding: 11px !important;
		border-radius: 11px !important;
	}

	body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 10px !important;
	}

	body.woocommerce-checkout .form-row,
	body.woocommerce-checkout .form-row-first,
	body.woocommerce-checkout .form-row-last,
	body.woocommerce-checkout .form-row-wide {
		grid-column: 1 !important;
		width: 100% !important;
	}

	body.woocommerce-checkout table.shop_table th,
	body.woocommerce-checkout table.shop_table td {
		padding: 8px !important;
		font-size: 10.5px !important;
	}

	.om-sproduct__gallery,
	.om-sproduct__summary {
		padding: 11px !important;
		border-radius: 14px !important;
	}

	.om-sproduct__summary {
		gap: 9px !important;
	}

	.om-sproduct__purchase--wreath {
		margin-top: 12px;
		padding: 13px !important;
		border-radius: 15px !important;
	}

	.om-sproduct__purchase--standard form.cart,
	.om-sproduct__purchase--wreath form.cart {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.om-sproduct__title,
	body.single-product h1.product_title {
		font-size: 23px !important;
	}

	.om-sproduct__gallery .woocommerce-product-gallery__image img {
		max-height: 410px !important;
	}

}

@media (max-width: 560px) {
	.om-sproduct__summary,
	.om-sproduct__tabs,
	.om-sproduct__related,
	body.woocommerce-checkout form.checkout {
		padding: 15px !important;
		border-radius: 15px;
	}

	#omShopFilters .omW--supplementary,
	#omShopFilters .omSideMount {
		display: none !important;
	}

	.om-fields-grid {
		grid-template-columns: 1fr;
	}

	.om-field-row--full,
	.om-field-group-title,
	.om-recipient-self {
		grid-column: 1;
	}

	.om-store-order {
		padding: 13px;
	}

	.om-store-order__header {
		align-items: flex-start;
		flex-direction: column;
	}

	.om-donation-presets {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.om-donation-custom {
		grid-template-columns: 1fr;
	}

	.om-cart-header {
		padding: 16px;
	}

	.om-cart-header h1 {
		font-size: 21px;
	}

	.om-cart-item {
		grid-template-columns: 64px minmax(0, 1fr) 32px;
		align-items: start;
	}

	.om-ci-thumb img {
		width: 64px;
		height: 64px;
	}

	.om-ci-qty {
		grid-column: 2;
	}

	.om-ci-subtotal,
	.om-ci-price {
		display: none;
	}

	.om-coupon-box,
	.om-cart-actions-btns {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 390px) {
	.om-donation-presets {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ================================================================
 * v2.7.0 — Shop archive responsive layout (single source of truth)
 *
 * Column counts are explicit per viewport so every engine produces the
 * same grid: 3 → 2 columns next to the sidebar on desktop (auto-fill),
 * 3 columns on tablets, 2 columns on phones from 340px, 1 column below.
 * ================================================================ */

@media (max-width: 860px) {
	/* One gutter instead of main margin + shell padding (was ~21px a side). */
	body.woocommerce.archive main.om-woo-main,
	body.single-product main.om-woo-main {
		width: 100% !important;
		max-width: none !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
		/* Hello's theme.css adds 10px inline padding below 576px on top of the
		   shell gutter; one gutter is enough on a 360px screen. */
		padding-right: 0 !important;
		padding-left: 0 !important;
	}

	body.woocommerce .om-woo-main .om-shell {
		padding-right: 16px !important;
		padding-left: 16px !important;
	}

	body.woocommerce .om-shop-toolbar {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		grid-template-areas:
			"summary summary"
			"filter order";
		gap: 10px;
		margin-bottom: 14px;
		padding: 12px;
		border-radius: 16px;
	}

	body.woocommerce .om-shop-toolbar--empty {
		grid-template-areas:
			"summary summary"
			"filter reset";
	}

	.om-shop-toolbar__count {
		font-size: 16px;
	}

	.om-shop-toolbar__range {
		font-size: 12px;
	}

	/* Label stays available to assistive tech; the control is half width. */
	.om-shop-order__label {
		position: absolute !important;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
		border: 0;
	}

	body.woocommerce ul.products,
	body.woocommerce-page ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 14px !important;
	}

	body.woocommerce .om-pcard__body,
	body.woocommerce-page .om-pcard__body {
		padding: 12px;
	}

	body.woocommerce .om-pcard__title,
	body.woocommerce-page .om-pcard__title {
		font-size: 14px !important;
	}

	body.woocommerce .om-pcard__price,
	body.woocommerce-page .om-pcard__price {
		font-size: 14px;
	}

	body.woocommerce .om-pcard__btn,
	body.woocommerce-page .om-pcard__btn {
		min-height: 42px;
		padding: 7px 8px;
		font-size: 12.5px;
	}
}

@media (max-width: 699px) {
	body.woocommerce ul.products,
	body.woocommerce-page ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 12px !important;
	}
}

@media (max-width: 600px) {
	body.woocommerce .om-woo-main .om-shell {
		padding-right: 12px !important;
		padding-left: 12px !important;
	}
}

@media (max-width: 480px) {
	body.woocommerce ul.products,
	body.woocommerce-page ul.products {
		gap: 10px !important;
	}

	body.woocommerce .om-pcard,
	body.woocommerce-page .om-pcard {
		border-radius: 14px;
	}

	body.woocommerce .om-pcard__body,
	body.woocommerce-page .om-pcard__body {
		padding: 10px;
	}

	body.woocommerce .om-pcard__badge,
	body.woocommerce-page .om-pcard__badge {
		top: 8px;
		left: 8px;
		min-height: 22px;
		padding: 2px 8px;
		font-size: 10.5px;
	}

	html[dir="ltr"] body.woocommerce .om-pcard__badge,
	body.woocommerce.oml-dir-ltr .om-pcard__badge,
	body.woocommerce.oml-lang-en .om-pcard__badge {
		right: 8px;
		left: auto;
	}

	body.woocommerce .om-pcard__cat,
	body.woocommerce-page .om-pcard__cat {
		font-size: 11px;
	}

	body.woocommerce .om-pcard__title,
	body.woocommerce-page .om-pcard__title {
		margin-bottom: 8px !important;
		font-size: 13.5px !important;
		line-height: 1.7 !important;
	}

	body.woocommerce .om-pcard__title a,
	body.woocommerce-page .om-pcard__title a {
		max-height: 3.4em;
	}

	body.woocommerce .om-pcard__footer,
	body.woocommerce-page .om-pcard__footer {
		gap: 8px;
		padding-top: 10px;
	}

	body.woocommerce .om-pcard__price,
	body.woocommerce-page .om-pcard__price {
		font-size: 13.5px;
		text-align: center;
	}

	body.woocommerce .om-pcard__btn,
	body.woocommerce-page .om-pcard__btn {
		min-height: 40px;
		padding: 6px 6px;
		border-radius: 10px;
		font-size: 12px;
	}

	body.woocommerce .om-shop-toolbar__range {
		font-size: 11.5px;
	}

	body.woocommerce .om-mobile-filter-toggle,
	body.woocommerce .om-shop-toolbar__reset {
		padding-right: 8px;
		padding-left: 8px;
		font-size: 13px;
	}

	/* With an active-filter badge the icon is dropped so the label fits. */
	body.woocommerce .om-mobile-filter-toggle--active svg {
		display: none;
	}
}

@media (max-width: 359px) {
	body.woocommerce .om-woo-main .om-shell {
		padding-right: 10px !important;
		padding-left: 10px !important;
	}

	body.woocommerce .om-shop-toolbar,
	body.woocommerce .om-shop-toolbar--empty {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"summary"
			"filter"
			"order";
	}

	body.woocommerce .om-shop-toolbar--empty {
		grid-template-areas:
			"summary"
			"filter"
			"reset";
	}

	#omShopFilters .om-price-inputs {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

@media (max-width: 339px) {
	body.woocommerce ul.products,
	body.woocommerce-page ul.products {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

/* ================================================================
 * v2.7.0 — Mobile & cross-browser hardening for all WooCommerce views
 * ================================================================ */

/* Safari < 16 has no `overflow: clip`; without a fallback nothing stopped
   horizontal panning there. `hidden` on <body> propagates to the viewport,
   so it does not create a scroll container. */
@supports not (overflow-x: clip) {
	body.woocommerce,
	body.woocommerce-page {
		overflow-x: hidden;
	}
}

/* iOS Safari zooms the whole page when a form control under 16px gets
   focus and does not zoom back. Applies to phones and touch tablets. */
@media (max-width: 767px), (pointer: coarse) {
	body.woocommerce input[type="text"],
	body.woocommerce input[type="email"],
	body.woocommerce input[type="tel"],
	body.woocommerce input[type="number"],
	body.woocommerce input[type="search"],
	body.woocommerce input[type="password"],
	body.woocommerce input[type="url"],
	body.woocommerce input[type="date"],
	body.woocommerce select,
	body.woocommerce textarea,
	body.woocommerce-page input[type="text"],
	body.woocommerce-page input[type="email"],
	body.woocommerce-page input[type="tel"],
	body.woocommerce-page input[type="number"],
	body.woocommerce-page input[type="search"],
	body.woocommerce-page input[type="password"],
	body.woocommerce-page input[type="url"],
	body.woocommerce-page input[type="date"],
	body.woocommerce-page select,
	body.woocommerce-page textarea,
	body.woocommerce .om-shop-order select.orderby,
	body.woocommerce-page .om-shop-order select.orderby,
	body.woocommerce .select2-container .select2-search__field,
	body.woocommerce-page .select2-container .select2-search__field {
		font-size: 16px !important;
	}
}

/* Tap feedback without the grey iOS/Android flash; no double-tap delay. */
body.woocommerce .om-woo-main a,
body.woocommerce .om-woo-main button,
body.woocommerce-page .om-woo-main a,
body.woocommerce-page .om-woo-main button {
	-webkit-tap-highlight-color: rgba(0, 72, 81, .12);
	touch-action: manipulation;
}

@media (prefers-reduced-motion: reduce) {
	body.woocommerce .om-woo-aside#omShopFilters,
	body.woocommerce .om-pcard,
	body.woocommerce .om-pcard__thumb img {
		transition: none !important;
	}
}

/* Omid 3.1.6 compiled colour companion: child-6cfd6fbb1f.css */
/* Colour-only companion for child:woocommerce/assets/css/omid-storefront-v4.css. Geometry and media are preserved. */
@media screen{
html[data-omid-theme="dark"] body.woocommerce,html[data-omid-theme="dark"] body.woocommerce-page{color:var(--om-color-text);}
html[data-omid-theme="dark"] body.woocommerce .woocommerce-breadcrumb,html[data-omid-theme="dark"] body.woocommerce-page .woocommerce-breadcrumb{color:var(--om-color-muted);background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] body.woocommerce .woocommerce-breadcrumb a,html[data-omid-theme="dark"] body.woocommerce-page .woocommerce-breadcrumb a{color:var(--om-color-accent);}
html[data-omid-theme="dark"] body.woocommerce .woocommerce-message,html[data-omid-theme="dark"] body.woocommerce .woocommerce-info,html[data-omid-theme="dark"] body.woocommerce .woocommerce-error,html[data-omid-theme="dark"] body.woocommerce-page .woocommerce-message,html[data-omid-theme="dark"] body.woocommerce-page .woocommerce-info,html[data-omid-theme="dark"] body.woocommerce-page .woocommerce-error{color:var(--om-color-text);background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] body.post-type-archive-product .page-title,html[data-omid-theme="dark"] body.tax-product_cat .page-title,html[data-omid-theme="dark"] body.tax-product_tag .page-title,html[data-omid-theme="dark"] body.woocommerce-shop .page-title{color:var(--om-color-accent);}
html[data-omid-theme="dark"] body.post-type-archive-product .term-description,html[data-omid-theme="dark"] body.tax-product_cat .term-description,html[data-omid-theme="dark"] body.tax-product_tag .term-description{color:var(--om-color-text);background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] body.woocommerce .term-description h2,html[data-omid-theme="dark"] body.woocommerce .term-description h3{color:var(--om-color-accent);}
html[data-omid-theme="dark"] body.woocommerce .term-description p,html[data-omid-theme="dark"] body.woocommerce .term-description li{color:var(--om-color-muted);}
html[data-omid-theme="dark"] .om-no-products{color:var(--om-color-muted);background:var(--om-color-surface);border:1px dashed var(--om-color-line);}
html[data-omid-theme="dark"] .om-no-products svg{color:var(--om-color-accent);}
html[data-omid-theme="dark"] body.woocommerce .om-shop-toolbar{background:linear-gradient(135deg, var(--om-color-soft), var(--om-color-soft)),
		var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-shop-toolbar__count{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-shop-toolbar__range{color:var(--om-color-muted);}
html[data-omid-theme="dark"] .om-shop-order__label{color:var(--om-color-accent);}
html[data-omid-theme="dark"] body.woocommerce .om-shop-order select.orderby,html[data-omid-theme="dark"] body.woocommerce-page .om-shop-order select.orderby{color:var(--om-color-text)!important;background-color:var(--om-color-surface)!important;border:1px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] body.woocommerce .om-shop-order select.orderby option{color:var(--om-color-text);background:var(--om-color-surface);}
html[data-omid-theme="dark"] body.woocommerce .om-shop-order select.orderby:hover{border-color:var(--om-color-line)!important;}
html[data-omid-theme="dark"] .om-shop-toolbar__reset{color:var(--om-color-accent)!important;background:var(--om-color-surface);}
html[data-omid-theme="dark"] body.woocommerce .om-pcard,html[data-omid-theme="dark"] body.woocommerce-page .om-pcard{background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] body.woocommerce .om-pcard__thumb,html[data-omid-theme="dark"] body.woocommerce-page .om-pcard__thumb{background:var(--om-color-soft);}
html[data-omid-theme="dark"] .om-pcard__stock-badge{color:var(--om-color-text);background:var(--om-color-soft);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-pcard__stock-badge--reserved{color:var(--om-color-accent);background:var(--om-color-surface);border-color:var(--om-color-line);}
html[data-omid-theme="dark"] body.woocommerce .om-pcard__cat,html[data-omid-theme="dark"] body.woocommerce-page .om-pcard__cat{color:var(--om-color-accent)!important;}
html[data-omid-theme="dark"] body.woocommerce .om-pcard__title,html[data-omid-theme="dark"] body.woocommerce-page .om-pcard__title{color:var(--om-color-text);}
html[data-omid-theme="dark"] body.woocommerce .om-pcard__title a,html[data-omid-theme="dark"] body.woocommerce-page .om-pcard__title a{color:var(--om-color-text)!important;}
html[data-omid-theme="dark"] body.woocommerce .om-pcard__footer,html[data-omid-theme="dark"] body.woocommerce-page .om-pcard__footer{border-top:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] body.woocommerce .om-pcard__price,html[data-omid-theme="dark"] body.woocommerce-page .om-pcard__price{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-pcard__price del{color:var(--om-color-text);}
html[data-omid-theme="dark"] body.woocommerce nav.woocommerce-pagination ul li a,html[data-omid-theme="dark"] body.woocommerce nav.woocommerce-pagination ul li span{color:var(--om-color-accent);background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] body.woocommerce nav.woocommerce-pagination ul li span.dots{border-color:var(--om-color-line);}
html[data-omid-theme="dark"] .om-woo-aside__box{background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-sproduct__gallery,html[data-omid-theme="dark"] .om-sproduct__summary{background:var(--om-color-surface)!important;border:1px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] .om-sproduct__cat{color:var(--om-color-accent)!important;background:var(--om-color-soft);}
html[data-omid-theme="dark"] .om-sproduct__title,html[data-omid-theme="dark"] body.single-product h1.product_title{color:var(--om-color-accent)!important;}
html[data-omid-theme="dark"] .om-sproduct__price{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-sproduct__price del{color:var(--om-color-text);}
html[data-omid-theme="dark"] .om-sproduct__short{color:var(--om-color-muted);}
html[data-omid-theme="dark"] .om-sproduct__meta,html[data-omid-theme="dark"] .om-sproduct__share{border-top:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-sproduct__share > a{background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-sproduct__purchase-head > span{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-sproduct__purchase-head h2{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-sproduct__purchase-head p{color:var(--om-color-muted);}
html[data-omid-theme="dark"] .om-sproduct__purchase--wreath{background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-sproduct__purchase--wreath .om-sproduct__purchase-head{border-bottom:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-sproduct form.cart .quantity .qty{color:var(--om-color-accent);background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-sproduct form.cart .om-buy-now{color:var(--om-color-accent)!important;background:var(--om-color-surface)!important;}
html[data-omid-theme="dark"] .om-cart-choice{color:var(--om-color-muted);}
html[data-omid-theme="dark"] .om-stock-notice{background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-store-order{background:linear-gradient(180deg, var(--om-color-surface) 0%, var(--om-color-surface) 100%);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-store-order__header{border-bottom:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-store-order__eyebrow{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-store-order__header h2{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-store-order__notice{color:var(--om-color-accent);background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-field-group-title{color:var(--om-color-accent)!important;border-bottom:1px dashed var(--om-color-line);}
html[data-omid-theme="dark"] .om-field-row label,html[data-omid-theme="dark"] .om-store-order .form-row label{color:var(--om-color-text);}
html[data-omid-theme="dark"] .om-field-row .required,html[data-omid-theme="dark"] .om-store-order .required{color:var(--om-color-text);}
html[data-omid-theme="dark"] .om-field-row input,html[data-omid-theme="dark"] .om-field-row select,html[data-omid-theme="dark"] .om-field-row textarea,html[data-omid-theme="dark"] .om-store-order .form-row input,html[data-omid-theme="dark"] .om-store-order .form-row select,html[data-omid-theme="dark"] .om-store-order .select2-selection{color:var(--om-color-text)!important;background:var(--om-color-surface)!important;border:1px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] .om-recipient-self{background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-recipient-self > label{color:var(--om-color-accent)!important;}
html[data-omid-theme="dark"] .om-recipient-self__control{background:var(--om-color-surface);border:2px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-recipient-self input:checked + .om-recipient-self__control::after{border:solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-recipient-self small{color:var(--om-color-muted);}
html[data-omid-theme="dark"] .om-donation-section{background:linear-gradient(135deg, var(--om-color-surface), var(--om-color-surface));border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-donation-section__head strong{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-donation-section__head span{color:var(--om-color-muted);}
html[data-omid-theme="dark"] .om-donation-btn,html[data-omid-theme="dark"] .om-sproduct .om-donation-btn,html[data-omid-theme="dark"] .om-sproduct button.om-donation-btn{color:var(--om-color-accent)!important;background:var(--om-color-surface)!important;border:1px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] .om-donation-btn:hover,html[data-omid-theme="dark"] .om-sproduct .om-donation-btn:hover{color:var(--om-color-accent)!important;background:var(--om-color-soft)!important;}
html[data-omid-theme="dark"] .om-donation-btn:focus-visible,html[data-omid-theme="dark"] .om-sproduct .om-donation-btn:focus-visible{color:var(--om-color-accent)!important;background:var(--om-color-soft)!important;}
html[data-omid-theme="dark"] .om-donation-custom{color:var(--om-color-text);}
html[data-omid-theme="dark"] .om-donation-custom input{background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-donation-summary{background:var(--om-color-soft);border-top:1px dashed var(--om-color-line);}
html[data-omid-theme="dark"] .om-sum-row{color:var(--om-color-muted);}
html[data-omid-theme="dark"] .om-sum-row strong{color:var(--om-color-text);}
html[data-omid-theme="dark"] .om-sum-total{color:var(--om-color-accent);border-top:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-sum-total strong{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-sproduct__tabs,html[data-omid-theme="dark"] .om-sproduct__related{background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-sproduct__tabs .tabs{border-bottom:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-sproduct__tabs .tabs li a{color:var(--om-color-muted)!important;border-bottom:2px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-sproduct__tabs .tabs li.active a{color:var(--om-color-accent)!important;}
html[data-omid-theme="dark"] .om-sproduct__related > section > h2,html[data-omid-theme="dark"] .om-sproduct__related > h2{color:var(--om-color-accent);}
html[data-omid-theme="dark"] body.single-product #review_form input:not([type="checkbox"]):not([type="submit"]),html[data-omid-theme="dark"] body.single-product #review_form textarea{border:1px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] body.single-product .pswp__button--close{border:2px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] .om-cart-header-icon{background:var(--om-color-soft);}
html[data-omid-theme="dark"] .om-cart-items-col,html[data-omid-theme="dark"] .om-cart-totals-box,html[data-omid-theme="dark"] .om-cart-trust{background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-cart-item{border-bottom:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-ci-name a{color:var(--om-color-accent)!important;}
html[data-omid-theme="dark"] .om-ci-meta dl{color:var(--om-color-muted);}
html[data-omid-theme="dark"] .om-ci-label{color:var(--om-color-muted);}
html[data-omid-theme="dark"] .om-ci-qty .qty{border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-remove-btn{color:var(--om-color-text);background:var(--om-color-surface);}
html[data-omid-theme="dark"] .om-coupon-input{border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-coupon-btn,html[data-omid-theme="dark"] .om-continue-shopping,html[data-omid-theme="dark"] .om-update-cart,html[data-omid-theme="dark"] .om-cart-wrap .checkout-button{color:var(--om-color-accent)!important;background:var(--om-color-surface)!important;}
html[data-omid-theme="dark"] .om-cart-totals-head,html[data-omid-theme="dark"] .om-cart-items-head{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-tr{color:var(--om-color-muted);border-bottom:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-tr.order-total{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-trust-item{color:var(--om-color-muted);}
html[data-omid-theme="dark"] body.woocommerce-checkout form.checkout{background:var(--om-color-surface)!important;border:1px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout #customer_details{background:var(--om-color-surface)!important;border:1px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout .woocommerce-billing-fields > h3{color:var(--om-color-accent)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout .form-row label{color:var(--om-color-muted)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout .form-row input.input-text,html[data-omid-theme="dark"] body.woocommerce-checkout .form-row textarea,html[data-omid-theme="dark"] body.woocommerce-checkout .form-row select,html[data-omid-theme="dark"] body.woocommerce-checkout .select2-container,html[data-omid-theme="dark"] body.woocommerce-checkout .select2-selection{background:var(--om-color-surface)!important;border:1px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout #billing_receiver_is_customer_field{background:var(--om-color-surface);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] body.woocommerce-checkout #billing_receiver_is_customer_field label{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-checkout-intro{color:var(--om-color-accent);background:var(--om-color-soft);border:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] .om-checkout-intro strong{color:var(--om-color-accent);}
html[data-omid-theme="dark"] .om-checkout-intro span{color:var(--om-color-muted);}
html[data-omid-theme="dark"] .om-checkout-intro--saved{background:var(--om-color-surface);border-color:var(--om-color-line);}
html[data-omid-theme="dark"] body.woocommerce-checkout #order_review_heading{color:var(--om-color-accent)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout #order_review{background:var(--om-color-surface)!important;border:1px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout table.shop_table{border:1px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout table.shop_table th,html[data-omid-theme="dark"] body.woocommerce-checkout table.shop_table td{border-color:var(--om-color-line)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout table.shop_table dl.variation,html[data-omid-theme="dark"] body.woocommerce-checkout table.shop_table .wc-item-meta{color:var(--om-color-muted)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout #payment{background:var(--om-color-soft)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout #payment li.wc_payment_method{border-bottom:1px solid var(--om-color-line)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout #payment .payment_box{background:var(--om-color-surface)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout #payment .woocommerce-privacy-policy-text{color:var(--om-color-muted)!important;}
html[data-omid-theme="dark"] body.woocommerce-checkout form.checkout_coupon{border:1px solid var(--om-color-line)!important;}
@media (max-width: 860px){html[data-omid-theme="dark"] body.woocommerce .om-woo-aside#omShopFilters{background:var(--om-color-surface);}
html[data-omid-theme="dark"] body.woocommerce .om-mobile-filter-head{color:var(--om-color-accent);background:var(--om-color-surface);border-bottom:1px solid var(--om-color-line);}
html[data-omid-theme="dark"] body.woocommerce .om-mobile-filter-head button{color:var(--om-color-accent);background:var(--om-color-soft);}
html[data-omid-theme="dark"] body.woocommerce .om-mobile-filter-head button:focus,html[data-omid-theme="dark"] body.woocommerce .om-mobile-filter-head button:active{color:var(--om-color-accent);background:var(--om-color-soft);}
html[data-omid-theme="dark"] #omShopFilters .omW{background:var(--om-color-surface);}}
}

