/* ==========================================================================
   AAVVIRA WooCommerce pages: shop / category / tag pages (aavvira-shop.php)
   and Cart, Checkout, My Account (aavvira-woo-page.php).
   The page frame (header, breadcrumb, intro, cards, collection tiles) is
   styled by aavvira-search.css; this file styles the WooCommerce parts in the
   same design: Georgia headings, Arial text, cream fields, olive buttons.
   Sizes follow the design's scale: --u is the design's 1rem (1.5625vw).
   ========================================================================== */

/* ---------- Shop: collection tabs, sub-category chips, toolbar ---------- */
.aav-shop-tabs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: calc(2 * var(--u));
	margin-top: calc(1.75 * var(--u));
}
.aav-shop-tabs a {
	position: relative;
	padding: calc(.3 * var(--u)) 0 calc(.45 * var(--u));
	font-family: Georgia, "Times New Roman", serif;
	font-size: calc(1.1 * var(--u));
	line-height: 1.2;
	color: #4f5049;
	transition: color .2s ease;
}
.aav-shop-tabs a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--gold);
	transform: scaleX(0);
	transition: transform .25s ease;
}
.aav-shop-tabs a:hover { color: var(--ink); }
.aav-shop-tabs a[aria-current] { color: var(--ink); }
.aav-shop-tabs a[aria-current]::after,
.aav-shop-tabs a:hover::after { transform: scaleX(1); }
.aav-shop-chips { margin-top: calc(1.1 * var(--u)); }

