/*
Theme Name: Az
Theme URI: https://example.com/az
Author: Aivaras Az
Author URI: https://example.com
Description: Standalone theme.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 1.6.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: az-theme
*/

:root {
	--az-font-sans: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	/* Body copy / UI text vs headings & emphasis (pair with Jost 300 + 500) */
	--az-font-weight-normal: 300;
	--az-font-weight-emphasis: 500;
	--az-space-1: 8px;
	--az-space-2: 12px;
	--az-space-3: 16px;
	--az-space-4: 24px;
	/* Logo → social in footer brand; payment row sits below nav, above copyright */
	--az-footer-brand-gap: calc(var(--az-space-4) + var(--az-space-3));
	/* Dropdown rows: lang, shop sort, price panel body */
	--az-dropdown-row-pad-y: var(--az-space-1);
	--az-dropdown-row-pad-x: var(--az-space-3);
	/* Full-screen filter / lang panels: horizontal inset (matches .az-sheet-head padding) */
	--az-shop-filter-sheet-pad-x: var(--az-space-4);
	--az-color-primary: #f3f3f3;
	/* Dropdown row hover: ~10% darker than primary (fixed fallback if no color-mix) */
	--az-color-primary-dark-10: #dbdbdb;
	/* Panels, inputs, drawers (shared with header shell) */
	--az-color-surface: #ffffff;
	/* Hairlines: section rules, inputs, cart rows, drawer chrome */
	--az-border-divider: #dfdfdf;
	/* Image / thumb placeholders before load */
	--az-surface-placeholder: #e8e8e8;
	--az-text-secondary: rgba(0, 0, 0, 0.72);
	--az-text-tertiary: rgba(0, 0, 0, 0.45);
	--az-logo-max-height: 73px;
	--az-content-max-width-lg: 1400px;
	--az-content-max-width-md: 800px;

	--az-pad-x: var(--az-space-4);
	--az-pad-y: 48px;
	--az-pad-x-mobile: var(--az-space-2);
	--az-pad-y-mobile: 24px;

	/* Shadows (reuse; opacity tokens for consistency) */
	--az-shadow-color-subtle: rgba(0, 0, 0, 0.08);
	--az-shadow-color-soft: rgba(0, 0, 0, 0.14);
	--az-shadow-color-strong: rgba(0, 0, 0, 0.2);
	--az-shadow-sm: 0 1px 3px var(--az-shadow-color-subtle);
	--az-shadow-md: 0 4px 12px var(--az-shadow-color-soft);
	/* Lift: compact drop under the card */
	--az-shadow-product-hover: 0 8px 6px -2px rgba(0, 0, 0, 0.15);

	/* Motion: easing + durations (reuse across components) */
	--az-ease-soft: cubic-bezier(0.33, 0.11, 0.27, 1);
	--az-ease-default: ease;
	--az-duration-fast: 0.2s;
	--az-duration-panel: 0.24s;
	/* Cart drawer + mobile nav drawer (same slide timing) */
	--az-header-drawer-duration: 0.4s;
	--az-header-drawer-ease: var(--az-ease-default);
	/* Header / drawers: low z-index stack (root stacking) */
	--az-z-header: 10;
	--az-z-overlay: 12;
	--az-z-drawer: 16;
	--az-z-lang-dropdown: 22;
	--az-z-shop-filter-sheet: 24;
	--az-z-lang-sheet: 26;
	/* Fixed cookie bar: below .site-header-group (10) so side cart overlay (12) + drawer (16) paint on top */
	--az-z-cookie-consent: 9;

	/* Home product card: rotate starts at 20% of zoom; on leave zoom starts at 20% of rotate-back */
	--az-product-hover-ease: var(--az-ease-soft);
	--az-product-hover-seq-duration: 2.1s;
	--az-product-zoom-dur: calc(var(--az-product-hover-seq-duration) * 0.45);
	--az-product-rotate-dur: calc(var(--az-product-hover-seq-duration) * 0.55);
	--az-product-rotate-delay-enter: calc(var(--az-product-zoom-dur) * 0.2);
	--az-product-zoom-delay-leave: calc(var(--az-product-rotate-dur) * 0.2);
	--az-product-hover-tilt: 2deg;
	--az-product-hover-zoom: 1.06;
	--az-product-hover-shadow: var(--az-shadow-product-hover);
	--az-product-shine-duration: 4.25s;
	--az-product-shine-delay: 0s;
	--az-product-shine-highlight: rgba(255, 255, 255, 0.32);
	--az-product-secondary-fade: 0.45s;

	/* Primary nav: space between items (desktop row + mobile column) */
	--az-header-menu-gap: calc(var(--az-space-4) + var(--az-space-2));

	/* Header text links */
	--az-header-link-color: #000000;
	--az-header-underline-gap: 8px;
	--az-header-underline-ease: var(--az-ease-soft);
	--az-header-icon-zoom-duration: 0.22s;
	--az-header-icon-zoom-scale: 1.12;
	/* Gap between trigger and panel: padding-top on .az-dropdown-bridge (transparent) */
	--az-lang-dropdown-bridge: 4px;
	/* Primary main min-height: set by header-mobile-menu.js (100vh − admin bar − preheader/header − notices − footer) */
	--az-site-main-min-height: 0px;
	--az-admin-bar-height: 0px;
	/* Material Symbols axis (Outlined + Rounded); range 100–700 from Google Fonts */
	--az-material-symbol-wght: 200;
	/* Search SVG (stroke icon); user units in 24×24 viewBox */
	--az-search-icon-stroke: 1.1;
}

@supports (color: color-mix(in srgb, white, black)) {
	:root {
		--az-color-primary-dark-10: color-mix(in srgb, var(--az-color-primary) 90%, #000000);
	}
}

/* Dark theme: html[data-az-theme] set in header (localStorage / cookie / default dark) */
html[data-az-theme="dark"] {
	color-scheme: dark;
	color: var(--az-text-secondary);

	/* Page chrome / body: dark gray (html background is black below) */
	--az-color-primary: #141414;
	--az-color-primary-dark-10: #1f1f1f;
	--az-color-surface: #1c1c1c;
	--az-border-divider: rgba(255, 255, 255, 0.12);
	--az-surface-placeholder: #2a2a2a;
	--az-text-secondary: rgba(255, 255, 255, 0.82);
	--az-text-tertiary: rgba(255, 255, 255, 0.5);
	--az-shadow-color-subtle: rgba(0, 0, 0, 0.35);
	--az-shadow-color-soft: rgba(0, 0, 0, 0.45);
	--az-shadow-color-strong: rgba(0, 0, 0, 0.55);
	--az-shadow-product-hover: 0 8px 6px -2px rgba(0, 0, 0, 0.45);
	--az-product-shine-highlight: rgba(255, 255, 255, 0.06);
	--az-header-link-color: #f0f0f0;

	--az-button-bg: #f2f2f2;
	--az-button-text: #111111;

	background: #000000;
}

/* Visually hidden label (search form, etc.) — same idea as WP core */
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Material Symbols Rounded — font enqueued in functions.php (Google Fonts); use for all icons */
.material-symbols-rounded {
	font-family: "Material Symbols Rounded";
	font-weight: normal;
	font-style: normal;
	font-size: 24px;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	display: inline-block;
	white-space: nowrap;
	direction: ltr;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: "liga";
	-webkit-font-feature-settings: "liga";
	font-variation-settings:
		"FILL" 0,
		"wght" var(--az-material-symbol-wght),
		"GRAD" 0,
		"opsz" 24;
}

@media (max-width: 1024px) {
	:root {
		--az-pad-x: var(--az-pad-x-mobile);
		--az-pad-y: var(--az-pad-y-mobile);
	}
}

.site-header-group {
	position: relative;
	z-index: var(--az-z-header);
}

.site-header-tagline.header-row-first {
	background: var(--az-color-primary);
}

.site-header-shell {
	position: static;
	width: 100%;
	padding: 0;
	background: var(--az-color-surface);
	box-shadow: none;
	transition: box-shadow var(--az-duration-fast) var(--az-ease-default);
}

.site-header-shell.is-scrolled {
	box-shadow: var(--az-shadow-md);
}

body.is-header-fixed .site-header-shell {
	position: fixed;
	top: 0;
	left: var(--az-space-1);
	right: var(--az-space-1);
	width: auto;
	max-width: none;
	z-index: var(--az-z-header);
}

.site-header {
	background: var(--az-color-primary);
	transition: background-color var(--az-duration-fast) var(--az-ease-default);
}

.site-header-shell.is-scrolled .site-header {
	background: var(--az-color-surface);
}

.header-row-first {
	padding: 0 var(--az-pad-x) 0 var(--az-pad-x);
	border-bottom: 1px solid var(--az-border-divider);
}

.header-row-second {
	padding: var(--az-pad-y) var(--az-pad-x);
	transition: padding var(--az-duration-fast) var(--az-ease-default);
}

.site-header-shell.is-scrolled .header-row-second {
	padding-top: max(var(--az-space-2), calc(var(--az-pad-y) - 12px));
	padding-bottom: max(var(--az-space-2), calc(var(--az-pad-y) - 12px));
}

.header-row-second > .site-section-inner {
	position: relative;
}

html {
	background: #ffffff;
	/* WebKit/Safari/Chrome: remove default tap flash on links, buttons, and controls (inherits) */
	-webkit-tap-highlight-color: transparent;
}

/* Remove UA focus ring when the browser does not indicate keyboard focus (:focus-visible). */
:focus:not(:focus-visible) {
	outline: none;
}

body {
	padding-top: 0;
	background: var(--az-color-primary);
	font-family: var(--az-font-sans);
	font-weight: var(--az-font-weight-normal);
}

/* Match WP admin bar height for viewport calcs (front end when logged in) */
body.admin-bar {
	--az-admin-bar-height: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar {
		--az-admin-bar-height: 46px;
	}
}

b,
strong {
	font-weight: var(--az-font-weight-emphasis);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: var(--az-font-weight-emphasis);
}

.site-tagline {
	text-align: center;
	margin: 0;
	padding-top: var(--az-space-2);
	padding-bottom: var(--az-space-2);
	font-size: 0.875rem;
	line-height: 1.3;
}

.header-inner {
	display: flex;
	align-items: center;
	gap: var(--az-space-3);
}

.header-left,
.header-right {
	flex: 1 1 0;
}

.header-right {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

.header-center {
	flex: 0 0 auto;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
}

.header-left nav,
.header-left ul,
.header-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	margin-inline-start: 0;
	padding-inline-start: 0;
}

.header-left > div {
	margin: 0;
	padding: 0;
}

.header-left nav,
.header-left nav > div,
.header-left nav > div > ul,
.header-left nav > ul,
.header-left > ul,
.header-left .header-menu,
.header-left .menu {
	margin: 0 !important;
	padding: 0 !important;
	padding-inline-start: 0 !important;
}

.header-left li {
	margin: 0 !important;
	padding: 0 !important;
}

#header-mobile-menu > .header-menu > ul {
	margin-left: 0 !important;
	padding-left: 0 !important;
	padding-inline-start: 0 !important;
}

#header-mobile-menu > .header-menu > ul > li:first-child {
	margin-left: 0 !important;
	padding-left: 0 !important;
}

.header-left nav ul,
.header-left > div > ul,
.header-left > ul,
.header-menu,
.header-menu > ul {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: var(--az-header-menu-gap);
	justify-content: flex-start;
}

.header-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.header-menu a,
.header-search-dropdown__trigger,
.cart-link,
.header-theme-toggle {
	position: relative;
	color: var(--az-header-link-color);
	text-decoration: none;
}

.header-search-dropdown__trigger,
.cart-link,
.header-theme-toggle {
	padding-bottom: 0;
}

.header-search-dropdown__trigger,
.header-theme-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	border: 0;
	padding: 0;
	background: none;
	cursor: pointer;
	box-sizing: border-box;
	color: var(--az-header-link-color);
	user-select: none;
}

.header-search-dropdown__trigger:focus-visible,
.header-theme-toggle:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: 3px;
}

.header-menu .current-menu-item > a,
.header-menu .current_page_item > a {
	font-weight: var(--az-font-weight-emphasis);
}

/* Header icons: zoom on hover/focus */
.header-search-dropdown__trigger .header-search-icon,
.cart-link .cart-icon,
.header-theme-toggle .material-symbols-rounded {
	transform: scale(1);
	transform-origin: center;
	transition: transform var(--az-header-icon-zoom-duration) var(--az-header-underline-ease);
	will-change: transform;
}

.header-search-dropdown__trigger:hover .header-search-icon,
.header-search-dropdown__trigger:focus-visible .header-search-icon,
.cart-link:hover .cart-icon,
.cart-link:focus-visible .cart-icon,
.header-theme-toggle:hover .material-symbols-rounded,
.header-theme-toggle:focus-visible .material-symbols-rounded {
	transform: scale(var(--az-header-icon-zoom-scale));
}

@media (prefers-reduced-motion: reduce) {
	.header-search-dropdown__trigger .header-search-icon,
	.cart-link .cart-icon,
	.header-theme-toggle .material-symbols-rounded {
		transition: none;
		will-change: auto;
	}

	.header-search-dropdown__trigger:hover .header-search-icon,
	.header-search-dropdown__trigger:focus-visible .header-search-icon,
	.cart-link:hover .cart-icon,
	.cart-link:focus-visible .cart-icon,
	.header-theme-toggle:hover .material-symbols-rounded,
	.header-theme-toggle:focus-visible .material-symbols-rounded {
		transform: none;
	}
}

.site-logo-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.site-logo-link img {
	display: block;
	max-height: var(--az-logo-max-height);
	transition: max-height var(--az-duration-panel) var(--az-ease-default);
}

/* Header: light/dark logo assets (html[data-az-theme] set in header.php) */
.site-logo-link img.site-logo--theme-dark {
	display: none;
}

html[data-az-theme="dark"] .site-logo-link img.site-logo--theme-light {
	display: none;
}

html[data-az-theme="dark"] .site-logo-link img.site-logo--theme-dark {
	display: block;
}

.site-header-shell.is-scrolled .site-logo-link img {
	max-height: calc(var(--az-logo-max-height) * 0.7);
}

.cart-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.cart-icon-badge-wrap {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
}

.cart-link .cart-icon {
	font-size: 26px;
	vertical-align: middle;
}

.cart-count-badge {
	position: absolute;
	top: -5px;
	right: -8px;
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 5px;
	font-size: 0.625rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.25rem;
	font-family: var(--az-font-sans);
	text-align: center;
	color: var(--az-button-text);
	background: var(--az-button-bg);
	border-radius: 999px;
	box-sizing: border-box;
	pointer-events: none;
}

html[dir="rtl"] .cart-count-badge {
	right: auto;
	left: -8px;
}

.header-language-switcher {
	margin-right: var(--az-space-3);
	display: inline-flex;
	align-items: center;
}

/* Desktop only: matches breakpoint where .header-right .header-language-switcher hides */
.header-theme-toggle-wrap {
	display: none;
	align-items: center;
	margin-right: var(--az-space-3);
}

@media (min-width: 1025px) {
	.header-theme-toggle-wrap {
		display: inline-flex;
	}
}

/* .header-theme-toggle: shared chrome with .header-search-dropdown__trigger (see above) */
.header-theme-toggle .material-symbols-rounded {
	font-size: 26px;
	vertical-align: middle;
}

html[data-az-theme="dark"] .header-theme-toggle__icon--to-dark {
	display: none;
}

html[data-az-theme="light"] .header-theme-toggle__icon--to-light,
html:not([data-az-theme]) .header-theme-toggle__icon--to-light {
	display: none;
}

.header-language-switcher .wpm-language-switcher,
.header-language-switcher .wpm-switcher-dropdown,
.header-language-switcher-mobile .wpm-language-switcher,
.header-language-switcher-mobile .wpm-switcher-dropdown {
	margin: 0;
	display: inline-flex;
	align-items: center;
}

.header-language-switcher .wpm-switcher-dropdown > li,
.header-language-switcher-mobile .wpm-switcher-dropdown > li {
	display: flex;
	align-items: center;
}

.header-language-switcher .wpm-language-dropdown-trigger,
.header-language-switcher-mobile .wpm-language-dropdown-trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.2em;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-weight: var(--az-font-weight-normal);
	cursor: pointer;
	color: var(--az-header-link-color);
	line-height: 1.25;
	min-height: 1.25em;
	padding-bottom: 0;
	box-sizing: border-box;
	text-align: start;
}

.header-language-switcher .wpm-language-dropdown-trigger:focus-visible,
.header-language-switcher-mobile .wpm-language-dropdown-trigger:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: 3px;
}

.header-language-switcher .wpm-language-chevron,
.header-language-switcher-mobile .wpm-language-chevron {
	font-size: 22px;
	line-height: 1;
	flex-shrink: 0;
	margin-top: 1px;
	transition: transform var(--az-duration-fast) var(--az-ease-default);
}

.header-language-switcher .wpm-item-language-main.is-open .wpm-language-chevron,
.header-language-switcher-mobile .wpm-item-language-main.is-open .wpm-language-chevron {
	transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
	.header-language-switcher .wpm-language-chevron,
	.header-language-switcher-mobile .wpm-language-chevron {
		transition: none;
	}
}

/*
 * Shared inner gap: .az-dropdown-bridge (transparent padding-top) inside positioning wrap.
 * Language: .wpm-language-dropdown-wrap = outer; open = .wpm-item-language-main.is-open (header-mobile-menu.js).
 */
.az-dropdown-bridge {
	padding-top: var(--az-lang-dropdown-bridge);
	margin: 0;
	width: 100%;
	box-sizing: border-box;
	background: transparent;
}

.header-language-switcher .wpm-language-dropdown-wrap,
.header-language-switcher-mobile .wpm-language-dropdown-wrap {
	display: none;
}

.header-language-switcher .wpm-item-language-main.is-open .wpm-language-dropdown-wrap,
.header-language-switcher-mobile .wpm-item-language-main.is-open .wpm-language-dropdown-wrap {
	display: block;
}

.header-language-switcher .wpm-language-dropdown-wrap {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
	background: transparent;
	z-index: var(--az-z-lang-dropdown);
	width: max-content;
	max-width: min(calc(100vw - 2 * var(--az-pad-x)), 20rem);
	box-sizing: border-box;
}

.header-language-switcher .wpm-language-dropdown-wrap .wpm-language-dropdown,
.header-language-switcher-mobile .wpm-language-dropdown-wrap .wpm-language-dropdown {
	position: static;
	left: auto;
	top: auto;
	transform: none;
	margin-left: 0;
}

.header-language-switcher .wpm-item-language-main.is-open .wpm-language-dropdown,
.header-language-switcher-mobile .wpm-item-language-main.is-open .wpm-language-dropdown {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 0;
	margin-top: 0;
	margin-left: 0;
	background: var(--az-color-primary);
	box-shadow: var(--az-shadow-md);
	border-radius: 2px;
	z-index: 1;
	min-width: 4.75rem;
	box-sizing: border-box;
}

/* Language rows: same layout as .az-shop-dropdown__item / .az-shop-dropdown__link (incl. body-portaled mobile wrap). */
.header-language-switcher .wpm-language-dropdown li,
.header-language-switcher-mobile .wpm-language-dropdown li,
body > .wpm-language-dropdown-wrap.az-lang-dropdown-wrap--portaled .wpm-language-dropdown li {
	margin: 0;
	padding: 0;
	list-style: none;
	box-sizing: border-box;
}

.header-language-switcher .wpm-language-dropdown a,
.header-language-switcher-mobile .wpm-language-dropdown a,
body > .wpm-language-dropdown-wrap.az-lang-dropdown-wrap--portaled .wpm-language-dropdown a {
	position: static;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	text-align: start;
	width: 100%;
	min-height: 2.25rem;
	padding: var(--az-dropdown-row-pad-y) var(--az-shop-filter-sheet-pad-x);
	box-sizing: border-box;
	line-height: 1.25;
	border-radius: 2px;
	color: var(--az-header-link-color);
	text-decoration: none;
}

.header-language-switcher .wpm-language-dropdown a:hover,
.header-language-switcher .wpm-language-dropdown a:focus-visible,
.header-language-switcher-mobile .wpm-language-dropdown a:hover,
.header-language-switcher-mobile .wpm-language-dropdown a:focus-visible,
body > .wpm-language-dropdown-wrap.az-lang-dropdown-wrap--portaled .wpm-language-dropdown a:hover,
body > .wpm-language-dropdown-wrap.az-lang-dropdown-wrap--portaled .wpm-language-dropdown a:focus-visible {
	text-decoration: none;
	background-color: var(--az-color-primary-dark-10);
}

.header-language-switcher .wpm-language-dropdown a:focus-visible,
.header-language-switcher-mobile .wpm-language-dropdown a:focus-visible,
body > .wpm-language-dropdown-wrap.az-lang-dropdown-wrap--portaled .wpm-language-dropdown a:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: -2px;
}

.header-language-switcher .wpm-language-dropdown a.is-active,
.header-language-switcher-mobile .wpm-language-dropdown a.is-active,
body > .wpm-language-dropdown-wrap.az-lang-dropdown-wrap--portaled .wpm-language-dropdown a.is-active {
	font-weight: var(--az-font-weight-emphasis);
	text-decoration: none;
	background-color: var(--az-color-primary-dark-10);
}

/*
 * Mobile lang: fullscreen viewport sheet. Wrap is moved to body while open (az-lang-dropdown-wrap--portaled)
 * so position:fixed is not trapped by transform on .header-mobile-drawer.
 */
@media (max-width: 1024px) {
	.header-language-switcher-mobile .wpm-item-language-main {
		position: static;
	}

	.header-language-switcher-mobile .wpm-language-dropdown-wrap,
	body > .wpm-language-dropdown-wrap.az-lang-dropdown-wrap--portaled {
		position: fixed;
		inset: 0;
		left: 0;
		right: 0;
		top: 0;
		bottom: 0;
		width: 100%;
		max-width: none;
		min-height: 100vh;
		min-height: 100dvh;
		height: auto;
		margin: 0;
		transform: none;
		background: var(--az-color-primary);
		z-index: var(--az-z-lang-sheet);
	}

	.header-language-switcher-mobile .wpm-item-language-main.is-open .wpm-language-dropdown-wrap,
	body > .wpm-language-dropdown-wrap.az-lang-dropdown-wrap--portaled {
		display: flex;
		flex-direction: column;
	}

	.header-language-switcher-mobile .wpm-language-dropdown-wrap > .az-dropdown-bridge,
	body > .wpm-language-dropdown-wrap.az-lang-dropdown-wrap--portaled > .az-dropdown-bridge {
		flex: 1 1 auto;
		min-height: 0;
		display: flex;
		flex-direction: column;
		padding-top: 0;
	}

	.header-language-switcher-mobile .wpm-item-language-main.is-open .wpm-language-dropdown,
	body > .wpm-language-dropdown-wrap.az-lang-dropdown-wrap--portaled .wpm-language-dropdown {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		width: 100%;
		max-width: none;
		border-radius: 0;
		box-shadow: none;
		/* Match .az-shop-dropdown__list (scrollable column). */
		list-style: none;
		margin: 0;
		padding: 0;
		display: flex;
		flex-direction: column;
		gap: 0;
	}
}

