/**
 * Glamour Inns - UI corrections layered on the Astra child theme.
 *
 * Loaded last so it resolves conflicts between Astra, WooCommerce and the
 * child theme's own sheets. Organised by page area; no !important unless a
 * third-party sheet genuinely needs overriding.
 *
 * 1.  Layout shell
 * 2.  Header
 * 3.  Shop and archives
 * 4.  Single product
 * 5.  Cart
 * 6.  Checkout
 * 7.  Footer
 * 8.  Floating WhatsApp button
 */

/* =========================================================
   1. Layout shell
   ========================================================= */

/* Astra reserved a sidebar column on WooCommerce pages, leaving dead space. */
#primary,
.ast-separate-container #primary,
.ast-plain-container #primary {
	width: 100%;
	max-width: 100%;
	float: none;
	margin: 0;
	padding-left: 0;
	padding-right: 0;
}

#secondary,
.widget-area.secondary {
	display: none;
}

.site-content > .ast-container,
.ast-container {
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
}

.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-woocommerce-container {
	padding-left: 24px;
	padding-right: 24px;
}

.astra-child-shop-categories,
.woocommerce .astra-child-filter-bar,
.astra-child-footer__grid,
.astra-child-footer__bottom {
	width: min(1360px, calc(100% - 40px));
}

/* =========================================================
   2. Header
   ========================================================= */

.astra-child-header__inner {
	width: min(1360px, calc(100% - 32px));
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 18px;
}

.astra-child-header__brand,
.astra-child-logo {
	min-width: 0;
}

.astra-child-logo {
	flex: 0 0 auto;
}

/* Logo is a transparent PNG, sized so the mark reads at a glance. */
.astra-child-logo img,
.astra-child-header .custom-logo {
	width: auto;
	max-width: 168px;
	max-height: 62px;
	object-fit: contain;
}

@media (max-width: 1100px) {
	.astra-child-logo img,
	.astra-child-header .custom-logo {
		max-width: 130px;
		max-height: 50px;
	}
}

/* The nav must shrink rather than spill over the logo.
   Never clip here: the dropdowns are absolutely positioned. */
.astra-child-nav {
	min-width: 0;
}

.astra-child-menu {
	flex-wrap: nowrap;
	min-width: 0;
	gap: 0;
}

.astra-child-menu > li > a {
	white-space: nowrap;
	font-size: 0.8rem;
	letter-spacing: 0.01em;
	padding: 8px;
}

.astra-child-menu .sub-menu a {
	white-space: nowrap;
	font-size: 0.84rem;
}

/* Keep the last dropdowns from opening off the right edge */
.astra-child-menu > li:nth-last-child(-n + 3) .sub-menu {
	left: auto;
	right: 0;
}

.astra-child-actions {
	display: flex;
	align-items: center;
	gap: 6px;
	flex: 0 0 auto;
}

.astra-child-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	flex: 0 0 auto;
}

@media (max-width: 1280px) {
	.astra-child-menu > li > a {
		font-size: 0.74rem;
		padding: 8px 6px;
	}
}

/* =========================================================
   3. Shop and archives
   ========================================================= */

.woocommerce .astra-child-filter-bar {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: end;
	gap: 14px 16px;
}

.astra-child-filter-bar label > span {
	color: var(--ac-ink);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.astra-child-filter-bar input,
.astra-child-filter-bar select {
	width: 100%;
	padding: 0 12px;
	font-size: 0.9rem;
	color: var(--ac-ink);
}

.astra-child-filter-bar input::placeholder {
	color: #a49d95;
}

.astra-child-filter-bar select {
	appearance: none;
	padding-right: 34px;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--ac-muted) 50%),
		linear-gradient(135deg, var(--ac-muted) 50%, transparent 50%);
	background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
}

.astra-child-filter-bar__actions {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	gap: 14px;
	padding-top: 4px;
	border-top: 1px solid var(--ac-line);
}

.astra-child-filter-bar__actions button {
	padding: 0 26px;
}

/* =========================================================
   4. Single product
   ========================================================= */

.single-product div.product {
	align-items: start;
	gap: 44px;
}

.woocommerce-product-gallery,
.woocommerce-product-gallery__wrapper {
	position: relative;
}

.woocommerce-product-gallery {
	margin-bottom: 0;
}

/* Fixed stage so every product page is the same height */
.woocommerce-product-gallery .flex-viewport {
	height: 620px;
	border: 1px solid var(--ac-line);
	border-radius: 8px;
	background: #ffffff;
	overflow: hidden;
}

.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image,
.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image > a {
	display: block;
	height: 620px;
}

.woocommerce-product-gallery .flex-viewport img,
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image img {
	width: 100%;
	height: 620px;
	max-height: 620px;
	object-fit: contain;
	background: #ffffff;
}

/* Prev / next arrows */
.woocommerce-product-gallery .flex-direction-nav {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 620px;
	margin: 0;
	padding: 0;
	list-style: none;
	pointer-events: none;
	z-index: 4;
}

.woocommerce-product-gallery .flex-direction-nav li {
	position: static;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-product-gallery .flex-direction-nav a {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border: 1px solid var(--ac-line);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.95);
	box-shadow: 0 4px 16px rgba(21, 21, 21, 0.14);
	text-indent: -9999px;
	overflow: hidden;
	opacity: 0;
	pointer-events: auto;
	transition: opacity 160ms ease, background 160ms ease;
}

.woocommerce-product-gallery:hover .flex-direction-nav a,
.woocommerce-product-gallery .flex-direction-nav a:focus-visible {
	opacity: 1;
}

.woocommerce-product-gallery .flex-direction-nav a:hover {
	background: #ffffff;
}

.woocommerce-product-gallery .flex-direction-nav a.flex-prev {
	left: 14px;
}

.woocommerce-product-gallery .flex-direction-nav a.flex-next {
	right: 14px;
}

.woocommerce-product-gallery .flex-direction-nav a::before {
	content: "";
	position: absolute;
	width: 11px;
	height: 11px;
	border-right: 2px solid var(--ac-ink);
	border-bottom: 2px solid var(--ac-ink);
	text-indent: 0;
	font-size: 0;
}

.woocommerce-product-gallery .flex-direction-nav a.flex-prev::before {
	transform: rotate(135deg);
	margin-left: 4px;
}

.woocommerce-product-gallery .flex-direction-nav a.flex-next::before {
	transform: rotate(-45deg);
	margin-right: 4px;
}

.woocommerce-product-gallery .flex-direction-nav a.flex-disabled {
	opacity: 0;
	cursor: default;
}

/* Thumbnails: three per row, uniform squares */
.woocommerce-product-gallery ol.flex-control-thumbs,
.woocommerce-product-gallery ul.flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
	overflow: visible;
}

.woocommerce-product-gallery ol.flex-control-thumbs li,
.woocommerce-product-gallery ul.flex-control-thumbs li {
	width: 100%;
	max-width: none;
	float: none;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-product-gallery ol.flex-control-thumbs li img,
.woocommerce-product-gallery ul.flex-control-thumbs li img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border: 1px solid var(--ac-line);
	border-radius: 6px;
	opacity: 0.6;
	cursor: pointer;
	transition: opacity 160ms ease, border-color 160ms ease;
}

.woocommerce-product-gallery ol.flex-control-thumbs li img:hover,
.woocommerce-product-gallery ol.flex-control-thumbs li img.flex-active,
.woocommerce-product-gallery ul.flex-control-thumbs li img:hover,
.woocommerce-product-gallery ul.flex-control-thumbs li img.flex-active {
	opacity: 1;
	border-color: var(--ac-accent);
}

.single-product .astra-child-quality-promise,
.single-product .astra-child-product-details,
.single-product .astra-child-measurements,
.single-product .astra-child-product-note {
	margin: 18px 0;
}

/* Belt and braces: the panel is also suppressed server-side */
.astra-child-product-details:has(dl:empty),
.astra-child-product-details dl:empty,
.astra-child-measurements:empty,
.astra-child-product-note:empty {
	display: none;
}