.aav-shop-results .aav-catalog-toolbar {
	justify-content: space-between;
	margin: 0 0 calc(1.5 * var(--u));
}
.aav-shop-pages {
	display: flex;
	justify-content: center;
	gap: calc(.5 * var(--u));
	margin-top: calc(2.5 * var(--u));
}
.aav-shop-pages .page-numbers {
	display: grid;
	place-items: center;
	min-width: calc(2.4 * var(--u));
	height: calc(2.4 * var(--u));
	padding: 0 calc(.6 * var(--u));
	border: 1px solid var(--line);
	border-radius: 2px;
	background: #fffdf9;
	font-size: calc(.8 * var(--u));
	color: var(--ink);
}
.aav-shop-pages a.page-numbers:hover { border-color: var(--gold); }
.aav-shop-pages .page-numbers.current { border-color: var(--olive); background: var(--olive); color: #fffdf4; }

/* ---------- Cart, Checkout, My Account: content area ---------- */
.aav-woo-body {
	padding: calc(2.25 * var(--u)) calc(3.125 * var(--u)) calc(3.5 * var(--u));
	border-top: 1px solid #e7dfd4;
	font-size: calc(.88 * var(--u));
	line-height: 1.6;
	color: var(--ink);
}
.aav-woo-body > *:first-child { margin-top: 0 !important; }
.aav-woo-body .alignwide,
.aav-woo-body .wp-block-woocommerce-cart,
.aav-woo-body .wp-block-woocommerce-checkout {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
/* WooCommerce's float clearfix would take a cell in the grid layouts below. */
.aav-woo-body > .woocommerce::before,
.aav-woo-body > .woocommerce::after,
.aav-woo-body .col2-set::before,
.aav-woo-body .col2-set::after { display: none !important; }
.aav-woo .aav-woo-body h2,
.aav-woo .aav-woo-body h3,
.aav-woo .aav-woo-body legend,
.aav-woo .aav-woo-body .wc-block-components-title,
.aav-woo .aav-woo-body .wc-block-components-checkout-step__title,
.aav-woo .aav-woo-body .wc-block-cart__totals-title {
	font-family: Georgia, "Times New Roman", serif !important;
	font-weight: 400 !important;
	letter-spacing: -.01em !important;
	text-transform: none !important;
	color: var(--ink) !important;
}
.aav-woo .aav-woo-body h2 { font-size: calc(1.5 * var(--u)) !important; line-height: 1.25 !important; margin: 0 0 calc(1 * var(--u)) !important; }
.aav-woo .aav-woo-body h3,
.aav-woo .aav-woo-body legend,
.aav-woo .aav-woo-body .wc-block-components-checkout-step__title { font-size: calc(1.2 * var(--u)) !important; line-height: 1.3 !important; }
.aav-woo-body p { margin: 0 0 calc(.8 * var(--u)); }
.aav-woo-body a { color: var(--gold); text-decoration: underline; text-decoration-color: rgba(153, 115, 63, .35); text-underline-offset: 3px; }
.aav-woo-body a:hover { text-decoration-color: var(--gold); }

/* Fields (classic forms and WooCommerce blocks). !important: the theme styles every field. */
.aav-woo-body label,
.aav-woo-body .wc-block-components-text-input label,
.aav-woo-body .wc-blocks-components-select__label {
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: calc(.75 * var(--u)) !important;
	letter-spacing: .02em;
	color: #4f5049 !important;
}
.aav-woo-body input[type="text"],
.aav-woo-body input[type="email"],
.aav-woo-body input[type="password"],
.aav-woo-body input[type="tel"],
.aav-woo-body input[type="number"],
.aav-woo-body input[type="search"],
.aav-woo-body input[type="url"],
.aav-woo-body select,
.aav-woo-body textarea,
.aav-woo-body .wc-block-components-text-input input,
.aav-woo-body .wc-blocks-components-select__select {
	width: 100%;
	min-height: calc(3 * var(--u)) !important;
	margin: 0;
	padding: calc(.6 * var(--u)) calc(.8 * var(--u)) !important;
	border: 1px solid #d9cdb9 !important;
	border-radius: 2px !important;
	background: #fffdf9 !important;
	box-shadow: none !important;
	color: var(--ink) !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: calc(.9 * var(--u)) !important;
	line-height: 1.4 !important;
	transition: border-color .2s ease;
}
.aav-woo-body .wc-block-components-text-input input { padding-top: calc(1.35 * var(--u)) !important; }
.aav-woo-body input:focus,
.aav-woo-body select:focus,
.aav-woo-body textarea:focus,
.aav-woo-body .wc-block-components-text-input input:focus { border-color: var(--gold) !important; outline: none; }
.aav-woo-body input[type="checkbox"],
.aav-woo-body input[type="radio"] { accent-color: var(--olive); }
.aav-woo-body .required { color: var(--gold); border: 0; text-decoration: none; }
/* Help text under a field (e.g. "This will be how your name will be displayed…"). */
.aav-woo-body .form-row em,
.aav-woo-body .description {
	display: block;
	margin-top: calc(.35 * var(--u));
	font-size: calc(.75 * var(--u));
	font-style: normal;
	color: #6b675d;
}

/* Buttons. */
.aav-woo-body .button,
.aav-woo-body button[type="submit"],
.aav-woo-body input[type="submit"],
.aav-woo-body .wp-element-button,
.aav-woo-body .wc-block-components-button:not(.is-link),
.aav-woo-body .wc-block-cart__submit-button,
.aav-woo-body .wc-block-components-checkout-place-order-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: calc(.5 * var(--u));
	min-height: calc(3.2 * var(--u)) !important;
	margin: 0;
	padding: 0 calc(1.8 * var(--u)) !important;
	border: 0 !important;
	border-radius: 2px !important;
	background: #292e1b !important;
	box-shadow: none !important;
	color: #fffdf4 !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: calc(.8 * var(--u)) !important;
	font-weight: 400 !important;
	letter-spacing: .12em !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	text-transform: uppercase !important;
	cursor: pointer;
	transition: background-color .2s ease;
}
.aav-woo-body .button:hover,
.aav-woo-body button[type="submit"]:hover,
.aav-woo-body input[type="submit"]:hover,
.aav-woo-body .wp-element-button:hover,
.aav-woo-body .wc-block-components-button:not(.is-link):hover { background: #41492b !important; }
.aav-woo-body .wc-block-components-button.is-link { color: var(--gold) !important; }

/* Notices. */
.aav-woo-body .woocommerce-message,
.aav-woo-body .woocommerce-info,
.aav-woo-body .woocommerce-error,
.aav-woo-body .wc-block-components-notice-banner {
	margin: 0 0 calc(1.25 * var(--u)) !important;
	padding: calc(.9 * var(--u)) calc(1.2 * var(--u)) !important;
	border: 1px solid var(--line) !important;
	border-left: 3px solid var(--gold) !important;
	border-radius: 2px !important;
	background: #fffdf9 !important;
	color: var(--ink) !important;
	list-style: none !important;
	font-size: calc(.85 * var(--u));
}
.aav-woo-body .woocommerce-error { border-left-color: #a04a3a !important; }
.aav-woo-body .woocommerce-message::before,
.aav-woo-body .woocommerce-info::before,
.aav-woo-body .woocommerce-error::before { display: none !important; }
.aav-woo-body .woocommerce-message .button,
.aav-woo-body .woocommerce-info .button { float: right; min-height: calc(2.2 * var(--u)) !important; margin-left: calc(1 * var(--u)); }

/* Tables (orders, order details, totals). */
.aav-woo-body table.shop_table,
.aav-woo-body table.woocommerce-table,
.aav-woo-body .woocommerce-orders-table {
	width: 100%;
	margin: 0 0 calc(1.5 * var(--u));
	border: 0 !important;
	border-collapse: collapse !important;
	background: transparent !important;
}
.aav-woo-body table th,
.aav-woo-body table td {
	padding: calc(.8 * var(--u)) calc(.6 * var(--u)) !important;
	border: 0 !important;
	border-bottom: 1px solid var(--line) !important;
	background: transparent !important;
	text-align: left;
	vertical-align: middle;
}
.aav-woo-body table thead th {
	font-size: calc(.72 * var(--u));
	font-weight: 400;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #6b675d;
}
.aav-woo-body table .button { min-height: calc(2.2 * var(--u)) !important; padding: 0 calc(1 * var(--u)) !important; }

/* ---------- Cart and Checkout blocks ---------- */
.aav-woo-body .wc-block-components-sidebar-layout { gap: calc(2.5 * var(--u)); }
.aav-woo-body .wc-block-cart .wc-block-cart__totals-title,
.aav-woo-body .wc-block-components-totals-wrapper,
.aav-woo-body .wc-block-cart-items th,
.aav-woo-body .wc-block-cart-items td { border-color: var(--line) !important; }
.aav-woo-body .wc-block-components-sidebar {
	padding: calc(1.5 * var(--u)) !important;
	border: 1px solid var(--line);
	background: #fffdf9;
	align-self: flex-start;
}
.aav-woo-body .wc-block-components-product-name {
	font-family: Georgia, "Times New Roman", serif;
	font-size: calc(1.05 * var(--u));
	color: var(--ink) !important;
	text-decoration: none !important;
}
.aav-woo-body .wc-block-cart-item__image img { border-radius: 0; }
.aav-woo-body .wc-block-components-totals-item__label,
.aav-woo-body .wc-block-components-totals-item__value { color: var(--ink); }
.aav-woo-body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.aav-woo-body .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: Georgia, "Times New Roman", serif;
	font-size: calc(1.1 * var(--u));
	font-weight: 400;
}
.aav-woo-body .wc-block-components-quantity-selector { border-color: #d9cdb9 !important; border-radius: 2px; background: #fffdf9; }
.aav-woo-body .wc-block-components-quantity-selector input { min-height: 0 !important; border: 0 !important; background: transparent !important; padding: 0 !important; }
.aav-woo-body .wc-block-cart__submit-button,
.aav-woo-body .wc-block-components-checkout-place-order-button { width: 100%; }
.aav-woo-body .wc-block-components-radio-control__option,
.aav-woo-body .wc-block-components-radio-control-accordion-option { border-color: var(--line) !important; }

/* ---------- My Account: signed out (sign in, register, reset password) ---------- */
.aav-woo-body--signin > .woocommerce {
	max-width: calc(26 * var(--u));
	margin: 0 auto;
}
.aav-woo-body--signin .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: calc(2 * var(--u)); }
.aav-woo-body--signin:has(.u-columns) > .woocommerce { max-width: calc(46 * var(--u)); }
.aav-woo-body--signin .u-column1,
.aav-woo-body--signin .u-column2 { float: none !important; width: auto !important; }
/* The page title already says "Sign In"; keep the heading only beside Register. */
.aav-woo-body--signin > .woocommerce > h2 { display: none; }
.aav-woo-body--signin form.login,
.aav-woo-body--signin form.register,
.aav-woo-body--signin form.lost_reset_password {
	margin: 0 !important;
	padding: calc(2 * var(--u)) !important;
	border: 1px solid var(--line) !important;
	border-radius: 2px !important;
	background: #fffdf9 !important;
}
.aav-woo-body--signin .form-row { display: block; margin: 0 0 calc(1.1 * var(--u)) !important; padding: 0 !important; }
.aav-woo-body--signin .form-row label { display: block; margin-bottom: calc(.35 * var(--u)); }
.aav-woo-body--signin form.login .form-row:has(.woocommerce-form-login__submit) {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	justify-content: space-between;
	gap: calc(1 * var(--u));
	margin-top: calc(1.5 * var(--u)) !important;
}
.aav-woo-body--signin .woocommerce-form-login__rememberme { display: inline-flex !important; align-items: center; gap: calc(.4 * var(--u)); margin: 0 !important; }
.aav-woo-body--signin .woocommerce-form-login__submit { flex: 1 1 auto; }
.aav-woo-body--signin .lost_password { margin: calc(1.1 * var(--u)) 0 0 !important; text-align: center; font-size: calc(.8 * var(--u)); }
.aav-woo-body--signin form.lost_reset_password > p:first-child { display: none; } /* repeated in the summary above */

/* ---------- My Account: signed in (menu beside the content) ---------- */
.aav-woo-body--account-in > .woocommerce {
	display: grid;
	grid-template-columns: calc(15 * var(--u)) minmax(0, 1fr);
	gap: calc(3 * var(--u));
	align-items: start;
}
.aav-woo-body--account-in .woocommerce-MyAccount-navigation,
.aav-woo-body--account-in .woocommerce-MyAccount-content { float: none !important; width: auto !important; margin: 0 !important; }
.aav-woo-body--account-in .woocommerce-MyAccount-navigation ul {
	margin: 0 !important;
	padding: 0 !important;
	border-top: 1px solid var(--line);
	list-style: none !important;
}
.aav-woo-body--account-in .woocommerce-MyAccount-navigation li { margin: 0 !important; padding: 0 !important; border-bottom: 1px solid var(--line); list-style: none !important; }
.aav-woo-body--account-in .woocommerce-MyAccount-navigation a {
	display: block;
	padding: calc(.85 * var(--u)) calc(.9 * var(--u));
	border-left: 2px solid transparent;
	background: transparent !important; /* the theme tints every account menu link */
	font-size: calc(.88 * var(--u));
	color: #4f5049;
	text-decoration: none;
	transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}
.aav-woo-body--account-in .woocommerce-MyAccount-navigation a:hover { color: var(--ink); background: #fffdf9 !important; }
.aav-woo-body--account-in .woocommerce-MyAccount-navigation .is-active a { border-left-color: var(--gold); color: var(--ink); background: #fffdf9 !important; }
.aav-woo-body--account-in .woocommerce-MyAccount-content { min-height: calc(12 * var(--u)); }
.aav-woo-body--account-in .woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: calc(2 * var(--u)); }
.aav-woo-body--account-in .woocommerce-Address { float: none !important; width: auto !important; padding: calc(1.5 * var(--u)); border: 1px solid var(--line); background: #fffdf9; }
.aav-woo-body--account-in .woocommerce-Address address { font-style: normal; line-height: 1.7; }
.aav-woo-body--account-in .woocommerce-EditAccountForm fieldset { margin: calc(1.5 * var(--u)) 0; padding: calc(1.5 * var(--u)); border: 1px solid var(--line); }
.aav-woo-body--account-in .form-row { margin: 0 0 calc(1 * var(--u)) !important; padding: 0 !important; }
.aav-woo-body--account-in .form-row label { display: block; margin-bottom: calc(.35 * var(--u)); }

/* ---------- Phones ---------- */
@media (max-width: 767px) {
	.aav-shop-tabs { justify-content: flex-start; flex-wrap: nowrap; gap: 22px; margin: 22px -20px 0; padding: 0 20px; overflow-x: auto; scrollbar-width: none; }
	.aav-shop-tabs::-webkit-scrollbar { display: none; }
	.aav-shop-tabs a { flex: none; padding: 4px 0 6px; font-size: 17px; }
	.aav-shop-chips { margin-top: 14px; }
	.aav-shop-results .aav-catalog-toolbar { margin-bottom: 16px; }
	.aav-shop-pages { gap: 6px; margin-top: 28px; }
	.aav-shop-pages .page-numbers { min-width: 38px; height: 38px; padding: 0 10px; font-size: 13px; }

	.aav-woo-body { padding: 24px 16px 40px; font-size: 14px; }
	.aav-woo .aav-woo-body h2 { font-size: 22px !important; margin-bottom: 14px !important; }
	.aav-woo .aav-woo-body h3,
	.aav-woo .aav-woo-body legend,
	.aav-woo .aav-woo-body .wc-block-components-checkout-step__title { font-size: 18px !important; }
	.aav-woo-body p { margin-bottom: 12px; }
	.aav-woo-body label,
	.aav-woo-body .wc-block-components-text-input label,
	.aav-woo-body .wc-blocks-components-select__label { font-size: 12px !important; }
	.aav-woo-body input[type="text"],
	.aav-woo-body input[type="email"],
	.aav-woo-body input[type="password"],
	.aav-woo-body input[type="tel"],
	.aav-woo-body input[type="number"],
	.aav-woo-body input[type="search"],
	.aav-woo-body input[type="url"],
	.aav-woo-body select,
	.aav-woo-body textarea,
	.aav-woo-body .wc-block-components-text-input input,
	.aav-woo-body .wc-blocks-components-select__select { min-height: 46px !important; padding: 10px 12px !important; font-size: 16px !important; /* 16px: no zoom on focus in iOS */ }
	.aav-woo-body .wc-block-components-text-input input { padding-top: 20px !important; }
	.aav-woo-body .form-row em,
	.aav-woo-body .description { margin-top: 6px; font-size: 12px; }
	.aav-woo-body .button,
	.aav-woo-body button[type="submit"],
	.aav-woo-body input[type="submit"],
	.aav-woo-body .wp-element-button,
	.aav-woo-body .wc-block-components-button:not(.is-link),
	.aav-woo-body .wc-block-cart__submit-button,
	.aav-woo-body .wc-block-components-checkout-place-order-button { gap: 8px; min-height: 48px !important; padding: 0 22px !important; font-size: 12px !important; }
	.aav-woo-body .woocommerce-message,
	.aav-woo-body .woocommerce-info,
	.aav-woo-body .woocommerce-error,
	.aav-woo-body .wc-block-components-notice-banner { margin-bottom: 18px !important; padding: 12px 14px !important; font-size: 13px; }
	.aav-woo-body .woocommerce-message .button,
	.aav-woo-body .woocommerce-info .button { float: none; display: flex !important; width: 100%; min-height: 40px !important; margin: 10px 0 0; }
	.aav-woo-body table th,
	.aav-woo-body table td { padding: 10px 6px !important; }
	.aav-woo-body table thead th { font-size: 11px; }
	.aav-woo-body table .button { min-height: 36px !important; padding: 0 14px !important; }
	.aav-woo-body .wc-block-components-sidebar { padding: 18px !important; }
	.aav-woo-body .wc-block-components-product-name { font-size: 16px; }
	.aav-woo-body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
	.aav-woo-body .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 18px; }

	.aav-woo-body--signin > .woocommerce,
	.aav-woo-body--signin:has(.u-columns) > .woocommerce { max-width: none; }
	.aav-woo-body--signin .u-columns { grid-template-columns: 1fr; gap: 24px; }
	.aav-woo-body--signin form.login,
	.aav-woo-body--signin form.register,
	.aav-woo-body--signin form.lost_reset_password { padding: 22px 18px !important; }
	.aav-woo-body--signin .form-row { margin-bottom: 16px !important; }
	.aav-woo-body--signin .form-row label { margin-bottom: 6px; }
	.aav-woo-body--signin form.login .form-row:has(.woocommerce-form-login__submit) { flex-direction: column; align-items: stretch; gap: 14px; margin-top: 22px !important; }
	.aav-woo-body--signin .woocommerce-form-login__rememberme { gap: 8px; }
	.aav-woo-body--signin .lost_password { margin-top: 16px !important; font-size: 13px; }

	.aav-woo-body--account-in > .woocommerce { grid-template-columns: 1fr; gap: 24px; }
	/* Menu as one row of tabs that scrolls sideways. */
	.aav-woo-body--account-in .woocommerce-MyAccount-navigation ul { display: flex; gap: 0; margin: 0 -16px !important; padding: 0 16px !important; border-top: 0; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
	.aav-woo-body--account-in .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
	.aav-woo-body--account-in .woocommerce-MyAccount-navigation li { flex: none; border-bottom: 0; }
	.aav-woo-body--account-in .woocommerce-MyAccount-navigation a { padding: 10px 12px; border-left: 0; border-bottom: 2px solid transparent; font-size: 14px; }
	.aav-woo-body--account-in .woocommerce-MyAccount-navigation a:hover,
	.aav-woo-body--account-in .woocommerce-MyAccount-navigation .is-active a { background: transparent !important; }
	.aav-woo-body--account-in .woocommerce-MyAccount-navigation .is-active a { border-bottom-color: var(--gold); }
	.aav-woo-body--account-in .woocommerce-MyAccount-content { min-height: 0; }
	.aav-woo-body--account-in .woocommerce-Addresses { grid-template-columns: 1fr; gap: 16px; }
	.aav-woo-body--account-in .woocommerce-Address { padding: 18px; }
	.aav-woo-body--account-in .woocommerce-EditAccountForm fieldset { margin: 20px 0; padding: 18px; }
	.aav-woo-body--account-in .form-row { margin-bottom: 14px !important; }
	.aav-woo-body--account-in .form-row label { margin-bottom: 6px; }
}
@media (prefers-reduced-motion: reduce) {
	.aav-shop-tabs a, .aav-shop-tabs a::after { transition: none; }
}