.header-language-switcher select.wpm-language-switcher,
.header-language-switcher-mobile select.wpm-language-switcher {
	min-height: calc(1.25em + var(--az-header-underline-gap));
	padding: 0 calc(var(--az-space-2) + var(--az-select-chevron-size) + var(--az-space-1)) 0 var(--az-space-2);
	color: var(--az-header-link-color);
	background-color: var(--az-color-surface);
	background-image: var(--az-select-chevron-svg);
	background-repeat: no-repeat;
	background-position: right var(--az-space-2) center;
	background-size: var(--az-select-chevron-size) var(--az-select-chevron-size);
	border: 1px solid var(--az-border-divider);
	border-radius: var(--az-control-radius);
	font: inherit;
	line-height: 1.25;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
}

.header-language-switcher-mobile {
	display: none;
}

.header-search-dropdown {
	position: relative;
	display: inline-flex;
	align-items: center;
	flex: 0 1 auto;
	min-width: 0;
	margin-right: var(--az-space-3);
}

.header-search-dropdown__root {
	position: relative;
	display: flex;
	align-items: center;
}

.header-search-dropdown__trigger .header-search-icon {
	display: block;
	width: 26px;
	height: 26px;
	flex-shrink: 0;
}

.header-search-icon .header-search-icon-stroke {
	stroke-width: var(--az-search-icon-stroke);
	vector-effect: non-scaling-stroke;
}


:root {
	--az-button-bg: #000000;
	--az-button-text: #ffffff;
	--az-control-radius: 0;
	--az-control-padding-y: 12px;
	--az-control-padding-x: 14px;
	/* Native <select> chevron (Material keyboard_arrow_down); fill follows control text */
	--az-select-chevron-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6z'/%3E%3C/svg%3E");
	--az-select-chevron-size: 1.25rem;
	/* Native range (.az-slider); shop price filter uses the same track/thumb sizing */
	--az-slider-track-height: 0.5rem;
	--az-slider-thumb-size: 0.875rem;
	--az-button-padding-y: 14px;
	--az-button-padding-x: 17px;
	/* px beats WooCommerce / theme inherit (often 16px+ on .button) */
	--az-button-font-size: 15px;
	--az-button-font-weight: var(--az-font-weight-emphasis);
	/* Compact buttons (.button--primary.button--sm / .button--secondary.button--sm) */
	--az-button-font-size-sm: 0.75rem;
	--az-button-padding-y-sm: var(--az-space-1);
	--az-button-padding-x-sm: var(--az-space-2);
	/* Loader: checkout blockUI overlay + .az-ui-kit__loader (Components page) */
	--az-loader-size: 2.25rem;
	--az-loader-track: color-mix(in srgb, var(--az-border-divider) 70%, transparent);
	--az-loader-accent: var(--az-button-bg);
	--az-loader-duration: 0.75s;
}

button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.button,
.wp-block-button__link,
.wp-element-button,
.added_to_cart,
.single_add_to_cart_button {
	background: var(--az-button-bg);
	border: 1px solid var(--az-button-bg);
	color: var(--az-button-text);
	border-radius: var(--az-control-radius) !important;
	padding: var(--az-button-padding-y) var(--az-button-padding-x);
	font-size: var(--az-button-font-size) !important;
	font-weight: var(--az-button-font-weight);
	line-height: 1.25;
	cursor: pointer;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--az-space-1);
}

button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
.button:hover,
.wp-block-button__link:hover,
.wp-element-button:hover,
.added_to_cart:hover,
.single_add_to_cart_button:hover {
	background: color-mix(in srgb, var(--az-button-bg) 90%, #ffffff 10%);
	border-radius: var(--az-control-radius) !important;
}

button:focus-visible,
input[type="button"]:focus-visible,
input[type="submit"]:focus-visible,
input[type="reset"]:focus-visible,
.button:focus-visible,
.wp-block-button__link:focus-visible,
.wp-element-button:focus-visible,
.added_to_cart:focus-visible,
.single_add_to_cart_button:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
	border-radius: var(--az-control-radius) !important;
}

button:disabled,
input[type="button"]:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled,
.button:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	pointer-events: none;
}

/* Primary (solid black): default for button, .button, WooCommerce CTAs. Optional explicit class for parity with --secondary. */
.button--primary {
	background: var(--az-button-bg);
	border: 1px solid var(--az-button-bg);
	color: var(--az-button-text);
	border-radius: var(--az-control-radius) !important;
}

.button--primary:hover {
	background: color-mix(in srgb, var(--az-button-bg) 90%, #ffffff 10%);
	border-radius: var(--az-control-radius) !important;
}

.button--primary:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
	border-radius: var(--az-control-radius) !important;
}

a.button.button--primary:visited {
	color: var(--az-button-text);
}

/* Secondary (surface + black border): use with .button — .button:hover is overridden below */
.button.button--secondary {
	background: var(--az-color-surface);
	color: var(--az-button-bg);
	border: 1px solid var(--az-button-bg);
	border-radius: var(--az-control-radius) !important;
}

.button.button--secondary:hover {
	background: color-mix(in srgb, var(--az-button-bg) 10%, var(--az-color-surface));
	border-radius: var(--az-control-radius) !important;
}

.button.button--secondary:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
	border-radius: var(--az-control-radius) !important;
}

.button.button--secondary:visited {
	color: var(--az-button-bg);
}

/*
 * Primary / secondary CTAs: shared type + corner radius (price filter, empty shop, global .button).
 * !important beats WooCommerce / block theme (e.g. --wc-form-border-radius on a.button).
 */
.button.button--primary,
.button.button--secondary,
.az-shop-price-dropdown__panel .az-shop-price-filter__actions .button,
.az-shop-empty a.button.button--primary {
	font-weight: var(--az-button-font-weight) !important;
	line-height: 1.25 !important;
	font-family: inherit !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	border-radius: var(--az-control-radius) !important;
}

/* Compact primary / secondary (cookie bar, dense toolbars) */
.button.button--primary.button--sm,
.button.button--secondary.button--sm {
	padding: var(--az-button-padding-y-sm) var(--az-button-padding-x-sm) !important;
	font-size: var(--az-button-font-size-sm) !important;
	font-weight: var(--az-font-weight-emphasis) !important;
	line-height: 1.25 !important;
	min-height: 0;
}

/* Full-width stacked actions (cart footer, forms) */
.button--block {
	width: 100%;
	box-sizing: border-box;
	text-align: center;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="url"],
textarea,
select {
	border-radius: var(--az-control-radius);
	border: 1px solid var(--az-border-divider);
	padding: var(--az-control-padding-y) var(--az-control-padding-x);
	background: var(--az-color-surface);
	color: var(--az-header-link-color);
	font: inherit;
}

input[type="text"]:focus-visible,
input[type="email"]:focus-visible,
input[type="password"]:focus-visible,
input[type="tel"]:focus-visible,
input[type="number"]:focus-visible,
input[type="search"]:focus-visible,
input[type="url"]:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

/* No native clear (×) on search fields — header dropdown, components kit, searchform */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
	appearance: none;
}

input[type="search"]::-ms-clear {
	display: none;
}

/* iOS/Safari: default search field appearance adds extra vertical padding / height */
input[type="search"] {
	-webkit-appearance: none;
	appearance: none;
}

select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: calc(var(--az-control-padding-x) + var(--az-select-chevron-size) + var(--az-space-1));
	background-image: var(--az-select-chevron-svg);
	background-repeat: no-repeat;
	background-position: right var(--az-control-padding-x) center;
	background-size: var(--az-select-chevron-size) var(--az-select-chevron-size);
	cursor: pointer;
}

select::-ms-expand {
	display: none;
}

textarea {
	resize: vertical;
	min-height: calc(1lh + 2 * var(--az-control-padding-y));
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

input[type="number"] {
	-moz-appearance: textfield;
	appearance: textfield;
}

/*
 * Native range slider: .az-slider > .az-slider__input (+ optional .az-slider__value output).
 */
.az-slider {
	display: flex;
	align-items: center;
	gap: var(--az-space-2);
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.az-slider__input {
	-webkit-appearance: none;
	appearance: none;
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	max-width: 100%;
	height: 2.25rem;
	margin: 0;
	padding: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	box-sizing: border-box;
	cursor: pointer;
}

.az-slider__input:focus {
	outline: none;
}

.az-slider__input:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.az-slider__input:disabled::-webkit-slider-thumb,
.az-slider__input:disabled::-moz-range-thumb {
	cursor: not-allowed;
}

.az-slider__input::-webkit-slider-runnable-track {
	height: var(--az-slider-track-height);
	border-radius: 2px;
	background: var(--az-border-divider);
	box-sizing: border-box;
}

.az-slider__input::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: var(--az-slider-thumb-size);
	height: var(--az-slider-thumb-size);
	margin-top: calc((var(--az-slider-track-height) - var(--az-slider-thumb-size)) / 2);
	border-radius: 2px;
	background: var(--az-color-surface);
	border: 1px solid var(--az-header-link-color);
	box-sizing: border-box;
	cursor: grab;
}

.az-slider__input:active::-webkit-slider-thumb {
	cursor: grabbing;
}

.az-slider__input:focus-visible::-webkit-slider-thumb {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

.az-slider__input::-moz-range-track {
	height: var(--az-slider-track-height);
	border-radius: 2px;
	background: var(--az-border-divider);
	box-sizing: border-box;
}

.az-slider__input::-moz-range-thumb {
	width: var(--az-slider-thumb-size);
	height: var(--az-slider-thumb-size);
	border-radius: 2px;
	background: var(--az-color-surface);
	border: 1px solid var(--az-header-link-color);
	box-sizing: border-box;
	cursor: grab;
}

.az-slider__input:active::-moz-range-thumb {
	cursor: grabbing;
}

.az-slider__input:focus-visible::-moz-range-thumb {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

.az-slider__value {
	flex: 0 0 auto;
	min-width: 2.5ch;
	font-variant-numeric: tabular-nums;
	font-size: 0.9rem;
	line-height: 1.25;
	text-align: end;
	color: var(--az-text-secondary);
}

.site-main section {
	padding: var(--az-pad-y) var(--az-pad-x);
}

.site-section-inner {
	width: 100%;
	max-width: var(--az-content-max-width-lg);
	margin-inline: auto;
}

.site-section-inner--md {
	max-width: var(--az-content-max-width-md);
}

/* Cookie consent — fixed to viewport; inner column matches lg (.site-section-inner / --az-content-max-width-lg) */
.az-cookie-consent {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: var(--az-z-cookie-consent);
	box-sizing: border-box;
	padding: var(--az-space-3) var(--az-pad-x);
	padding-bottom: max(var(--az-space-3), env(safe-area-inset-bottom, 0px));
	background: var(--az-color-surface);
	border-top: 1px solid var(--az-border-divider);
	box-shadow: 0 -4px 16px var(--az-shadow-color-subtle);
}

.az-cookie-consent__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--az-space-4);
}

.az-cookie-consent__copy {
	flex: 1 1 18rem;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--az-space-2);
}

.az-cookie-consent__lead {
	margin: 0;
	font-size: 0.8125rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.45;
	color: var(--az-text-secondary);
}

.az-cookie-consent__detail {
	margin: 0;
	font-size: 0.75rem;
	font-weight: var(--az-font-weight-normal);
	line-height: 1.5;
	color: var(--az-text-tertiary);
}

.az-cookie-consent__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: var(--az-space-2);
	flex: 0 0 auto;
}

.az-cookie-consent__accept,
.az-cookie-consent__reject {
	flex: 0 0 auto;
}

body.az-cookie-consent-visible {
	padding-bottom: var(--az-cookie-bar-height, 0px);
}

.home-intro-section .site-section-inner {
	max-width: var(--az-content-max-width-md);
}

.site-section--hero {
	padding: 0 !important;
}

.home-intro-section {
	display: flex;
	justify-content: center;
	text-align: center;
}

.home-intro-title {
	font-size: clamp(1.125rem, 2.5vw, 1.375rem);
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	letter-spacing: 0.02em;
}

.home-intro-text {
	max-width: 100%;
	margin: 0;
	line-height: 1.7;
}

.hero-section {
	min-height: clamp(520px, 52vh, 520px);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	padding: 0 !important;
}

.home-products-section {
	padding-top: var(--az-pad-y);
	padding-bottom: var(--az-pad-y);
}

.home-products-section-title {
	margin: 0 0 var(--az-space-4);
	font-size: clamp(1.125rem, 2.5vw, 1.375rem);
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	letter-spacing: 0.02em;
	text-align: start;
}

.site-section--shop-notices {
	padding-top: var(--az-space-3);
	padding-bottom: 0;
}

/*
 * WooCommerce session notices — Az UI (templates: woocommerce/notices/*.php add .az-wc-notice).
 * UI kit: Template Name "Components (UI kit)" (page-components.php) — Session notices section.
 * Keeps .woocommerce-message / .woocommerce-error / .woocommerce-info for WC scripts + a11y.
 */
.woocommerce-NoticeGroup {
	margin: 0 0 var(--az-space-3);
}

/* Session notices (`woocommerce_output_all_notices`) — same gap below as `.woocommerce-NoticeGroup` on checkout. */
.woocommerce .woocommerce-notices-wrapper:not(:empty) {
	margin: 0 0 var(--az-space-3);
}

.woocommerce-message.az-wc-notice,
.woocommerce-info.az-wc-notice,
ul.woocommerce-error.az-wc-notice {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin: 0 0 var(--az-space-3);
	padding: var(--az-space-3) var(--az-space-4);
	font-family: var(--az-font-sans);
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--az-header-link-color);
	border: 1px solid var(--az-border-divider);
	border-radius: var(--az-control-radius);
	background: var(--az-color-surface);
	box-shadow: var(--az-shadow-sm);
	clear: both;
}

.woocommerce-message.az-wc-notice::before,
.woocommerce-info.az-wc-notice::before,
ul.woocommerce-error.az-wc-notice::before {
	display: none !important;
	content: none !important;
}

.woocommerce-message.az-wc-notice:last-child,
.woocommerce-info.az-wc-notice:last-child,
ul.woocommerce-error.az-wc-notice:last-child {
	margin-bottom: 0;
}

/* Success — outer wrapper is flush; bar chrome lives on .az-wc-notice__shell */
.woocommerce-message.az-wc-notice--success {
	background: transparent;
	border: none;
	box-shadow: none;
	padding: 0;
}

/* Info */
.woocommerce-info.az-wc-notice--info {
	background: color-mix(in srgb, #1d4ed8 6%, var(--az-color-surface));
	border-color: color-mix(in srgb, #1d4ed8 28%, var(--az-border-divider));
}

/* Error list */
ul.woocommerce-error.az-wc-notice--error {
	list-style: none;
	padding-left: var(--az-space-4);
	padding-right: var(--az-space-4);
	background: color-mix(in srgb, #b91c1c 7%, var(--az-color-surface));
	border-color: color-mix(in srgb, #b91c1c 32%, var(--az-border-divider));
}

ul.woocommerce-error.az-wc-notice--error li {
	margin: 0;
	padding: var(--az-space-2) 0;
	border-bottom: 1px solid color-mix(in srgb, #b91c1c 15%, transparent);
	list-style: none;
}

ul.woocommerce-error.az-wc-notice--error li:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

ul.woocommerce-error.az-wc-notice--error li:first-child {
	padding-top: 0;
}

/* Layout: message text left + button right (success: inner shell; info: direct) */
.woocommerce-message.az-wc-notice--success .az-wc-notice__shell {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--az-content-max-width-lg);
	margin-inline: auto;
	padding: var(--az-space-3) var(--az-space-4);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--az-space-3);
	background: transparent;
	border: 1px solid var(--az-border-divider);
	border-radius: var(--az-control-radius);
}

.woocommerce-info.az-wc-notice--info {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--az-space-3);
}

.woocommerce-info.az-wc-notice--info > :first-child {
	flex: 1 1 12rem;
	min-width: 0;
	margin: 0;
}

.woocommerce-message.az-wc-notice a.button,
.woocommerce-info.az-wc-notice a.button,
.woocommerce .woocommerce-message.az-wc-notice a.button,
.woocommerce .woocommerce-info.az-wc-notice a.button,
.woocommerce-page .woocommerce-message.az-wc-notice a.button,
.woocommerce-page .woocommerce-info.az-wc-notice a.button {
	float: none !important;
	margin: 0 !important;
	flex: 0 0 auto;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	text-decoration: none !important;
	font-size: var(--az-button-font-size) !important;
	font-weight: var(--az-button-font-weight) !important;
	padding: var(--az-button-padding-y) var(--az-button-padding-x) !important;
	border-radius: var(--az-control-radius) !important;
	line-height: 1.2 !important;
	background: var(--az-button-bg) !important;
	border: 1px solid var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
}

.woocommerce-message.az-wc-notice a.button:hover,
.woocommerce-info.az-wc-notice a.button:hover,
.woocommerce .woocommerce-message.az-wc-notice a.button:hover,
.woocommerce .woocommerce-info.az-wc-notice a.button:hover,
.woocommerce-page .woocommerce-message.az-wc-notice a.button:hover,
.woocommerce-page .woocommerce-info.az-wc-notice a.button:hover {
	background: color-mix(in srgb, var(--az-button-bg) 90%, #ffffff 10%) !important;
	color: var(--az-button-text) !important;
}

.woocommerce-message.az-wc-notice a:not(.button),
.woocommerce-info.az-wc-notice a:not(.button),
ul.woocommerce-error.az-wc-notice a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.az-shop-page-title {
	margin: 0 0 var(--az-space-4);
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.2;
	color: var(--az-header-link-color);
}

/*
 * Mobile headings in main: same idea as h1 — vw + rem so narrow viewports scale (avoid a dead clamp min),
 * with caps so block presets don’t blow up. h2–h6 sit clearly smaller than h1; !important beats presets.
 */
@media (max-width: 767px) {
	.site-main h1 {
		font-size: clamp(1.125rem, calc(2.5vw + 0.875rem), 1.5rem) !important;
		line-height: 1.22;
	}

	.site-main h2 {
		font-size: clamp(1rem, calc(1.85vw + 0.62rem), 1.2rem) !important;
		line-height: 1.24;
	}

	.site-main h3 {
		font-size: clamp(0.9rem, calc(1.5vw + 0.52rem), 1.05rem) !important;
		line-height: 1.28;
	}

	.site-main h4 {
		font-size: clamp(0.85rem, calc(1.3vw + 0.45rem), 0.95rem) !important;
		line-height: 1.3;
	}

	.site-main h5 {
		font-size: clamp(0.8rem, calc(1.1vw + 0.4rem), 0.88rem) !important;
		line-height: 1.32;
	}

	.site-main h6 {
		font-size: clamp(0.75rem, calc(0.95vw + 0.35rem), 0.82rem) !important;
		line-height: 1.35;
	}
}

.az-shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--az-space-2) var(--az-space-4);
	margin-bottom: var(--az-space-4);
}

.az-shop-toolbar .az-shop-page-title {
	margin: 0;
	flex: 1 1 12rem;
	min-width: 0;
}

.az-shop-toolbar__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: flex-end;
	gap: var(--az-space-2) var(--az-space-4);
	flex: 0 1 auto;
	min-width: 0;
}

/* No products — vertical placement from parent flex; type matches .az-shop-page-title + body */
.az-shop-empty {
	margin: 0;
	width: 100%;
	box-sizing: border-box;
}

.az-shop-empty__inner {
	text-align: center;
	box-sizing: border-box;
}

.az-shop-empty__title {
	margin: 0 0 var(--az-space-2);
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.2;
	color: var(--az-header-link-color);
}

.az-shop-empty__message {
	margin: 0 0 var(--az-space-4);
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--az-text-secondary);
}

/*
 * Empty-shop CTA: WooCommerce styles anchor buttons with .wc-* colors — force Az tokens
 * (same treatment as .az-shop-price-dropdown__panel … .button.button--primary).
 */
.az-shop-empty a.button.button--primary {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	text-align: center !important;
	text-decoration: none !important;
	font-size: var(--az-button-font-size) !important;
	cursor: pointer !important;
	padding-top: var(--az-button-padding-y) !important;
	padding-bottom: var(--az-button-padding-y) !important;
	padding-left: var(--az-button-padding-x) !important;
	padding-right: var(--az-button-padding-x) !important;
	background: var(--az-button-bg) !important;
	border: 1px solid var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
}

.az-shop-empty a.button.button--primary:hover {
	background: color-mix(in srgb, var(--az-button-bg) 90%, #ffffff 10%) !important;
	border-color: var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
	text-decoration: none !important;
	border-radius: var(--az-control-radius) !important;
}

.az-shop-empty a.button.button--primary:focus-visible {
	outline: 2px solid var(--az-button-bg) !important;
	outline-offset: 2px !important;
	color: var(--az-button-text) !important;
}

.az-shop-empty a.button.button--primary:visited {
	color: var(--az-button-text) !important;
}

/*
 * Shop toolbar dropdowns (price + sort): outer __wrap + inner .az-dropdown-bridge + panel;
 * open = .az-shop-*-dropdown__root.is-open (click, shop-price-filter.js).
 */
.az-shop-price-dropdown.az-shop-price-filter {
	position: relative;
	flex: 0 1 auto;
	min-width: 0;
	display: inline-flex;
	align-items: center;
}

.az-shop-price-dropdown__root {
	position: relative;
	display: flex;
	align-items: center;
}

.az-shop-price-dropdown__trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.2em;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 0.9rem;
	font-weight: var(--az-font-weight-normal);
	line-height: 1.25;
	color: var(--az-header-link-color);
	cursor: pointer;
	box-sizing: border-box;
	min-height: 1.25em;
}

.az-shop-price-dropdown__trigger:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: 3px;
}

.az-shop-price-dropdown__trigger-text {
	text-align: start;
}

.az-shop-price-dropdown__chevron {
	font-size: 22px;
	line-height: 1;
	flex-shrink: 0;
	margin-top: 1px;
	transition: transform var(--az-duration-fast) var(--az-ease-default);
}

.az-shop-price-dropdown__root.is-open .az-shop-price-dropdown__chevron {
	transform: rotate(180deg);
}