/* Tabs */
.woocommerce-tabs {
	margin-top: 36px;
	clear: both;
}

.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 18px;
	padding: 0;
	border-bottom: 1px solid var(--ac-line);
	list-style: none;
}

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

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

.woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 10px 4px;
	border-bottom: 2px solid transparent;
	font-weight: 700;
}

.woocommerce-tabs ul.tabs li.active a {
	border-bottom-color: var(--ac-accent);
	color: var(--ac-accent-dark);
}

.woocommerce-tabs .panel {
	max-width: 900px;
}

.woocommerce-tabs .panel p,
.woocommerce-tabs .panel li {
	line-height: 1.6;
}

@media (max-width: 900px) {
	.woocommerce-product-gallery .flex-viewport,
	.woocommerce-product-gallery .flex-direction-nav {
		height: 420px;
	}

	.woocommerce-product-gallery .flex-viewport img,
	.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image img,
	.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image,
	.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image > a {
		height: 420px;
		max-height: 420px;
	}

	.woocommerce-product-gallery .flex-direction-nav a {
		opacity: 1;
		width: 40px;
		height: 40px;
	}
}

/* =========================================================
   5. Cart
   ========================================================= */

.woocommerce-cart table.shop_table td,
.woocommerce-cart table.shop_table th {
	word-break: normal;
	overflow-wrap: anywhere;
	vertical-align: middle;
}

.woocommerce-cart table.cart td.product-name {
	min-width: 200px;
	overflow-wrap: break-word;
}

/* The theme already grids .cart-collaterals; the panel just needs full width */
.woocommerce-cart .cart-collaterals .cart_totals {
	width: 100%;
	float: none;
	margin: 0;
}

.woocommerce-cart .cart_totals table.shop_table {
	width: 100%;
	table-layout: auto;
	border-collapse: collapse;
}

.woocommerce-cart .cart_totals table.shop_table th {
	width: 1%;
	white-space: nowrap;
	vertical-align: top;
	text-align: left;
	padding-right: 16px;
	font-weight: 700;
}

.woocommerce-cart .cart_totals table.shop_table td {
	text-align: right;
	vertical-align: top;
}

/* Money never breaks mid-figure */
.woocommerce-cart .cart_totals .amount,
.woocommerce-cart .cart_totals bdi,
.woocommerce-cart .cart_totals .woocommerce-Price-amount {
	white-space: nowrap;
}

.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td {
	text-align: left;
	white-space: normal;
}

.woocommerce-cart .cart_totals .woocommerce-shipping-destination {
	margin: 8px 0 0;
	font-size: 0.8rem;
	line-height: 1.35;
	color: var(--ac-muted);
}

.woocommerce-cart .cart_totals .shipping-calculator-button {
	display: inline-block;
	margin-top: 6px;
	font-size: 0.82rem;
}

.woocommerce-cart .cart_totals tr.order-total th,
.woocommerce-cart .cart_totals tr.order-total td {
	padding-top: 15px;
	border-top: 2px solid var(--ac-line);
	font-size: 1.05rem;
}

.woocommerce-cart .cart_totals tr.order-total td {
	font-weight: 800;
}

.woocommerce-cart .wc-proceed-to-checkout {
	margin-top: 18px;
	padding: 0;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	min-height: 54px;
	padding: 15px 20px;
	text-align: center;
	font-size: 1rem;
	font-weight: 800;
	white-space: normal;
}

/* =========================================================
   6. Checkout
   ========================================================= */

/* WooCommerce emits three siblings inside the form; without explicit
   placement the order summary lands in a narrow leftover cell. */
form.checkout.woocommerce-checkout {
	display: block;
	grid-template-columns: minmax(0, 1fr) 400px;
	grid-template-areas:
		"details heading"
		"details review";
	align-items: start;
	gap: 10px 40px;
	max-width: 1180px;
	margin-left: auto;
	margin-right: auto;
}

form.checkout.woocommerce-checkout > #customer_details {
	grid-area: details;
	min-width: 0;
	width: auto;
	float: none;
}

form.checkout.woocommerce-checkout > #order_review_heading {
	grid-area: heading;
	min-width: 0;
	width: auto;
	float: none;
	align-self: end;
	margin: 0 0 6px;
	padding: 0;
	border: 0;
	background: none;
}

form.checkout.woocommerce-checkout > #order_review {
	grid-area: review;
	min-width: 0;
	width: auto;
	float: none;
}

/* The empty "ship to a different address" half was leaving a large hole */
#customer_details.col2-set {
	display: block;
	width: 100%;
}

#customer_details.col2-set > .col-1,
#customer_details.col2-set > .col-2 {
	width: 100%;
	max-width: none;
	float: none;
	padding: 0;
}

/* Billing fields two-up so the form is not one long sparse column */
#customer_details .woocommerce-billing-fields__field-wrapper,
#customer_details .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 18px;
}

#customer_details .form-row {
	width: auto;
	float: none;
	margin: 0 0 14px;
	padding: 0;
}

#customer_details .form-row-wide,
#customer_details #billing_address_1_field,
#customer_details #billing_address_2_field,
#customer_details #billing_company_field,
#customer_details #billing_country_field,
#customer_details #order_comments_field {
	grid-column: 1 / -1;
}

#customer_details .form-row input.input-text,
#customer_details .form-row textarea,
#customer_details .form-row .select2-container {
	width: 100%;
}

/* Order summary table */
#order_review table.shop_table {
	width: 100%;
	table-layout: auto;
	border-collapse: collapse;
}

#order_review table.shop_table th,
#order_review table.shop_table td {
	word-break: normal;
	overflow-wrap: break-word;
	hyphens: none;
	white-space: normal;
	padding: 10px 8px;
	line-height: 1.35;
	text-align: left;
	vertical-align: top;
}

#order_review table.shop_table thead th:last-child,
#order_review table.shop_table tbody td:last-child,
#order_review table.shop_table tfoot tr:not(.woocommerce-shipping-totals) td:last-child {
	width: 1%;
	text-align: right;
	white-space: nowrap;
}

/* Shipping row holds radio labels, so it needs real width */
#order_review table.shop_table tfoot tr.woocommerce-shipping-totals th {
	width: 1%;
	white-space: nowrap;
	vertical-align: top;
}

#order_review table.shop_table tfoot tr.woocommerce-shipping-totals td {
	width: auto;
	text-align: left;
	white-space: normal;
}

#order_review table.shop_table tfoot th {
	font-weight: 700;
	text-align: left;
}

#order_review table.shop_table tfoot tr.order-total th,
#order_review table.shop_table tfoot tr.order-total td {
	padding-top: 14px;
	border-top: 2px solid var(--ac-line);
	font-size: 1.02rem;
}

#order_review table.shop_table tfoot tr.order-total td {
	font-weight: 800;
}

#order_review table.shop_table .product-name {
	font-size: 0.9rem;
}

/* Per-item meta reads as a compact inline list */
#order_review dl.variation {
	display: block;
	margin: 6px 0 0;
	font-size: 0.76rem;
	line-height: 1.35;
	color: var(--ac-muted);
}

#order_review dl.variation dt,
#order_review dl.variation dd,
#order_review dl.variation p {
	display: inline;
	margin: 0;
	font-weight: 400;
}

#order_review dl.variation dt {
	font-weight: 700;
}

#order_review dl.variation dd::after {
	content: "";
	display: block;
	margin-bottom: 3px;
}

/* Shipping method radios, shared styling with the cart */
#order_review ul#shipping_method,
.woocommerce-cart .cart_totals ul#shipping_method {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

#order_review ul#shipping_method li,
.woocommerce-cart .cart_totals ul#shipping_method li {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
}

#order_review ul#shipping_method li input,
.woocommerce-cart .cart_totals ul#shipping_method li input {
	flex: 0 0 auto;
	margin: 0;
}