.az-shop-price-dropdown__wrap,
.az-shop-dropdown__wrap,
.header-search-dropdown__wrap {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	left: auto;
	margin: 0;
	background: transparent;
	z-index: var(--az-z-lang-dropdown);
	box-sizing: border-box;
}

.az-shop-price-dropdown__wrap {
	width: min(calc(100vw - 2 * var(--az-pad-x)), 24rem);
	max-width: min(calc(100vw - 2 * var(--az-pad-x)), 24rem);
}

.az-shop-dropdown__wrap {
	width: min(calc(100vw - 2 * var(--az-pad-x)), 24rem);
	max-width: min(calc(100vw - 2 * var(--az-pad-x)), 24rem);
}

.header-search-dropdown__wrap {
	width: min(calc(100vw - 2 * var(--az-pad-x)), 22rem);
	max-width: min(calc(100vw - 2 * var(--az-pad-x)), 22rem);
}

/*
 * Mobile: fullscreen sheet (viewport), close control top-right; desktop keeps anchored dropdown.
 */
@media (max-width: 1024px) {
	.az-shop-price-dropdown__root.is-open .az-shop-price-dropdown__wrap,
	.az-shop-dropdown__root.is-open .az-shop-dropdown__wrap,
	.header-search-dropdown__root.is-open .header-search-dropdown__wrap {
		display: flex;
		flex-direction: column;
	}

	.az-shop-price-dropdown__wrap,
	.az-shop-dropdown__wrap,
	.header-search-dropdown__wrap {
		position: fixed;
		inset: 0;
		left: 0;
		right: 0;
		top: 0;
		bottom: 0;
		width: 100%;
		max-width: none;
		min-height: 100vh;
		min-height: 100dvh;
		height: auto;
		margin: 0;
		background: var(--az-color-primary);
		z-index: var(--az-z-shop-filter-sheet);
	}

	.az-shop-price-dropdown__wrap > .az-dropdown-bridge,
	.az-shop-dropdown__wrap > .az-dropdown-bridge,
	.header-search-dropdown__wrap > .az-dropdown-bridge {
		flex: 1 1 auto;
		min-height: 0;
		display: flex;
		flex-direction: column;
		padding-top: 0;
	}

	.az-shop-price-dropdown__panel.az-shop-price-filter__panel,
	.az-shop-dropdown__panel,
	.header-search-dropdown__panel {
		flex: 1 1 auto;
		min-height: 0;
		overflow: hidden;
		display: flex;
		flex-direction: column;
		border-radius: 0;
		box-shadow: none;
		padding-top: 0;
	}

	.header-search-dropdown__panel .header-search-dropdown__body {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		/* Match .az-shop-price-filter__form sheet inset (padding-block + mobile bottom) */
		padding-top: var(--az-space-4);
		padding-inline: var(--az-shop-filter-sheet-pad-x);
		padding-bottom: max(var(--az-space-4), env(safe-area-inset-bottom, 0px));
		-webkit-overflow-scrolling: touch;
	}

	.az-shop-dropdown__panel .az-shop-dropdown__list {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.az-shop-price-dropdown__panel .az-shop-price-filter__form {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: max(var(--az-space-4), env(safe-area-inset-bottom, 0px));
	}
}

/* Sheet top bar: hidden on desktop for anchored dropdowns + inline nav; cart drawer keeps bar. */
@media (min-width: 1025px) {
	.header-mobile-drawer .az-sheet-head {
		display: none !important;
	}

	.az-shop-dropdown__panel .az-sheet-head,
	.az-shop-price-dropdown__panel .az-sheet-head,
	.wpm-language-dropdown-wrap .az-sheet-head,
	.header-search-dropdown__panel .az-sheet-head {
		display: none !important;
	}
}

@media (min-width: 1025px) {
	.az-shop-price-dropdown__root.is-open .az-shop-price-dropdown__wrap,
	.az-shop-dropdown__root.is-open .az-shop-dropdown__wrap,
	.header-search-dropdown__root.is-open .header-search-dropdown__wrap {
		display: block;
	}
}

.az-shop-price-dropdown__panel.az-shop-price-filter__panel,
.az-shop-dropdown__panel,
.header-search-dropdown__panel {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 0;
	margin: 0;
	background: var(--az-color-primary);
	box-shadow: var(--az-shadow-md);
	border-radius: 2px;
	box-sizing: border-box;
	position: static;
	left: auto;
	top: auto;
	transform: none;
}

@media (min-width: 1025px) {
	.header-search-dropdown__panel .header-search-dropdown__body {
		padding: var(--az-space-3) var(--az-shop-filter-sheet-pad-x);
	}
}

.header-search-dropdown__form.az-search-form {
	align-items: center;
}

@media (max-width: 1024px) {
	.header-search-dropdown__form.az-search-form {
		flex-direction: column;
		align-items: stretch;
	}

	.header-search-dropdown__form.az-search-form .search-field {
		flex: none;
		width: 100%;
		/* Compact field; sheet inset matches shop price filter panel */
		padding-block: 6px;
		padding-inline: var(--az-space-2);
		line-height: 1.2;
		min-height: 0;
		box-sizing: border-box;
	}

	.header-search-dropdown__form .search-submit {
		width: 100%;
		justify-content: center;
	}

	.header-search-dropdown__form.az-search-form .search-submit.button {
		padding-block: 6px;
		min-height: 0;
		line-height: 1.2;
	}
}

@media (prefers-reduced-motion: reduce) {
	.az-shop-price-dropdown__chevron {
		transition: none;
	}
}

/*
 * Shop catalog dropdown (.az-shop-dropdown) — trigger chrome shared with price; panel rules above.
 */
.az-shop-dropdown {
	position: relative;
	flex: 0 1 auto;
	min-width: 0;
	display: inline-flex;
	align-items: center;
}

.az-shop-dropdown__root {
	position: relative;
	display: flex;
	align-items: center;
}

.az-shop-dropdown__trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.2em;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 0.9rem;
	font-weight: var(--az-font-weight-normal);
	line-height: 1.25;
	color: var(--az-header-link-color);
	cursor: pointer;
	box-sizing: border-box;
	min-height: 1.25em;
}

.az-shop-dropdown__trigger:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: 3px;
}

.az-shop-dropdown__trigger-text {
	text-align: start;
	max-width: 14rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.az-shop-dropdown__chevron {
	font-size: 22px;
	line-height: 1;
	flex-shrink: 0;
	margin-top: 1px;
	transition: transform var(--az-duration-fast) var(--az-ease-default);
}

.az-shop-dropdown__root.is-open .az-shop-dropdown__chevron {
	transform: rotate(180deg);
}

.az-shop-dropdown__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
	box-sizing: border-box;
}

.az-shop-dropdown__item {
	margin: 0;
	padding: 0;
	list-style: none;
	box-sizing: border-box;
}

.az-shop-dropdown__link {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	text-align: start;
	width: 100%;
	min-height: 2.25rem;
	padding: var(--az-dropdown-row-pad-y) var(--az-shop-filter-sheet-pad-x);
	box-sizing: border-box;
	line-height: 1.25;
	border-radius: 2px;
	color: var(--az-header-link-color);
	text-decoration: none;
}

.az-shop-dropdown__link:hover,
.az-shop-dropdown__link:focus-visible {
	text-decoration: none;
	background-color: var(--az-color-primary-dark-10);
}

.az-shop-dropdown__link:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: -2px;
}

.az-shop-dropdown__link.is-active {
	font-weight: var(--az-font-weight-emphasis);
	text-decoration: none;
	background-color: var(--az-color-primary-dark-10);
}

@media (prefers-reduced-motion: reduce) {
	.az-shop-dropdown__chevron {
		transition: none;
	}
}

.az-shop-price-filter__form {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--az-space-4);
	margin: 0;
	padding-block: var(--az-space-4);
	padding-inline: 0;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
}

.az-shop-price-filter__fields,
.az-shop-price-filter__slider-field,
.az-shop-price-filter__actions {
	padding-inline: var(--az-shop-filter-sheet-pad-x);
	box-sizing: border-box;
}

.az-shop-price-filter__fields {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: stretch;
	gap: var(--az-space-2);
	margin: 0;
	width: 100%;
	max-width: none;
	min-width: 0;
	box-sizing: border-box;
}

.az-shop-price-filter__fields .az-ui-kit__field {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
}

.az-shop-price-filter__slider-field .az-ui-kit__field-label {
	margin: 0;
}

.az-shop-price-filter__ranges {
	width: 100%;
	max-width: none;
	min-width: 0;
	box-sizing: border-box;
}

/* Dual-thumb range: one track + fill (shop price filter, components demo). */
.az-range-merged {
	position: relative;
	width: 100%;
	min-width: 0;
	height: 2.25rem;
	box-sizing: border-box;
}

.az-range-merged__track {
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	height: var(--az-slider-track-height);
	background: var(--az-border-divider);
	border-radius: 2px;
	pointer-events: none;
	z-index: 0;
	box-sizing: border-box;
}

.az-range-merged__fill {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	height: var(--az-slider-track-height);
	width: 0;
	left: 0;
	margin: 0;
	padding: 0;
	background: var(--az-header-link-color);
	border-radius: 2px;
	pointer-events: none;
	z-index: 1;
	box-sizing: border-box;
}

.az-range-merged__inputs {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
}

.az-range-merged__inputs .az-slider__input {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
}

.az-range-merged__inputs .az-slider__input::-webkit-slider-runnable-track {
	background: transparent;
}

.az-range-merged__inputs .az-slider__input::-moz-range-track {
	background: transparent;
}

.az-range-merged__input--min {
	z-index: 3;
}

.az-range-merged__input--max {
	z-index: 4;
}

.az-range-merged__inputs .az-slider__input:hover,
.az-range-merged__inputs .az-slider__input:focus {
	z-index: 5;
}

/* Components page: avoid shop sheet horizontal inset on demo row */
.az-range-merged-demo .az-shop-price-filter__fields {
	padding-inline: 0;
}

.az-ui-kit__field .az-range-merged {
	width: 100%;
	max-width: 100%;
}

.az-shop-price-filter__actions.az-ui-kit__row {
	align-items: stretch;
	width: 100%;
}

.az-shop-price-dropdown__panel .az-shop-price-filter__actions .button {
	flex: 1 1 0;
	min-width: 0;
	box-sizing: border-box;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	font-size: var(--az-button-font-size) !important;
	border-radius: var(--az-control-radius) !important;
	padding-top: var(--az-button-padding-y) !important;
	padding-bottom: var(--az-button-padding-y) !important;
	padding-left: var(--az-button-padding-x) !important;
	padding-right: var(--az-button-padding-x) !important;
}

/* Match side cart CTA colors (Woo / later sheets). */
.az-shop-price-dropdown__panel .az-shop-price-filter__actions .button.button--secondary {
	background: var(--az-color-surface);
	color: var(--az-button-bg);
	border: 1px solid var(--az-button-bg);
}

.az-shop-price-dropdown__panel .az-shop-price-filter__actions .button.button--secondary:hover {
	background: color-mix(in srgb, var(--az-button-bg) 10%, var(--az-color-surface));
	border-radius: var(--az-control-radius) !important;
}

.az-shop-price-dropdown__panel .az-shop-price-filter__actions .button.button--secondary:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

.az-shop-price-dropdown__panel .az-shop-price-filter__actions .button.button--secondary:visited {
	color: var(--az-button-bg);
}

.az-shop-price-dropdown__panel .az-shop-price-filter__actions .button.button--primary {
	background: var(--az-button-bg);
	border: 1px solid var(--az-button-bg);
	color: var(--az-button-text);
}

.az-shop-price-dropdown__panel .az-shop-price-filter__actions .button.button--primary:hover {
	background: color-mix(in srgb, var(--az-button-bg) 90%, #ffffff 10%);
	color: var(--az-button-text);
	border-radius: var(--az-control-radius) !important;
}

.az-shop-price-dropdown__panel .az-shop-price-filter__actions .button.button--primary:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

.az-shop-price-dropdown__panel .az-shop-price-filter__actions .button.button--primary:visited {
	color: var(--az-button-text);
}

/* Shop + search archives — pagination (the_posts_pagination) */
.az-search-pagination-wrap {
	padding-top: var(--az-space-4);
}

.az-search-pagination-wrap .navigation.pagination {
	margin: 0;
}

.az-search-pagination-wrap .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--az-space-2);
	align-items: center;
	justify-content: center;
}

.az-search-pagination-wrap .page-numbers {
	display: inline-flex;
	min-width: 2.25rem;
	min-height: 2.25rem;
	align-items: center;
	justify-content: center;
	padding: 0 var(--az-space-2);
	box-sizing: border-box;
	text-decoration: none;
	color: var(--az-header-link-color);
	border: 1px solid var(--az-border-divider);
	font-size: 0.9rem;
	line-height: 1;
	border-radius: 2px;
}

.az-search-pagination-wrap a.page-numbers:hover {
	background: var(--az-color-primary);
}

.az-search-pagination-wrap span.page-numbers.current {
	background: var(--az-button-bg);
	color: var(--az-button-text);
	border-color: var(--az-button-bg);
}

.az-search-pagination-wrap span.page-numbers.dots {
	border-color: transparent;
	background: transparent;
	min-width: auto;
	padding: 0 var(--az-space-1);
}

.az-search-pagination-wrap .az-pagination-arrow {
	font-size: 1.35rem;
	line-height: 1;
}

/* Search results — toolbar + non-product hits */
.az-search-section {
	padding-top: var(--az-pad-y);
	padding-bottom: var(--az-pad-y);
}

.az-search-toolbar {
	margin-bottom: var(--az-space-4);
}

.az-search-hit {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-2);
	align-self: stretch;
	padding: var(--az-space-3);
	box-sizing: border-box;
	border: 1px solid var(--az-border-divider);
	border-radius: var(--az-control-radius);
	background: var(--az-color-surface);
	text-align: start;
}

.az-search-hit__title {
	margin: 0;
	font-size: 1rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.25;
	color: var(--az-header-link-color);
}

.az-search-hit__title a {
	color: inherit;
	text-decoration: none;
}

.az-search-hit__title a:hover,
.az-search-hit__title a:focus-visible {
	text-decoration: underline;
}

.az-search-hit__title a:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: 2px;
}

.az-search-hit__excerpt {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--az-text-secondary);
}

.az-search-empty-form-wrap {
	margin-top: var(--az-space-4);
	margin-bottom: var(--az-space-3);
	width: 100%;
	max-width: 28rem;
	margin-inline: auto;
	box-sizing: border-box;
}

.az-search-form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--az-space-2);
	justify-content: center;
}

/* .search-field is type="search" — use same rules as input[type="text"] etc. (padding, border, focus). Only layout here. */
.az-search-form .search-field {
	flex: 1 1 12rem;
	min-width: 0;
	box-sizing: border-box;
	margin: 0;
}

/*
 * Submit matches .search-field height: same vertical padding + inherited type as inputs (not global .button metrics).
 * No fixed height — label can wrap; width constraints (e.g. narrow header panel) allow two lines.
 */
.az-search-form .search-submit.button {
	flex: 0 1 auto;
	min-width: 0;
	min-height: 0;
	height: auto;
	max-height: none;
	box-sizing: border-box;
	padding-top: var(--az-control-padding-y);
	padding-bottom: var(--az-control-padding-y);
	padding-left: var(--az-button-padding-x);
	padding-right: var(--az-button-padding-x);
	font-size: inherit !important;
	line-height: inherit !important;
	font-family: inherit !important;
	font-weight: var(--az-button-font-weight);
	white-space: normal;
	text-align: center;
	overflow-wrap: break-word;
}

/* Header sheet + narrow layouts: shorter field / button than global input + .button padding */
@media (max-width: 1024px) {
	.az-search-form .search-field {
		padding-top: var(--az-space-1);
		padding-bottom: var(--az-space-1);
		line-height: 1.25;
	}

	.az-search-form .search-submit.button {
		padding-top: var(--az-space-1);
		padding-bottom: var(--az-space-1);
	}
}

.home-products-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--az-space-3);
	align-items: start;
}

/* Home category tiles: one per row on small screens; shop/search grids keep two columns via .home-products-section--products */
@media (max-width: 767px) {
	.home-products-section:not(.home-products-section--products) .home-products-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.home-product-card {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-2);
	text-decoration: none;
	color: inherit;
}

.home-product-card:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 3px;
}

.home-product-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--az-space-2);
}

.home-product-card-text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.home-product-card-visual {
	position: relative;
	overflow: hidden;
	width: 100%;
	transform: rotate(0deg);
	transform-origin: center center;
	box-shadow: none;
	transition:
		transform var(--az-product-rotate-dur) var(--az-product-hover-ease) 0s,
		box-shadow var(--az-product-rotate-dur) var(--az-product-hover-ease) 0s;
	will-change: transform, box-shadow;
}

.home-product-card:hover .home-product-card-visual,
.home-product-card:focus-within .home-product-card-visual {
	transform: rotate(var(--az-product-hover-tilt));
	box-shadow: var(--az-product-hover-shadow);
	transition:
		transform var(--az-product-rotate-dur) var(--az-product-hover-ease) var(--az-product-rotate-delay-enter),
		box-shadow var(--az-product-rotate-dur) var(--az-product-hover-ease) var(--az-product-rotate-delay-enter);
}

.home-product-card-visual::after {
	content: "";
	position: absolute;
	left: -35%;
	top: -45%;
	width: 48%;
	height: 210%;
	background: linear-gradient(
		125deg,
		transparent 0%,
		rgba(255, 255, 255, 0) 38%,
		var(--az-product-shine-highlight) 50%,
		rgba(255, 255, 255, 0) 62%,
		transparent 100%
	);
	transform: translate(-102%, -102%) rotate(48deg);
	opacity: 0;
	pointer-events: none;
	z-index: 2;
	mix-blend-mode: soft-light;
}

.home-product-card-image-scale {
	position: relative;
	width: 100%;
	transform: scale(1);
	transform-origin: center center;
	transition: transform var(--az-product-zoom-dur) var(--az-product-hover-ease) var(--az-product-zoom-delay-leave);
	will-change: transform;
}

.home-product-card:hover .home-product-card-image-scale,
.home-product-card:focus-within .home-product-card-image-scale {
	transform: scale(var(--az-product-hover-zoom));
	transition: transform var(--az-product-zoom-dur) var(--az-product-hover-ease) 0s;
}

.home-product-card-image {
	width: 100%;
	aspect-ratio: 3 / 4;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	background-color: var(--az-surface-placeholder);
}

.home-product-card-image--secondary {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity var(--az-product-secondary-fade) var(--az-product-hover-ease);
	z-index: 1;
	pointer-events: none;
}

.home-product-card:hover .home-product-card-image--secondary,
.home-product-card:focus-within .home-product-card-image--secondary {
	opacity: 1;
}

.home-product-card:hover .home-product-card-visual::after,
.home-product-card:focus-within .home-product-card-visual::after {
	animation: az-product-card-shine var(--az-product-shine-duration) linear var(--az-product-shine-delay) forwards;
}

@keyframes az-product-card-shine {
	0% {
		transform: translate(-102%, -102%) rotate(48deg);
		opacity: 0;
	}

	1.5% {
		opacity: 0.48;
	}

	94% {
		opacity: 0.48;
	}

	100% {
		transform: translate(130%, 130%) rotate(48deg);
		opacity: 0;
	}
}

.home-product-card-title {
	margin: 0;
	font-size: 0.8125rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.3;
	text-align: left;
}

.home-product-card-brand {
	margin: 0;
	font-size: 0.7rem;
	font-weight: var(--az-font-weight-normal);
	line-height: 1.3;
	letter-spacing: 0.06em;
	color: var(--az-text-tertiary);
}

.home-product-card-price {
	margin: 0;
	font-size: 0.95rem;
	font-weight: var(--az-font-weight-normal);
	line-height: 1.35;
	color: var(--az-text-secondary);
	text-align: left;
}

.home-product-card-price .woocommerce-Price-amount {
	font-weight: var(--az-font-weight-normal);
}

.home-products-section--products .home-product-card-footer {
	justify-content: center;
}

.home-products-section--products .home-product-card-text {
	align-items: center;
	width: 100%;
}

.home-products-section--products .home-product-card-title {
	text-align: center;
}

.home-products-section--products .home-product-card-brand {
	text-align: center;
	text-transform: uppercase;
}

.home-products-section--products .home-product-card-price {
	text-align: center;
}

.home-product-card-arrow {
	flex-shrink: 0;
	font-size: 1.35rem;
	line-height: 1;
	font-weight: var(--az-font-weight-normal);
}

@media (prefers-reduced-motion: reduce) {
	.home-product-card-visual,
	.home-product-card-image-scale {
		transition: none;
		animation: none !important;
	}

	.home-product-card-visual::after {
		display: none;
	}

	.home-product-card:hover .home-product-card-image-scale,
	.home-product-card:focus-within .home-product-card-image-scale {
		transform: none;
	}

	.home-product-card:hover .home-product-card-visual,
	.home-product-card:focus-within .home-product-card-visual {
		transform: none;
		box-shadow: none;
	}

	.home-product-card-image--secondary {
		transition: none;
	}

	.home-product-card:hover .home-product-card-image--secondary,
	.home-product-card:focus-within .home-product-card-image--secondary {
		opacity: 1;
	}
}

@media (min-width: 768px) {
	.home-product-card-title {
		font-size: 1rem;
		line-height: 1.32;
	}

	.home-products-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--az-space-4);
	}
}

/* Single product: related picks — full-viewport-width white band; inner uses .site-section-inner */
.az-single-product-related-band {
	width: 100%;
	box-sizing: border-box;
	background: #ffffff;
	padding-block: var(--az-pad-y);
	padding-inline: var(--az-pad-x);
}

.az-single-product-related-band .home-products-section-title {
	margin: 0 0 var(--az-space-4);
	font-size: clamp(1.125rem, 2.5vw, 1.375rem);
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	letter-spacing: 0.02em;
	text-align: start;
}

/* White strip in dark theme: use dark text on #fff */
html[data-az-theme="dark"] .az-single-product-related-band .home-products-section-title,
html[data-az-theme="dark"] .az-single-product-related-band .home-product-card-title {
	color: #111111;
}

html[data-az-theme="dark"] .az-single-product-related-band .home-product-card-brand {
	color: rgba(0, 0, 0, 0.45);
}

html[data-az-theme="dark"] .az-single-product-related-band .home-product-card-price,
html[data-az-theme="dark"] .az-single-product-related-band .home-product-card-price .woocommerce-Price-amount {
	color: rgba(0, 0, 0, 0.72);
}

.home-products-grid.home-products-grid--single-related {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--az-space-3);
}

@media (min-width: 960px) {
	.home-products-grid.home-products-grid--single-related {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: var(--az-space-4);
	}
}

.site-main {
	padding-top: 0;
	background: var(--az-color-primary);
	min-height: var(--az-site-main-min-height);
	box-sizing: border-box;
}

/* Woo shop archive: column flex for product grid + empty-state fill */
.site-main.site-main--shop {
	display: flex;
	flex-direction: column;
}

.site-main.site-main--shop > .site-section--shop-notices {
	flex-shrink: 0;
}

/* Empty catalog: fill space below toolbar and vertically center the notice block */
.site-main.site-main--shop .az-shop-products-section:has(.az-shop-empty) {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.site-main.site-main--shop .az-shop-products-section:has(.az-shop-empty) > .site-section-inner:first-child {
	flex-shrink: 0;
}

.site-main.site-main--shop .az-shop-products-section:has(.az-shop-empty) > .site-section-inner--md {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 0;
}

/* 404 + search no-results + WC coming soon — vertical fill + centered empty block */
.site-main:has(> .site-section.site-section--not-found),
.site-main:has(> .site-section.site-section--search-empty),
.site-main:has(> .site-section.site-section--coming-soon) {
	display: flex;
	flex-direction: column;
}

.site-main > .site-section.site-section--not-found,
.site-main > .site-section.site-section--search-empty {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

/*
 * Maintenance / WC coming soon: height = 100vh − admin bar − header block − footer − margins.
 * --az-site-main-min-height is set in header-mobile-menu.js (always runs, even if .site-header-shell is missing).
 */
.site-main > .site-section.site-section--coming-soon {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	min-height: var(--az-site-main-min-height);
	height: var(--az-site-main-min-height);
}

.site-main > .site-section.site-section--not-found > .site-section-inner,
.site-main > .site-section.site-section--search-empty > .site-section-inner,
.site-main > .site-section.site-section--coming-soon > .site-section-inner {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 0;
}

/*
 * WooCommerce coming soon: .site-main also uses --az-site-main-min-height; do not override .site-main with min-height: 0.
 */

/*
 * WC get_the_block_template_html() wraps output in .wp-site-blocks.
 * Do not use background: transparent — a light body/html layer will show through.
 */
html[data-az-theme="dark"] .wp-site-blocks:has(.site-section--coming-soon),
html[data-az-theme="dark"] .wp-site-blocks:has(.site-main .site-section--coming-soon) {
	background: var(--az-color-primary);
	color: inherit;
}

html[data-az-theme="dark"] .site-main:has(> .site-section.site-section--coming-soon) {
	background: var(--az-color-primary);
}

/* Same chain when body is flagged but tokens still resolve from light :root (edge cases). */
body.az-theme-wc-coming-soon .wp-site-blocks,
body.az-theme-wc-coming-soon #primary.site-main,
body.az-theme-wc-coming-soon .site-main,
body.az-theme-wc-coming-soon .site-section.site-section--coming-soon,
body.az-theme-wc-coming-soon .site-section--coming-soon > .site-section-inner {
	background-color: #141414;
}

/*
 * WC coming soon: backup if cookie ever wins over inline script (should not with AZ_THEME_FORCE_DARK).
 * Keeps canvas + empty state readable without relying only on html[data-az-theme].
 */
html:has(body.az-theme-wc-coming-soon) {
	color-scheme: dark;
	background: #000000;
	color: rgba(255, 255, 255, 0.82);
}

body.az-theme-wc-coming-soon {
	background: #000000;
	color: rgba(255, 255, 255, 0.82);
}

html:has(body.az-theme-wc-coming-soon) .az-shop-empty__title {
	color: #f0f0f0;
}

html:has(body.az-theme-wc-coming-soon) .az-shop-empty__message {
	color: rgba(255, 255, 255, 0.82);
}

/* /cart empty — same column width + vertical center as 404 / search empty */
.site-main:has(.az-cart-page__empty) {
	display: flex;
	flex-direction: column;
}

.site-main:has(.az-cart-page__empty) > .site-section:not(.site-section--hero) {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.site-main:has(.az-cart-page__empty) > .site-section:not(.site-section--hero) > .site-section-inner {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 0;
	max-width: var(--az-content-max-width-md);
}

.site-main:has(.az-cart-page__empty) .page-content {
	flex: 0 1 auto;
	width: 100%;
}

body.is-header-fixed .site-main {
	padding-top: calc(var(--az-header-h, 0px) - var(--az-space-1));
}

.site-footer {
	padding: var(--az-pad-y) var(--az-pad-x);
	text-align: start;
	background: var(--az-color-primary);
	border-top: 1px solid var(--az-border-divider);
}

/* Logo left, link column right; stack on narrow viewports */
.site-footer-top {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--az-space-4);
}

.site-footer-brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--az-footer-brand-gap);
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
}

.site-footer-logo-wrap {
	flex: 0 0 auto;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	max-width: 100%;
}

.site-footer-pay-badges {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--az-space-2);
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.site-footer-pay-badge-box {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: calc(3.25rem - 2px);
	flex: 0 0 calc(3.25rem - 2px);
	padding: var(--az-space-1) var(--az-space-2);
	background: #ffffff;
	border-radius: 2px;
	flex-shrink: 0;
}

.site-footer-pay-badge {
	height: 10px;
	width: 100%;
	max-height: 10px;
	display: block;
	object-fit: contain;
	object-position: center;
}

.site-footer-social-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--az-space-2);
	align-self: flex-start;
}

.site-footer-social {
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.site-footer-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	transform-origin: center;
	transition: transform 0.2s ease;
}

.site-footer-social-link:hover,
.site-footer-social-link:focus-visible {
	transform: scale(1.1);
}

@media (prefers-reduced-motion: reduce) {
	.site-footer-social-link {
		transition: none;
	}

	.site-footer-social-link:hover,
	.site-footer-social-link:focus-visible {
		transform: none;
	}
}

.site-footer-social-icon {
	display: block;
	width: 24px;
	height: 24px;
	object-fit: contain;
}

.site-footer-logo-wrap .site-footer-logo {
	max-height: var(--az-logo-max-height);
	width: auto;
	max-width: min(360px, 85vw);
	height: auto;
	display: block;
}

.site-footer-logo-wrap img.site-footer-logo.site-logo--theme-dark {
	display: none;
}

html[data-az-theme="dark"] .site-footer-logo-wrap img.site-footer-logo.site-logo--theme-light {
	display: none;
}

html[data-az-theme="dark"] .site-footer-logo-wrap img.site-footer-logo.site-logo--theme-dark {
	display: block;
}

.footer-nav {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--az-space-2);
	flex: 1 1 auto;
	margin: 0;
	padding: 0;
	min-width: 0;
	width: 100%;
}

.footer-nav-heading {
	margin: 0;
	font-size: clamp(0.9375rem, 2vw, 1.125rem);
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	color: var(--az-header-link-color);
}

.footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: var(--az-space-2);
	font-size: 0.8125rem;
	line-height: 1.4;
}

.footer-menu > li {
	width: 100%;
	max-width: 100%;
}

.footer-menu a {
	color: var(--az-header-link-color);
	text-decoration: none;
	display: inline-block;
	padding-block: 2px;
}

.footer-menu .current-menu-item > a,
.footer-menu .current_page_item > a {
	font-weight: var(--az-font-weight-emphasis);
}

.footer-menu a:hover,
.footer-menu a:focus-visible {
	text-decoration: underline;
}

.footer-menu .sub-menu {
	list-style: none;
	margin: var(--az-space-1) 0 0;
	padding: 0 0 0 var(--az-space-3);
	border-left: 1px solid var(--az-border-divider);
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: var(--az-space-1);
	font-size: 0.75rem;
}

.site-footer-top + .site-footer-pay-badges {
	margin-top: var(--az-space-4);
}

.site-footer-pay-badges + .site-footer-copyright {
	margin-top: var(--az-space-3);
}

.site-footer-copyright {
	margin: 0;
	font-size: 0.8125rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.45;
	text-align: center;
}

@media (max-width: 639px) {
	.site-footer {
		text-align: center;
	}

	.site-footer-top {
		align-items: center;
	}

	.site-footer-brand {
		align-items: center;
		width: 100%;
	}

	.site-footer-logo-wrap {
		justify-content: center;
		width: 100%;
	}

	.site-footer-social {
		justify-content: center;
		align-self: center;
		width: 100%;
	}

	.footer-nav {
		width: 100%;
		align-items: center;
	}

	.footer-menu {
		align-items: center;
		text-align: center;
		width: 100%;
	}

	.footer-menu > li {
		width: auto;
		max-width: 100%;
	}

	.footer-menu .sub-menu {
		align-items: center;
		text-align: center;
		padding: var(--az-space-1) 0 0;
		border-left: none;
		margin-left: 0;
	}
}

@media (min-width: 640px) {
	.site-footer-top {
		flex-direction: row;
		justify-content: space-between;
		align-items: stretch;
		gap: var(--az-space-4);
	}

	/* Nav column can be taller than logo + social: pin Instagram to bottom of brand column */
	.site-footer-social {
		margin-top: auto;
	}

	.footer-nav {
		width: auto;
		max-width: min(320px, 45%);
		align-items: flex-end;
	}

	.footer-menu {
		align-items: flex-end;
		text-align: right;
	}

	.footer-menu > li {
		width: auto;
		max-width: 100%;
	}

	.footer-menu .sub-menu {
		align-items: flex-end;
		text-align: right;
		padding: 0 var(--az-space-3) 0 0;
		border-left: none;
		border-right: 1px solid var(--az-border-divider);
		margin-right: 0;
		margin-left: auto;
	}
}

.page-content {
	line-height: 1.7;
}

.page-content h2 {
	margin-top: 2em;
	margin-bottom: 0.5em;
	font-size: 1.4rem;
	line-height: 1.3;
}

/* Beat .page-content h2 so .az-shop-empty matches UI kit / 404. */
.page-content .az-shop-empty .az-shop-empty__title {
	margin-top: 0;
	margin-bottom: var(--az-space-2);
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.2;
	color: var(--az-header-link-color);
}

.page-content .az-shop-empty .az-shop-empty__message {
	margin-top: 0;
	margin-bottom: var(--az-space-4);
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--az-text-secondary);
}

.page-content h3 {
	margin-top: 1.5em;
	margin-bottom: 0.4em;
	font-size: 1.15rem;
	line-height: 1.35;
}

.page-content p {
	margin-top: 0;
	margin-bottom: 1em;
}

.page-content ul,
.page-content ol {
	margin-top: 0;
	margin-bottom: 1em;
	padding-left: 1.5em;
}

.page-content li {
	margin-bottom: 0.35em;
}

.woocommerce-ordering select.orderby {
	all: revert;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: calc(0.5em + var(--az-select-chevron-size) + var(--az-space-1));
	background-image: var(--az-select-chevron-svg);
	background-repeat: no-repeat;
	background-position: right 0.5em center;
	background-size: var(--az-select-chevron-size) var(--az-select-chevron-size);
	cursor: pointer;
}

/*
 * Reset WC checkout form controls to browser/UA defaults so Blocks styles apply.
 * Scope to .site-main only — unscoped rules beat .header-burger (mobile) and break the menu.
 */
body.woocommerce-checkout .site-main button,
body.woocommerce-checkout .site-main input[type="button"],
body.woocommerce-checkout .site-main input[type="submit"],
body.woocommerce-checkout .site-main input[type="reset"],
body.woocommerce-checkout .site-main .button,
body.woocommerce-checkout .site-main .wp-element-button,
body.woocommerce-checkout .site-main .wp-block-button__link,
body.woocommerce-checkout .site-main .added_to_cart,
body.woocommerce-checkout .site-main .single_add_to_cart_button {
	all: revert;
}

body.woocommerce-checkout .site-main input[type="text"]:not(.az-checkout-theme-field),
body.woocommerce-checkout .site-main input[type="email"]:not(.az-checkout-theme-field),
body.woocommerce-checkout .site-main input[type="password"]:not(.az-checkout-theme-field),
body.woocommerce-checkout .site-main input[type="tel"]:not(.az-checkout-theme-field),
body.woocommerce-checkout .site-main input[type="number"]:not(.az-checkout-theme-field),
body.woocommerce-checkout .site-main input[type="search"]:not(.az-checkout-theme-field),
body.woocommerce-checkout .site-main input[type="url"]:not(.az-checkout-theme-field),
body.woocommerce-checkout .site-main textarea:not(.az-checkout-theme-field),
body.woocommerce-checkout .site-main select:not(.az-checkout-theme-field) {
	all: revert;
}

body.woocommerce-checkout .site-main textarea {
	resize: vertical;
	min-height: calc(1lh + 2 * var(--az-control-padding-y));
}

body.woocommerce-checkout .site-main select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: calc(var(--az-control-padding-x) + var(--az-select-chevron-size) + var(--az-space-1));
	background-image: var(--az-select-chevron-svg);
	background-repeat: no-repeat;
	background-position: right var(--az-control-padding-x) center;
	background-size: var(--az-select-chevron-size) var(--az-select-chevron-size);
	cursor: pointer;
}

body.woocommerce-checkout .site-main input[type="number"]::-webkit-outer-spin-button,
body.woocommerce-checkout .site-main input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.woocommerce-checkout .site-main input[type="number"] {
	-moz-appearance: textfield;
	appearance: textfield;
}

.header-burger {
	display: none;
}

.header-mobile-drawer-overlay {
	display: none;
}

/* Desktop: primary nav lives in .header-mobile-drawer but is inline — no sheet chrome. */
@media (min-width: 1025px) {
	.header-mobile-drawer {
		position: static;
		inset: auto;
		width: auto;
		height: auto;
		min-height: 0;
		transform: none;
		background: transparent;
		padding: 0;
		overflow: visible;
		box-shadow: none;
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		flex: 1 1 0;
		align-items: center;
		gap: var(--az-space-3);
		min-width: 0;
		z-index: auto;
	}

	.header-mobile-drawer-body {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		flex: 1 1 0;
		min-height: 0;
		min-width: 0;
		overflow: visible;
		padding: 0;
		-webkit-overflow-scrolling: auto;
		overscroll-behavior: auto;
	}
}

.header-cart-drawer-overlay {
	position: fixed;
	inset: 0;
	z-index: var(--az-z-overlay);
	width: 100%;
	height: 100%;
	background: transparent;
	cursor: pointer;
	visibility: hidden;
	pointer-events: none;
}

body.az-cart-open .header-cart-drawer-overlay {
	visibility: visible;
	pointer-events: auto;
}

.header-cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(420px, 92vw);
	background: var(--az-color-surface);
	transform: translateX(100%);
	transition: transform var(--az-header-drawer-duration) var(--az-header-drawer-ease);
	z-index: var(--az-z-drawer);
	display: flex;
	flex-direction: column;
	box-shadow: -12px 0 40px var(--az-shadow-color-soft);
}

/* Top bar: cart drawer, mobile menu sheet, shop sort/price + search full-screen modals, language sheet. */
.az-sheet-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--az-space-3);
	flex-shrink: 0;
	box-sizing: border-box;
	min-height: 51px;
	height: auto;
	padding: 0 var(--az-space-4);
	padding-top: max(0px, env(safe-area-inset-top, 0px));
	border-bottom: 1px solid var(--az-border-divider);
}

.az-sheet-title {
	margin: 0;
	font-size: 1.125rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.2;
	color: var(--az-header-link-color);
}

.az-sheet-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	font-size: 1.5rem;
	line-height: 1;
	font-weight: var(--az-font-weight-normal);
	color: var(--az-header-link-color);
	cursor: pointer;
	border-radius: 2px;
	user-select: none;
	transform: scale(1);
	transform-origin: center;
	transition: transform var(--az-header-icon-zoom-duration) var(--az-header-underline-ease);
}

.az-sheet-close:hover {
	transform: scale(1.12);
}

.az-sheet-close:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: 2px;
}

.header-cart-drawer-body {
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.header-cart-drawer-scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	padding: var(--az-space-3) var(--az-space-4);
	-webkit-overflow-scrolling: touch;
}

/* Side cart empty state — UI kit .az-shop-empty, vertically centered in drawer */
.header-cart-drawer-body--empty {
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.header-cart-drawer-scroll--empty {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: min(14rem, 42vh);
	overflow: visible;
	padding: var(--az-space-4);
}

.header-cart-drawer-scroll--empty .az-shop-empty--drawer {
	max-width: 100%;
}

/* /cart only: outer layout handles centering — no drawer min-height / extra padding */
.az-cart-page .header-cart-drawer-body--empty {
	flex: 0 1 auto;
	min-height: 0;
}

.az-cart-page .header-cart-drawer-scroll--empty {
	flex: 0 1 auto;
	min-height: 0;
	padding: 0;
	align-items: center;
	justify-content: center;
}

.az-cart-page__empty .az-shop-empty--cart-page {
	width: 100%;
	max-width: none;
	margin-inline: 0;
}

.header-cart-drawer-footer {
	flex-shrink: 0;
	padding: var(--az-space-3) var(--az-space-4);
	padding-bottom: max(var(--az-space-4), env(safe-area-inset-bottom, 0px));
	border-top: 1px solid var(--az-border-divider);
	display: flex;
	flex-direction: column;
	gap: var(--az-space-3);
}

.header-cart-drawer-footer .header-cart-drawer-subtotal {
	margin-top: 0;
	padding-top: 0;
}

/*
 * Cart page: line items left, subtotal + checkout right (drawer markup unchanged).
 */
.az-cart-page .header-cart-drawer-body.az-cart-page__layout {
	flex: none;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--az-space-4);
}

.az-cart-page .header-cart-drawer-scroll.az-cart-page__lines {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0 !important;
}

.az-cart-page .az-cart-page__summary {
	flex-shrink: 0;
	width: 100%;
}

@media (min-width: 768px) {
	.az-cart-page .header-cart-drawer-body.az-cart-page__layout {
		flex-direction: row;
		align-items: flex-start;
		gap: calc(var(--az-space-4) + var(--az-space-3));
	}

	.az-cart-page .header-cart-drawer-scroll.az-cart-page__lines {
		flex: 1 1 0;
	}

	.az-cart-page .az-cart-page__summary {
		flex: 0 0 min(22rem, 38vw);
		width: auto;
		max-width: 26rem;
		position: sticky;
		top: calc(var(--az-space-4) + env(safe-area-inset-top, 0px));
		align-self: flex-start;
	}
}

/* Cart page summary: theme rows (same rhythm as side cart) */
.az-cart-page__summary-rows .header-cart-drawer-subtotal.az-cart-summary__row:not(.az-cart-summary__row--total) {
	margin-top: 0;
	margin-bottom: 0;
	padding: var(--az-space-2) 0;
	font-size: 0.95rem;
	font-weight: var(--az-font-weight-emphasis);
	border-bottom: 1px solid var(--az-border-divider);
}

.az-cart-page__summary-rows .header-cart-drawer-subtotal-label {
	color: var(--az-text-secondary);
	font-weight: var(--az-font-weight-emphasis);
}

.az-cart-page__summary-rows .header-cart-drawer-subtotal-value {
	font-weight: var(--az-font-weight-emphasis);
}

.az-cart-page__summary-rows .az-cart-summary__row--total {
	padding: 0 0 var(--az-space-2);
	margin-top: 0;
	border-bottom: none;
	font-size: 1.05rem;
	font-weight: var(--az-font-weight-emphasis);
}

.az-cart-page__summary-rows .az-cart-summary__row--total .header-cart-drawer-subtotal-label,
.az-cart-page__summary-rows .az-cart-summary__row--total .header-cart-drawer-subtotal-value {
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-header-link-color);
}

.az-cart-page__checkout {
	margin-top: var(--az-space-4);
}

/* Checkout — static layout shell (fields use .az-ui-kit__field from the Components page). */
.page-content .az-checkout-page .az-checkout-page__section-title {
	margin: 0 0 var(--az-space-4);
	font-size: 1.15rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	color: var(--az-header-link-color);
}

.page-content .az-checkout-page .az-checkout-page__shipping {
	margin-top: var(--az-space-4);
}

.page-content .az-checkout-page .az-checkout-page__order-summary > .az-checkout-page__section-title {
	margin-bottom: calc(var(--az-space-4) + var(--az-space-3));
}

/* Checkout: form 60% + order summary 40% (lg container); stack on small viewports. */
.az-checkout-page__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--az-space-4);
	align-items: start;
	width: 100%;
	box-sizing: border-box;
}

.az-checkout-page__form {
	min-width: 0;
}

@media (min-width: 960px) {
	.az-checkout-page__grid {
		grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
		gap: calc(var(--az-space-4) + var(--az-space-3));
	}
}

.az-checkout-page .header-cart-drawer-scroll.az-checkout-page__order-lines {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0 !important;
}

/* Coupon: between line items and subtotal — UI kit field + primary (WC checkout reverts .site-main button). */
.az-checkout-page__coupon {
	margin-top: var(--az-space-4);
	width: 100%;
	box-sizing: border-box;
}

.az-checkout-page__coupon-toggle.az-ui-kit__link {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--az-space-2);
	width: 100%;
	box-sizing: border-box;
	text-decoration: none;
}