#order_review ul#shipping_method label,
.woocommerce-cart .cart_totals ul#shipping_method label {
	margin: 0;
	font-size: 0.88rem;
	line-height: 1.3;
	white-space: nowrap;
}

#order_review .woocommerce-shipping-destination {
	margin: 8px 0 0;
	font-size: 0.78rem;
	line-height: 1.35;
	color: var(--ac-muted);
}

#payment ul.payment_methods {
	padding: 12px;
	border-radius: 8px;
	background: var(--ac-soft);
	list-style: none;
}

#payment ul.payment_methods li {
	margin: 0 0 6px;
}

.woocommerce-terms-and-conditions-wrapper {
	font-size: 0.84rem;
	line-height: 1.45;
}

#place_order {
	display: block;
	width: 100%;
	min-height: 54px;
	padding: 14px 18px;
	white-space: normal;
	word-break: normal;
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.2;
}

.astra-child-checkout-trust {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.astra-child-checkout-trust span {
	white-space: normal;
	font-size: 0.78rem;
	line-height: 1.25;
}

@media (max-width: 980px) {
	form.checkout.woocommerce-checkout {
		grid-template-columns: 1fr;
		grid-template-areas:
			"details"
			"heading"
			"review";
	}

	#customer_details .woocommerce-billing-fields__field-wrapper,
	#customer_details .woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.woocommerce-cart .cart_totals table.shop_table th {
		white-space: normal;
	}
}

/* =========================================================
   7. Footer
   ========================================================= */

.astra-child-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.3fr;
	gap: 34px;
	align-items: start;
}

.astra-child-footer-contact {
	display: grid;
	gap: 8px;
	margin-top: 12px;
}

.astra-child-footer-contact p {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	font-size: 0.9rem;
}

.astra-child-footer-contact svg {
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
	fill: currentColor;
	opacity: 0.75;
}

.astra-child-socials {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 14px;
}

.astra-child-socials a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--ac-line);
	border-radius: 999px;
	background: #fff;
	color: var(--ac-ink);
	text-decoration: none;
	transition: background 180ms ease, color 180ms ease;
}

.astra-child-socials a:hover,
.astra-child-socials a:focus-visible {
	background: var(--ac-ink);
	color: #fff;
}

.astra-child-socials svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

@media (max-width: 900px) {
	.astra-child-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.astra-child-footer__grid {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   8. Floating WhatsApp button
   ========================================================= */

.astra-child-whatsapp {
	position: fixed;
	right: 20px;
	bottom: 104px;
	z-index: 9999;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 999px;
	background: #25d366;
	box-shadow: 0 10px 26px rgba(37, 211, 102, 0.4);
}

.astra-child-whatsapp svg {
	width: 30px;
	height: 30px;
	fill: #fff;
}

@media (max-width: 560px) {
	.astra-child-whatsapp {
		bottom: 88px;
		right: 14px;
	}
}


/* =========================================================
   9. Shop toolbar, filter panel and chips
   Compact retail pattern: products stay visible, filters live
   behind a toggle. All toggling is native <details>, no JS.
   ========================================================= */

.ac-shop-toolbar {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	flex-wrap: wrap;
	width: min(1360px, calc(100% - 40px));
	margin: 0 auto 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ac-line);
}

.ac-shop-toolbar__right {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
}

.ac-shop-toolbar .woocommerce-result-count {
	margin: 0;
	color: var(--ac-muted);
	font-size: 0.86rem;
}

.ac-shop-toolbar .woocommerce-ordering {
	margin: 0;
}

.ac-shop-toolbar .woocommerce-ordering select {
	min-height: 44px;
	padding: 0 38px 0 14px;
	border: 1px solid var(--ac-line);
	border-radius: 6px;
	background-color: #fff;
	font-size: 0.88rem;
	appearance: none;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--ac-ink) 50%),
		linear-gradient(135deg, var(--ac-ink) 50%, transparent 50%);
	background-position: calc(100% - 20px) 52%, calc(100% - 15px) 52%;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
}

/* ---- Filter toggle ---- */

.ac-filter-panel {
	flex: 1 1 260px;
	max-width: 100%;
}

.ac-filter-toggle {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 44px;
	padding: 0 20px;
	border: 1px solid var(--ac-ink);
	border-radius: 6px;
	background: #fff;
	color: var(--ac-ink);
	font-size: 0.88rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	cursor: pointer;
	user-select: none;
	list-style: none;
	transition: background 160ms ease, color 160ms ease;
}

.ac-filter-toggle::-webkit-details-marker,
.ac-group > summary::-webkit-details-marker {
	display: none;
}

.ac-filter-toggle:hover {
	background: var(--ac-ink);
	color: #fff;
}

.ac-filter-toggle svg {
	width: 17px;
	height: 17px;
	fill: currentColor;
}

.ac-filter-toggle__badge,
.ac-group__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--ac-accent);
	color: #fff;
	font-size: 0.72rem;
	font-style: normal;
	font-weight: 800;
}

.ac-filter-panel[open] .ac-filter-toggle {
	background: var(--ac-ink);
	color: #fff;
}

/* ---- Panel ---- */

.ac-filter-form {
	margin-top: 14px;
	padding: 20px;
	border: 1px solid var(--ac-line);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 16px 36px rgba(21, 21, 21, 0.06);
}

.ac-filter-form__search label {
	display: grid;
	gap: 6px;
	margin-bottom: 16px;
}

.ac-filter-form__search span,
.ac-price span,
.ac-group > summary > span {
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--ac-ink);
}

.ac-filter-form__search input {
	width: 100%;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--ac-line);
	border-radius: 6px;
}

.ac-filter-groups {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
	gap: 6px 26px;
	align-items: start;
}

.ac-group {
	border-top: 1px solid var(--ac-line);
	padding: 4px 0;
}

.ac-group > summary {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 11px 0;
	cursor: pointer;
	list-style: none;
}

.ac-group > summary::after {
	content: "";
	margin-left: auto;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--ac-muted);
	border-bottom: 2px solid var(--ac-muted);
	transform: rotate(45deg) translate(-2px, -2px);
	transition: transform 160ms ease;
}

.ac-group[open] > summary::after {
	transform: rotate(225deg) translate(-2px, -2px);
}

.ac-options {
	display: grid;
	gap: 2px;
	max-height: 230px;
	margin: 0 0 12px;
	padding: 0 4px 0 0;
	list-style: none;
	overflow-x: hidden;
	overflow-y: auto;
}

.ac-options li {
	margin: 0;
	list-style: none;
}

.ac-options label {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 6px 4px;
	border-radius: 5px;
	font-size: 0.87rem;
	line-height: 1.3;
	cursor: pointer;
	transition: background 140ms ease;
}

.ac-options label:hover {
	background: var(--ac-soft);
}

.ac-options input {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--ac-accent);
}

.ac-options__name {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ac-options__count {
	flex: 0 0 auto;
	color: var(--ac-muted);
	font-size: 0.78rem;
}

.ac-price {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 10px;
}

.ac-price label {
	display: grid;
	gap: 5px;
}

.ac-price input {
	width: 100%;
	min-height: 40px;
	padding: 0 10px;
	border: 1px solid var(--ac-line);
	border-radius: 6px;
}

.ac-checkline {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-bottom: 12px;
	font-size: 0.87rem;
	cursor: pointer;
}

.ac-checkline input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--ac-accent);
}

.ac-filter-form__actions {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--ac-line);
}

.ac-filter-form__actions button {
	min-height: 46px;
	padding: 0 30px;
	border: 1px solid var(--ac-ink);
	border-radius: 6px;
	background: var(--ac-ink);
	color: #fff;
	font-weight: 800;
	cursor: pointer;
}

.ac-filter-form__actions a {
	color: var(--ac-accent-dark);
	font-size: 0.87rem;
	font-weight: 700;
}

/* ---- Active filter chips ---- */