.az-checkout-page__coupon-toggle-text {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.az-checkout-page__coupon-chevron {
	font-size: 1.375rem;
	line-height: 1;
	flex-shrink: 0;
	color: var(--az-header-link-color);
	transition: transform var(--az-duration-fast) var(--az-ease-default);
}

.az-checkout-page__coupon-toggle[aria-expanded="true"] .az-checkout-page__coupon-chevron {
	transform: rotate(180deg);
}

.az-checkout-page__coupon-panel {
	margin-top: var(--az-space-3);
}

.az-checkout-page__coupon-row {
	align-items: flex-end;
	width: 100%;
	gap: var(--az-space-2);
}

.az-checkout-page__coupon-field {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
}

/* Text input: same chrome as global form controls (page-components / checkout fields). */
.woocommerce .az-checkout-page__coupon .az-ui-kit__field input[type="text"].az-checkout-theme-field {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	border-radius: var(--az-control-radius);
	border: 1px solid var(--az-border-divider);
	padding: var(--az-control-padding-y) var(--az-control-padding-x);
	background: var(--az-color-surface);
	color: var(--az-header-link-color);
	font: inherit;
	line-height: 1.35;
	min-height: calc(1lh + 2 * var(--az-control-padding-y));
}

.woocommerce .az-checkout-page__coupon .az-ui-kit__field input[type="text"].az-checkout-theme-field:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

/* Primary button: restore UI kit after body.woocommerce-checkout .site-main button { all: revert; } */
.woocommerce .az-checkout-page__coupon button.button.button--primary.az-checkout-page__coupon-apply {
	flex-shrink: 0;
	align-self: flex-end;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	width: auto !important;
	min-width: 5.5rem;
	white-space: nowrap;
	text-align: center !important;
	text-decoration: none !important;
	font-size: var(--az-button-font-size) !important;
	font-weight: var(--az-button-font-weight) !important;
	line-height: 1.25 !important;
	font-family: inherit !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	cursor: pointer !important;
	padding-top: var(--az-button-padding-y) !important;
	padding-bottom: var(--az-button-padding-y) !important;
	padding-left: var(--az-button-padding-x) !important;
	padding-right: var(--az-button-padding-x) !important;
	border-radius: var(--az-control-radius) !important;
	background: var(--az-button-bg) !important;
	border: 1px solid var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
	opacity: 1 !important;
}

.woocommerce .az-checkout-page__coupon button.button.button--primary.az-checkout-page__coupon-apply:hover {
	background: color-mix(in srgb, var(--az-button-bg) 90%, #ffffff 10%) !important;
	border-color: var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
	text-decoration: none !important;
}

.woocommerce .az-checkout-page__coupon button.button.button--primary.az-checkout-page__coupon-apply:focus-visible {
	outline: 2px solid var(--az-button-bg) !important;
	outline-offset: 2px !important;
	color: var(--az-button-text) !important;
}

.az-checkout-page__order-totals {
	margin-top: var(--az-space-4);
}

/* Checkout: grand total row — larger than cart / subtotal lines (same markup as cart summary). */
.woocommerce.az-checkout-page .az-checkout-page__order-totals .az-cart-summary__row--total {
	font-size: clamp(1.2rem, 2.75vw, 1.55rem);
	padding-top: var(--az-space-2);
}

.woocommerce.az-checkout-page .az-checkout-page__order-totals .az-cart-summary__row--total .header-cart-drawer-subtotal-value .woocommerce-Price-amount {
	font-size: inherit;
}

/*
 * Order received (thank you) — vertical rhythm matches checkout (.az-checkout-page__section-title → content uses --az-space-4).
 * Stack spacing = flex gap only (no stacked margin + gap).
 */
.woocommerce.az-checkout-page.az-order-received {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--az-space-4);
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.page-content .woocommerce.az-checkout-page.az-order-received .az-order-received__order {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--az-space-4);
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

/* Order summary (meta list) + line items / downloads: two columns on large viewports (matches checkout grid breakpoint). */
.woocommerce.az-checkout-page.az-order-received .az-order-received__split {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--az-space-4);
	align-items: start;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

@media (min-width: 960px) {
	.woocommerce.az-checkout-page.az-order-received .az-order-received__split {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
		gap: calc(var(--az-space-4) + var(--az-space-3));
	}
}

/* Title → block: 24px (--az-space-4), same as .az-checkout-page__section-title; column gap only (no margin + gap stack). */
.woocommerce.az-checkout-page.az-order-received .az-order-received__split-summary,
.woocommerce.az-checkout-page.az-order-received .az-order-received__split-lines {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-4);
	min-width: 0;
	box-sizing: border-box;
}

/* Direct stack headings only (not .woocommerce-column__title inside address cards). */
.page-content .woocommerce.az-checkout-page.az-order-received .az-order-received__order > h2,
.page-content .woocommerce.az-checkout-page.az-order-received .az-order-received__split-summary > h2 {
	margin: 0;
	font-size: 1.15rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	color: var(--az-header-link-color);
}

/* Thank-you: customer-details H2 is a flex child — margin must be 0 so gap is the only vertical rhythm (beats rule below). */
.page-content .woocommerce.az-checkout-page.az-order-received .az-order-received__order > .woocommerce-customer-details__section-heading.az-order-received__section-title {
	margin: 0;
}

.page-content .woocommerce.az-checkout-page.az-order-received ul:not(.woocommerce-order-overview):not(.woocommerce-error),
.page-content .woocommerce.az-checkout-page.az-order-received ol {
	padding-left: 0;
	margin-top: 0;
	margin-bottom: 0;
	list-style: none;
}

/* Success notice: same horizontal inset as order-summary rows (no nested max-width column). */
.page-content .woocommerce.az-checkout-page.az-order-received .az-order-received__notice.az-wc-notice--success .az-wc-notice__shell {
	max-width: none;
	margin-inline: 0;
	padding-left: var(--az-control-padding-x);
	padding-right: var(--az-control-padding-x);
}

/* Subtitle: must beat `.page-content p { margin-bottom: 1em }` so only .az-order-received__order gap applies. */
.page-content .woocommerce.az-checkout-page.az-order-received .az-order-received__order > .az-order-received__subtitle {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.5;
	color: var(--az-text-secondary);
	max-width: none;
}

.az-order-received__subtitle {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.5;
	color: var(--az-text-secondary);
	max-width: none;
}

/* Typography only — spacing from parent gap / nested flex gap (matches checkout section titles). */
.az-order-received__section-title {
	margin: 0;
	font-size: 1.15rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	color: var(--az-header-link-color);
}

/* My Account / endpoints: heading → card (no parent flex gap). Thank-you zeros margin — see rules above. */
.page-content .woocommerce .woocommerce-customer-details__section-heading.az-order-received__section-title {
	margin-top: 0;
	margin-bottom: var(--az-space-4);
	font-size: 1.15rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	color: var(--az-header-link-color);
}

.page-content .az-order-received .az-order-received__intro {
	margin: 0;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--az-header-link-color);
}

.az-order-received__notice {
	margin-bottom: 0;
}

/* Optional downloads block (rendered before line items; same width as order table). */
.woocommerce.az-order-received .woocommerce-order-downloads {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-4);
	margin: 0;
	padding: 0;
	width: 100%;
	box-sizing: border-box;
}

.woocommerce.az-order-received .woocommerce-order-downloads__title {
	margin: 0;
	font-size: 1.15rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	color: var(--az-header-link-color);
}

/* Line items + totals (WC order-details template) */
.woocommerce.az-order-received .woocommerce-order-details {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-4);
	margin: 0;
	padding: 0;
	min-width: 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	box-sizing: border-box;
	width: 100%;
}

.woocommerce.az-order-received .woocommerce-order-details__title {
	margin: 0;
	font-size: 1.15rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	color: var(--az-header-link-color);
}

.woocommerce.az-order-received table.shop_table.order_details {
	width: 100%;
	min-width: min(100%, 28rem);
	border-collapse: collapse;
	border: 1px solid var(--az-border-divider);
	border-radius: var(--az-control-radius);
	overflow: hidden;
	background: var(--az-color-surface);
	font-size: 0.9375rem;
}

.woocommerce.az-order-received table.shop_table.order_details thead th {
	text-align: left;
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-header-link-color);
	padding: var(--az-space-2) var(--az-control-padding-x);
	border-bottom: 1px solid var(--az-border-divider);
	background: color-mix(in srgb, var(--az-color-primary) 88%, transparent);
}

.woocommerce.az-order-received table.shop_table.order_details tbody td,
.woocommerce.az-order-received table.shop_table.order_details tbody th {
	padding: var(--az-space-3) var(--az-control-padding-x);
	border-bottom: 1px solid var(--az-border-divider);
	vertical-align: top;
}

.woocommerce.az-order-received table.shop_table.order_details tbody tr:last-child td,
.woocommerce.az-order-received table.shop_table.order_details tbody tr:last-child th {
	border-bottom: 1px solid var(--az-border-divider);
}

.woocommerce.az-order-received table.shop_table.order_details tfoot th,
.woocommerce.az-order-received table.shop_table.order_details tfoot td {
	padding: var(--az-space-2) var(--az-control-padding-x);
}

.woocommerce.az-order-received table.shop_table.order_details tfoot th {
	text-align: left;
	font-weight: var(--az-font-weight-normal);
	color: var(--az-text-secondary);
}

.woocommerce.az-order-received table.shop_table.order_details tfoot td {
	text-align: right;
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-header-link-color);
}

/* Billing / shipping — same card chrome + horizontal inset as order overview */
.woocommerce.az-order-received .woocommerce-customer-details {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-4);
	margin: 0;
	padding: var(--az-space-3) var(--az-control-padding-x);
	border: 1px solid var(--az-border-divider);
	border-radius: var(--az-control-radius);
	background: var(--az-color-surface);
	box-sizing: border-box;
	width: 100%;
}

/*
 * MakeCommerce: tracking is `<h3>…</h3>` + `<a>…</a>` as separate flex items — row-gap stacks with `.page-content h3` margins.
 * Keep label + tracking id tight (same stack as meta rows).
 */
.page-content .woocommerce.az-order-received .woocommerce-customer-details > h3 {
	margin: 0;
	font-size: 1rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	color: var(--az-header-link-color);
}

.woocommerce.az-order-received .woocommerce-customer-details > h3 + a {
	display: inline-block;
	margin-top: calc(var(--az-space-1) - var(--az-space-4));
	vertical-align: baseline;
	max-width: 100%;
}

.woocommerce.az-order-received .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--az-space-4);
	margin: 0;
	padding: 0;
	width: 100%;
	box-sizing: border-box;
}

@media (min-width: 600px) {
	.woocommerce.az-order-received .woocommerce-columns--addresses {
		grid-template-columns: 1fr 1fr;
	}
}

.woocommerce.az-order-received .woocommerce-column {
	margin: 0;
	padding: 0;
	min-width: 0;
	box-sizing: border-box;
}

.page-content .woocommerce.az-checkout-page.az-order-received .woocommerce-column__title {
	margin: 0 0 var(--az-space-2);
	font-size: 1rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	color: var(--az-header-link-color);
}

.woocommerce.az-order-received .woocommerce-customer-details address {
	font-style: normal;
	line-height: 1.5;
	color: var(--az-text-secondary);
	padding: 0;
	margin: 0;
}

/* MakeCommerce block: spacing from parent .woocommerce-customer-details flex gap (or outer stack gap if standalone). */
.woocommerce.az-order-received .mc-shipping-block-info {
	margin-top: 0;
}

.woocommerce.az-order-received .woocommerce-customer-details--phone,
.woocommerce.az-order-received .woocommerce-customer-details--email {
	margin: var(--az-space-2) 0 0;
}

.page-content .woocommerce.az-order-received ul.woocommerce-order-overview {
	list-style: none;
	padding: 0;
	margin: 0;
	border: 1px solid var(--az-border-divider);
	border-radius: var(--az-control-radius);
	overflow: hidden;
	background: var(--az-color-surface);
}

.page-content .woocommerce.az-order-received ul.woocommerce-order-overview > li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--az-space-2) var(--az-space-3);
	margin: 0;
	padding: var(--az-space-3) var(--az-control-padding-x);
	border-bottom: 1px solid var(--az-border-divider);
	box-sizing: border-box;
}

.page-content .woocommerce.az-order-received ul.woocommerce-order-overview > li:last-child {
	border-bottom: none;
}

.az-order-received__meta-label {
	font-size: 0.875rem;
	color: var(--az-text-secondary);
	font-weight: var(--az-font-weight-normal);
}

.az-order-received__meta-value {
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-header-link-color);
	text-align: right;
	margin-left: auto;
}

.woocommerce-order-overview__total .az-order-received__meta-value {
	font-size: clamp(1.05rem, 2vw, 1.25rem);
}

.az-order-received__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--az-space-3);
	margin-top: 0;
	align-items: center;
}

/* body.woocommerce-checkout .site-main button { all: revert } — restore UI kit on thank-you CTAs */
.woocommerce.az-order-received .az-order-received__actions a.button.button--primary {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	text-decoration: none !important;
	font-size: var(--az-button-font-size) !important;
	font-weight: var(--az-button-font-weight) !important;
	line-height: 1.25 !important;
	padding: var(--az-button-padding-y) var(--az-button-padding-x) !important;
	border-radius: var(--az-control-radius) !important;
	background: var(--az-button-bg) !important;
	border: 1px solid var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
	cursor: pointer !important;
}

.woocommerce.az-order-received .az-order-received__actions a.button.button--primary:hover {
	background: color-mix(in srgb, var(--az-button-bg) 90%, #ffffff 10%) !important;
	color: var(--az-button-text) !important;
}

.woocommerce.az-order-received .az-order-received__actions a.button.button--secondary {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	text-decoration: none !important;
	font-size: var(--az-button-font-size) !important;
	font-weight: var(--az-button-font-weight) !important;
	line-height: 1.25 !important;
	padding: var(--az-button-padding-y) var(--az-button-padding-x) !important;
	border-radius: var(--az-control-radius) !important;
	background: transparent !important;
	border: 1px solid var(--az-button-bg) !important;
	color: var(--az-button-bg) !important;
	cursor: pointer !important;
}

.woocommerce.az-order-received .az-order-received__actions a.button.button--secondary:hover {
	background: color-mix(in srgb, var(--az-button-bg) 10%, var(--az-color-surface)) !important;
	color: var(--az-button-bg) !important;
}

.woocommerce.az-order-received table.shop_table a.woocommerce-button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: var(--az-space-1) var(--az-space-1) 0 0;
	padding: var(--az-button-padding-y-sm) var(--az-button-padding-x-sm);
	font-size: var(--az-button-font-size-sm);
	font-weight: var(--az-button-font-weight);
	border-radius: var(--az-control-radius);
	text-decoration: none;
	background: var(--az-button-bg);
	border: 1px solid var(--az-button-bg);
	color: var(--az-button-text);
}

.az-order-received__failed {
	margin-bottom: var(--az-space-3);
}

.az-order-received__failed-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--az-space-3);
	margin: 0;
}

/* Payment methods: WC markup (#payment, .wc_payment_method, .payment_box) + UI kit spacing */
/*
 * Reset prose list styles (.page-content ul/li) on WC gateway list — no bullets / left indent.
 * Applies to initial markup and to AJAX fragments (often only .woocommerce-checkout-payment on #payment).
 */
.page-content .az-checkout-page #payment.woocommerce-checkout-payment ul.wc_payment_methods,
.woocommerce.az-checkout-page #payment.woocommerce-checkout-payment ul.wc_payment_methods {
	list-style: none;
	padding-left: 0;
	margin: 0;
}

.page-content .az-checkout-page #payment.woocommerce-checkout-payment ul.wc_payment_methods > li.wc_payment_method,
.woocommerce.az-checkout-page #payment.woocommerce-checkout-payment ul.wc_payment_methods > li.wc_payment_method {
	list-style: none;
	margin: 0;
	padding-left: 0;
}

/* MakeCommerce gateway: hide icon in method label; space above bank/card picker */
.woocommerce.az-checkout-page #payment .wc_payment_method.payment_method_makecommerce > label img {
	display: none !important;
}

/*
 * Gap above Payment / gateway UI (below order totals in sidebar). Works when AJAX strips .az-checkout-page__payment from #payment.
 */
.page-content .az-checkout-page .az-checkout-page__order-summary #payment.woocommerce-checkout-payment,
.woocommerce.az-checkout-page .az-checkout-page__order-summary #payment.woocommerce-checkout-payment {
	margin-top: calc(var(--az-space-4) + var(--az-space-3));
}

.page-content .az-checkout-page .az-checkout-page__payment > .az-checkout-page__section-title {
	margin: 0 0 var(--az-space-4);
}

.az-checkout-page__payment-methods {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--az-space-2);
}

.az-checkout-page__payment .wc_payment_method {
	margin: 0;
	padding: 0;
	border: 1px solid var(--az-border-divider);
	border-radius: var(--az-control-radius);
	background: var(--az-color-surface);
	box-sizing: border-box;
}

.az-checkout-page__payment .wc_payment_method > .input-radio {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.az-checkout-page__payment .wc_payment_methods > .wc_payment_method:has(> .input-radio:checked) {
	border-color: var(--az-button-bg);
	box-shadow: 0 0 0 1px var(--az-button-bg);
}

.az-checkout-page__payment .wc_payment_method > label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--az-space-3);
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: var(--az-control-padding-y) var(--az-control-padding-x);
	cursor: pointer;
	font: inherit;
	line-height: 1.35;
	color: var(--az-header-link-color);
}

/* MakeCommerce: one step under gateway title (same scale as .az-space-3 section gaps — avoid stacking margin + padding-top) */
.woocommerce.az-checkout-page #payment .wc_payment_method.payment_method_makecommerce > label {
	display: flex;
	margin-bottom: var(--az-space-3) !important;
	margin-top: 0 !important;
	padding-bottom: 0;
}

.woocommerce.az-checkout-page #payment .wc_payment_method.payment_method_makecommerce .payment_box.payment_method_makecommerce {
	padding-top: 0 !important;
}

.az-checkout-page__payment .wc_payment_method .payment_box {
	margin: 0;
	padding: 0 var(--az-control-padding-x) var(--az-control-padding-y);
	border-top: 1px solid var(--az-border-divider);
	background: transparent;
}

.az-checkout-page__payment .wc_payment_method .payment_box::before {
	display: none;
}

.az-checkout-page__payment .wc_payment_method .payment_box p:last-child {
	margin-bottom: 0;
}

.az-checkout-page__payment-unavailable {
	margin: 0;
	padding: 0;
	list-style: none;
}

/*
 * WC update_checkout injects full payment.php into .woocommerce-checkout-payment (includes default Place order).
 * We strip that row in PHP; this hides it if a fragment slips through (duplicate #place_order / unstyled .button.alt).
 */
.az-checkout-page #payment.woocommerce-checkout-payment .form-row.place-order {
	display: none !important;
}

.az-checkout-page__order-empty {
	padding: var(--az-space-2) 0;
}

/*
 * Gap after total → notice: must beat .page-content p { margin-top: 0 } (otherwise top margin is ignored).
 * Space before Place order is .az-checkout-page__place-order-wrap.
 */
.page-content .az-checkout-page .az-checkout-page__legal-notice {
	margin-top: calc(var(--az-space-4) + var(--az-space-3));
	margin-bottom: 0;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--az-text-secondary);
}