.ac-chips {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	width: min(1360px, calc(100% - 40px));
	margin: 0 auto 20px;
}

.ac-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 13px;
	border: 1px solid var(--ac-line);
	border-radius: 999px;
	background: var(--ac-soft);
	color: var(--ac-ink);
	font-size: 0.82rem;
	font-weight: 700;
	text-decoration: none;
	transition: background 150ms ease, border-color 150ms ease;
}

.ac-chip:hover {
	background: #fff;
	border-color: var(--ac-accent);
}

.ac-chip em {
	font-size: 1.05rem;
	font-style: normal;
	line-height: 1;
	color: var(--ac-muted);
}

.ac-chip:hover em {
	color: var(--ac-accent);
}

.ac-chips__clear {
	margin-left: 4px;
	color: var(--ac-accent-dark);
	font-size: 0.82rem;
	font-weight: 800;
	text-decoration: underline;
}

/* ---- Footer logo ---- */

.astra-child-footer-brand {
	display: inline-block;
	margin-bottom: 10px;
}

.astra-child-footer-logo {
	width: auto;
	max-width: 150px;
	max-height: 58px;
	height: auto;
	object-fit: contain;
}

@media (max-width: 782px) {
	.ac-shop-toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.ac-shop-toolbar__right {
		justify-content: space-between;
	}

	.ac-filter-toggle {
		justify-content: center;
		width: 100%;
	}

	.ac-filter-groups {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   10. SHOP-BY-CATEGORY CARDS
   The card label sits on top of a product photo, and several of those photos
   are light, so the name was reading as dark text on a pale background. Force
   white text, deepen the scrim behind it and add a shadow so the label is
   legible on every image regardless of what is uploaded later.
   ========================================================================== */

.astra-child-shop-category-card,
.astra-child-shop-category-card:link,
.astra-child-shop-category-card:visited,
.astra-child-shop-category-card:hover,
.astra-child-shop-category-card:focus,
.astra-child-shop-category-card span,
.astra-child-shop-category-card strong,
.astra-child-shop-category-card small {
	color: #ffffff !important;
}

.astra-child-shop-category-card::after {
	background: linear-gradient(
		180deg,
		rgba(17, 17, 17, 0) 30%,
		rgba(17, 17, 17, 0.55) 66%,
		rgba(17, 17, 17, 0.88) 100%
	);
}

.astra-child-shop-category-card span {
	padding: 16px 14px 13px;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
}

.astra-child-shop-category-card strong {
	font-size: 1.02rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.astra-child-shop-category-card small {
	opacity: 0.95;
}
/* ==========================================================================
   11. GLOBAL CONTROLS: BUTTONS AND FIELDS
   Pages that were never styled individually fell back to WooCommerce and Astra
   defaults, so the same action showed as a bright blue bar on one page and a
   black bar on another. One treatment for every button and field.
   ========================================================================== */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce-page form button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 26px;
	border: 1px solid var(--ac-ink);
	border-radius: 6px;
	background: var(--ac-ink);
	color: #ffffff;
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1.2;
	cursor: pointer;
	transition: background 160ms ease, border-color 160ms ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce-page form button[type="submit"]:hover {
	background: var(--ac-accent);
	border-color: var(--ac-accent);
	color: #ffffff;
}

/* The quantity stepper was a narrow stub beside a full-width Add to Cart. */
.woocommerce div.product form.cart .quantity input.qty {
	width: 78px;
	min-height: 48px;
	padding: 0 8px;
	border: 1px solid var(--ac-line);
	border-radius: 6px;
	text-align: center;
	font-weight: 700;
}

/* Every text field on the site, so forms stop looking like raw browser defaults. */
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce input[type="search"],
.woocommerce textarea,
.woocommerce select,
.woocommerce .select2-container .select2-selection--single {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid var(--ac-line);
	border-radius: 6px;
	background: #ffffff;
	font-size: 0.95rem;
	line-height: 1.4;
	color: var(--ac-ink);
}

.woocommerce textarea {
	min-height: 120px;
	padding-top: 12px;
}

.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus {
	outline: none;
	border-color: var(--ac-accent);
	box-shadow: 0 0 0 3px rgba(159, 71, 54, 0.12);
}

.woocommerce form .form-row label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--ac-muted);
}

.woocommerce form .form-row label.checkbox,
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: center;
	gap: 9px;
	text-transform: none;
	letter-spacing: 0;
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--ac-ink);
}

.woocommerce form .form-row label.checkbox input,
.woocommerce form .form-row .woocommerce-form__input-checkbox {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--ac-accent);
}

/* ==========================================================================
   12. MY ACCOUNT
   WooCommerce ships this page as two floated 48% columns inside whatever
   container it lands in, with no card, no spacing and no field styling. That is
   what customers were reporting as a broken page. Rebuilt as an explicit grid so
   the width no longer depends on which layout engine wins.
   ========================================================================== */

.woocommerce-account .woocommerce {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
}

/* --- Logged out: Login and Register side by side --- */

.woocommerce-account #customer_login.u-columns,
.woocommerce-account .u-columns.col2-set {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 28px;
	width: 100%;
}

.woocommerce-account #customer_login > .u-column1,
.woocommerce-account #customer_login > .u-column2,
.woocommerce-account #customer_login > .col-1,
.woocommerce-account #customer_login > .col-2 {
	width: auto;
	max-width: none;
	min-width: 0;
	float: none;
	padding: 26px 26px 30px;
	border: 1px solid var(--ac-line);
	border-radius: 10px;
	background: var(--ac-cream);
}

.woocommerce-account #customer_login h2 {
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--ac-line);
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.woocommerce-account form.login,
.woocommerce-account form.register {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

.woocommerce-account form.login .form-row,
.woocommerce-account form.register .form-row {
	width: 100%;
	margin: 0 0 16px;
	padding: 0;
	float: none;
}

.woocommerce-account .woocommerce-form-login__rememberme {
	margin-bottom: 14px;
}

.woocommerce-account .woocommerce-LostPassword {
	margin: 14px 0 0;
	font-size: 0.9rem;
}

.woocommerce-account form.login button,
.woocommerce-account form.register button {
	width: 100%;
}

/* --- Logged in: navigation beside content --- */

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	width: auto;
	max-width: none;
	min-width: 0;
	float: none;
	margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border: 1px solid var(--ac-line);
	border-radius: 10px;
	overflow: hidden;
	background: var(--ac-cream);
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
	margin: 0;
	list-style: none;
	border-bottom: 1px solid var(--ac-line);
}

.woocommerce-account .woocommerce-MyAccount-navigation li:last-child {
	border-bottom: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 13px 18px;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--ac-ink);
	text-decoration: none;
	transition: background 140ms ease, color 140ms ease;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: var(--ac-soft);
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--ac-ink);
	color: #ffffff;
}

.woocommerce-account .woocommerce-MyAccount-content {
	padding: 0;
	font-size: 0.97rem;
}

.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
	margin-top: 0;
}

/* The dashboard grid only exists once the navigation is on the page. */
.woocommerce-account.logged-in .woocommerce > .woocommerce-notices-wrapper + .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-navigation {
	grid-area: nav;
}

.woocommerce-account .woocommerce-MyAccount-content {
	grid-area: body;
}

.woocommerce-account.logged-in .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 240px) minmax(0, 1fr);
	grid-template-areas:
		"notices notices"
		"nav body";
	gap: 12px 32px;
	align-items: start;
}

.woocommerce-account.logged-in .woocommerce > .woocommerce-notices-wrapper {
	grid-area: notices;
}

@media (max-width: 860px) {
	.woocommerce-account.logged-in .woocommerce {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"notices"
			"nav"
			"body";
	}
}

/* Account tables: orders, downloads, addresses. */
.woocommerce-account table.shop_table,
.woocommerce-account table.woocommerce-orders-table {
	width: 100%;
	border: 1px solid var(--ac-line);
	border-radius: 10px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

.woocommerce-account table.shop_table th {
	padding: 13px 14px;
	background: var(--ac-soft);
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-align: left;
}

.woocommerce-account table.shop_table td {
	padding: 13px 14px;
	border-top: 1px solid var(--ac-line);
	font-size: 0.92rem;
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
	padding: 20px;
	border: 1px solid var(--ac-line);
	border-radius: 10px;
	background: var(--ac-cream);
}

/* ==========================================================================
   13. CHECKOUT ORDER SUMMARY
   The summary column was narrow enough that product names broke onto five
   lines. Widening it and letting the name column take the slack fixes it.
   ========================================================================== */

@media (min-width: 1000px) {
	form.checkout.woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr) minmax(360px, 460px);
		gap: 10px 44px;
	}
}

#order_review table.shop_table {
	width: 100%;
	table-layout: auto;
}

#order_review table.shop_table th,
#order_review table.shop_table td {
	padding: 12px 10px;
	vertical-align: top;
	word-break: normal;
	overflow-wrap: anywhere;
}

#order_review table.shop_table td.product-name {
	width: auto;
	font-size: 0.92rem;
	line-height: 1.45;
}

#order_review table.shop_table td.product-total,
#order_review table.shop_table th.product-total {
	width: 1%;
	white-space: nowrap;
	text-align: right;
}

#order_review table.shop_table .variation,
#order_review table.shop_table dl.variation {
	margin: 6px 0 0;
	font-size: 0.78rem;
	line-height: 1.4;
	color: var(--ac-muted);
}

#order_review table.shop_table dl.variation dt,
#order_review table.shop_table dl.variation dd {
	display: inline;
	margin: 0;
	font-weight: 500;
}

#order_review table.shop_table dl.variation dd::after {
	content: "";
	display: block;
}

/* ==========================================================================
   14. CHECKOUT, CART AND ACCOUNT: ONE LAYOUT SYSTEM
   These three pages were each inheriting a different mix of WooCommerce, Astra
   and ShopEngine defaults. The checkout markup is now a child-theme template
   with its own container classes, so the grid below is the only thing that
   positions it and no other stylesheet can reach in.
   ========================================================================== */

.ac-checkout__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(330px, 390px);
	gap: 34px;
	align-items: start;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

@media (max-width: 980px) {
	.ac-checkout__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 26px;
	}
}

/* Legacy float and width rules still target these IDs. */
.ac-checkout .ac-checkout__main,
.ac-checkout #customer_details,
.ac-checkout #order_review {
	width: 100%;
	max-width: none;
	min-width: 0;
	float: none;
}

.ac-checkout__panel {
	padding: 30px 30px 34px;
	border: 1px solid var(--ac-line);
	border-radius: 12px;
	background: #ffffff;
}

.ac-checkout h3,
.ac-checkout .woocommerce-billing-fields > h3,
.ac-checkout .woocommerce-additional-fields > h3 {
	margin: 0 0 20px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ac-line);
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ac-checkout .woocommerce-additional-fields {
	margin-top: 30px;
}

/* Address fields two-up so the form fills its column instead of leaving a gutter. */
.ac-checkout .woocommerce-billing-fields__field-wrapper,
.ac-checkout .woocommerce-shipping-fields__field-wrapper,
.ac-checkout .woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4px 20px;
}

.ac-checkout .form-row {
	width: auto;
	min-width: 0;
	margin: 0 0 18px;
	padding: 0;
	float: none;
}

.ac-checkout .form-row-wide,
.ac-checkout #billing_company_field,
.ac-checkout #billing_country_field,
.ac-checkout #billing_address_1_field,
.ac-checkout #billing_address_2_field,
.ac-checkout #billing_email_field,
.ac-checkout #shipping_company_field,
.ac-checkout #shipping_country_field,
.ac-checkout #shipping_address_1_field,
.ac-checkout #shipping_address_2_field,
.ac-checkout #order_comments_field {
	grid-column: 1 / -1;
}

@media (max-width: 620px) {
	.ac-checkout .woocommerce-billing-fields__field-wrapper,
	.ac-checkout .woocommerce-shipping-fields__field-wrapper,
	.ac-checkout .woocommerce-additional-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* --- Order summary --- */

.ac-checkout__aside {
	position: sticky;
	top: 104px;
	padding: 26px 24px 28px;
	border: 1px solid var(--ac-line);
	border-radius: 12px;
	background: var(--ac-cream);
}

@media (max-width: 980px) {
	.ac-checkout__aside {
		position: static;
	}
}

.ac-checkout__aside #order_review_heading {
	margin: 0 0 18px;
	padding-bottom: 14px;
}

.ac-checkout__aside #order_review {
	padding: 0;
	border: 0;
	background: none;
}

.ac-order-table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	table-layout: auto;
}

.ac-order-table thead {
	display: none;
}

.ac-order-table td,
.ac-order-table th {
	padding: 14px 0;
	border: 0;
	border-bottom: 1px solid var(--ac-line);
	background: none;
	vertical-align: middle;
}

.ac-order-table tbody tr:last-child td {
	border-bottom: 1px solid var(--ac-line);
}

.ac-order-table td.product-total,
.ac-order-table tfoot td {
	width: 1%;
	white-space: nowrap;
	text-align: right;
	font-weight: 700;
}

/* Line item as a media row: thumbnail, name, attributes. */
.ac-order-item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	min-width: 0;
	padding-right: 12px;
}

.ac-order-item__thumb {
	position: relative;
	flex: 0 0 auto;
	width: 62px;
	height: 62px;
	border: 1px solid var(--ac-line);
	border-radius: 8px;
	overflow: hidden;
	background: #ffffff;
}

.ac-order-item__thumb img,
.ac-order-item__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
	box-shadow: none;
}

/* Quantity as a badge, so it stops sitting inside the product name. */
.ac-order-item__qty {
	position: absolute;
	top: -7px;
	right: -7px;
	display: grid;
	place-items: center;
	min-width: 21px;
	height: 21px;
	padding: 0 5px;
	border-radius: 11px;
	background: var(--ac-ink);
	color: #ffffff;
	font-size: 0.7rem;
	font-style: normal;
	font-weight: 800;
	line-height: 1;
}

.ac-order-item__text {
	flex: 1 1 auto;
	min-width: 0;
}

.ac-order-item__name {
	display: block;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--ac-ink);
}

.ac-order-item__meta {
	display: block;
	margin-top: 5px;
	font-size: 0.74rem;
	line-height: 1.5;
	color: var(--ac-muted);
}

.ac-order-item__meta dl,
.ac-order-item__meta dl.variation {
	margin: 0;
}

.ac-order-item__meta dt,
.ac-order-item__meta dd {
	display: inline;
	margin: 0;
	padding: 0;
	font-weight: 500;
}

.ac-order-item__meta dt {
	font-weight: 700;
}

.ac-order-item__meta dd::after {
	content: "";
	display: block;
}

.ac-order-item__meta p {
	margin: 0;
}

/* Totals block. */
.ac-order-table tfoot th {
	padding: 13px 0;
	font-size: 0.85rem;
	font-weight: 600;
	text-align: left;
	color: var(--ac-muted);
	text-transform: none;
	letter-spacing: 0;
}

.ac-order-table tfoot tr.order-total th,
.ac-order-table tfoot tr.order-total td {
	padding-top: 16px;
	border-bottom: 0;
	font-size: 1.08rem;
	font-weight: 800;
	color: var(--ac-ink);
}

.ac-order-table tfoot .woocommerce-shipping-totals td {
	white-space: normal;
	text-align: right;
	font-weight: 500;
}

.ac-order-table tfoot #shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: right;
}

.ac-order-table tfoot #shipping_method li {
	margin: 0 0 6px;
	list-style: none;
	font-size: 0.86rem;
}

.ac-order-table tfoot #shipping_method li:last-child {
	margin-bottom: 0;
}

.ac-checkout #payment {
	margin-top: 22px;
	padding: 0;
	border-radius: 0;
	background: none;
}