.az-checkout-page__legal-notice-link {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.az-checkout-page__legal-notice-link:hover,
.az-checkout-page__legal-notice-link:focus-visible {
	color: var(--az-header-link-color);
}

.az-checkout-page__place-order-wrap {
	margin-top: var(--az-space-3);
	width: 100%;
	box-sizing: border-box;
}

/*
 * WC checkout resets .site-main buttons — restore UI kit primary block (same as .header-cart-drawer-actions).
 */
.woocommerce .az-checkout-page__place-order-wrap button.button.button--primary.button--block,
.woocommerce .az-checkout-page__place-order-wrap button.button.button--primary.button--block.az-checkout-page__place-order {
	--az-place-order-shield-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E");
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: var(--az-space-2) !important;
	box-sizing: border-box !important;
	width: 100% !important;
	text-align: center !important;
	text-decoration: none !important;
	font-size: var(--az-button-font-size) !important;
	font-weight: var(--az-button-font-weight) !important;
	line-height: 1.25 !important;
	font-family: inherit !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	cursor: pointer !important;
	padding-top: var(--az-button-padding-y) !important;
	padding-bottom: var(--az-button-padding-y) !important;
	padding-left: var(--az-button-padding-x) !important;
	padding-right: var(--az-button-padding-x) !important;
	border-radius: var(--az-control-radius) !important;
	background: var(--az-button-bg) !important;
	border: 1px solid var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
	opacity: 1 !important;
}

/*
 * Shield via ::before (not child nodes): WooCommerce checkout.js sets #place_order text when
 * payment method changes, which would remove inline icon markup.
 */
.woocommerce .az-checkout-page__place-order-wrap button.az-checkout-page__place-order::before {
	content: '' !important;
	display: block !important;
	width: 1.2rem !important;
	height: 1.2rem !important;
	flex-shrink: 0 !important;
	background-color: currentColor !important;
	-webkit-mask: var(--az-place-order-shield-mask) center / contain no-repeat !important;
	mask: var(--az-place-order-shield-mask) center / contain no-repeat !important;
}

.woocommerce .az-checkout-page__place-order-wrap button.button.button--primary.button--block:hover,
.woocommerce .az-checkout-page__place-order-wrap button.button.button--primary.button--block.az-checkout-page__place-order:hover {
	background: color-mix(in srgb, var(--az-button-bg) 90%, #ffffff 10%) !important;
	border-color: var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
	text-decoration: none !important;
	border-radius: var(--az-control-radius) !important;
}

.woocommerce .az-checkout-page__place-order-wrap button.button.button--primary.button--block:focus-visible,
.woocommerce .az-checkout-page__place-order-wrap button.button.button--primary.button--block.az-checkout-page__place-order:focus-visible {
	outline: 2px solid var(--az-button-bg) !important;
	outline-offset: 2px !important;
	color: var(--az-button-text) !important;
	border-radius: var(--az-control-radius) !important;
}

@keyframes az-ui-loader-spin {
	to {
		transform: rotate(360deg);
	}
}

/*
 * jQuery blockUI (WooCommerce cart, checkout, coupons, etc.): WC sets overlay background #fff @ 0.6.
 * Transparent overlay + centered UI kit spinner on all pages that use blockUI.
 */
.blockUI.blockOverlay {
	background: transparent !important;
	opacity: 1 !important;
}

.blockUI.blockOverlay::before {
	content: "" !important;
	display: block !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: var(--az-loader-size) !important;
	height: var(--az-loader-size) !important;
	margin-left: calc(var(--az-loader-size) / -2) !important;
	margin-top: calc(var(--az-loader-size) / -2) !important;
	padding: 0 !important;
	background: none !important;
	background-image: none !important;
	background-size: auto !important;
	animation: az-ui-loader-spin var(--az-loader-duration) linear infinite !important;
	border: 2px solid var(--az-loader-track) !important;
	border-top-color: var(--az-loader-accent) !important;
	border-radius: 50% !important;
	box-sizing: border-box !important;
	line-height: 1 !important;
	font-size: 1rem !important;
	color: transparent !important;
}

/* Checkout: use full width of column / .site-section-inner (lg), not the UI kit stack cap (28rem). */
.az-checkout-page .az-checkout-page__design,
.az-checkout-page .az-ui-kit__stack {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* WooCommerce .form-row on UI-kit labels: keep layout (stack gap), not WC default margins. */
.woocommerce.az-checkout-page form.checkout .az-ui-kit__field.form-row {
	padding: 0;
	margin: 0;
}

/* Invalid fields: red border only (WC .woocommerce-invalid + server-side aria-invalid). */
.woocommerce.az-checkout-page form.checkout .az-ui-kit__field.form-row.woocommerce-invalid .az-checkout-theme-field,
.woocommerce.az-checkout-page form.checkout .az-checkout-theme-field[aria-invalid="true"] {
	border-color: #c62828;
}

/*
 * Duplicate billing fields are disabled + [hidden] when “same as shipping” — never show error chrome there
 * (WC may still set classes/aria-invalid on focusout before JS clears them).
 */
.woocommerce.az-checkout-page form.checkout #az-checkout-billing-panel[hidden] .az-ui-kit__field.form-row.woocommerce-invalid .az-checkout-theme-field,
.woocommerce.az-checkout-page form.checkout #az-checkout-billing-panel[hidden] .az-checkout-theme-field[aria-invalid="true"] {
	border-color: var(--az-border-divider) !important;
}

/* Inline validation copy under fields (WC .checkout-inline-error-message). */
.woocommerce.az-checkout-page form.checkout .checkout-inline-error-message {
	margin: 0;
	padding: 0;
	font-size: 0.75rem;
	line-height: 1.35;
	font-weight: var(--az-font-weight-normal);
	color: #c62828;
}

.az-checkout-page__row-two {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--az-space-3);
	width: 100%;
	align-items: start;
}

@media (max-width: 600px) {
	.az-checkout-page__row-two {
		grid-template-columns: 1fr;
	}
}

.az-checkout-page .az-ui-kit__checkbox {
	padding-top: var(--az-space-1);
}

.az-checkout-page .az-checkout-page__billing-same-label.az-ui-kit__checkbox {
	margin-top: var(--az-space-3);
}

.az-checkout-page__billing-panel {
	margin-top: var(--az-space-4);
}

.az-checkout-page__additional {
	margin-top: var(--az-space-4);
}

/*
 * MakeCommerce gateway: bank / card picker (.makecommerce-payment-methods) — full UI kit styling.
 * Plugin markup uses Bootstrap utility class names; makecommerce.css + bootstrap-mk-scoped.css are dequeued in functions.php.
 */
.woocommerce.az-checkout-page .makecommerce-payment-methods {
	font-family: var(--az-font-sans);
	background: transparent !important;
	box-shadow: none !important;
	color: var(--az-header-link-color);
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .makecommerce-picker,
.woocommerce.az-checkout-page .makecommerce-picker {
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
}

.woocommerce.az-checkout-page .makecommerce-picker > .mb-3 {
	margin-bottom: var(--az-space-3) !important;
}

/* Bootstrap-compatible utilities (scoped Bootstrap stylesheet is not loaded). */
.woocommerce.az-checkout-page .makecommerce-payment-methods label.d-none {
	display: none !important;
}

/* Hidden mirror <select name="PRESELECTED_METHOD_*"> — plugin relied on Bootstrap .d-none */
.woocommerce.az-checkout-page .makecommerce-payment-methods select.d-none,
.woocommerce.az-checkout-page form.checkout select[name^="PRESELECTED_METHOD_"] {
	display: none !important;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .row.g-3 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--az-space-3);
	width: 100%;
	margin: 0;
	box-sizing: border-box;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .row.g-3 > [class*="col-"] {
	min-width: 0;
	width: 100%;
	max-width: none;
	padding: 0;
	box-sizing: border-box;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method-wrapper {
	min-width: 0;
	width: 100%;
}

/*
 * Tile hit area: plugin uses Bootstrap .w-100/.h-100 (not loaded). Full-size invisible input on top;
 * label is flex layer below (pointer-events: none) so the whole tile is clickable.
 */
.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method .btn-check {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	opacity: 0;
	cursor: pointer;
	z-index: 2;
	-webkit-appearance: none;
	appearance: none;
}

/* Section labels: "Bank payments", "Cards", BNPL — matches .az-checkout-page__section-title scale */
.woocommerce.az-checkout-page .makecommerce-payment-methods .d-flex.align-items-center.gap-2.my-3 {
	display: flex;
	align-items: center;
	gap: var(--az-space-2);
	margin-top: var(--az-space-3);
	margin-bottom: var(--az-space-3);
	font-family: var(--az-font-sans);
	font-size: 1.15rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	color: var(--az-header-link-color) !important;
	border: none;
	box-shadow: none;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .d-flex.align-items-center.gap-2.my-3 .flex-grow-1.border-top {
	display: none !important;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods p.no-methods {
	margin: 0;
	padding: 0;
	font-size: 0.875rem;
	line-height: 1.45;
	font-weight: var(--az-font-weight-normal);
	color: var(--az-text-secondary);
}

/* Country selector — same chrome as checkout selects / .az-checkout-theme-field */
.woocommerce.az-checkout-page form.checkout #makecommerce_customer_country_picker.form-select {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	border-radius: var(--az-control-radius);
	border: 1px solid var(--az-border-divider) !important;
	padding: var(--az-control-padding-y) calc(var(--az-control-padding-x) + var(--az-select-chevron-size) + var(--az-space-1)) var(--az-control-padding-y) var(--az-control-padding-x) !important;
	background-color: var(--az-color-surface) !important;
	color: var(--az-header-link-color);
	font-family: var(--az-font-sans);
	font-size: inherit;
	font-weight: var(--az-font-weight-normal);
	line-height: 1.35;
	min-height: calc(1lh + 2 * var(--az-control-padding-y));
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: var(--az-select-chevron-svg) !important;
	background-repeat: no-repeat !important;
	background-position: right var(--az-control-padding-x) center !important;
	background-size: var(--az-select-chevron-size) !important;
	cursor: pointer;
}

.woocommerce.az-checkout-page form.checkout #makecommerce_customer_country_picker.form-select:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

/*
 * Logo tiles: same language as other checkout controls — border, radius, selected ring.
 * JS adds .payment-method-selected on change (mc_method_list.js); :has() covers initial checked state.
 */
.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method {
	position: relative;
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	min-height: 48px;
	background: transparent !important;
	box-shadow: none !important;
	border: 1px solid var(--az-border-divider) !important;
	border-radius: var(--az-control-radius);
	transition:
		border-color var(--az-duration-fast) var(--az-ease-default),
		box-shadow var(--az-duration-fast) var(--az-ease-default);
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method:hover {
	border-color: color-mix(in srgb, var(--az-border-divider) 70%, var(--az-header-link-color) 30%);
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method.payment-method-selected,
.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method:has(.btn-check:checked) {
	border-color: var(--az-button-bg) !important;
	box-shadow: 0 0 0 1px var(--az-button-bg);
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method:has(.btn-check:focus-visible) {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

/* Selected badge — primary pill + checkmark using button tokens (matches Place order / UI kit). */
.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method > .check {
	display: none;
	position: absolute;
	top: -6px;
	right: -6px;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background-color: var(--az-button-bg);
	/* Plugin makecommerce.css adds a check SVG; theme uses ::after — avoid double marks / misalignment. */
	background-image: none;
	color: var(--az-button-text);
	box-shadow: 0 1px 2px var(--az-shadow-color-subtle);
	pointer-events: none;
	z-index: 3;
	font-size: 12px;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 0;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method > .check::after {
	content: "";
	display: block;
	box-sizing: border-box;
	width: 5px;
	height: 9px;
	margin: 0;
	border: solid currentColor;
	border-width: 0 2px 2px 0;
	/* Border L rotated 45° — nudge before rotate so the glyph sits optically centered in the circle. */
	transform: translate(0.5px, -1px) rotate(45deg);
	transform-origin: center;
	flex-shrink: 0;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method.payment-method-selected > .check,
.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method:has(.btn-check:checked) > .check {
	display: flex;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .payment-method .payment-control {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 0;
	margin: 0 !important;
	padding: 0 !important;
	cursor: pointer;
	z-index: 1;
	pointer-events: none;
}

/*
 * Collapsible payment grids — same pattern as .az-single-product__description:
 * clip preview, gradient fade, underline toggle with margin-top var(--az-space-2) on the button.
 */
.woocommerce.az-checkout-page .makecommerce-payment-methods .row.g-3.az-checkout-payments-expandable {
	display: flex;
	flex-direction: column;
	gap: 0;
	position: relative;
	width: 100%;
	margin: 0;
	box-sizing: border-box;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .row.g-3.az-checkout-payments-expandable .az-checkout-payments-expandable__inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--az-space-3);
	width: 100%;
	margin: 0;
	box-sizing: border-box;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .az-checkout-payments-expandable__inner > [class*="col-"] {
	min-width: 0;
	width: 100%;
	max-width: none;
	padding: 0;
	box-sizing: border-box;
}

/*
 * Collapsed clip: overflow clips the preview — selected badge uses top/right:-6px on tiles.
 * overflow-clip-margin extends the clip outward without padding (keeps grid aligned with other payment rows).
 */
.woocommerce.az-checkout-page .makecommerce-payment-methods .row.g-3.az-checkout-payments-expandable .az-checkout-payments-expandable__clip {
	position: relative;
	z-index: 0;
	box-sizing: border-box;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .row.g-3.az-checkout-payments-expandable:not(.az-checkout-payments-row--expanded) .az-checkout-payments-expandable__clip {
	max-height: calc(96px + var(--az-space-3));
	overflow: hidden;
}

@supports (overflow-clip-margin: 0px) {
	.woocommerce.az-checkout-page .makecommerce-payment-methods .row.g-3.az-checkout-payments-expandable:not(.az-checkout-payments-row--expanded) .az-checkout-payments-expandable__clip {
		overflow: clip;
		overflow-clip-margin: 6px;
	}
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .row.g-3.az-checkout-payments-expandable.az-checkout-payments-row--expanded .az-checkout-payments-expandable__clip {
	max-height: none;
	overflow: visible;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .row.g-3.az-checkout-payments-expandable:not(.az-checkout-payments-row--expanded)::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 1.125rem;
	height: 1.125rem;
	pointer-events: none;
	background: linear-gradient(to bottom, transparent, var(--az-color-primary));
	z-index: 1;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .row.g-3 > .az-checkout-payments-toggle-wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0;
	padding: 0;
	width: 100%;
	position: relative;
	z-index: 2;
}

/*
 * Payment Show more / Show less: match .az-single-product__description-toggle exactly.
 * body.woocommerce-checkout .site-main button { all: revert } strips underline/size/weight — re-assert like coupon / place order restores.
 */
body.woocommerce-checkout .site-main .woocommerce.az-checkout-page .makecommerce-payment-methods .az-checkout-payments-toggle-wrap .az-checkout-payments-toggle.az-single-product__description-toggle {
	margin-top: var(--az-space-3) !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	font-size: 0.9375rem !important;
	font-weight: var(--az-font-weight-normal) !important;
	line-height: 1.4 !important;
	color: var(--az-header-link-color) !important;
	text-decoration: underline !important;
	text-underline-offset: 3px;
	cursor: pointer !important;
	display: inline-flex !important;
	align-self: center !important;
	align-items: center;
	justify-content: center;
	text-align: center;
	box-shadow: none !important;
}

body.woocommerce-checkout .site-main .woocommerce.az-checkout-page .makecommerce-payment-methods .az-checkout-payments-toggle-wrap .az-checkout-payments-toggle.az-single-product__description-toggle:hover {
	background: transparent !important;
	color: var(--az-text-secondary) !important;
	border-radius: 0 !important;
}

body.woocommerce-checkout .site-main .woocommerce.az-checkout-page .makecommerce-payment-methods .az-checkout-payments-toggle-wrap .az-checkout-payments-toggle.az-single-product__description-toggle:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
	border-radius: 2px !important;
}

.woocommerce.az-checkout-page .makecommerce-payment-methods .mc-payment-logo {
	display: block;
	max-height: 28px;
	width: auto;
	max-width: 100%;
	height: auto;
	object-fit: contain;
	align-self: center;
	vertical-align: middle;
}

.woocommerce.az-checkout-page .makecommerce_country_methods {
	background: transparent;
}

/*
 * MakeCommerce pickup point (Select2) — match UI kit / .az-checkout-theme-field controls.
 * Plugin sets inline max-width on #makecommerce-shipping-* and may inject <tr> after div.shipping (not in a table).
 * Dropdown markup is often portaled to body; body.woocommerce-checkout rules apply there too.
 * Contain width: theme previously used max-width:none + overflow:visible, which let Select2 / long labels widen past the column on small screens.
 */
.woocommerce.az-checkout-page .makecommerce-shipping-container,
.woocommerce .az-cart-page .makecommerce-shipping-container {
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	overflow-x: hidden;
}

.woocommerce.az-checkout-page .az-checkout-page__order-totals .makecommerce-shipping-container,
.woocommerce.az-checkout-page .az-cart-page__summary-rows .makecommerce-shipping-container,
.woocommerce .az-cart-page .az-cart-page__summary-rows .makecommerce-shipping-container {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
	min-width: 0;
	overflow-x: hidden;
}

/* <tr> injected beside theme div markup — not a real table row; block layout = full column width */
.woocommerce.az-checkout-page .az-checkout-page__order-totals tr.makecommerce-shipping-container,
.woocommerce.az-checkout-page .az-cart-page__summary-rows tr.makecommerce-shipping-container,
.woocommerce .az-cart-page .az-cart-page__summary-rows tr.makecommerce-shipping-container {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	overflow-x: hidden;
	box-sizing: border-box;
}

.woocommerce.az-checkout-page .makecommerce-shipping-container td.pickup_point_checkout,
.woocommerce .az-cart-page .makecommerce-shipping-container td.pickup_point_checkout {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;
	padding: var(--az-space-1) 0 var(--az-space-3);
	margin-bottom: var(--az-space-3);
	vertical-align: top;
	box-sizing: border-box;
	border-bottom: 1px solid var(--az-border-divider);
	overflow-x: hidden;
}

/* Div-only injection (no <td>): space below border before following summary rows */
.woocommerce.az-checkout-page .az-cart-page__summary-rows > div.makecommerce-shipping-container,
.woocommerce .az-cart-page .az-cart-page__summary-rows > div.makecommerce-shipping-container {
	margin-bottom: var(--az-space-3);
}

.woocommerce.az-checkout-page .makecommerce-shipping-container .mcSelectContainer,
.woocommerce.az-checkout-page [id^="makecommerce-shipping-"].mcSelectContainer,
.woocommerce .az-cart-page .makecommerce-shipping-container .mcSelectContainer,
.woocommerce .az-cart-page [id^="makecommerce-shipping-"].mcSelectContainer {
	max-width: 100% !important;
	width: 100% !important;
	min-width: 0;
	padding: 0 !important;
	box-sizing: border-box;
	overflow-x: hidden;
}

.woocommerce.az-checkout-page .makecommerce-shipping-container .select2-container,
.woocommerce .az-cart-page .makecommerce-shipping-container .select2-container {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;
	box-sizing: border-box;
}

.woocommerce.az-checkout-page .makecommerce-shipping-container .select2-container .select2-selection--single,
.woocommerce .az-cart-page .makecommerce-shipping-container .select2-container .select2-selection--single {
	height: auto;
	min-height: calc(1lh + 2 * var(--az-control-padding-y));
	margin: 0;
	max-width: 100%;
	box-sizing: border-box;
	overflow: hidden;
	background-color: var(--az-color-surface);
	border: 1px solid var(--az-border-divider);
	border-radius: var(--az-control-radius);
}

.woocommerce.az-checkout-page .makecommerce-shipping-container .select2-container--default .select2-selection--single .select2-selection__rendered,
.woocommerce .az-cart-page .makecommerce-shipping-container .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--az-header-link-color);
	line-height: 1.45;
	max-width: 100%;
	box-sizing: border-box;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	padding: var(--az-control-padding-y) calc(var(--az-control-padding-x) + var(--az-select-chevron-size) + var(--az-space-1)) var(--az-control-padding-y) var(--az-control-padding-x);
}

.woocommerce.az-checkout-page .makecommerce-shipping-container .select2-container--default .select2-selection--single .select2-selection__placeholder,
.woocommerce .az-cart-page .makecommerce-shipping-container .select2-container--default .select2-selection--single .select2-selection__placeholder {
	color: var(--az-text-secondary);
}

.woocommerce.az-checkout-page .makecommerce-shipping-container .select2-container--default .select2-selection--single .select2-selection__arrow,
.woocommerce .az-cart-page .makecommerce-shipping-container .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: auto;
	top: 0;
	bottom: 0;
	right: var(--az-control-padding-x);
	width: var(--az-select-chevron-size);
	display: flex;
	align-items: center;
	justify-content: center;
}

.woocommerce.az-checkout-page .makecommerce-shipping-container .select2-container--default .select2-selection--single .select2-selection__arrow b,
.woocommerce .az-cart-page .makecommerce-shipping-container .select2-container--default .select2-selection--single .select2-selection__arrow b {
	border: none !important;
	width: var(--az-select-chevron-size) !important;
	height: var(--az-select-chevron-size) !important;
	margin: 0 !important;
	left: 50% !important;
	top: 50% !important;
	transform: translate(-50%, -50%);
	background: var(--az-select-chevron-svg) no-repeat center / contain;
}

.woocommerce.az-checkout-page .makecommerce-shipping-container .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b,
.woocommerce .az-cart-page .makecommerce-shipping-container .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
	transform: translate(-50%, -50%) rotate(180deg);
}

.woocommerce.az-checkout-page .makecommerce-shipping-container .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce.az-checkout-page .makecommerce-shipping-container .select2-container--default.select2-container--open .select2-selection--single,
.woocommerce .az-cart-page .makecommerce-shipping-container .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce .az-cart-page .makecommerce-shipping-container .select2-container--default.select2-container--open .select2-selection--single {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

/* Pickup point required — match .az-checkout-theme-field invalid border (#c62828). */
.woocommerce.az-checkout-page .makecommerce-shipping-container.az-pickup-field--error .select2-container .select2-selection--single {
	border-color: #c62828;
}

.woocommerce.az-checkout-page .makecommerce-shipping-container.az-pickup-field--error .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce.az-checkout-page .makecommerce-shipping-container.az-pickup-field--error .select2-container--default.select2-container--open .select2-selection--single {
	outline: 2px solid #c62828;
	outline-offset: 2px;
}

body.woocommerce-checkout .select2-dropdown {
	border: 1px solid var(--az-border-divider);
	border-radius: var(--az-control-radius);
	background: var(--az-color-surface);
	color: var(--az-header-link-color);
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
}

/* MakeCommerce pickup: width synced in makecommerce-pickup-select2.js (plugin uses dropdownAutoWidth). */
body.woocommerce-checkout .select2-dropdown.mcShippingSelectDropdown {
	box-sizing: border-box;
}

html[data-az-theme="dark"] body.woocommerce-checkout .select2-dropdown {
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
}

body.woocommerce-checkout .select2-container--default .select2-search--dropdown {
	padding: var(--az-space-2);
}

body.woocommerce-checkout .select2-container--default .select2-search--dropdown .select2-search__field {
	border-radius: var(--az-control-radius);
	border: 1px solid var(--az-border-divider);
	padding: var(--az-control-padding-y) var(--az-control-padding-x);
	background: var(--az-color-surface);
	color: var(--az-header-link-color);
	font: inherit;
	box-sizing: border-box;
}

body.woocommerce-checkout .select2-container--default .select2-search--dropdown .select2-search__field:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

body.woocommerce-checkout .select2-container--default .select2-results__option {
	padding: var(--az-space-2) var(--az-control-padding-x);
}

body.woocommerce-checkout .select2-container--default .select2-results__group {
	padding: var(--az-space-2) var(--az-control-padding-x) var(--az-space-1);
	font-size: 0.85rem;
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-text-secondary);
}

body.woocommerce-checkout .select2-container--default .select2-results__option--highlighted[aria-selected],
body.woocommerce-checkout .select2-container--default .select2-results__option--highlighted[data-selected] {
	background-color: var(--az-button-bg);
	color: var(--az-button-text);
}

body.woocommerce-checkout .select2-container--default .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted),
body.woocommerce-checkout .select2-container--default .select2-results__option[data-selected="true"]:not(.select2-results__option--highlighted) {
	background-color: color-mix(in srgb, var(--az-button-bg) 12%, var(--az-color-surface));
	color: var(--az-header-link-color);
}

.az-cart-summary__shipping {
	padding-top: var(--az-space-3);
	padding-bottom: var(--az-space-2);
	margin-bottom: var(--az-space-2);
	border-bottom: 1px solid var(--az-border-divider);
}

.az-cart-summary__shipping-head {
	margin-bottom: var(--az-space-2);
}

.az-cart-summary__shipping-title {
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-text-secondary);
	font-size: 0.9rem;
	text-align: left;
}

.az-cart-summary__shipping-body {
	text-align: left;
}

.az-cart-summary__shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: left;
}

/* UI kit radio group: spacing comes from .az-ui-kit__radio-group gap. */

/* Single rate (hidden input): align text with multi-rate rows that have a visible radio. */
.az-cart-summary__shipping-rate--single .az-ui-kit__radio-input-spacer {
	display: block;
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
}

.az-cart-summary__shipping-destination {
	font-size: 0.75rem;
	line-height: 1.4;
	text-align: left;
	color: var(--az-text-secondary);
}

/*
 * Cart shipping note under method radios: must beat `.page-content p { margin-top: 0 }`.
 */
.page-content .az-cart-summary__shipping-destination {
	margin-top: var(--az-space-3);
}

.az-cart-summary__shipping-body .woocommerce-shipping-calculator {
	text-align: left;
}

.az-cart-summary__block--calc {
	margin-bottom: var(--az-space-3);
	padding-bottom: var(--az-space-2);
	border-bottom: 1px solid var(--az-border-divider);
}

.az-cart-summary__calc-heading {
	margin: 0 0 var(--az-space-2);
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-text-secondary);
	font-size: 0.9rem;
}

.az-cart-page__summary-rows .woocommerce-remove-coupon {
	color: var(--az-header-link-color);
	text-decoration: underline;
	margin-left: var(--az-space-2);
	font-size: 0.85rem;
}

/* Layout only; stack full-width CTAs below. */
.header-cart-drawer-actions {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-3);
	width: 100%;
	align-items: stretch;
}

/*
 * Side cart footer: anchor CTAs — WooCommerce .woocommerce a.button loads after the theme.
 * Match UI kit (.button.button--primary / .button--secondary + .button--block), same approach as
 * .az-shop-empty a.button.button--primary and .az-shop-price-dropdown__panel … .button.
 */
.header-cart-drawer-actions a.button.button--primary.button--block,
.woocommerce .header-cart-drawer-actions a.button.button--primary.button--block {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	width: 100% !important;
	text-align: center !important;
	text-decoration: none !important;
	font-size: var(--az-button-font-size) !important;
	font-weight: var(--az-button-font-weight) !important;
	line-height: 1.25 !important;
	font-family: inherit !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	cursor: pointer !important;
	padding-top: var(--az-button-padding-y) !important;
	padding-bottom: var(--az-button-padding-y) !important;
	padding-left: var(--az-button-padding-x) !important;
	padding-right: var(--az-button-padding-x) !important;
	border-radius: var(--az-control-radius) !important;
	background: var(--az-button-bg) !important;
	border: 1px solid var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
	opacity: 1 !important;
}

.header-cart-drawer-actions a.button.button--primary.button--block:hover,
.woocommerce .header-cart-drawer-actions a.button.button--primary.button--block:hover {
	background: color-mix(in srgb, var(--az-button-bg) 90%, #ffffff 10%) !important;
	border-color: var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
	text-decoration: none !important;
	border-radius: var(--az-control-radius) !important;
}

.header-cart-drawer-actions a.button.button--primary.button--block:focus-visible,
.woocommerce .header-cart-drawer-actions a.button.button--primary.button--block:focus-visible {
	outline: 2px solid var(--az-button-bg) !important;
	outline-offset: 2px !important;
	color: var(--az-button-text) !important;
	border-radius: var(--az-control-radius) !important;
}

.header-cart-drawer-actions a.button.button--primary.button--block:visited,
.woocommerce .header-cart-drawer-actions a.button.button--primary.button--block:visited {
	color: var(--az-button-text) !important;
}

/* Checkout CTA: label + trailing arrow (side cart + cart page summary). */
.header-cart-drawer-actions a.button.button--primary.button--block.button--checkout-cta,
.woocommerce .header-cart-drawer-actions a.button.button--primary.button--block.button--checkout-cta {
	gap: var(--az-space-2) !important;
}

.header-cart-drawer-actions .button--checkout-cta__icon,
.woocommerce .header-cart-drawer-actions .button--checkout-cta__icon {
	font-size: 1.2rem;
	line-height: 1;
	flex-shrink: 0;
}

.header-cart-drawer-actions a.button.button--secondary.button--block,
.woocommerce .header-cart-drawer-actions a.button.button--secondary.button--block {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	width: 100% !important;
	text-align: center !important;
	text-decoration: none !important;
	font-size: var(--az-button-font-size) !important;
	font-weight: var(--az-button-font-weight) !important;
	line-height: 1.25 !important;
	font-family: inherit !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	cursor: pointer !important;
	padding-top: var(--az-button-padding-y) !important;
	padding-bottom: var(--az-button-padding-y) !important;
	padding-left: var(--az-button-padding-x) !important;
	padding-right: var(--az-button-padding-x) !important;
	border-radius: var(--az-control-radius) !important;
	background: var(--az-color-surface) !important;
	border: 1px solid var(--az-button-bg) !important;
	color: var(--az-button-bg) !important;
	opacity: 1 !important;
}

.header-cart-drawer-actions a.button.button--secondary.button--block:hover,
.woocommerce .header-cart-drawer-actions a.button.button--secondary.button--block:hover {
	background: color-mix(in srgb, var(--az-button-bg) 10%, var(--az-color-surface)) !important;
	border-color: var(--az-button-bg) !important;
	color: var(--az-button-bg) !important;
	text-decoration: none !important;
	border-radius: var(--az-control-radius) !important;
}

.header-cart-drawer-actions a.button.button--secondary.button--block:focus-visible,
.woocommerce .header-cart-drawer-actions a.button.button--secondary.button--block:focus-visible {
	outline: 2px solid var(--az-button-bg) !important;
	outline-offset: 2px !important;
	color: var(--az-button-bg) !important;
	border-radius: var(--az-control-radius) !important;
}

.header-cart-drawer-actions a.button.button--secondary.button--block:visited,
.woocommerce .header-cart-drawer-actions a.button.button--secondary.button--block:visited {
	color: var(--az-button-bg) !important;
}

.header-cart-drawer-row {
	display: flex;
	align-items: center;
	gap: var(--az-space-3);
	padding: var(--az-space-3) 0;
	border-bottom: 1px solid var(--az-border-divider);
}

.header-cart-drawer-row-media {
	flex-shrink: 0;
}

.header-cart-drawer-thumb-link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.header-cart-drawer-thumb-link:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: 2px;
}

.header-cart-drawer-thumb {
	width: 72px;
	height: auto;
	aspect-ratio: 3 / 4;
	background-color: var(--az-surface-placeholder);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.header-cart-drawer-row-info {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--az-space-1);
}

.header-cart-drawer-qty-row {
	display: block;
}

.header-cart-drawer-qty-view {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--az-space-2);
}

.header-cart-drawer-qty-label {
	font-size: 0.9rem;
	line-height: 1.4;
	color: var(--az-text-secondary);
}

.header-cart-drawer-qty-edit-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: content-box;
	margin: 0;
	padding: 3px;
	border: 0;
	background: none;
	color: var(--az-header-link-color);
	cursor: pointer;
	border-radius: 2px;
	line-height: 0;
	vertical-align: middle;
	transition: color var(--az-duration-fast) var(--az-ease-default),
		transform var(--az-header-icon-zoom-duration) var(--az-header-underline-ease);
}

.header-cart-drawer-qty-edit-icon {
	display: block;
	flex-shrink: 0;
}

.header-cart-drawer-qty-edit-toggle:hover,
.header-cart-drawer-qty-edit-toggle:focus-visible {
	color: var(--az-header-link-color);
	transform: scale(var(--az-header-icon-zoom-scale));
}

.header-cart-drawer-qty-edit-toggle:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.header-cart-drawer-qty-edit-toggle {
		transition: none;
	}

	.header-cart-drawer-qty-edit-toggle:hover,
	.header-cart-drawer-qty-edit-toggle:focus-visible {
		transform: none;
	}
}

.header-cart-drawer-qty-edit {
	display: none;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--az-space-1);
}

.header-cart-drawer-qty-row.is-editing .header-cart-drawer-qty-view {
	display: none;
}

.header-cart-drawer-qty-row.is-editing .header-cart-drawer-qty-edit {
	display: inline-flex;
}

/*
 * Single product quantity: UI kit field (.az-ui-kit__field) + global input[type="number"] (Components / Form controls).
 * +/- are surface controls (not global CTA buttons); icons: Material Symbols add/remove (subset in functions.php).
 */
.az-single-product__qty-field {
	max-width: 28rem;
}

/* Components page: match full-width form column. */
.az-ui-kit .az-single-product__qty-field {
	max-width: 100%;
}

.header-cart-drawer .az-single-product__qty-field.header-cart-drawer__qty-field,
.az-cart-page .az-single-product__qty-field.header-cart-drawer__qty-field {
	max-width: none;
}

.az-single-product__qty-field .az-qty-stepper {
	display: inline-flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: var(--az-space-2);
	width: 100%;
	box-sizing: border-box;
}

.woocommerce .az-single-product__qty-field input[type="number"].az-qty-stepper__input,
.header-cart-drawer .az-single-product__qty-field input[type="number"].az-qty-stepper__input,
.az-cart-page .az-single-product__qty-field input[type="number"].az-qty-stepper__input {
	width: 4rem;
	min-width: 3.25rem;
	max-width: 8rem;
	margin: 0;
	text-align: center;
	flex: 0 1 auto;
	/* padding, border, radius, font: theme input[type="number"] + .az-ui-kit__field input */
}

.woocommerce .az-single-product__qty-field button.az-qty-stepper__btn,
.header-cart-drawer .az-single-product__qty-field button.az-qty-stepper__btn,
.az-cart-page .az-single-product__qty-field button.az-qty-stepper__btn {
	appearance: none;
	box-sizing: border-box;
	margin: 0;
	padding: var(--az-control-padding-y) var(--az-space-2) !important;
	min-width: 2.75rem;
	border: 1px solid var(--az-border-divider) !important;
	border-radius: var(--az-control-radius) !important;
	background: var(--az-color-surface) !important;
	color: var(--az-header-link-color) !important;
	font-size: var(--az-button-font-size) !important;
	font-weight: var(--az-font-weight-emphasis) !important;
	line-height: 1.25 !important;
	cursor: pointer;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	gap: 0;
	transition: background-color var(--az-duration-fast) var(--az-ease-default);
}

.woocommerce .az-single-product__qty-field button.az-qty-stepper__btn:hover:not(:disabled),
.header-cart-drawer .az-single-product__qty-field button.az-qty-stepper__btn:hover:not(:disabled),
.az-cart-page .az-single-product__qty-field button.az-qty-stepper__btn:hover:not(:disabled) {
	background: var(--az-color-primary) !important;
	border-color: var(--az-border-divider) !important;
	color: var(--az-header-link-color) !important;
}

.woocommerce .az-single-product__qty-field button.az-qty-stepper__btn:disabled,
.header-cart-drawer .az-single-product__qty-field button.az-qty-stepper__btn:disabled,
.az-cart-page .az-single-product__qty-field button.az-qty-stepper__btn:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.woocommerce .az-single-product__qty-field button.az-qty-stepper__btn:focus-visible,
.header-cart-drawer .az-single-product__qty-field button.az-qty-stepper__btn:focus-visible,
.az-cart-page .az-single-product__qty-field button.az-qty-stepper__btn:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

/* Side cart + cart page: shorter quantity stepper than product page */
.header-cart-drawer .header-cart-drawer__qty-field.az-ui-kit__field,
.az-cart-page .header-cart-drawer__qty-field.az-ui-kit__field {
	gap: 4px;
}

.header-cart-drawer .header-cart-drawer__qty-field .az-ui-kit__field-label,
.az-cart-page .header-cart-drawer__qty-field .az-ui-kit__field-label {
	font-size: 0.75rem;
	line-height: 1.2;
}

.header-cart-drawer .header-cart-drawer__qty-field .az-qty-stepper,
.az-cart-page .header-cart-drawer__qty-field .az-qty-stepper {
	gap: 6px;
	align-items: center;
}

.header-cart-drawer .header-cart-drawer__qty-field input[type="number"].az-qty-stepper__input,
.az-cart-page .header-cart-drawer__qty-field input[type="number"].az-qty-stepper__input {
	width: 2.75rem;
	min-width: 2.25rem;
	padding: 4px 6px !important;
	font-size: 0.85rem !important;
	line-height: 1.2 !important;
}

.header-cart-drawer .header-cart-drawer__qty-field button.az-qty-stepper__btn,
.az-cart-page .header-cart-drawer__qty-field button.az-qty-stepper__btn {
	padding: 4px 8px !important;
	min-width: 2rem !important;
	min-height: 0 !important;
	font-size: 0.85rem !important;
	line-height: 1 !important;
	align-self: center !important;
}

.header-cart-drawer .header-cart-drawer__qty-field .az-qty-stepper__glyph,
.az-cart-page .header-cart-drawer__qty-field .az-qty-stepper__glyph {
	font-size: 16px;
}

.az-single-product__qty-field .az-qty-stepper__glyph {
	font-size: 20px;
	line-height: 1;
	display: block;
}

.az-single-product__cart-actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--az-space-2);
	margin-top: var(--az-space-3);
}

.az-single-product__cart-actions .az-single-product__qty-field {
	align-self: flex-start;
	width: 100%;
}

.az-single-product__cart-actions form.cart {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--az-space-3);
}

/*
 * Add to cart (simple): WooCommerce frontend CSS sets .woocommerce .button / alt / wc-* after the theme.
 * Match UI kit primary + .button--block (same approach as .az-shop-empty a.button.button--primary).
 */
.az-single-product__cart-actions button.button.button--primary.az-single-product__add-to-cart,
.woocommerce .az-single-product__cart-actions button.button.button--primary.az-single-product__add-to-cart {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	width: 100% !important;
	text-align: center !important;
	text-decoration: none !important;
	font-size: var(--az-button-font-size) !important;
	font-weight: var(--az-button-font-weight) !important;
	line-height: 1.25 !important;
	font-family: inherit !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	cursor: pointer !important;
	padding-top: var(--az-button-padding-y) !important;
	padding-bottom: var(--az-button-padding-y) !important;
	padding-left: var(--az-button-padding-x) !important;
	padding-right: var(--az-button-padding-x) !important;
	border-radius: var(--az-control-radius) !important;
	background: var(--az-button-bg) !important;
	border: 1px solid var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
	opacity: 1 !important;
}

.az-single-product__cart-actions button.button.button--primary.az-single-product__add-to-cart:hover,
.woocommerce .az-single-product__cart-actions button.button.button--primary.az-single-product__add-to-cart:hover {
	background: color-mix(in srgb, var(--az-button-bg) 90%, #ffffff 10%) !important;
	border-color: var(--az-button-bg) !important;
	color: var(--az-button-text) !important;
	border-radius: var(--az-control-radius) !important;
}

.az-single-product__cart-actions button.button.button--primary.az-single-product__add-to-cart:focus-visible,
.woocommerce .az-single-product__cart-actions button.button.button--primary.az-single-product__add-to-cart:focus-visible {
	outline: 2px solid var(--az-button-bg) !important;
	outline-offset: 2px !important;
	color: var(--az-button-text) !important;
	border-radius: var(--az-control-radius) !important;
}

.header-cart-drawer.is-az-cart-updating .az-qty-stepper__btn,
.header-cart-drawer.is-az-cart-updating .az-qty-stepper__input,
.header-cart-drawer.is-az-cart-updating .header-cart-drawer-qty-edit-toggle,
.az-cart-page.is-az-cart-updating .az-qty-stepper__btn,
.az-cart-page.is-az-cart-updating .az-qty-stepper__input,
.az-cart-page.is-az-cart-updating .header-cart-drawer-qty-edit-toggle,
.az-checkout-page.is-az-cart-updating .az-qty-stepper__btn,
.az-checkout-page.is-az-cart-updating .az-qty-stepper__input,
.az-checkout-page.is-az-cart-updating .header-cart-drawer-qty-edit-toggle {
	pointer-events: none;
	opacity: 0.55;
}

.header-cart-drawer-item-title {
	font-size: 0.95rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.35;
	color: var(--az-header-link-color);
	text-decoration: none;
}

a.header-cart-drawer-item-title:hover,
a.header-cart-drawer-item-title:focus-visible {
	text-decoration: underline;
}

a.header-cart-drawer-item-title:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: 2px;
}

.header-cart-drawer-item-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--az-space-2) var(--az-space-3);
	font-size: 0.9rem;
	line-height: 1.4;
	color: var(--az-text-secondary);
}

.header-cart-drawer-item-price {
	font-weight: var(--az-font-weight-emphasis);
}

.header-cart-drawer-item-price .woocommerce-Price-amount {
	font-weight: var(--az-font-weight-emphasis);
}

.header-cart-drawer-remove {
	flex-shrink: 0;
	align-self: flex-start;
	margin: 0;
	font-size: 1.35rem;
	line-height: 1;
	font-weight: var(--az-font-weight-normal);
	color: var(--az-header-link-color);
	text-decoration: none;
	transition: transform var(--az-header-icon-zoom-duration) var(--az-header-underline-ease);
}

.header-cart-drawer-remove:hover {
	transform: scale(1.1);
}

.header-cart-drawer-remove:focus-visible {
	outline: 2px solid var(--az-header-link-color);
	outline-offset: 2px;
}

.header-cart-drawer-subtotal {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--az-space-3);
	margin-top: var(--az-space-2);
	padding-top: var(--az-space-3);
	font-size: 1rem;
	font-weight: var(--az-font-weight-emphasis);
}

.header-cart-drawer-subtotal-label {
	flex-shrink: 0;
}

.header-cart-drawer-subtotal-value {
	text-align: right;
	font-weight: var(--az-font-weight-emphasis);
}

.header-cart-drawer-subtotal-value .woocommerce-Price-amount {
	font-weight: var(--az-font-weight-emphasis);
}

body.az-cart-open .header-cart-drawer {
	transform: translateX(0);
}

body.az-cart-open {
	overflow: hidden;
}

body.az-shop-filter-open {
	overflow: hidden;
}

body.az-lang-menu-open {
	overflow: hidden;
}

body.az-header-search-open {
	overflow: hidden;
}

body.az-product-lightbox-open {
	overflow: hidden;
}

@media (max-width: 1024px) {
	.site-header-shell.is-scrolled .header-row-second {
		padding: var(--az-pad-y) var(--az-pad-x);
	}

	body.az-mobile-menu-open {
		overflow: hidden;
		overscroll-behavior: none;
	}

	.header-mobile-drawer-overlay {
		display: block;
		position: fixed;
		inset: 0;
		z-index: var(--az-z-overlay);
		width: 100%;
		height: 100%;
		background: transparent;
		cursor: pointer;
		visibility: hidden;
		pointer-events: none;
	}

	body.az-mobile-menu-open .header-mobile-drawer-overlay {
		visibility: visible;
		pointer-events: auto;
	}

	.header-burger {
		display: inline-flex;
		width: 36px;
		height: 36px;
		padding: 0;
		margin-right: var(--az-space-3);
		background: transparent;
		border: 0;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
	}

	.header-burger:hover,
	.header-burger:focus,
	.header-burger:active {
		background: transparent;
		border-color: transparent;
		box-shadow: none;
	}

	.header-burger span {
		display: block;
		width: 22px;
		height: 2px;
		background: var(--az-header-link-color);
		transition: transform var(--az-duration-fast) var(--az-ease-default), opacity var(--az-duration-fast) var(--az-ease-default);
	}

	body.az-mobile-menu-open .header-burger span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	body.az-mobile-menu-open .header-burger span:nth-child(2) {
		opacity: 0;
	}

	body.az-mobile-menu-open .header-burger span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	.header-left > nav,
	.header-left > .header-mobile-drawer,
	.header-left > ul.header-menu {
		position: fixed;
		top: 0;
		left: 0;
		right: auto;
		bottom: 0;
		width: min(360px, 96vw);
		height: 100%;
		min-height: 100vh;
		min-height: 100dvh;
		background: var(--az-color-surface);
		padding: 0;
		transform: translateX(-100%);
		transition: transform var(--az-header-drawer-duration) var(--az-header-drawer-ease);
		z-index: var(--az-z-drawer);
		overflow: hidden;
		box-shadow: 12px 0 40px var(--az-shadow-color-soft);
	}

	.header-left > .header-mobile-drawer {
		display: flex;
		flex-direction: column;
	}

	.header-mobile-drawer-body {
		flex: 1 1 auto;
		min-height: 0;
		display: flex;
		flex-direction: column;
		overflow-y: auto;
		padding: var(--az-space-3) var(--az-space-4);
		padding-bottom: max(var(--az-space-3), env(safe-area-inset-bottom, 0px));
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}

	/* Legacy: nav/ul without inner head still scroll as a single panel */
	.header-left > nav:not(.header-mobile-drawer),
	.header-left > ul.header-menu {
		overflow-y: auto;
		padding: var(--az-pad-y) var(--az-pad-x);
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}

	body.az-mobile-menu-open .header-left > nav,
	body.az-mobile-menu-open .header-left > .header-mobile-drawer,
	body.az-mobile-menu-open .header-left > ul.header-menu {
		transform: translateX(0);
	}

	.header-left nav ul,
	.header-left > div > ul,
	.header-left > ul,
	.header-menu,
	.header-menu > ul {
		flex-direction: column;
		gap: var(--az-header-menu-gap);
	}

	/* Tighter vertical rhythm in the slide-out menu than desktop row gap */
	.header-mobile-drawer-body .header-menu,
	.header-mobile-drawer-body .header-menu ul {
		gap: var(--az-space-2);
	}

	/* Side drawer: root menu fills space between sheet + lang; short lists center vertically */
	.header-mobile-drawer-body > .header-menu {
		flex: 1 0 auto;
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		justify-content: center;
		align-items: stretch;
		width: 100%;
		min-width: 0;
	}

	.header-mobile-drawer-body .header-menu .sub-menu {
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		width: 100%;
	}

	.header-mobile-drawer-body .header-menu li {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		min-width: 0;
		flex-shrink: 0;
	}

	.header-mobile-drawer-body .header-menu a {
		position: relative;
		display: flex;
		align-items: center;
		width: 100%;
		box-sizing: border-box;
		padding-block: var(--az-space-1);
		padding-inline-start: calc(12px + var(--az-space-2));
	}

	/* Short horizontal tick (max 12px wide) at inline-start, vertically centered with label */
	.header-mobile-drawer-body .header-menu a::before {
		content: "";
		position: absolute;
		inset-inline-start: 0;
		top: 50%;
		width: 12px;
		height: 1px;
		background-color: var(--az-border-divider);
		transform: translateY(-50%);
	}

	.header-mobile-drawer-body .header-menu .current-menu-item > a::before,
	.header-mobile-drawer-body .header-menu .current_page_item > a::before {
		background-color: var(--az-header-link-color);
	}

	.header-right .header-language-switcher {
		display: none;
	}

	.header-language-switcher-mobile {
		display: block;
		flex-shrink: 0;
		padding-top: var(--az-space-3);
	}

	.header-cart-drawer {
		width: min(360px, 96vw);
	}
}

/*
 * Components page template (page-components.php): layout + labels only — primitives use global theme classes.
 * Vertical rhythm: --az-ui-kit-v-* tokens keep meta lines, demos, and subsections aligned.
 */
.az-ui-kit {
	--az-ui-kit-v-meta: var(--az-space-2);
	--az-ui-kit-v-after-title: var(--az-space-3);
	--az-ui-kit-v-after-subtitle: var(--az-space-3);
	--az-ui-kit-v-block: var(--az-space-3);
	--az-ui-kit-v-major: var(--az-space-4);
	text-align: start;
}

.az-ui-kit .home-products-section {
	padding-top: 0;
	padding-bottom: 0;
}

/* Notices demo (page-components.php): same global WC notice rules; vertical padding around samples */
.az-ui-kit__notice-demo {
	margin-block: var(--az-ui-kit-v-block);
}

.az-ui-kit__page-content {
	margin-top: 0;
}

.az-ui-kit__section {
	margin-top: var(--az-space-4);
	padding-top: var(--az-space-4);
	border-top: 1px solid var(--az-border-divider);
}

/* First kit block only (may be div or section; avoids section:first-of-type when a div precedes sections) */
.az-ui-kit > .az-ui-kit__section:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.az-ui-kit__section-title {
	margin: 0 0 var(--az-space-3);
	font-size: clamp(1.1rem, 2vw, 1.35rem);
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.25;
	color: var(--az-header-link-color);
}

/* Primary intro line after h2 (when not using --lede): match gap before demos to lede sections. */
.az-ui-kit__section > .az-ui-kit__section-title + .az-ui-kit__class:not(.az-ui-kit__class--lede) {
	margin-bottom: var(--az-ui-kit-v-after-title);
}

.az-ui-kit__class {
	margin: 0 0 var(--az-ui-kit-v-meta);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	font-size: 0.8rem;
	line-height: 1.4;
	color: var(--az-text-tertiary);
}

.az-ui-kit__class--lede {
	margin-bottom: var(--az-ui-kit-v-after-title);
	color: var(--az-text-secondary);
}