.ac-checkout #payment ul.payment_methods {
	margin: 0 0 16px;
	padding: 0;
	border: 1px solid var(--ac-line);
	border-radius: 10px;
	background: #ffffff;
	overflow: hidden;
}

.ac-checkout #payment ul.payment_methods li {
	margin: 0;
	padding: 14px 16px;
	border-bottom: 1px solid var(--ac-line);
	list-style: none;
}

.ac-checkout #payment ul.payment_methods li:last-child {
	border-bottom: 0;
}

.ac-checkout #payment div.payment_box {
	margin: 10px 0 0;
	padding: 12px 14px;
	border-radius: 8px;
	background: var(--ac-soft);
	color: var(--ac-muted);
	font-size: 0.85rem;
}

.ac-checkout #payment div.payment_box::before {
	display: none;
}

.ac-checkout #place_order {
	width: 100%;
	min-height: 54px;
	font-size: 0.95rem;
}

.ac-checkout .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 14px;
	font-size: 0.85rem;
}

/* --- Cart, matched to the checkout --- */

.woocommerce-cart .woocommerce > .woocommerce-cart-form,
.woocommerce-cart .cart-collaterals {
	min-width: 0;
}

.woocommerce-cart table.shop_table.cart {
	border: 1px solid var(--ac-line);
	border-radius: 12px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

.woocommerce-cart table.shop_table.cart th {
	padding: 15px 16px;
	background: var(--ac-soft);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-align: left;
}

.woocommerce-cart table.shop_table.cart td {
	padding: 18px 16px;
	border-top: 1px solid var(--ac-line);
	vertical-align: middle;
}

.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
	width: 74px;
	height: 74px;
	object-fit: cover;
	border: 1px solid var(--ac-line);
	border-radius: 8px;
}

.woocommerce-cart .cart_totals {
	position: sticky;
	top: 104px;
	padding: 24px;
	border: 1px solid var(--ac-line);
	border-radius: 12px;
	background: var(--ac-cream);
}

.woocommerce-cart .cart_totals h2 {
	margin: 0 0 16px;
	padding-bottom: 13px;
	border-bottom: 1px solid var(--ac-line);
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* --- Account dashboard, matched to the same card language --- */

.woocommerce-account .woocommerce-MyAccount-content {
	padding: 26px 28px 30px;
	border: 1px solid var(--ac-line);
	border-radius: 12px;
	background: #ffffff;
}

.woocommerce-account .woocommerce-MyAccount-content > h2:first-child,
.woocommerce-account .woocommerce-MyAccount-content > h3:first-child {
	margin-top: 0;
}

/* ==========================================================================
   15. CHECKOUT HARDENING
   Section 14 laid the checkout out correctly on paper, but the summary column
   was still being squeezed by rules further up the cascade, and the order table
   then overflowed its own card. Two changes remove the possibility entirely:
   the grid is declared with !important so nothing upstream can re-place it, and
   the order table is taken out of table layout altogether and rendered as flex
   rows, so its width can no longer be decided by column algorithms.
   ========================================================================== */

form.checkout.ac-checkout {
	display: block !important;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.ac-checkout .ac-checkout__grid {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 380px !important;
	grid-template-areas: none !important;
	gap: 34px !important;
	align-items: start !important;
	width: 100% !important;
	max-width: 1200px !important;
	margin: 0 auto !important;
	float: none !important;
}

@media (max-width: 980px) {
	.ac-checkout .ac-checkout__grid {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 26px !important;
	}
}

.ac-checkout .ac-checkout__main,
.ac-checkout .ac-checkout__aside {
	grid-area: auto !important;
	box-sizing: border-box;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	float: none !important;
}

.ac-checkout .ac-checkout__panel,
.ac-checkout #customer_details,
.ac-checkout #order_review,
.ac-checkout #order_review_heading {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	float: none !important;
	clear: none !important;
}

.ac-checkout #order_review {
	border: 0 !important;
	padding: 0 !important;
	background: none !important;
}

.ac-checkout #order_review_heading {
	white-space: normal;
}

/* --- Order table out of table layout --- */

.ac-order-table,
.ac-order-table tbody,
.ac-order-table tfoot,
.ac-order-table thead {
	display: block !important;
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0;
	border: 0;
}

.ac-order-table thead {
	display: none !important;
}

.ac-order-table tr {
	display: flex !important;
	align-items: center;
	gap: 12px;
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	border: 0;
	border-bottom: 1px solid var(--ac-line);
}

.ac-order-table tfoot tr:last-child {
	border-bottom: 0;
}

.ac-order-table td,
.ac-order-table th {
	display: block !important;
	box-sizing: border-box;
	border: 0 !important;
	padding: 14px 0 !important;
	background: none !important;
	vertical-align: middle;
}

/* The name side takes the slack, the money side takes only what it needs. */
.ac-order-table td.product-name,
.ac-order-table tfoot th {
	flex: 1 1 auto;
	min-width: 0;
	text-align: left;
}

.ac-order-table td.product-total,
.ac-order-table tfoot td {
	flex: 0 0 auto;
	width: auto !important;
	text-align: right;
	white-space: nowrap;
}

.ac-order-table tfoot .woocommerce-shipping-totals td {
	flex: 1 1 auto;
	min-width: 0;
	white-space: normal;
}

.ac-order-item {
	width: 100%;
	padding-right: 0;
}

.ac-order-item__name {
	overflow-wrap: anywhere;
}

/* ==========================================================================
   16. REQUESTED ADJUSTMENTS
   ========================================================================== */

.single-product .summary.entry-summary {
	padding-right: 70px;
}

/* The 70px gutter is for the desktop two-column product layout. Below the
   breakpoint the summary is full width, where that padding would just squash
   the text against the left edge. */
@media (max-width: 921px) {
	.single-product .summary.entry-summary {
		padding-right: 0;
	}
}

@media (max-width: 600px) {
	.astra-child-whatsapp {
		width: 46px;
		height: 46px;
	}
}
/* ==========================================================================
   17. SINGLE PRODUCT PAGE
   ========================================================================== */

h1, h2, h3, h4,
.entry-title,
.woocommerce div.product .product_title {
	font-family: "Montserrat", "Lato", system-ui, sans-serif;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .single_add_to_cart_button,
.astra-child-buy-now,
.ac-pill {
	font-family: "Poppins", "Lato", system-ui, sans-serif;
}

/* --- Gallery: thumbnail rail beside the main image --- */

/* Thumbnails sit in a row under the main image, three across, as before. */
@media (min-width: 922px) {
	.single-product div.product .woocommerce-product-gallery {
		display: block;
	}

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

.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	width: 100%;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}

.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li {
	width: 100%;
	margin: 0;
	padding: 0;
	float: none;
	list-style: none;
}

.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border: 1px solid var(--ac-line);
	border-radius: 8px;
	opacity: 0.68;
	cursor: pointer;
	transition: opacity 160ms ease, border-color 160ms ease;
}

.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img:hover,
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: var(--ac-accent);
}

.single-product div.product .woocommerce-product-gallery__image img {
	border-radius: 10px;
}

/* Zoom is enabled in the theme; this just tells the shopper it is there. */
.single-product div.product .woocommerce-product-gallery__image {
	cursor: zoom-in;
}

@media (max-width: 921px) {
	.ac-gallery-dots {
		display: flex;
		justify-content: center;
		gap: 7px;
		margin-top: 12px;
	}

	.ac-gallery-dot {
		width: 7px;
		height: 7px;
		border-radius: 50%;
		background: var(--ac-line);
		transition: background 160ms ease, transform 160ms ease;
	}

	.ac-gallery-dot.is-active {
		background: var(--ac-accent);
		transform: scale(1.25);
	}
}

/* --- Summary panel --- */

.single-product .summary .posted_in,
.single-product .summary .product_meta .posted_in {
	display: block;
	margin-bottom: 8px;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ac-muted);
}

.woocommerce div.product .product_title {
	margin: 0 0 12px;
	font-size: clamp(1.45rem, 2.4vw, 2rem);
	font-weight: 700;
	line-height: 1.2;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 18px;
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--ac-accent);
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	order: 2;
	font-size: 1rem;
	font-weight: 500;
	color: var(--ac-muted);
	opacity: 1;
	text-decoration: line-through;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	order: 1;
	background: none;
	text-decoration: none;
	color: var(--ac-accent);
}

.ac-price-saving {
	order: 3;
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--ac-accent);
	color: #ffffff;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1;
}

/* --- Colour pills --- */

.ac-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin: 6px 0 4px;
}

.ac-pill {
	min-height: 42px;
	padding: 9px 18px;
	border: 1px solid var(--ac-line);
	border-radius: 999px;
	background: #ffffff;
	color: var(--ac-ink);
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
}

.ac-pill:hover {
	border-color: var(--ac-accent);
}

.ac-pill.is-active {
	border-color: var(--ac-accent);
	background: var(--ac-accent);
	color: #ffffff;
}

.ac-pill.is-unavailable {
	opacity: 0.4;
	cursor: not-allowed;
	text-decoration: line-through;
}

/* The select stays for screen readers and no-JS, but steps out of the way. */
.ac-pills-source {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* --- CTA row --- */

.ac-cta-row {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 12px;
	margin: 20px 0 0;
}

.ac-cta-row .quantity {
	flex: 0 0 auto;
	margin: 0;
}

.woocommerce div.product form.cart .ac-cta-row .quantity input.qty {
	height: 100%;
	min-height: 52px;
}

.ac-cta-row .single_add_to_cart_button {
	flex: 1 1 190px;
	min-height: 52px;
	margin: 0;
}

.ac-cta-row .astra-child-buy-now {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 150px;
	min-height: 52px;
	padding: 12px 24px;
	border: 1px solid var(--ac-accent);
	border-radius: 6px;
	background: #ffffff;
	color: var(--ac-accent);
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 160ms ease, color 160ms ease;
}

.ac-cta-row .astra-child-buy-now:hover {
	background: var(--ac-accent);
	color: #ffffff;
}

/* Sticky purchase bar on phones, so the buttons are always one thumb away. */
@media (max-width: 640px) {
	.single-product .ac-cta-row {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 90;
		margin: 0;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
		border-top: 1px solid var(--ac-line);
		background: #ffffff;
		box-shadow: 0 -6px 22px rgba(21, 21, 21, 0.1);
	}

	.single-product .ac-cta-row .quantity {
		flex: 0 0 68px;
	}

	.single-product .ac-cta-row .single_add_to_cart_button,
	.single-product .ac-cta-row .astra-child-buy-now {
		flex: 1 1 0;
		min-height: 48px;
		padding: 10px 12px;
		font-size: 0.8rem;
	}

	/* Clear the bar so it never covers the footer or the WhatsApp button. */
	.single-product .site-main {
		padding-bottom: 86px;
	}

	.single-product .astra-child-whatsapp {
		bottom: 92px;
	}
}

/* --- Trust row, directly under the buttons --- */

.astra-child-quality-promise {
	margin: 22px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--ac-line);
}

.astra-child-quality-promise h2 {
	margin: 0 0 12px;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ac-muted);
}

.astra-child-quality-promise ul,
.astra-child-quality-promise .astra-child-trust-icons {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 10px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.83rem;
	line-height: 1.35;
}

.astra-child-quality-promise li {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	list-style: none;
}

.astra-child-quality-promise svg {
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
	fill: var(--ac-accent);
}

/* ==========================================================================
   18. HOME PAGE
   ========================================================================== */

.ac-home {
	background: rgb(245, 247, 249);
}

.ac-home > section,
.ac-home > nav {
	width: min(1360px, calc(100% - 32px));
	margin: 0 auto 46px;
}

/* --- Hero --- */

.ac-hero {
	position: relative;
	width: 100% !important;
	max-width: none !important;
	margin: 0 0 34px !important;
	overflow: hidden;
}

.ac-hero__track {
	position: relative;
	display: grid;
}

.ac-hero__slide {
	position: relative;
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	transition: opacity 520ms ease;
}

.ac-hero__slide.is-active {
	opacity: 1;
	visibility: visible;
}

.ac-hero__slide img {
	display: block;
	width: 100%;
	height: clamp(280px, 42vw, 560px);
	object-fit: cover;
}

.ac-hero__caption {
	position: absolute;
	top: 50%;
	left: clamp(20px, 6vw, 90px);
	transform: translateY(-50%);
	max-width: 460px;
	color: #ffffff;
	text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
}