/* Intro line under h3 (Radio, Quantity, etc.) before the demo block. */
.az-ui-kit__section > .az-ui-kit__subsection-title + .az-ui-kit__class:not(.az-ui-kit__class--lede) {
	margin-bottom: var(--az-ui-kit-v-after-subtitle);
}

.az-ui-kit__subsection-title {
	margin: var(--az-ui-kit-v-major) 0 var(--az-ui-kit-v-after-subtitle);
	font-size: 1rem;
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.3;
	color: var(--az-text-secondary);
}

/* Non-demo line (e.g. link sample) after meta — keeps rhythm without monospace styling. */
.az-ui-kit__sample {
	margin: var(--az-ui-kit-v-after-title) 0 0;
}

/* Back-to-back form stacks (slider block after radio, etc.). */
.az-ui-kit__stack + .az-ui-kit__stack {
	margin-top: var(--az-ui-kit-v-major);
}

/* Standalone spinner — same look as checkout blockUI ::before (tokens: --az-loader-*). */
.az-ui-kit__loader {
	display: inline-block;
	width: var(--az-loader-size);
	height: var(--az-loader-size);
	box-sizing: border-box;
	border: 2px solid var(--az-loader-track);
	border-top-color: var(--az-loader-accent);
	border-radius: 50%;
	animation: az-ui-loader-spin var(--az-loader-duration) linear infinite;
	vertical-align: middle;
}

/* Lazy images: UI kit spinner until decode (see assets/js/lazy-images.js). */
.az-lazy-image {
	position: relative;
	display: inline-block;
	max-width: 100%;
	vertical-align: middle;
	box-sizing: border-box;
}

.az-lazy-image__img {
	display: block;
	width: 100%;
	height: auto;
	opacity: 0;
	transition: opacity 0.25s ease;
}

.az-lazy-image.is-loaded .az-lazy-image__img {
	opacity: 1;
}

.az-lazy-image__loader {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: transparent;
	z-index: 1;
	transition: opacity 0.2s ease, visibility 0.2s ease;
	pointer-events: none;
}

.az-lazy-image.is-loaded .az-lazy-image__loader {
	opacity: 0;
	visibility: hidden;
}

/* Small footer / payment icons: keep intrinsic size if wrapped (avoid full-width .az-lazy-image__img). */
.site-footer-social-link .az-lazy-image,
.site-footer-pay-badge-box .az-lazy-image {
	display: inline-flex;
	width: auto;
	height: auto;
	max-width: none;
	vertical-align: middle;
}

.site-footer-social-link .az-lazy-image__img {
	width: 24px;
	height: 24px;
	max-width: none;
}

.site-footer-pay-badge-box .az-lazy-image__img {
	width: auto;
	height: 10px;
	max-height: 10px;
	max-width: none;
}

/* Lazy background-image (data-az-lazy-bg + lazy-backgrounds.js).
 * Do not set position:relative on .home-product-card-image--secondary — it must stay
 * position:absolute (stacked on the primary tile). A bare .az-lazy-bg rule later in the
 * file was overriding .home-product-card-image--secondary and broke the hover crossfade. */
.az-lazy-bg:not(.home-product-card-image--secondary) {
	position: relative;
}

.az-lazy-bg__loader {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: transparent;
	z-index: 1;
	transition: opacity 0.2s ease, visibility 0.2s ease;
	pointer-events: none;
}

.az-lazy-bg.is-loaded .az-lazy-bg__loader {
	opacity: 0;
	visibility: hidden;
}

.az-ui-kit__token-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
	gap: var(--az-space-3);
}

.az-ui-kit__color-token {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-2);
	min-width: 0;
}

.az-ui-kit__color-swatch {
	aspect-ratio: 4 / 3;
	border-radius: 2px;
	border: 1px solid var(--az-border-divider);
	box-shadow: var(--az-shadow-sm);
	box-sizing: border-box;
}

.az-ui-kit__color-swatch--inverse {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1rem;
	font-weight: var(--az-font-weight-emphasis);
}

.az-ui-kit__color-swatch-label {
	pointer-events: none;
}

.az-ui-kit__token-name {
	display: block;
	margin: 0;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	font-size: 0.72rem;
	line-height: 1.35;
	color: var(--az-text-tertiary);
	word-break: break-word;
}

.az-ui-kit .az-ui-kit__token-name--block {
	margin-bottom: var(--az-ui-kit-v-after-title);
}

.az-ui-kit__type-sample {
	margin: 0;
	font-family: var(--az-font-sans);
	font-size: 1.15rem;
	line-height: 1.55;
	color: var(--az-header-link-color);
}

.az-ui-kit__type-stack {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-3);
	max-width: 40rem;
}

.az-ui-kit__fw-normal {
	font-weight: var(--az-font-weight-normal);
}

.az-ui-kit__fw-bold {
	font-weight: var(--az-font-weight-emphasis);
}

.az-ui-kit__icon-grid {
	display: flex;
	flex-wrap: wrap;
	gap: var(--az-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.az-ui-kit__icon-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--az-space-2);
	min-width: 5.5rem;
	padding: var(--az-space-3);
	border: 1px solid var(--az-border-divider);
	border-radius: 2px;
	background: var(--az-color-surface);
	box-sizing: border-box;
}

.az-ui-kit__icon-item .az-ui-kit__token-name {
	text-align: center;
}

.az-ui-kit__icon-glyph {
	font-size: 28px;
	color: var(--az-header-link-color);
}

.az-ui-kit__sheet-head-demo {
	margin-top: var(--az-ui-kit-v-block);
}

.az-ui-kit__sheet-head-demo .az-sheet-head {
	background: var(--az-color-surface);
}

.az-ui-kit__shop-dropdown-demo {
	display: flex;
	flex-direction: column;
	gap: var(--az-ui-kit-v-block);
}

.az-ui-kit__shop-dropdown-demo > .az-ui-kit__class {
	margin-bottom: 0;
}

.az-ui-kit__shadow-row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--az-space-3);
	align-items: stretch;
}

.az-ui-kit__shadow-chip {
	flex: 1 1 7rem;
	min-height: 4.5rem;
	padding: var(--az-space-3);
	border-radius: 2px;
	border: 1px solid var(--az-border-divider);
	background: var(--az-color-surface);
	display: flex;
	align-items: flex-end;
	box-sizing: border-box;
}

.az-ui-kit__shadow-chip .az-ui-kit__token-name {
	color: var(--az-text-secondary);
}

.az-ui-kit__shadow-chip--sm {
	box-shadow: var(--az-shadow-sm);
}

.az-ui-kit__shadow-chip--md {
	box-shadow: var(--az-shadow-md);
}

.az-ui-kit__space-list {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-3);
	max-width: 36rem;
}

.az-ui-kit__space-row {
	display: grid;
	grid-template-columns: minmax(7rem, 13rem) 1fr;
	gap: var(--az-space-3);
	align-items: center;
}

@media (max-width: 36rem) {
	.az-ui-kit__space-row {
		grid-template-columns: 1fr;
	}
}

.az-ui-kit__space-track {
	display: flex;
	align-items: center;
	min-height: 2.25rem;
	padding: var(--az-space-1);
	border-radius: 2px;
	border: 1px solid var(--az-border-divider);
	background: linear-gradient(
		90deg,
		var(--az-border-divider) 0,
		var(--az-border-divider) 1px,
		transparent 1px,
		transparent 5px
	);
	background-size: 6px 100%;
	box-sizing: border-box;
}

.az-ui-kit__space-bar {
	display: block;
	height: 1.125rem;
	background: var(--az-header-link-color);
	border-radius: 1px;
	min-width: 2px;
	opacity: 0.88;
}

.az-ui-kit__container-widths {
	margin: 0;
	padding-left: 1.25em;
	max-width: 42rem;
	line-height: 1.55;
}

.az-ui-kit__container-widths li {
	margin-bottom: var(--az-space-3);
}

.az-ui-kit__container-widths li:last-child {
	margin-bottom: 0;
}

.az-ui-kit__container-widths .az-ui-kit__token-name {
	white-space: normal;
	word-break: break-word;
}

.az-ui-kit__link {
	color: var(--az-header-link-color);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.az-ui-kit__link:hover,
.az-ui-kit__link:focus-visible {
	color: var(--az-header-link-color);
}

.az-ui-kit__button-stack {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--az-space-3);
	width: 100%;
	max-width: 28rem;
	box-sizing: border-box;
}

/* Avoid doubling stack gap with .az-ui-kit__class margins. */
.az-ui-kit__button-stack > .az-ui-kit__class {
	margin-bottom: 0;
}

.az-ui-kit__button-stack > .az-ui-kit__row {
	width: 100%;
}

.az-ui-kit__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--az-space-2);
	margin: 0;
}

.az-ui-kit__row--block {
	max-width: 20rem;
}

.az-ui-kit__stack {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-3);
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.az-ui-kit__field {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-1);
	margin: 0;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.az-ui-kit__field-label {
	font-size: 0.85rem;
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-text-secondary);
}

.az-ui-kit__field input,
.az-ui-kit__field textarea,
.az-ui-kit__field select {
	width: 100%;
	box-sizing: border-box;
}

.az-ui-kit__field .az-slider {
	max-width: 100%;
}

/* Checkbox row (checkout, forms): label wraps input + text; uses accent-color for checked state. */
.az-ui-kit__checkbox {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--az-space-2);
	margin: 0;
	cursor: pointer;
	font-size: 0.9375rem;
	line-height: 1.45;
	color: var(--az-header-link-color);
}

.az-ui-kit__checkbox-input {
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	margin: 0;
	accent-color: var(--az-button-bg);
	cursor: pointer;
}

.az-ui-kit__checkbox-input:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

.az-ui-kit__checkbox-text {
	flex: 1;
	min-width: 0;
}

/* Radio row (same rhythm as .az-ui-kit__checkbox): label wraps input + text; optional trailing price. */
.az-ui-kit__radio-group {
	display: flex;
	flex-direction: column;
	gap: var(--az-space-2);
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.az-ui-kit__radio-group .az-ui-kit__radio {
	width: 100%;
	box-sizing: border-box;
}

.az-ui-kit__radio {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--az-space-2);
	margin: 0;
	cursor: pointer;
	font-size: 0.9375rem;
	line-height: 1.45;
	color: var(--az-header-link-color);
}

.az-ui-kit__radio-input {
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	margin: 0;
	accent-color: var(--az-button-bg);
	cursor: pointer;
}

.az-ui-kit__radio-input:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

.az-ui-kit__radio-text {
	flex: 1;
	min-width: 0;
}

.az-ui-kit__radio-price {
	flex-shrink: 0;
	text-align: right;
	font-variant-numeric: tabular-nums;
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-header-link-color);
}

.az-ui-kit__radio-price .woocommerce-Price-amount {
	font-weight: var(--az-font-weight-emphasis);
}

.az-ui-kit .az-search-form {
	justify-content: flex-start;
	max-width: 28rem;
}

.az-ui-kit__shop-dropdown-demo .az-shop-toolbar__filters {
	justify-content: flex-start;
	align-items: flex-start;
	margin-bottom: 0;
}

/* Prose samples on components page (aligned with .page-content where applicable) */
.az-ui-kit__prose-demo {
	line-height: 1.7;
	color: var(--az-header-link-color);
}

.az-ui-kit__prose-demo h1 {
	margin: 0 0 0.5em;
	font-size: clamp(1.5rem, 2.5vw, 1.85rem);
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.2;
	color: var(--az-header-link-color);
}

.az-ui-kit__prose-demo h2 {
	margin-top: 1.25em;
	margin-bottom: 0.5em;
	font-size: 1.4rem;
	line-height: 1.3;
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-header-link-color);
}

.az-ui-kit__prose-demo h2:first-child {
	margin-top: 0;
}

.az-ui-kit__prose-demo h3 {
	margin-top: 1.5em;
	margin-bottom: 0.4em;
	font-size: 1.15rem;
	line-height: 1.35;
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-header-link-color);
}

.az-ui-kit__prose-demo h3:first-child {
	margin-top: 0;
}

.az-ui-kit__prose-demo h4 {
	margin-top: 1.25em;
	margin-bottom: 0.35em;
	font-size: 1.05rem;
	line-height: 1.35;
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-header-link-color);
}

.az-ui-kit__prose-demo h4:first-child {
	margin-top: 0;
}

.az-ui-kit__prose-demo h5 {
	margin-top: 1.1em;
	margin-bottom: 0.3em;
	font-size: 0.95rem;
	line-height: 1.35;
	font-weight: var(--az-font-weight-emphasis);
	color: var(--az-header-link-color);
}

.az-ui-kit__prose-demo h5:first-child {
	margin-top: 0;
}

.az-ui-kit__prose-demo h6 {
	margin-top: 1em;
	margin-bottom: 0.25em;
	font-size: 0.875rem;
	line-height: 1.35;
	font-weight: var(--az-font-weight-emphasis);
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--az-text-secondary);
}

.az-ui-kit__prose-demo h6:first-child {
	margin-top: 0;
}

.az-ui-kit__prose-demo p {
	margin-top: 0;
	margin-bottom: 1em;
	color: var(--az-header-link-color);
}

.az-ui-kit__prose-demo p:last-child {
	margin-bottom: 0;
}

.az-ui-kit__prose-demo ul,
.az-ui-kit__prose-demo ol {
	margin-top: 0;
	margin-bottom: 1em;
	padding-left: 1.5em;
}

.az-ui-kit__prose-demo li {
	margin-bottom: 0.35em;
}

.az-ui-kit__prose-demo ul:last-child,
.az-ui-kit__prose-demo ol:last-child {
	margin-bottom: 0;
}

/* Single product — layout + portrait image (background) */
.az-single-product {
	display: grid;
	gap: var(--az-space-3);
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
}

@media (min-width: 768px) {
	/* Media column ~60%, details ~40% */
	.az-single-product {
		grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
		gap: clamp(var(--az-space-4), 3vw, 2.5rem);
	}
}

.az-single-product__col--media {
	min-width: 0;
}

.az-single-product__col--details {
	min-width: 0;
}

.az-single-product__title {
	margin: 0;
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.2;
	color: var(--az-header-link-color);
}

/* Beat `.page-content h2` (product title lives inside `.page-content` like cart/checkout). */
.page-content .az-single-product__title {
	margin: 0;
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	font-weight: var(--az-font-weight-emphasis);
	line-height: 1.2;
}

.az-single-product__price {
	margin-top: var(--az-space-2);
	font-size: 1.125rem;
	font-weight: var(--az-font-weight-normal);
	line-height: 1.35;
	color: var(--az-header-link-color);
}

.az-single-product__price .price {
	display: inline-block;
	margin: 0;
}

.az-single-product__price del {
	opacity: 0.65;
	font-weight: var(--az-font-weight-normal);
}

.az-single-product__price ins {
	text-decoration: none;
}

.az-single-product__price-note {
	font-size: 0.875rem;
	font-weight: var(--az-font-weight-normal);
	line-height: 1.45;
	color: var(--az-text-secondary);
}

/* Beat `.page-content p { margin-top: 0 }` on single product. */
.page-content .az-single-product__price-note {
	margin: var(--az-space-3) 0 0;
}

/* Long description: collapsed preview + expand (full HTML from product editor) */
.az-single-product__description {
	position: relative;
	margin-top: var(--az-space-3);
}

.az-single-product__description:not(.az-single-product__description--expanded):not(.az-single-product__description--short) .az-single-product__description-inner {
	max-height: 7.5rem;
	overflow: hidden;
	/* No max-height transition: animating from `none` to a length clips badly in browsers. */
}

.az-single-product__description--expanded .az-single-product__description-inner {
	max-height: none;
	overflow: visible;
}

.az-single-product__description:not(.az-single-product__description--expanded):not(.az-single-product__description--short)::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2.25rem;
	height: 2.5rem;
	pointer-events: none;
	background: linear-gradient(to bottom, transparent, var(--az-color-primary));
}

.az-single-product__description-inner {
	line-height: 1.7;
	color: var(--az-text-secondary);
}

.az-single-product__description-inner > :first-child {
	margin-top: 0;
}

.az-single-product__description-inner p {
	margin: 0 0 1em;
}

.az-single-product__description-inner p:last-child {
	margin-bottom: 0;
}

.az-single-product__description-inner ul,
.az-single-product__description-inner ol {
	margin: 0 0 1em;
	padding-left: 1.5em;
}

.az-single-product__description-inner li {
	margin-bottom: 0.35em;
}

.az-single-product__description-inner a {
	color: var(--az-header-link-color);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.az-single-product__description-toggle {
	margin-top: var(--az-space-2);
	padding: 0;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	font-size: 0.9375rem !important;
	font-weight: var(--az-font-weight-normal) !important;
	line-height: 1.4 !important;
	color: var(--az-header-link-color) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	display: inline-flex;
	align-self: flex-start;
	box-shadow: none !important;
}

.az-single-product__description-toggle:hover {
	background: transparent !important;
	color: var(--az-text-secondary) !important;
	border-radius: 0 !important;
}

.az-single-product__description-toggle:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
	border-radius: 2px !important;
}

/* Single image: one column. Multiple images: 2-column grid — main + each extra image cell is 50% of the media column. */
.az-single-product__media-stack {
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

.az-single-product__media-stack--split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--az-space-3);
	align-items: start;
}

.az-single-product__media-stack--split .az-single-product__thumbs {
	display: contents;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Odd total image count: main is half the media width (centered), cover; thumbnails continue in two columns below. */
.az-single-product__media-stack--split-odd .az-single-product__image {
	grid-column: 1 / -1;
	width: 50%;
	max-width: 50%;
	justify-self: center;
	background-size: cover;
}

.az-single-product__image {
	width: 100%;
	max-width: none;
	aspect-ratio: 3 / 4;
	background-color: var(--az-surface-placeholder);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}

/* Main hero: div[role="button"] — avoids global `button` hover/focus styles (no faux “zoom” / color shift). */
.az-single-product__image[role="button"] {
	display: block;
	box-sizing: border-box;
	cursor: pointer;
}

.az-single-product__image[role="button"]:hover {
	transform: none;
	filter: none;
	opacity: 1;
}

.az-single-product__image[role="button"]:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
}

.az-single-product__thumbs {
	list-style: none;
	margin: 0;
	padding: 0;
}

.az-single-product__thumbs li {
	margin: 0;
	padding: 0;
	min-width: 0;
}

@media (max-width: 767px) {
	.az-single-product__media-stack--split {
		grid-template-columns: 1fr;
	}

	.az-single-product__media-stack--split .az-single-product__image {
		grid-column: 1 / -1;
	}

	.az-single-product__media-stack--split-odd .az-single-product__image {
		width: 100%;
		max-width: none;
		justify-self: stretch;
	}

	.az-single-product__media-stack--split .az-single-product__thumbs {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--az-space-3);
		grid-column: 1 / -1;
	}

	/* Odd total image count: two gallery thumbnails per row (main is full width above). */
	.az-single-product__media-stack--split-odd .az-single-product__thumbs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Specificity: beats global `button`/`button:hover` without `:not()` (that raised specificity above `.header-burger`). */
button.az-single-product__thumb {
	appearance: none;
	display: block;
	box-sizing: border-box;
	width: 100%;
	aspect-ratio: 3 / 4;
	padding: 0;
	margin: 0;
	border: none;
	border-radius: 0 !important;
	background-color: var(--az-surface-placeholder);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	cursor: pointer;
	transform: none;
	transition: none;
	font-size: 0 !important;
	line-height: 0;
	font-weight: var(--az-font-weight-normal);
	color: transparent;
	gap: 0;
	align-items: stretch;
	justify-content: flex-start;
	text-decoration: none;
}

button.az-single-product__thumb:hover {
	transform: none;
	background-color: var(--az-surface-placeholder);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	border-radius: 0 !important;
}

button.az-single-product__thumb:focus-visible {
	outline: 2px solid var(--az-button-bg);
	outline-offset: 2px;
	border-radius: 0 !important;
}

/* Full-viewport product image lightbox (single product) */
.az-product-lightbox {
	position: fixed;
	inset: 0;
	z-index: 28;
	box-sizing: border-box;
}

.az-product-lightbox[hidden] {
	display: none !important;
}

.az-product-lightbox__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	min-height: 100dvh;
	padding: max(var(--az-space-4), env(safe-area-inset-top, 0px))
		max(var(--az-space-4), env(safe-area-inset-right, 0px))
		max(var(--az-space-4), env(safe-area-inset-bottom, 0px))
		max(var(--az-space-4), env(safe-area-inset-left, 0px));
}

.az-product-lightbox__backdrop {
	position: absolute;
	inset: 0;
	z-index: 0;
	margin: 0;
	padding: 0;
	background: rgba(0, 0, 0, 0.88);
	cursor: pointer;
}

.az-product-lightbox__img {
	position: relative;
	z-index: 1;
	max-width: 100%;
	max-height: min(100dvh - 2 * var(--az-space-4), 100%);
	width: auto;
	height: auto;
	object-fit: contain;
	pointer-events: none;
}

/*
 * Close: same × + .az-sheet-close metrics as cart drawer (header.php), on dark overlay only
 * override color/background/outline so the glyph stays visible.
 */
.woocommerce .az-product-lightbox .az-product-lightbox__close.az-sheet-close,
.az-product-lightbox .az-product-lightbox__close.az-sheet-close {
	background: transparent !important;
	border: none !important;
	margin: 0 !important;
	padding: 0 !important;
	color: rgba(255, 255, 255, 0.96) !important;
	font-size: 1.5rem !important;
	line-height: 1 !important;
	font-weight: var(--az-font-weight-normal) !important;
	font-synthesis: none;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 2px !important;
}

.woocommerce .az-product-lightbox .az-product-lightbox__close.az-sheet-close:hover,
.az-product-lightbox .az-product-lightbox__close.az-sheet-close:hover {
	background: transparent !important;
	color: #fff !important;
	transform: scale(1.12);
}

.woocommerce .az-product-lightbox .az-product-lightbox__close.az-sheet-close:focus-visible,
.az-product-lightbox .az-product-lightbox__close.az-sheet-close:focus-visible {
	outline: 2px solid #fff !important;
	outline-offset: 2px !important;
}

.az-product-lightbox__close {
	position: absolute;
	top: max(var(--az-space-3), env(safe-area-inset-top, 0px));
	right: max(var(--az-space-4), env(safe-area-inset-right, 0px));
	z-index: 3;
}

/*
 * Focus outline: only show on native form fields (input/textarea/select).
 * !important overrides component-level :focus-visible outline rules above.
 */
*:not(input, textarea, select):focus,
*:not(input, textarea, select):focus-visible {
	outline: none !important;
}