.ac-hero__kicker {
	margin: 0 0 8px;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.ac-hero__title {
	margin: 0 0 20px;
	font-size: clamp(1.9rem, 4.4vw, 3.4rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #ffffff;
}

.ac-hero__cta {
	display: inline-flex;
	align-items: center;
	min-height: 50px;
	padding: 13px 32px;
	border-radius: 6px;
	background: var(--ac-ink);
	color: #ffffff;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	text-decoration: none;
	text-shadow: none;
	transition: background 160ms ease;
}

.ac-hero__cta:hover {
	background: var(--ac-accent);
	color: #ffffff;
}

.ac-hero__dots {
	position: absolute;
	right: 0;
	bottom: 18px;
	left: 0;
	display: flex;
	justify-content: center;
	gap: 9px;
}

.ac-hero__dot {
	width: 9px;
	height: 9px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	cursor: pointer;
	transition: background 160ms ease, transform 160ms ease;
}

.ac-hero__dot.is-active {
	background: var(--ac-accent);
	transform: scale(1.3);
}

/* --- Category pills --- */

.ac-tagrow {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-bottom: 42px !important;
}

.ac-tag {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 10px 22px;
	border: 1px solid var(--ac-line);
	border-radius: 999px;
	background: #ffffff;
	color: var(--ac-ink);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
}

.ac-tag:hover {
	border-color: var(--ac-accent);
	background: var(--ac-accent);
	color: #ffffff;
}

/* --- Product carousels --- */

.ac-carousel__head {
	position: relative;
	margin-bottom: 22px;
	text-align: center;
}

.ac-carousel__head h2 {
	margin: 0 0 6px;
	font-size: clamp(1.3rem, 2.2vw, 1.8rem);
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ac-carousel__head p {
	margin: 0;
	font-size: 0.92rem;
	color: var(--ac-muted);
}

.ac-carousel__nav {
	position: absolute;
	top: 50%;
	right: 0;
	display: flex;
	gap: 8px;
	transform: translateY(-50%);
}

.ac-carousel__nav button {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--ac-line);
	border-radius: 50%;
	background: #ffffff;
	color: var(--ac-ink);
	font-size: 1.3rem;
	line-height: 1;
	cursor: pointer;
	transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
}

.ac-carousel__nav button:hover:not(:disabled) {
	border-color: var(--ac-accent);
	background: var(--ac-accent);
	color: #ffffff;
}

.ac-carousel__nav button:disabled {
	opacity: 0.3;
	cursor: default;
}

/* The shop grid's own card, laid on a scroll rail instead of a grid. */
.ac-home ul.products.ac-carousel__track {
	display: flex !important;
	gap: 18px;
	width: 100%;
	margin: 0;
	padding: 0 0 10px;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	list-style: none;
}

.ac-home ul.products.ac-carousel__track::-webkit-scrollbar {
	display: none;
}

.ac-home ul.products.ac-carousel__track > li.product {
	flex: 0 0 clamp(210px, 22vw, 268px);
	width: clamp(210px, 22vw, 268px) !important;
	margin: 0 !important;
	scroll-snap-align: start;
}

@media (max-width: 640px) {
	/* One card and a peek of the next, so the rail reads as scrollable. */
	.ac-home ul.products.ac-carousel__track > li.product {
		flex: 0 0 85%;
		width: 85% !important;
	}

	.ac-carousel__nav {
		display: none;
	}
}

/* --- Lifestyle banners --- */

.ac-banners {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 18px;
}

.ac-banner {
	position: relative;
	display: block;
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
}

.ac-banner img {
	display: block;
	width: 100%;
	height: clamp(220px, 26vw, 340px);
	object-fit: cover;
	transition: transform 400ms ease;
}

.ac-banner:hover img {
	transform: scale(1.04);
}

.ac-banner__body {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	display: grid;
	gap: 10px;
	justify-items: start;
	padding: 26px;
	background: linear-gradient(180deg, rgba(21, 21, 21, 0) 0%, rgba(21, 21, 21, 0.72) 100%);
	color: #ffffff;
}

.ac-banner__body strong {
	font-size: 1.35rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ac-banner__body em {
	padding: 9px 20px;
	border-radius: 6px;
	background: #ffffff;
	color: var(--ac-ink);
	font-size: 0.76rem;
	font-style: normal;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

/* --- Service strip --- */

.ac-service {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 16px;
	padding: 26px;
	border: 1px solid var(--ac-line);
	border-radius: 12px;
	background: #ffffff;
}

.ac-service__item {
	display: flex;
	align-items: center;
	gap: 14px;
	text-decoration: none;
	color: var(--ac-ink);
}

.ac-service__icon {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--ac-soft);
	transition: background 160ms ease;
}

.ac-service__item:hover .ac-service__icon {
	background: var(--ac-accent);
}

.ac-service__icon svg {
	width: 21px;
	height: 21px;
	fill: var(--ac-accent);
	transition: fill 160ms ease;
}

.ac-service__item:hover .ac-service__icon svg {
	fill: #ffffff;
}

.ac-service__body strong {
	display: block;
	font-size: 0.92rem;
	font-weight: 700;
}

.ac-service__body span {
	display: block;
	margin-top: 3px;
	font-size: 0.82rem;
	color: var(--ac-muted);
}

/* ==========================================================================
   19. HERO BUTTON
   The dark fill read as terracotta against the photography and only looked
   deliberate once hovered. White by default gives it a clean edge against any
   slide image; the terracotta now belongs to the hover state alone.
   ========================================================================== */

.ac-home .ac-hero .ac-hero__cta,
.ac-hero .ac-hero__cta:link,
.ac-hero .ac-hero__cta:visited {
	background: #ffffff;
	border: 1px solid #ffffff;
	color: var(--ac-ink);
	box-shadow: 0 6px 22px rgba(21, 21, 21, 0.18);
}

.ac-home .ac-hero .ac-hero__cta:hover,
.ac-home .ac-hero .ac-hero__cta:focus-visible {
	background: var(--ac-accent);
	border-color: var(--ac-accent);
	color: #ffffff;
}

/* ==========================================================================
   20. INDEPENDENCE DAY CAMPAIGN
   Pakistan green is deliberately scoped to these classes only. When the date
   window closes the markup stops rendering and the palette reverts on its own,
   so nothing has to be unpicked afterwards.
   ========================================================================== */

.ac-azadi-bar,
.ac-azadi-strip,
.ac-hero__slide.is-azadi {
	--ac-azadi: #046a38;
	--ac-azadi-deep: #01411c;
}

/* --- Announcement bar --- */

.ac-azadi-bar {
	position: relative;
	z-index: 120;
	background: linear-gradient(90deg, var(--ac-azadi-deep), var(--ac-azadi));
	color: #ffffff;
}

.ac-azadi-bar__inner {
	display: flex;
	align-items: center;
	gap: 14px;
	width: min(1360px, calc(100% - 32px));
	margin: 0 auto;
	padding: 10px 0;
	font-size: 0.86rem;
}

.ac-azadi-bar__mark svg {
	display: block;
	width: 20px;
	height: 20px;
	fill: #ffffff;
}

.ac-azadi-bar__text {
	flex: 1 1 auto;
	min-width: 0;
}

.ac-azadi-bar__text strong {
	margin-right: 8px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ac-azadi-bar__text em {
	padding: 2px 8px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.18);
	font-style: normal;
	font-weight: 800;
	letter-spacing: 0.06em;
}

.ac-azadi-bar__timer {
	flex: 0 0 auto;
	font-variant-numeric: tabular-nums;
	font-weight: 800;
	letter-spacing: 0.06em;
}

.ac-azadi-bar__cta {
	flex: 0 0 auto;
	padding: 8px 18px;
	border-radius: 999px;
	background: #ffffff;
	color: var(--ac-azadi-deep);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
}

.ac-azadi-bar__close {
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.15);
	color: #ffffff;
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
}

@media (max-width: 780px) {
	.ac-azadi-bar__inner {
		flex-wrap: wrap;
		gap: 8px 12px;
		font-size: 0.78rem;
	}

	.ac-azadi-bar__text {
		flex: 1 1 100%;
		order: 1;
	}

	.ac-azadi-bar__mark {
		order: 0;
	}

	.ac-azadi-bar__close {
		order: 0;
		margin-left: auto;
	}
}

/* --- Hero campaign slide --- */

.ac-hero__slide.is-azadi::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, rgba(1, 65, 28, 0.92) 0%, rgba(4, 106, 56, 0.72) 55%, rgba(4, 106, 56, 0.25) 100%);
}

.ac-hero__slide.is-azadi .ac-hero__caption {
	z-index: 2;
	max-width: 560px;
}

.ac-hero__slide.is-azadi .ac-hero__kicker {
	display: inline-block;
	margin-bottom: 14px;
	padding: 6px 14px;
	border-radius: 999px;
	background: #ffffff;
	color: var(--ac-azadi-deep);
	text-shadow: none;
}

.ac-hero__slide.is-azadi .ac-hero__title {
	font-size: clamp(2.1rem, 5.4vw, 4rem);
}

.ac-hero__slide.is-azadi .ac-hero__cta {
	background: #ffffff;
	border-color: #ffffff;
	color: var(--ac-azadi-deep);
}

.ac-hero__slide.is-azadi .ac-hero__cta:hover {
	background: var(--ac-azadi-deep);
	border-color: #ffffff;
	color: #ffffff;
}

/* --- Promo strip --- */

.ac-azadi-strip {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
	padding: 26px 30px;
	border-radius: 12px;
	background:
		radial-gradient(circle at 88% 20%, rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0) 42%),
		linear-gradient(100deg, var(--ac-azadi-deep), var(--ac-azadi));
	color: #ffffff;
}

.ac-azadi-strip__kicker {
	margin: 0 0 6px;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	opacity: 0.85;
}

.ac-azadi-strip h2 {
	margin: 0 0 8px;
	font-size: clamp(1.25rem, 2.4vw, 1.75rem);
	font-weight: 800;
	line-height: 1.2;
	color: #ffffff;
}

.ac-azadi-strip__note {
	margin: 0;
	font-size: 0.88rem;
	opacity: 0.92;
}

.ac-azadi-strip__note strong {
	padding: 2px 8px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.18);
	font-weight: 800;
	letter-spacing: 0.06em;
}

.ac-azadi-strip__side {
	display: flex;
	align-items: center;
	gap: 18px;
}

.ac-azadi-strip__timer {
	font-size: 1.5rem;
	font-variant-numeric: tabular-nums;
	font-weight: 800;
	letter-spacing: 0.04em;
}

.ac-azadi-strip__cta {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 13px 28px;
	border-radius: 6px;
	background: #ffffff;
	color: var(--ac-azadi-deep);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 160ms ease, color 160ms ease;
}

.ac-azadi-strip__cta:hover {
	background: var(--ac-azadi-deep);
	color: #ffffff;
	box-shadow: inset 0 0 0 1px #ffffff;
}

@media (max-width: 700px) {
	.ac-azadi-strip {
		padding: 22px;
	}

	.ac-azadi-strip__side {
		width: 100%;
		justify-content: space-between;
	}
}
