/* ==========================================================================
   Achinova custom CSS
   Only for rules Elementor cannot set in its editor. Keep it minimal.
   Group rules under a clear heading and say what each block does and why.
   ========================================================================== */


/* ==========================================================================
   SITE HEADER
   Markup: template-parts/dynamic-header.php (child theme).
   Desktop (>= 1100px), one row:
       [logo]  [nav]  [==== search + mic (fills the centre) ====]  [account] [cart]
   Mobile  (<  1100px), two rows:
       row 1 (.ach-header__inner)     = logo left, account + cart right
       row 2 (.ach-header__searchrow) = burger + full-width search bar
     On scroll DOWN, row 1 slides up (only the search row stays, Flipkart/Amazon
     style); on scroll UP it comes back. JS toggles .ach-header--collapsed.
     A full-screen drawer holds the menu and slides in from the left.
   ========================================================================== */

/* Neutralise the theme/Elementor global <button> styling inside the header. */
.ach-header button,
.ach-header__burger,
.ach-header .ach-icon,
.ach-mobile-menu button {
	-webkit-appearance: none;
	appearance: none;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font: inherit;
	line-height: 0;
	color: #241B33;
}

/* Elementor's global button:hover turns text white - keep header icons dark. */
.ach-header button:hover,
.ach-header__burger:hover,
.ach-mobile-menu button:hover {
	color: #241B33 !important;
}

.ach-header__burger:hover {
	opacity: 0.6;
}

.ach-header {
	position: sticky;
	top: 0;
	z-index: 200;
	background: #FFFFFF;
	transition: box-shadow 0.22s ease;
}

/* the divider only appears once you scroll - at the top the header blends in */
.ach-header--scrolled {
	box-shadow: 0 1px 0 rgba(28, 26, 36, 0.05), 0 2px 8px rgba(28, 26, 36, 0.04);
}

/* one-row desktop layout: logo | nav | search (grows) | icons */
.ach-header__inner {
	display: flex;
	align-items: center;
	gap: 26px;
	min-width: 0;
	height: 80px;
	padding: 0 clamp(20px, 3vw, 44px);
}

.ach-header__logo {
	flex: none;
	display: inline-flex;
	align-items: center;
	line-height: 0;
}

.ach-header__logo img,
.ach-header__logo .custom-logo,
.wp-custom-logo .ach-header__logo .custom-logo {
	height: 32px !important;
	width: auto !important;
	max-width: 210px !important;
	max-height: 32px !important;
	display: block;
}

/* --- primary nav (desktop) --- */
.ach-header__nav {
	flex: none;
}

.ach-header__nav .ach-menu {
	display: flex;
	align-items: center;
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ach-header__nav .ach-menu a {
	position: relative;
	display: inline-block;
	padding-bottom: 7px;
	font-family: "Poppins", sans-serif;
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1;
	white-space: nowrap;
	color: #4F4C5A;
	text-decoration: none;
	transition: color 0.15s ease;
}

.ach-header__nav .ach-menu a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	border-radius: 2px;
	background: #5E41F3;
	transition: width 0.18s ease;
}

.ach-header__nav .ach-menu a:hover {
	color: #1C1A24;
}

.ach-header__nav .ach-menu a:hover::after {
	width: 22px;
}

.ach-header__nav .ach-menu .current-menu-item > a,
.ach-header__nav .ach-menu .current-menu-ancestor > a,
.ach-header__nav .ach-menu .current-menu-item > a:hover,
.ach-header__nav .ach-menu .current-menu-ancestor > a:hover {
	color: #1C1A24;
	font-weight: 600;
}

.ach-header__nav .ach-menu .current-menu-item > a::after,
.ach-header__nav .ach-menu .current-menu-ancestor > a::after {
	width: 22px;
}

/* --- action icons (account, cart) - pushed to the far right --- */
.ach-header__actions {
	flex: none;
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 20px;
}

.ach-header .ach-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	margin: 0;
	cursor: pointer;
	transition: opacity 0.15s ease;
}

.ach-header .ach-icon:hover {
	opacity: 0.6;
}

.ach-header .ach-icon svg,
.ach-header__burger svg {
	flex: none;
	width: 22px;
	height: 22px;
	display: block;
}

.ach-cart__count {
	position: absolute;
	top: -7px;
	right: -12px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: #5E41F3;
	color: #FFFFFF;
	font-family: "Poppins", sans-serif;
	font-size: 11px;
	font-weight: 600;
	line-height: 18px;
	text-align: center;
}

.ach-cart__count.is-empty {
	display: none;
}

/* --- search bar: fills the centre on desktop, our own border (never blue) --- */
.ach-search-bar {
	position: relative;
	display: flex;
	align-items: center;
}

.ach-search-bar--inline {
	flex: 1;
	min-width: 0;
	max-width: 560px;
	margin: 0 auto;
}

.ach-search-bar__icon {
	position: absolute;
	left: 14px;
	display: inline-flex;
	color: #8A8E99;
	pointer-events: none;
}

.ach-search-bar__icon svg {
	flex: none;
	width: 18px;
	height: 18px;
	display: block;
}

.ach-header .ach-search-bar__input,
.ach-search-bar__input {
	width: 100%;
	height: 46px;
	margin: 0;
	padding: 0 46px 0 42px;   /* room for the mic on the right */
	border: 1px solid #D3CEE2 !important;
	border-radius: 10px !important;
	background: #F6F5FA !important;
	box-shadow: none !important;
	font-family: "Poppins", sans-serif;
	font-size: 13.5px;
	font-weight: 400;
	color: #1C1A24;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.ach-search-bar__input::placeholder {
	color: #918DA1;
}

.ach-header .ach-search-bar__input:focus,
.ach-search-bar__input:focus {
	outline: none;
	border-color: #A99EC6 !important;
	background: #FFFFFF !important;
}

/* mic button - hidden by default; JS reveals it where speech input works */
.ach-search-bar__mic {
	position: absolute;
	right: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px !important;
	height: 34px !important;
	padding: 0 !important;
	color: #6A6678;
	cursor: pointer;
	border-radius: 999px !important;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.ach-search-bar__mic[hidden] {
	display: none;
}

.ach-search-bar__mic:hover {
	color: #5E41F3 !important;
}

.ach-search-bar__mic svg {
	flex: none;
	width: 18px;
	height: 18px;
	display: block;
}

/* pulsing while listening */
.ach-search-bar__mic.is-listening {
	color: #5E41F3 !important;
	background: rgba(94, 65, 243, 0.12) !important;
	animation: ach-mic-pulse 1.2s ease-in-out infinite;
}

@keyframes ach-mic-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(94, 65, 243, 0.35); }
	50%      { box-shadow: 0 0 0 6px rgba(94, 65, 243, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.ach-search-bar__mic.is-listening { animation: none; }
}

/* --- burger (mobile only, lives in the search row) --- */
.ach-header__burger {
	display: none;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 30px !important;
	height: 40px;
	padding: 0 !important;
	margin-left: -3px;
	cursor: pointer;
}

.ach-header__burger svg {
	width: 25px;
	height: 25px;
	display: block;
}

/* --- mobile search row: burger + full-width search bar --- */
.ach-header__searchrow {
	display: none;   /* desktop uses the inline search bar instead */
}

.ach-header__searchrow .ach-search-bar--mobile {
	flex: 1;
	min-width: 0;
}

.ach-header__searchrow .ach-search-bar__input {
	height: 44px;
	font-size: 15px;
}

/* --- mobile menu: full-screen drawer, slides in from the left --- */
.ach-mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 500;
	display: flex;
	flex-direction: column;
	background: #FFFFFF;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	transform: translateX(-100%);
	transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

.ach-mobile-menu[hidden] {
	display: none;
}

.ach-mobile-menu.is-open {
	transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
	.ach-mobile-menu {
		transition: none;
	}
}

.ach-mobile-menu__top {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 62px;
	padding: 0 clamp(14px, 4vw, 22px);
	border-bottom: 1px solid #EFEDF6;
}

.ach-mobile-menu__brand {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	min-width: 0;
	overflow: hidden;
}

.ach-mobile-menu__brand img,
.ach-mobile-menu__brand .custom-logo {
	height: 28px !important;
	width: auto !important;
	max-width: 200px !important;
	max-height: 28px !important;
}

.ach-mobile-menu__close {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px !important;
	height: 44px !important;
	margin-right: -8px;
	cursor: pointer;
}

.ach-mobile-menu__close svg {
	flex: none;
	width: 24px !important;
	height: 24px !important;
	display: block;
}

.ach-mobile-menu__nav .ach-menu {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 6px clamp(14px, 4vw, 22px) 24px;
	list-style: none;
}

.ach-mobile-menu__nav .ach-menu a {
	display: block;
	padding: 18px 2px;
	border-bottom: 1px solid #F1EFF6;
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #1C1A24;
	text-decoration: none;
}

.ach-mobile-menu__nav .ach-menu .current-menu-item > a {
	color: #5E41F3;
}

body.ach-menu-open {
	overflow: hidden;
}

/* ==========================================================================
   MOBILE HEADER LAYOUT + SCROLL COLLAPSE  (< 1100px)
   ========================================================================== */
@media (max-width: 1099px) {
	/* Mobile: the top row (logo + icons) is NOT sticky - it just scrolls away
	   naturally as you scroll down (butter-smooth, no JS). The search row below
	   IS sticky, so search + menu stay reachable the whole time. Scroll back to
	   the top to see the logo again. This replaced a JS margin-top animation
	   that jittered on Chrome mobile. */
	/* display:contents removes .ach-header's own box so .ach-header__searchrow's
	   sticky containing block becomes the whole page (not the 114px header),
	   which is why plain sticky was releasing after one header-height of scroll. */
	.ach-header {
		display: contents;
	}

	.ach-header__inner {
		height: 54px;
		gap: 12px;
		padding: 0 clamp(14px, 4vw, 22px);
		background: #FFFFFF;
	}
	.ach-header__nav {
		display: none;
	}
	.ach-header__inner .ach-search-bar--inline {
		display: none;
	}

	.ach-header__searchrow {
		display: flex;
		align-items: center;
		gap: 12px;
		padding: 0 clamp(14px, 4vw, 22px);
		height: 60px;
		background: #FFFFFF;
		position: sticky;
		top: 0;
		z-index: 200;
		transition: box-shadow 0.22s ease;
	}
	.ach-header--scrolled .ach-header__searchrow {
		box-shadow: 0 1px 0 rgba(28, 26, 36, 0.05), 0 2px 8px rgba(28, 26, 36, 0.04);
	}
	.ach-header__burger {
		display: inline-flex;
	}
}

@media (min-width: 1100px) {
	.ach-mobile-menu {
		display: none !important;
	}
}


/* ==========================================================================
   HERO CAROUSEL
   Markup: Elementor containers on the homepage - .ach-hero wraps N .ach-hero__slide
   containers (each = background image + eyebrow + H1 + text + button, all native
   Elementor and editable). The carousel behaviour (fade between slides, autoplay,
   dash indicators) is assets/js/achinova-custom.js - Elementor free has no slider.
   In the Elementor editor the slides just stack vertically so each is easy to edit;
   the JS skips the editor and only builds the carousel on the live site.
   ========================================================================== */

.ach-hero {
	position: relative;
	overflow: hidden;
	width: auto !important;
	max-width: none !important;
	margin: 10px clamp(20px, 3vw, 44px) 0 !important;
	border-radius: 22px;
	/* CSS-only default height - was previously only set once JS added .is-ready */
	min-height: clamp(400px, 52vh, 540px);
}

/* CSS-only default: slides are always absolutely stacked, first one visible.
   This is what makes the hero look right even before/without JS. */
.ach-hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.8s ease, visibility 0s linear 0.8s;
}

.ach-hero__slide:first-of-type,
.ach-hero__slide.is-active {
	opacity: 1;
	visibility: visible;
	z-index: 2;
	transition: opacity 0.8s ease, visibility 0s;
}

/* Elementor editor only: let slides stack normally so each is visible/editable,
   overriding the CSS-only default above. */
.elementor-editor-active .ach-hero__slide,
.elementor-edit-mode .ach-hero__slide {
	position: static !important;
	opacity: 1 !important;
	visibility: visible !important;
}

/* dark wash so the white text stays readable over any photo */
.ach-hero__slide::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background: linear-gradient(
		to top right,
		rgba(18, 13, 28, 0.66) 0%,
		rgba(18, 13, 28, 0.30) 45%,
		rgba(18, 13, 28, 0.05) 80%
	);
}

.ach-hero__slide > .e-con-inner,
.ach-hero__slide > .elementor-element {
	position: relative;
	z-index: 1;
}

/* --- carousel mode: only after JS adds .is-ready on the live site --- */
/* (positioning now lives in the CSS-only default above, not gated behind .is-ready) */

@media (prefers-reduced-motion: reduce) {
	.ach-hero.is-ready .ach-hero__slide {
		transition: opacity 0.2s linear;
	}
}

/* --- shared dash slider indicator (.ach-dots) - built by JS ---
   Every slider on the site uses this same control (hero, testimonials, ...)
   so the "this is a slider" cue is identical everywhere: no prev/next
   arrows, just a row of short dashes where the active one grows + turns
   violet. Per-slider positioning lives in the .ach-dots--<name> modifiers. */
.ach-dots {
	position: absolute;
	z-index: 5;
	display: flex;
	align-items: center;
	gap: 10px;
}

.ach-dots--hero {
	right: clamp(18px, 3vw, 34px);
	bottom: clamp(20px, 4vh, 34px);
}

.ach-dot {
	width: 28px;
	height: 22px;
	padding: 0 !important;
	margin: 0 !important;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	position: relative;
	display: inline-flex;
}

.ach-dot::after {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 28px;
	height: 2px;
	background: rgba(255, 255, 255, 0.45);
	transition: width 0.3s ease, background-color 0.3s ease;
}

.ach-dot.is-active::after {
	width: 44px;
	background: #5E41F3;
}

@media (max-width: 1099px) {
	.ach-hero {
		border-radius: 16px;
		min-height: clamp(420px, 52vw, 500px);
	}
	.ach-dots--hero {
		top: 16px;
		right: 16px;
		bottom: auto;
	}
}

/* mobile: drop the hero sub-copy so the banner can be minimal */
@media (max-width: 767px) {
	.ach-hero__slide .elementor-widget-text-editor { display: none; }
	.ach-hero__slide .elementor-button { padding-top: 13px; padding-bottom: 13px; padding-left: 26px; padding-right: 26px; }
}


/* ==========================================================================
   CATEGORY CARDS  ("Sought-after Silhouettes")
   Markup: Elementor - .ach-cats section > centred heading + .ach-cats__row
   holding 5 .ach-cats__card containers (each = image widget + label heading,
   the whole card linked). All native + editable.
   Desktop: 5 across. Tablet: 3 across, wraps. Mobile: horizontal snap-scroll.
   ========================================================================== */

.ach-cats__row {
	width: 100%;
	align-self: stretch;
}

.ach-cats__row > .e-con-inner {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	gap: 18px !important;
}
.ach-cats__row { gap: 18px !important; }

.ach-cats__card {
	flex: 1 1 0 !important;
	min-width: 0;
	cursor: pointer;
}

/* image: portrait, rounded, gentle zoom on hover */
.ach-cats__card .elementor-widget-image {
	width: 100%;
	border-radius: 16px;
	overflow: hidden;
}

.ach-cats__card .elementor-widget-image img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: 16px;
	transition: transform 0.55s cubic-bezier(0.2, 0, 0.2, 1);
}

.ach-cats__card:hover .elementor-widget-image img {
	transform: scale(1.045);
}

@media (prefers-reduced-motion: reduce) {
	.ach-cats__card .elementor-widget-image img { transition: none; }
	.ach-cats__card:hover .elementor-widget-image img { transform: none; }
}

/* --- tablet: 3 across, wrapping --- */
@media (max-width: 1099px) and (min-width: 768px) {
	.ach-cats__row,
	.ach-cats__row > .e-con-inner {
		flex-wrap: wrap !important;
		justify-content: center !important;
	}
	.ach-cats__card {
		flex: 0 0 calc((100% - 40px) / 3) !important;
		max-width: calc((100% - 40px) / 3) !important;
	}
}

/* --- mobile: horizontal snap-scroll --- */
@media (max-width: 767px) {
	.ach-cats__row {
		flex-wrap: nowrap !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding: 0 22px 4px !important;
		gap: 12px !important;
	}
	.ach-cats__row::-webkit-scrollbar { display: none; }
	.ach-cats__card {
		flex: 0 0 calc((100% - 36px) / 3.3) !important;  /* 3 full cards + ~30% of the 4th visible (swipe hint) */
		scroll-snap-align: start;
	}
	.ach-cats__card .elementor-heading-title { font-size: 13px !important; }
}

/* whole card is the click target (the image widget carries the link) */
.ach-cats__card { position: relative; }
.ach-cats__card .elementor-widget-image a { display: block; }
.ach-cats__card .elementor-widget-image a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
}
.ach-cats__card .elementor-heading-title { position: relative; z-index: 1; }

/* personalised category greeting ([ach_category_greeting]) */
.ach-cats .elementor-widget-text-editor p { margin: 0; }
.ach-cats__greeting { display: block; }
.ach-cats__name { color: #5E41F3; }

/* CATEGORY SECTION EDGE ALIGN - line up with the header + hero */
.ach-cats { padding-left: clamp(20px, 3vw, 44px) !important; padding-right: clamp(20px, 3vw, 44px) !important; }
@media (max-width: 1099px) {
	.ach-cats { padding-left: clamp(14px, 4vw, 22px) !important; padding-right: clamp(14px, 4vw, 22px) !important; }
}
@media (max-width: 767px) {
	.ach-cats__row {
		padding: 0 0 4px !important;
		gap: 12px !important;
	}
}

/* HERO EYEBROW MOBILE FIT - keep the eyebrow on one line on small screens */
@media (max-width: 767px) {
	.ach-hero__slide .elementor-widget-heading:first-child .elementor-heading-title {
		font-size: 10.5px !important;
		letter-spacing: 1.6px !important;
	}
}

/* ==========================================================================
   FOOTER LOGO
   The footer sits on a dark plum panel (#241B38) but the brand logo art is dark
   ink. brightness(0) invert(1) repaints the whole logo (loop mark + wordmark)
   flat white so it reads on the dark background. Swap in a white logo file here
   instead if you want to keep the purple loop mark in the footer.
   ========================================================================== */
.footer-inner .site-logo img,
.site-footer .site-logo img,
.site-branding .custom-logo {
	filter: brightness(0) invert(1);
}


/* ==========================================================================
   ACHINOVA CONTENT CONTAINER
   One centred max-width that the hero text AND the category rows line up to,
   so text is not pinned to the full-bleed banner edge on wide screens.
   ========================================================================== */
:root { --ach-cw: 1240px; }

/* hero: constrain the text block inside each slide to the container */
.ach-hero__slide > .e-con {
	width: 100% !important;
	max-width: var(--ach-cw) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
/* (hero e-con padding now handled by the DESIGN SYSTEM container) */

/* category section: eyebrow, greeting and card row all use the container */
.ach-cats { align-items: center !important; }
.ach-cats > .elementor-widget,
.ach-cats > .e-con {
	width: 100% !important;
	max-width: var(--ach-cw) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.ach-cats__row { max-width: var(--ach-cw) !important; }

/* tighten the gap between SHOP BY CATEGORY and the greeting */
.ach-cats > .elementor-widget-heading:first-child { margin-bottom: 0 !important; }
.ach-cats > .elementor-widget-heading:first-child .elementor-heading-title { line-height: 1.1; }
.ach-cats > .elementor-widget-text-editor { margin-top: -10px !important; }
.ach-cats .elementor-widget-text-editor p { margin: 0 !important; line-height: 1.15; }
@media (max-width: 767px) {
	.ach-cats__row { max-width: none !important; }
}

/* ==========================================================================
   CUSTOMER LOVE  (testimonials marquee)
   Markup: Elementor - .ach-testimonials wraps N .ach-testimonials__slide
   containers. Each slide = one quote card (eyebrow, quote, divider, sub-line,
   author row with avatar initials + name + star rating). Every text bit is a
   native Elementor widget, so copy is edited in the editor; the look and the
   card layout are controlled here.

   At runtime, assets/js/achinova-custom.js (initTestimonialsMarquee) moves
   the slides into a flex ".ach-testimonials__track", clones the set once for
   a seamless loop, and a CSS animation drifts the track left - about three
   cards visible at once on desktop (two on tablet, one on mobile, each view
   peeking the edge of the next), no arrows or dots. Pauses only while the
   pointer is over an individual card (JS, per-tile), on a hidden tab, and
   for prefers-reduced-motion - hovering the section's empty background does
   NOT pause it.

   Background: the same photo used before (achinova-testimonial.webp) with a
   mild black-to-purple wash over it - just enough for contrast, not a flat
   colour. The cards themselves are dark glass (blurred + tinted) sitting on
   top of that photo.
   ========================================================================== */

.ach-testimonials {
	position: relative;
	overflow: hidden;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	background:
		linear-gradient(135deg, rgba(9, 6, 16, 0.58) 0%, rgba(24, 15, 42, 0.46) 45%, rgba(94, 65, 243, 0.4) 130%),
		url('https://achinova.com/wp-content/uploads/2026/09/achinova-testimonial.webp') center center / cover no-repeat;
	min-height: clamp(340px, 42vh, 420px);
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: clamp(40px, 6vh, 60px) clamp(20px, 3vw, 44px);
}

/* Elementor editor: skip the JS-built track entirely so every slide stays
   visible + editable in document order (initTestimonialsMarquee bails out
   when .elementor-editor-active / .elementor-edit-mode is on the body). */
.elementor-editor-active .ach-testimonials,
.elementor-edit-mode .ach-testimonials {
	display: block !important;
	height: auto !important;
	padding: 24px !important;
}

.ach-testimonials__track {
	display: flex;
	align-items: stretch;
	gap: clamp(20px, 2.6vw, 34px);
	width: max-content;
	will-change: transform;
	animation: ach-testimonials-scroll 36s linear infinite;
}

/* paused only via JS (prefers-reduced-motion, hidden tab, or the pointer
   over one specific card) - see initTestimonialsMarquee in achinova-custom.js.
   No section-wide :hover rule here on purpose: hovering the gradient
   background between/around cards must NOT pause the scroll. */
.ach-testimonials__track.is-paused {
	animation-play-state: paused;
}

@keyframes ach-testimonials-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.ach-testimonials__track { animation: none; }
}

/* one quote card: dark glass over the section's own photo background - kept
   small and fairly transparent on purpose so the photo reads through both
   in the gaps between cards (see track gap above) and through the glass
   itself. !important on background/backdrop-filter because Elementor still
   writes an inline background-image style on this container (left over
   from switching the old per-slide Classic/Video background off). */
.ach-testimonials__slide {
	position: static;
	opacity: 1;
	visibility: visible;
	flex: 0 0 auto;
	width: var(--ach-testi-card-w, 230px);
	max-width: 250px;
	display: flex !important;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	background-image: none !important;
	background-color: rgba(12, 8, 22, 0.3) !important;
	backdrop-filter: blur(12px) saturate(140%) !important;
	-webkit-backdrop-filter: blur(12px) saturate(140%) !important;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 12px;
	padding: clamp(12px, 1vw, 15px);
}

/* eyebrow */
.ach-testimonials__eyebrow .elementor-heading-title {
	font-family: "Poppins", sans-serif;
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1;
	color: #B7A6FF !important;
}

/* the quote itself + the decorative quote mark */
.ach-testimonials__quote {
	position: relative;
	margin-top: 0;
}

.ach-testimonials__quote .elementor-heading-title {
	font-family: "Poppins", sans-serif;
	font-size: clamp(11px, 0.85vw, 12.5px) !important;
	font-weight: 400 !important;
	line-height: 1.35;
	letter-spacing: -0.01em;
	color: #FFFFFF !important;
}

.ach-testimonials__quote .elementor-heading-title::before {
	content: "\201C";
	display: block;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.4em;
	font-weight: 700;
	line-height: 0.5;
	margin-bottom: 0.08em;
	color: #8F71FF;
	pointer-events: none;
}

/* short divider under the quote (Elementor Divider widget) */
.ach-testimonials__rule .elementor-divider {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	text-align: left;
}

.ach-testimonials__rule .elementor-divider-separator {
	width: 20px !important;
	max-width: 20px !important;
	margin: 0 !important;
	border-top: 2px solid #8F71FF !important;
}

/* the "It's more than clothing" line */
.ach-testimonials__say .elementor-widget-container,
.ach-testimonials__say p {
	margin: 0 !important;
	font-family: "Poppins", sans-serif;
	font-size: 10px;
	font-weight: 400;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.64);
}

/* author row - avatar + name always side by side on one line */
.ach-testimonials__author {
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: 8px !important;
	margin-top: 0;
}

.ach-testimonials__avatar {
	flex: 0 0 auto !important;
	width: 26px !important;
}

.ach-testimonials__avatar .elementor-heading-title {
	width: 26px;
	height: 26px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: #5E41F3;
	color: #FFFFFF !important;
	font-family: "Poppins", sans-serif;
	font-size: 10px !important;
	font-weight: 600 !important;
	letter-spacing: 0.03em;
}

.ach-testimonials__who {
	flex: 1 1 auto !important;
	width: auto !important;
	min-width: 0;
	gap: 2px !important;
	align-items: flex-start !important;
}

.ach-testimonials__name .elementor-heading-title {
	font-family: "Poppins", sans-serif;
	font-size: 11px !important;
	font-weight: 600 !important;
	line-height: 1.2;
	color: #FFFFFF !important;
}

.ach-testimonials__meta p {
	margin: 0 !important;
	display: flex;
	align-items: center;
	gap: 7px;
	line-height: 1;
}

.ach-testimonials__stars {
	color: #E8B93C;
	font-size: 10px;
	letter-spacing: 1.5px;
}

/* --- mobile / tablet: fewer cards visible, JS sets --ach-testi-card-w to
   match (~3.3 desktop / ~2.3 tablet / ~1.15 mobile, each peeking the next
   tile's edge) - this block only tunes section spacing --- */
@media (max-width: 1023px) {
	.ach-testimonials {
		min-height: clamp(300px, 40vh, 380px);
	}
}

@media (max-width: 767px) {
	.ach-testimonials {
		min-height: clamp(260px, 44vh, 340px);
		padding: clamp(28px, 5vh, 40px) clamp(14px, 4vw, 22px);
	}
	.ach-testimonials__slide {
		padding: 12px;
		gap: 5px;
	}
	.ach-testimonials__quote .elementor-heading-title {
		font-size: 12px !important;
	}
}

/* ==========================================================================
   BESTSELLERS  ("Bestsellers of the Season")
   Markup: an Elementor .ach-bestsellers container holding two heading widgets
   (eyebrow + H2) and a Shortcode widget running [ach_bestsellers]. The
   shortcode (child theme: inc/ach-bestsellers.php) prints .ach-bs = a category
   tab bar + a product grid built from live WooCommerce "Featured" products.
   Tab filtering is JS (achinova-custom.js -> "Bestsellers filter").
   ========================================================================== */

/* section lines up with the same centred column as the rest of the homepage */
.ach-bestsellers {
	align-items: center !important;
	gap: 0 !important;
	padding-left: clamp(20px, 3vw, 44px) !important;
	padding-right: clamp(20px, 3vw, 44px) !important;
	padding-top: clamp(26px, 4vh, 50px) !important;
	padding-bottom: clamp(40px, 6vh, 72px) !important;
}

.ach-bestsellers > .elementor-widget,
.ach-bestsellers > .e-con {
	width: 100% !important;
	max-width: var(--ach-cw) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.ach-bestsellers__eyebrow .elementor-heading-title {
	font-family: "Poppins", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1;
	color: #5E41F3 !important;
}

.ach-bestsellers__eyebrow,
.ach-bestsellers__eyebrow .elementor-widget-container {
	margin-bottom: 0 !important;
}

.ach-bestsellers__title .elementor-heading-title {
	font-family: "Poppins", sans-serif;
	font-size: clamp(26px, 3.4vw, 40px) !important;
	font-weight: 400 !important;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: #1C1A24 !important;
}
.ach-bestsellers__title {
	margin: 6px 0 clamp(13px, 1.8vw, 20px) !important;
}
.ach-bestsellers__title .elementor-widget-container { margin: 0 !important; }

.ach-bs {
	width: 100%;
	max-width: var(--ach-cw);
	margin: 0 auto;
}

/* --- tab bar --- */
.ach-bs__tabs {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: clamp(13px, 2vw, 20px);
}

.ach-bs__tab {
	-webkit-appearance: none;
	appearance: none;
	margin: 0 !important;
	padding: 9px 18px !important;
	border: 1px solid #DCD8E8 !important;
	border-radius: 8px !important;
	background: #FFFFFF !important;
	box-shadow: none !important;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	color: #4F4C5A !important;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.ach-bs__tab:hover {
	border-color: #B7ADE6 !important;
	color: #1C1A24 !important;
}

.ach-bs__tab.is-active {
	background: #5E41F3 !important;
	border-color: #5E41F3 !important;
	color: #FFFFFF !important;
}

/* --- product grid --- */
.ach-bs__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(20px, 2.4vw, 30px) clamp(16px, 1.6vw, 24px);
}

.ach-bs__card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
}

.ach-bs__card[hidden] {
	display: none;
}

.ach-bs__media {
	display: block;
	border-radius: 12px;
	overflow: hidden;
	background: #F4F3F7;
}

.ach-bs__media img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	transition: transform 0.55s cubic-bezier(0.2, 0, 0.2, 1);
}

.ach-bs__card:hover .ach-bs__media img {
	transform: scale(1.045);
}

@media (prefers-reduced-motion: reduce) {
	.ach-bs__media img { transition: none; }
	.ach-bs__card:hover .ach-bs__media img { transform: none; }
}

.ach-bs__info {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding-top: 10px;
}

.ach-bs__name {
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
	color: #1C1A24;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.ach-bs__fabric {
	font-family: "Poppins", sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.3;
	color: #8A8E99;
}

.ach-bs__price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 3px 7px;
	margin-top: 2px;
}

.ach-bs__now {
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #1C1A24;
}

.ach-bs__was {
	font-family: "Poppins", sans-serif;
	font-size: 12px;
	font-weight: 400;
	color: #9A97A5;
	text-decoration: line-through;
}

.ach-bs__off {
	font-family: "Poppins", sans-serif;
	font-size: 12px;
	font-weight: 600;
	color: #1E874B;
}

/* big "View All Products" button under the grid -> the shop page */
.ach-bs__foot {
	display: flex;
	justify-content: center;
	margin-top: clamp(28px, 4vw, 44px);
}

.ach-bs__all {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	padding: 16px 40px;
	border: 1.5px solid #5E41F3;
	background: #5E41F3;
	color: #FFFFFF !important;
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.16s ease, border-color 0.16s ease;
}

.ach-bs__all:hover {
	background: #241B38;
	border-color: #241B38;
	color: #FFFFFF !important;
}

/* --- tablet: 3 across --- */
@media (max-width: 1024px) {
	.ach-bs__grid { grid-template-columns: repeat(3, 1fr); }
}

/* --- mobile: 2 across, tabs scroll sideways --- */
@media (max-width: 767px) {
	.ach-bestsellers {
		padding-left: clamp(14px, 4vw, 22px) !important;
		padding-right: clamp(14px, 4vw, 22px) !important;
	}
	.ach-bs__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 22px 12px;
	}
	.ach-bs__tabs {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		margin-left: calc(-1 * clamp(14px, 4vw, 22px));
		margin-right: calc(-1 * clamp(14px, 4vw, 22px));
		padding: 2px clamp(14px, 4vw, 22px);
	}
	.ach-bs__tabs::-webkit-scrollbar { display: none; }
	.ach-bs__tab {
		flex: 0 0 auto;
		min-width: 25vw;
		padding-left: 12px !important;
		padding-right: 12px !important;
		text-align: center;
	}
	.ach-bs__name { font-size: 13px; }
	.ach-bs__now { font-size: 13px; }
	.ach-bs__was, .ach-bs__off { font-size: 11px; }
	.ach-bs__fabric { font-size: 11px; }
	.ach-bs__foot { margin-top: 26px; }
	.ach-bs__all { min-width: 0; width: 100%; padding: 15px 20px; }
}

/* ==========================================================================
   MORE tab (Bestsellers) - a link styled as the last pill after "Shirts"
   ========================================================================== */
.ach-bs__more {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 9px 18px;
	border: 1px solid #DCD8E8;
	border-radius: 8px;
	background: #FFFFFF;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	color: #4F4C5A !important;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color 0.15s ease, color 0.15s ease;
}

.ach-bs__more:hover {
	border-color: #B7ADE6;
	color: #1C1A24 !important;
}


/* ==========================================================================
   CRAFT STORY  ("Woven Slowly, Made to Last")
   Markup: an Elementor .ach-craft container, row on desktop:
     .ach-craft__text  = eyebrow + H2 + body copy + a .ach-craft__stats row
     .ach-craft__media = the loom photo (.ach-craft__img, an Image widget)
                         + an ambient video (.ach-craft__vid, an Elementor
                         container with a background video)
   All copy is native Elementor. To swap the video: open .ach-craft__vid in
   Elementor > Style > Background and change the Video link (keep the fallback
   image for mobile / slow connections). Look lives here.
   ========================================================================== */

.ach-craft {
	flex-direction: row !important;
	align-items: center !important;
	gap: clamp(32px, 5vw, 76px) !important;
	width: auto !important;
	max-width: var(--ach-cw) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: clamp(44px, 7vh, 88px) clamp(20px, 3vw, 44px) !important;
}

.ach-craft__text {
	flex: 1 1 48% !important;
	align-items: flex-start !important;
	gap: 0 !important;
}

.ach-craft__eyebrow .elementor-heading-title {
	font-family: "Poppins", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1;
	color: #5E41F3 !important;
}

.ach-craft__title .elementor-heading-title {
	font-family: "Poppins", sans-serif;
	font-size: clamp(30px, 4.4vw, 52px) !important;
	font-weight: 700 !important;
	line-height: 1.08;
	letter-spacing: -0.02em;
	color: #1C1A24 !important;
}
.ach-craft__title {
	margin: 12px 0 clamp(16px, 2vw, 24px) !important;
}

.ach-craft__body .elementor-widget-container,
.ach-craft__body p {
	margin: 0 0 0.9em !important;
	font-family: "Poppins", sans-serif;
	font-size: clamp(14px, 1.5vw, 16px);
	font-weight: 400;
	line-height: 1.7;
	color: #6E6A7C;
}
.ach-craft__body p:last-child { margin-bottom: 0 !important; }

/* stats row - three equal columns, labels wrap under the number */
.ach-craft__stats {
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: clamp(14px, 2vw, 32px) !important;
	margin-top: clamp(22px, 3vw, 34px) !important;
	align-self: stretch;
}

.ach-craft__stat {
	flex: 1 1 0 !important;
	min-width: 0;
	gap: 3px !important;
	align-items: flex-start !important;
}

.ach-craft__stat-n .elementor-heading-title {
	font-family: "Poppins", sans-serif;
	font-size: clamp(24px, 3vw, 34px) !important;
	font-weight: 700 !important;
	line-height: 1;
	color: #1C1A24 !important;
}

.ach-craft__stat-l .elementor-heading-title {
	font-family: "Poppins", sans-serif;
	font-size: 12px !important;
	font-weight: 400 !important;
	line-height: 1.3;
	color: #8A8E99 !important;
}

/* --- the paired visuals --- */
.ach-craft__media {
	flex: 1 1 52% !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: clamp(12px, 1.6vw, 20px) !important;
}

.ach-craft__img {
	flex: 1.55 1 0 !important;
	align-self: stretch;
}
.ach-craft__img .elementor-widget-container,
.ach-craft__img img {
	width: 100%;
	height: 100%;
}
.ach-craft__img img {
	display: block;
	height: clamp(340px, 42vw, 520px);
	object-fit: cover;
	border-radius: 16px;
}

.ach-craft__vid {
	flex: 1 1 0 !important;
	position: relative;
	overflow: hidden;
	border-radius: 16px;
	min-height: 0 !important;
	height: clamp(260px, 34vw, 420px);
	align-self: center;
	background: #F4F3F7;
}

/* make the background video actually cover the box, whatever the clip's size */
.ach-craft__vid .elementor-background-video-container {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	overflow: hidden;
}
.ach-craft__vid .elementor-background-video-hosted {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	transform: none !important;
	object-fit: cover !important;
}

/* --- tablet / mobile: stack text over the visuals --- */
@media (max-width: 1024px) {
	.ach-craft {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: clamp(28px, 5vw, 44px) !important;
	}
	.ach-craft__text,
	.ach-craft__media {
		flex: 1 1 100% !important;
		width: 100% !important;
	}
	.ach-craft__img img { height: clamp(320px, 60vw, 460px); }
	.ach-craft__vid { height: clamp(240px, 46vw, 380px); }
}

@media (max-width: 560px) {
	.ach-craft__media { gap: 10px !important; }
	.ach-craft__img img { height: clamp(300px, 78vw, 420px); }
	.ach-craft__vid { height: clamp(220px, 58vw, 320px); }
	.ach-craft__stats { flex-wrap: wrap !important; gap: 18px 20px !important; }
	.ach-craft__stat { flex: 1 1 40% !important; }
}

/* ==========================================================================
   MOST LOVED  (product highlight showcase)
   Markup: an Elementor .ach-loved container, row on desktop:
     .ach-loved__text = eyebrow + short H2 + one line + an "Explore" button
     .ach-loved__imgs = three portrait product photos in a row (middle one
                        dropped a touch for an editorial stagger)
   Sits between "Bestsellers" and the "Woven Slowly" craft story.
   ========================================================================== */

.ach-loved {
	flex-direction: row !important;
	align-items: center !important;
	gap: clamp(28px, 5vw, 70px) !important;
	width: auto !important;
	max-width: var(--ach-cw) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: clamp(44px, 7vh, 88px) clamp(20px, 3vw, 44px) !important;
}

.ach-loved__text {
	flex: 0 1 32% !important;
	align-items: flex-start !important;
	gap: 0 !important;
}

.ach-loved__eyebrow .elementor-heading-title {
	font-family: "Poppins", sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1;
	color: #5E41F3 !important;
}

.ach-loved__title .elementor-heading-title {
	font-family: "Poppins", sans-serif;
	font-size: clamp(34px, 5vw, 58px) !important;
	font-weight: 700 !important;
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: #1C1A24 !important;
}
.ach-loved__title {
	margin: 10px 0 clamp(12px, 1.6vw, 18px) !important;
}

.ach-loved__sub .elementor-widget-container,
.ach-loved__sub p {
	margin: 0 !important;
	font-family: "Poppins", sans-serif;
	font-size: clamp(14px, 1.5vw, 16px);
	font-weight: 400;
	line-height: 1.6;
	color: #6E6A7C;
	max-width: 320px;
}

.ach-loved__btn {
	margin-top: clamp(20px, 2.6vw, 30px) !important;
}
.ach-loved__btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 15px 40px !important;
	border: 1.5px solid #5E41F3 !important;
	border-radius: 0 !important;
	background: #5E41F3 !important;
	color: #FFFFFF !important;
	font-family: "Poppins", sans-serif;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	fill: #FFFFFF !important;
	transition: background-color 0.16s ease, border-color 0.16s ease;
}
.ach-loved__btn .elementor-button:hover {
	background: #241B38 !important;
	border-color: #241B38 !important;
	color: #FFFFFF !important;
}

.ach-loved__imgs {
	flex: 1 1 68% !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	gap: clamp(12px, 1.6vw, 20px) !important;
}

.ach-loved__img {
	flex: 1 1 0 !important;
	min-width: 0;
}
.ach-loved__img img {
	display: block;
	width: 100%;
	height: clamp(320px, 40vw, 500px);
	object-fit: cover;
	border-radius: 16px;
}

/* editorial stagger - the middle photo drops down slightly */
.ach-loved__img:nth-child(2) {
	margin-top: clamp(22px, 4vw, 52px);
}

/* --- tablet / mobile --- */
@media (max-width: 1024px) {
	.ach-loved {
		flex-direction: column-reverse !important;
		align-items: stretch !important;
		gap: clamp(26px, 5vw, 40px) !important;
	}
	.ach-loved__text,
	.ach-loved__imgs {
		flex: 1 1 100% !important;
		width: 100% !important;
	}
	.ach-loved__sub p { max-width: none; }
	.ach-loved__img img { height: clamp(240px, 34vw, 340px); }
	.ach-loved__img:nth-child(2) { margin-top: 0; }
}

@media (max-width: 560px) {
	.ach-loved__imgs { gap: 8px !important; }
	.ach-loved__img img { height: clamp(190px, 44vw, 260px); }
	.ach-loved__title .elementor-heading-title { font-size: 34px !important; }
}



/* ==========================================================================
   SITE FOOTER
   Markup: template-parts/dynamic-footer.php (child theme).
   Three parts: a "stay connected" band (Follow / WhatsApp / Newsletter - the
   newsletter is the real Hostinger Reach subscription block), then the brand
   blurb + three link columns, then the copyright bar.
   ========================================================================== */
.ach-footer {
	background: #F4F3F7;
	color: #1C1A24;
	margin-top: clamp(40px, 6vw, 80px);
}

.ach-footer__inner {
	max-width: var(--ach-cw);
	margin: 0 auto;
	padding: clamp(40px, 6vw, 72px) clamp(20px, 3vw, 44px) clamp(24px, 3vw, 36px);
}

/* --- connect band: a standout solid-colour box, full container width --- */
.ach-connect__box {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(22px, 3vw, 44px);
	padding: clamp(26px, 3.6vw, 44px);
	border-radius: 18px;
	background: #1C1A24;
	box-shadow: 0 18px 48px -24px rgba(28, 26, 36, 0.55);
}

.ach-connect__title {
	margin: 0 0 6px !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: #FFFFFF !important;
}

.ach-connect__text {
	margin: 0 0 14px !important;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.62);
	max-width: 320px;
}

/* social icons */
.ach-connect__social {
	display: flex;
	gap: 10px;
}
.ach-connect__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 8px;
	color: rgba(255, 255, 255, 0.82) !important;
	text-decoration: none;
	transition: color 0.15s ease, border-color 0.15s ease;
}
.ach-connect__social-link:hover {
	color: #FFFFFF !important;
	border-color: rgba(255, 255, 255, 0.45);
}
.ach-connect__social-link svg {
	width: 19px;
	height: 19px;
	display: block;
	fill: currentColor;
	stroke: currentColor;
}
.ach-connect__social-link svg[fill="none"] { fill: none; }

/* whatsapp button */
.ach-connect__wa {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	border: 1px solid #BDEDD0;
	border-radius: 8px;
	background: #E9FBF0;
	color: #1E874B !important;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.15s ease;
}
.ach-connect__wa svg { fill: currentColor; }
.ach-connect__wa:hover {
	background: #DFF6E8;
}
.ach-connect__wa svg {
	width: 18px;
	height: 18px;
	display: block;
}

/* newsletter - Hostinger Reach subscription block, restyled */
.ach-connect__news .hostinger-reach-block-subscription-form-wrapper { margin: 0; }
.ach-connect__news .hostinger-reach-block-subscription-form { max-width: 400px; }
.ach-connect__news .hostinger-reach-block-form-fields,
.ach-connect__news .hostinger-reach-block-form-fields--inline {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch;
	gap: 8px;
}
.ach-connect__news .hostinger-reach-block-form-field {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0 !important;
}
.ach-connect__news .hostinger-reach-block-submit {
	flex: 0 0 auto;
	width: auto !important;
}
.ach-connect__news label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.ach-connect__news input[type="email"],
.ach-connect__news input[type="text"] {
	width: 100% !important;
	height: 42px !important;
	margin: 0 !important;
	padding: 0 14px !important;
	border: 1px solid #D3CEE2 !important;
	border-radius: 8px !important;
	background: #FFFFFF !important;
	box-shadow: none !important;
	font-family: "Poppins", sans-serif;
	font-size: 13px !important;
	color: #1C1A24 !important;
}
.ach-connect__news input:focus {
	outline: none;
	border-color: #A99EC6 !important;
}
.ach-connect__news button,
.ach-connect__news .hostinger-reach-block-submit,
.ach-connect__news [type="submit"] {
	flex: none;
	height: 42px !important;
	margin: 0 !important;
	padding: 0 20px !important;
	border: 0 !important;
	border-radius: 8px !important;
	background: #5E41F3 !important;
	color: #FFFFFF !important;
	font-family: "Poppins", sans-serif;
	font-size: 13px !important;
	font-weight: 600 !important;
	cursor: pointer;
	white-space: nowrap;
}
.ach-connect__news button:hover,
.ach-connect__news .hostinger-reach-block-submit:hover,
.ach-connect__news [type="submit"]:hover {
	background: #241B38 !important;
}
.ach-connect__news .hostinger-reach-block-form-message,
.ach-connect__news .hostinger-reach-form-response {
	flex-basis: 100%;
	margin-top: 8px;
	font-family: "Poppins", sans-serif;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.7);
}

/* --- main: brand + link columns --- */
.ach-footer__main {
	display: flex;
	gap: clamp(32px, 5vw, 80px);
	padding: clamp(32px, 4vw, 52px) 0;
}

.ach-footer__brand {
	flex: 1 1 34%;
	max-width: 360px;
}
.ach-footer__logo {
	display: inline-block;
	line-height: 0;
}
.ach-footer__logo img,
.ach-footer__logo .custom-logo {
	height: 22px !important;
	width: auto !important;
	max-width: 148px !important;
	display: block;
}
.ach-footer__blurb {
	margin: 16px 0 0 !important;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	line-height: 1.65;
	color: #6E6A7C;
}

.ach-footer__nav {
	flex: 1 1 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(20px, 3vw, 44px);
}
.ach-footer__nav-title {
	margin: 0 0 14px !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	color: #1C1A24 !important;
}
.ach-footer__nav-col ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.ach-footer__nav-col li {
	margin: 0 0 10px;
}
.ach-footer__nav-col a {
	font-family: "Poppins", sans-serif;
	font-size: 13.5px;
	line-height: 1.4;
	color: #5A5766 !important;
	text-decoration: none;
	transition: color 0.15s ease;
}
.ach-footer__nav-col a:hover {
	color: #5E41F3 !important;
}

/* --- bottom bar --- */
.ach-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding-top: clamp(20px, 3vw, 28px);
	border-top: 1px solid #E5E2EE;
	font-family: "Poppins", sans-serif;
	font-size: 12.5px;
	color: #8A8697;
}
.ach-footer__bottom-links {
	display: flex;
	gap: 22px;
}
.ach-footer__bottom-links a {
	color: #8A8697 !important;
	text-decoration: none;
}
.ach-footer__bottom-links a:hover {
	color: #5E41F3;
}

/* --- responsive --- */
@media (max-width: 900px) {
	.ach-connect__box {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	.ach-connect__text { max-width: none; }
	.ach-footer__main {
		flex-direction: column;
		gap: 32px;
	}
	.ach-footer__brand { max-width: none; }
}

@media (max-width: 560px) {
	/* newsletter: stack the button under the field so it never spills the box */
	.ach-connect__news .hostinger-reach-block-form-fields,
	.ach-connect__news .hostinger-reach-block-form-fields--inline { flex-wrap: wrap !important; }
	.ach-connect__news .hostinger-reach-block-form-field { flex: 1 1 100% !important; }
	.ach-connect__news .hostinger-reach-block-submit,
	.ach-connect__news button,
	.ach-connect__news [type="submit"] { flex: 1 1 100% !important; width: 100% !important; margin-top: 8px !important; }
	.ach-footer__nav {
		grid-template-columns: 1fr 1fr;
		gap: 22px 16px;
	}
	.ach-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}
}


/* ==========================================================================
   DESIGN SYSTEM   (added 2026-09-04 - single source of truth)
   Every homepage section is laid out and typeset from the tokens below so
   nothing drifts in or out of the content column and headings stay uniform.

   CONTAINER  content column = min(100% - 2*gutter, --ach-cw), centred.
              Same left/right edge for hero text, category cards, testimonial
              copy, product grid, Most Loved, craft story, connect band, footer.
   TYPE       --ach-fs-display  hero headline only
              --ach-fs-heading  every section title
              --ach-fs-title    lead lines / stat numbers / card titles
              --ach-fs-body     paragraphs (16px)
              --ach-fs-small    captions, struck prices, footer links (14px)
              --ach-fs-eyebrow  violet overlines (12px)
              weights: 700 headings - 600 eyebrows/labels/buttons - 400 body
   RHYTHM     --ach-section-y   identical top+bottom padding on every section
   ========================================================================== */
:root {
	--ach-cw: 1280px;
	--ach-gutter: clamp(20px, 4vw, 40px);
	--ach-section-y: clamp(48px, 6.5vw, 84px);

	--ach-fs-display: clamp(2.25rem, 1.30rem + 3.3vw, 3.5rem);
	--ach-fs-heading: clamp(1.75rem, 1.35rem + 1.7vw, 2.5rem);
	--ach-fs-title:   1.1875rem;
	--ach-fs-body:    1rem;
	--ach-fs-small:   0.875rem;
	--ach-fs-eyebrow: 0.75rem;

	--ach-lh-heading: 1.14;
	--ach-lh-body:    1.65;

	--ach-ink:       #1C1A24;
	--ach-ink-soft:  #6E6A7C;
	--ach-violet:    #5E41F3;
}

/* --- THE container: one column edge for the whole page -------------------- */
.ach-cats > .elementor-widget,
.ach-cats > .e-con,
.ach-cats__row,
.ach-bestsellers > .elementor-widget,
.ach-bestsellers > .e-con,
.ach-loved,
.ach-craft,
.ach-connect > .elementor-widget,
.ach-footer__inner {
	width: min(100% - 2 * var(--ach-gutter), var(--ach-cw)) !important;
	max-width: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* hero: a rounded card whose side margin equals the gutter, so the text block
   inside it lines up exactly with every section below */
.ach-hero {
	margin: clamp(8px, 1.4vw, 16px) var(--ach-gutter) 0 !important;
}
.ach-hero__slide > .e-con,
.ach-hero__slide > .e-con > .e-con-inner {
	width: 100% !important;
	max-width: var(--ach-cw) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.ach-hero__slide .elementor-widget-heading:nth-child(2) .elementor-heading-title,
.ach-hero__slide .elementor-widget-text-editor {
	max-width: 620px;
}

/* --- vertical rhythm: same breathing room between every section ----------- */
.ach-cats,
.ach-bestsellers,
.ach-loved,
.ach-craft,
.ach-connect {
	padding-top: var(--ach-section-y) !important;
	padding-bottom: var(--ach-section-y) !important;
}
.ach-footer { margin-top: 0 !important; }
.ach-footer__inner {
	padding-top: var(--ach-section-y) !important;
	padding-bottom: clamp(24px, 3vw, 36px) !important;
}

/* --- type scale, applied ------------------------------------------------- */
/* eyebrows - one treatment site-wide */
.ach-hero__slide .elementor-widget-heading:nth-child(1) .elementor-heading-title,
.ach-cats > .elementor-widget-heading:first-child .elementor-heading-title,
.ach-bestsellers__eyebrow .elementor-heading-title,
.ach-loved__eyebrow .elementor-heading-title,
.ach-craft__eyebrow .elementor-heading-title {
	font-family: "Poppins", sans-serif !important;
	font-size: var(--ach-fs-eyebrow) !important;
	font-weight: 600 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	line-height: 1 !important;
}
.ach-cats > .elementor-widget-heading:first-child .elementor-heading-title,
.ach-bestsellers__eyebrow .elementor-heading-title,
.ach-loved__eyebrow .elementor-heading-title,
.ach-craft__eyebrow .elementor-heading-title {
	color: var(--ach-violet) !important;
}

/* hero headline = the ONLY display size */
.ach-hero__slide .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	font-family: "Poppins", sans-serif !important;
	font-size: var(--ach-fs-display) !important;
	font-weight: 700 !important;
	line-height: var(--ach-lh-heading) !important;
	letter-spacing: -0.02em !important;
}

/* every section title = one size + one weight */
.ach-cats > .elementor-widget-text-editor,
.ach-cats > .elementor-widget-text-editor p,
.ach-bestsellers__title .elementor-heading-title,
.ach-loved__title .elementor-heading-title,
.ach-craft__title .elementor-heading-title {
	font-family: "Poppins", sans-serif !important;
	font-size: var(--ach-fs-heading) !important;
	font-weight: 700 !important;
	line-height: var(--ach-lh-heading) !important;
	letter-spacing: -0.015em !important;
	color: var(--ach-ink) !important;
}

/* body copy - one size / colour / leading */
.ach-craft__body p,
.ach-craft__body .elementor-widget-container,
.ach-loved__sub p,
.ach-loved__sub .elementor-widget-container {
	font-size: var(--ach-fs-body) !important;
	line-height: var(--ach-lh-body) !important;
}
.ach-craft__body p,
.ach-loved__sub p { color: var(--ach-ink-soft) !important; }

/* consistent gap: eyebrow -> title -> content, every section */
.ach-bestsellers__title,
.ach-loved__title,
.ach-craft__title {
	margin: clamp(8px, 1.2vw, 12px) 0 clamp(14px, 2vw, 20px) !important;
}

/* --- responsive --------------------------------------------------------- */
@media (max-width: 1099px) {
	.ach-hero {
		margin-left: var(--ach-gutter) !important;
		margin-right: var(--ach-gutter) !important;
	}
}
@media (max-width: 767px) {
	:root { --ach-section-y: clamp(40px, 11vw, 60px); }
}

/* DESIGN SYSTEM - section & header horizontal padding is owned by the container
   helper above; clear the older per-section paddings so every edge matches. */
.ach-cats,
.ach-bestsellers,
.ach-craft,
.ach-loved,
.ach-connect {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* header content lines up with the page column too (bar background stays full width) */
@media (min-width: 1100px) {
	.ach-header__inner {
		width: min(100% - 2 * var(--ach-gutter), var(--ach-cw)) !important;
		margin-left: auto !important;
		margin-right: auto !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
}

/* DESIGN SYSTEM - fixes after first pass:
   .ach-bs is nested inside the bestsellers column already, so it must fill it
   (not subtract the gutter a second time); and the two craft/loved text
   columns carry a 10px Elementor padding that pushed their eyebrows off the line. */
.ach-bs {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}
.ach-craft__text,
.ach-loved__text {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* DESIGN SYSTEM - hero card: room for the copy at every width + safe inset so
   text never touches the rounded corners */
.ach-hero__slide > .e-con {
	padding-top: clamp(24px, 3.5vw, 44px) !important;
	padding-bottom: clamp(24px, 3.5vw, 44px) !important;
}
@media (max-width: 767px) {
	.ach-hero { min-height: clamp(300px, 64vw, 380px); }
}

/* DESIGN SYSTEM - hero: vertically centre the copy in the card and give the
   card enough height at every width so nothing clips on the rounded corners */
.ach-hero__slide {
	justify-content: center !important;
}
.ach-hero { min-height: clamp(440px, 52vh, 560px); }
@media (max-width: 1099px) {
	.ach-hero { min-height: clamp(460px, 66vw, 540px); }
}
@media (max-width: 767px) {
	.ach-hero { min-height: clamp(340px, 78vw, 430px); }
}

/* ==========================================================================
   CATALOGUE / SHOP
   Markup: woocommerce/archive-product.php -> Ach_Shop::render() (inc/ach-shop.php).
   Used by the shop page, every product-category archive and attribute archives.
   Left filter rail + sortable, faceted product grid; the rail becomes a
   slide-in drawer below 1024px. Everything is dynamic - see inc/ach-shop.php.
   Tokens come from the DESIGN SYSTEM block above.
   ========================================================================== */
.ach-shop-page {
	display: block;
	padding-top: clamp(18px, 3vw, 34px);
	padding-bottom: var(--ach-section-y);
}

.ach-shop {
	width: min(100% - 2 * var(--ach-gutter), var(--ach-cw));
	margin-inline: auto;
}

/* --- breadcrumb --- */
.ach-shop__crumbs {
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-small);
	line-height: 1.4;
	color: var(--ach-ink-soft);
}
.ach-shop__crumbs a { color: var(--ach-ink-soft); text-decoration: none; }
.ach-shop__crumbs a:hover { color: var(--ach-violet); }
.ach-shop__crumbs .sep { margin: 0 8px; color: #C9C6D4; }

/* --- header: title + count | filter + sort --- */
.ach-shop__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 24px;
	flex-wrap: wrap;
	margin: clamp(10px, 1.6vw, 16px) 0 clamp(16px, 2.2vw, 24px);
	padding-bottom: clamp(14px, 2vw, 20px);
	border-bottom: 1px solid #E5E2EE;
}
.ach-shop__title {
	margin: 0 !important;
	font-family: "Poppins", sans-serif !important;
	font-size: var(--ach-fs-heading) !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.015em;
	color: var(--ach-ink) !important;
}
.ach-shop__count {
	margin: 6px 0 0 !important;
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-small);
	color: var(--ach-ink-soft);
}
.ach-shop__head-r {
	display: flex;
	align-items: center;
	gap: 10px;
}

/* filter toggle button (mobile / tablet) */
.ach-shop__filter-toggle {
	-webkit-appearance: none; appearance: none;
	display: none;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border: 1px solid #DCD8E8 !important;
	border-radius: 10px;
	background: #FFFFFF !important;
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-small);
	font-weight: 600;
	color: var(--ach-ink) !important;
	cursor: pointer;
}
.ach-shop__filter-toggle svg { width: 18px; height: 18px; }
.ach-shop__filter-n {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 18px; height: 18px; padding: 0 5px;
	border-radius: 999px; background: var(--ach-violet); color: #fff;
	font-size: 11px; font-weight: 700; line-height: 1;
}

/* sort dropdown */
.ach-shop__sort { position: relative; }
.ach-shop__sort-b {
	list-style: none;
	display: inline-flex; align-items: center; gap: 8px;
	padding: 10px 16px;
	border: 1px solid #DCD8E8;
	border-radius: 10px;
	background: #FFFFFF;
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-small);
	color: var(--ach-ink);
	cursor: pointer;
	white-space: nowrap;
}
.ach-shop__sort-b::-webkit-details-marker { display: none; }
.ach-shop__sort-lbl { color: var(--ach-ink-soft); }
.ach-shop__sort-cur { font-weight: 600; }
.ach-shop__sort-b svg { width: 12px; height: 12px; transition: transform .18s ease; }
.ach-shop__sort[open] .ach-shop__sort-b svg { transform: rotate(180deg); }
.ach-shop__sort-menu {
	position: absolute; right: 0; top: calc(100% + 6px); z-index: 40;
	min-width: 210px; margin: 0; padding: 6px;
	list-style: none;
	background: #FFFFFF;
	border: 1px solid #E5E2EE;
	border-radius: 12px;
	box-shadow: 0 18px 40px -20px rgba(28,26,36,.28);
}
.ach-shop__sort-opt {
	display: block;
	padding: 9px 12px;
	border-radius: 8px;
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-small);
	color: var(--ach-ink);
	text-decoration: none;
}
.ach-shop__sort-opt:hover { background: #F4F3F7; }
.ach-shop__sort-opt.is-on { color: var(--ach-violet); font-weight: 600; }

/* --- body: rail + main --- */
.ach-shop__body {
	display: grid;
	grid-template-columns: 244px minmax(0, 1fr);
	gap: clamp(24px, 3vw, 44px);
	align-items: start;
}

/* --- filter rail --- */
.ach-shop__rail-wrap {
	position: sticky;
	top: 96px;
}
.ach-shop__rail-top { display: none; }
.ach-shop__rail { display: block; }
.ach-shop__rail-head {
	display: flex; align-items: baseline; justify-content: space-between;
	margin-bottom: 6px;
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-small);
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ach-ink);
}
.ach-shop__clear, .ach-shop__chip--clear {
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	font-size: var(--ach-fs-small);
	color: var(--ach-violet);
	text-decoration: none;
}
.ach-shop__clear:hover { text-decoration: underline; }

.ach-shop__facet {
	border-top: 1px solid #E5E2EE;
	padding: 4px 0;
}
.ach-shop__facet-h {
	list-style: none;
	display: flex; align-items: center; justify-content: space-between;
	padding: 12px 2px;
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-small);
	font-weight: 600;
	color: var(--ach-ink);
	cursor: pointer;
}
.ach-shop__facet-h::-webkit-details-marker { display: none; }
.ach-shop__facet-i { width: 12px; height: 12px; color: #9A97A5; transition: transform .18s ease; }
.ach-shop__facet[open] .ach-shop__facet-i { transform: rotate(180deg); }
.ach-shop__facet-body { padding: 2px 0 12px; }

.ach-shop__opts { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 2px; }
.ach-shop__opt-group {
	margin: 10px 0 4px;
	font-family: "Poppins", sans-serif;
	font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
	color: #9A97A5;
}
.ach-shop__opt-group:first-child { margin-top: 0; }
.ach-shop__opt {
	display: flex; align-items: center; gap: 10px;
	padding: 7px 2px;
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-small);
	line-height: 1.3;
	color: var(--ach-ink);
	text-decoration: none;
}
.ach-shop__opt:hover { color: var(--ach-violet); }
.ach-shop__box {
	flex: none;
	width: 17px; height: 17px;
	border: 1.5px solid #C9C6D4;
	border-radius: 5px;
	background: #fff;
	transition: border-color .12s ease, background-color .12s ease;
}
.ach-shop__opt.is-on .ach-shop__box {
	border-color: var(--ach-violet);
	background: var(--ach-violet) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.2 2.2 4.8-4.8' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat;
}
.ach-shop__opt-l { flex: 1 1 auto; }
.ach-shop__opt.is-on .ach-shop__opt-l { font-weight: 600; }
.ach-shop__opt-c { flex: none; font-size: 12px; color: #9A97A5; }

/* swatch options */
.ach-shop__opts--sw { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 10px; }
.ach-shop__opt--sw .ach-shop__opt-c { display: none; }
.ach-shop__sw {
	flex: none;
	width: 18px; height: 18px;
	border-radius: 999px;
	background: var(--sw, #ccc);
	box-shadow: inset 0 0 0 1px rgba(28,26,36,.16);
}
.ach-shop__opt--sw.is-on .ach-shop__sw { box-shadow: inset 0 0 0 1px rgba(28,26,36,.16), 0 0 0 2px var(--ach-violet); }

/* price range inputs */
.ach-shop__range { display: flex; align-items: flex-end; gap: 8px; margin-top: 12px; }
.ach-shop__range label {
	flex: 1 1 0; min-width: 0;
	display: flex; flex-direction: column; gap: 4px;
	font-family: "Poppins", sans-serif; font-size: 11px; color: #9A97A5;
}
.ach-shop__range input {
	width: 100%;
	height: 38px;
	padding: 0 10px;
	border: 1px solid #D3CEE2;
	border-radius: 8px;
	background: #fff;
	font-family: "Poppins", sans-serif; font-size: var(--ach-fs-small); color: var(--ach-ink);
}
.ach-shop__range input:focus { outline: none; border-color: #A99EC6; }
.ach-shop__range > span { padding-bottom: 10px; color: #9A97A5; }
.ach-shop__range-go {
	-webkit-appearance: none; appearance: none;
	height: 38px; padding: 0 14px;
	border: 0; border-radius: 8px;
	background: var(--ach-ink); color: #fff;
	font-family: "Poppins", sans-serif; font-size: var(--ach-fs-small); font-weight: 600;
	cursor: pointer;
}

.ach-shop__rail-apply { display: none; }

/* --- main column --- */
.ach-shop__main { min-width: 0; }

.ach-shop__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: clamp(14px, 2vw, 20px); }
.ach-shop__chip {
	display: inline-flex; align-items: center; gap: 7px;
	padding: 6px 10px 6px 12px;
	border: 1px solid #DCD8E8;
	border-radius: 999px;
	background: #F4F3F7;
	font-family: "Poppins", sans-serif; font-size: 12.5px; color: var(--ach-ink);
	text-decoration: none;
}
.ach-shop__chip span { font-size: 14px; color: #9A97A5; line-height: 1; }
.ach-shop__chip:hover { border-color: #B7ADE6; }
.ach-shop__chip:hover span { color: var(--ach-ink); }
.ach-shop__chip--clear { background: none; border-color: transparent; color: var(--ach-violet); padding-left: 8px; }

/* product grid */
.ach-shop__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(22px, 2.6vw, 34px) clamp(16px, 1.8vw, 24px);
}
@media (min-width: 1360px) { .ach-shop__grid { grid-template-columns: repeat(4, 1fr); } }

.ach-pc { display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.ach-pc__media {
	position: relative;
	display: block;
	border-radius: 12px;
	overflow: hidden;
	background: #F4F3F7;
}
.ach-pc__media img,
.ach-pc__img {
	display: block; width: 100%;
	aspect-ratio: 3 / 4; object-fit: cover;
	transition: transform .55s cubic-bezier(.2,0,.2,1);
}
.ach-pc:hover .ach-pc__img { transform: scale(1.045); }
.ach-pc__badge {
	position: absolute; top: 10px; left: 10px;
	padding: 4px 8px;
	border-radius: 6px;
	background: #1C1A24;
	color: #fff;
	font-family: "Poppins", sans-serif; font-size: 10.5px; font-weight: 700; letter-spacing: .04em;
}
.ach-pc__badge--oos { top: auto; bottom: 10px; left: 10px; background: #6E6A7C; }
.ach-pc__info { display: flex; flex-direction: column; gap: 4px; padding-top: 10px; }
.ach-pc__name {
	font-family: "Poppins", sans-serif; font-size: var(--ach-fs-small); font-weight: 500; line-height: 1.35;
	color: var(--ach-ink);
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ach-pc__fabric { font-family: "Poppins", sans-serif; font-size: 12px; color: #8A8E99; }
.ach-pc__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px 7px; margin-top: 2px; }
.ach-pc__now { font-family: "Poppins", sans-serif; font-size: var(--ach-fs-small); font-weight: 600; color: var(--ach-ink); }
.ach-pc__was { font-family: "Poppins", sans-serif; font-size: 12px; color: #9A97A5; text-decoration: line-through; }
.ach-pc__off { font-family: "Poppins", sans-serif; font-size: 12px; font-weight: 600; color: #1E874B; }

/* load more */
.ach-shop__more { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: clamp(30px, 4vw, 48px); }
.ach-shop__more-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 220px; padding: 15px 34px;
	border: 1.5px solid var(--ach-ink);
	background: #fff;
	color: var(--ach-ink) !important;
	font-family: "Poppins", sans-serif; font-size: var(--ach-fs-small); font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
	text-decoration: none;
	transition: background-color .16s ease, color .16s ease;
}
.ach-shop__more-btn:hover { background: var(--ach-ink); color: #fff !important; }
.ach-shop__more-btn.is-loading { opacity: .6; pointer-events: none; }
.ach-shop__more-meta { margin: 0; font-family: "Poppins", sans-serif; font-size: 12px; color: #9A97A5; }

/* empty state */
.ach-shop__empty { padding: clamp(40px, 8vw, 90px) 0; text-align: center; }
.ach-shop__empty p { margin: 0 0 16px; font-family: "Poppins", sans-serif; font-size: var(--ach-fs-body); color: var(--ach-ink-soft); }
.ach-shop__empty-btn {
	display: inline-flex; padding: 13px 28px;
	background: var(--ach-violet); color: #fff !important;
	font-family: "Poppins", sans-serif; font-size: var(--ach-fs-small); font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
	text-decoration: none;
}

.ach-shop.is-busy .ach-shop__grid { opacity: .45; transition: opacity .15s ease; pointer-events: none; }

/* =========================== responsive =============================== */
@media (max-width: 1023px) {
	.ach-shop__body { grid-template-columns: 1fr; }
	.ach-shop__filter-toggle { display: inline-flex; }

	.ach-shop__rail-wrap {
		position: fixed;
		top: 0; right: 0; bottom: 0; left: auto;
		z-index: 520;
		width: min(90vw, 380px);
		background: #fff;
		padding: 0 20px 96px;
		overflow-y: auto;
		transform: translateX(100%);
		transition: transform .3s cubic-bezier(.4,0,.2,1);
		box-shadow: -20px 0 60px -30px rgba(28,26,36,.5);
	}
	.ach-shop__rail-wrap.is-open { transform: translateX(0); }
	.ach-shop__rail-top {
		position: sticky; top: 0; z-index: 2;
		display: flex; align-items: center; justify-content: space-between;
		margin: 0 -20px 6px; padding: 16px 20px;
		background: #fff; border-bottom: 1px solid #E5E2EE;
		font-family: "Poppins", sans-serif; font-size: var(--ach-fs-small); font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	}
	.ach-shop__rail-close {
		-webkit-appearance: none; appearance: none;
		border: 0; background: none; font-size: 24px; line-height: 1; color: var(--ach-ink); cursor: pointer;
	}
	.ach-shop__rail-head { display: none; }
	.ach-shop__rail-apply {
		display: block;
		position: sticky; bottom: 0;
		width: 100%; margin-top: 14px; padding: 15px;
		border: 0; border-radius: 10px;
		background: var(--ach-violet); color: #fff;
		font-family: "Poppins", sans-serif; font-size: var(--ach-fs-small); font-weight: 700;
		cursor: pointer;
	}
	body.ach-shop-drawer { overflow: hidden; }
	body.ach-shop-drawer::after {
		content: ""; position: fixed; inset: 0; z-index: 510;
		background: rgba(20,17,28,.42);
	}
}

@media (max-width: 767px) {
	.ach-shop__head { align-items: stretch; }
	.ach-shop__head-l { width: 100%; }
	.ach-shop__head-r { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
	.ach-shop__filter-toggle, .ach-shop__sort-b { width: 100%; justify-content: center; }
	.ach-shop__sort { display: block; }
	.ach-shop__sort-menu { left: 0; right: 0; min-width: 0; }
	.ach-shop__grid { grid-template-columns: repeat(2, 1fr); gap: 22px 12px; }
	.ach-pc__name, .ach-pc__now { font-size: 13px; }
	.ach-pc__was, .ach-pc__off, .ach-pc__fabric { font-size: 11px; }
	.ach-shop__more-btn { width: 100%; }
}

/* CATALOGUE - overrides for Elementor/theme global link + button styling that
   was bleeding violet into the filter labels and ballooning the close button. */
.ach-shop a { color: inherit; }
.ach-shop__opt,
.ach-shop__opt:visited,
.ach-shop__opt-l,
.ach-shop__facet-body a,
.ach-shop__crumbs a { color: var(--ach-ink) !important; }
.ach-shop__opt .ach-shop__opt-c { color: #9A97A5 !important; }
.ach-shop__opt:hover,
.ach-shop__opt:hover .ach-shop__opt-l,
.ach-shop__facet-body a:hover { color: var(--ach-violet) !important; }
.ach-shop__opt.is-on .ach-shop__opt-l { color: var(--ach-ink) !important; }
.ach-shop__crumbs a { color: var(--ach-ink-soft) !important; }
.ach-shop__crumbs a:hover { color: var(--ach-violet) !important; }
.ach-shop__sort-opt { color: var(--ach-ink) !important; }
.ach-shop__sort-opt.is-on { color: var(--ach-violet) !important; }
.ach-shop__chip { color: var(--ach-ink) !important; }
.ach-shop__chip--clear,
.ach-shop__clear { color: var(--ach-violet) !important; }
.ach-pc, .ach-pc:hover { color: var(--ach-ink) !important; }

.ach-shop__rail-close {
	-webkit-appearance: none !important;
	appearance: none !important;
	width: 40px !important;
	height: 40px !important;
	min-width: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
	font-size: 26px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	color: var(--ach-ink) !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.ach-shop__rail-close:hover { color: var(--ach-violet) !important; opacity: 1 !important; }

/* keep the intentional solid buttons solid despite global overrides */
.ach-shop__range-go,
.ach-shop__rail-apply,
.ach-shop__empty-btn { color: #FFFFFF !important; }
.ach-shop__more-btn { color: var(--ach-ink) !important; }
.ach-shop__more-btn:hover { color: #FFFFFF !important; }

/* drop the on-image discount badge - the price line already shows "N% off",
   matching the homepage product cards. Keep the sold-out badge. */
.ach-pc__badge:not(.ach-pc__badge--oos) { display: none; }

/* CATALOGUE - QA pass 2026-09-05: tighter price/fabric gap on the product
   card, and a min/max price range that wraps its Go button onto its own row
   so the two number inputs get real room to type into. Pure CSS - reuses the
   existing markup, no PHP change. */
.ach-pc__info { gap: 2px !important; }
.ach-pc__price { margin-top: 0 !important; }

.ach-shop__range { flex-wrap: wrap !important; row-gap: 10px !important; }
.ach-shop__range label { flex: 1 1 110px !important; min-width: 90px !important; }
.ach-shop__range-go { flex: 1 0 100% !important; width: 100% !important; margin-top: 2px !important; }
.ach-shop__range label { flex: 1 1 70px !important; min-width: 0 !important; }

/* ==========================================================================
   CATALOGUE - mobile QA pass (2026-09-05)
   Built by achinova-custom.js on top of the existing markup:
     .ach-shop__mobile-top  - a back arrow that replaces the breadcrumb/title
     .ach-header__back      - the header hamburger swapped for a back arrow
     .ach-shop__quickbar    - a horizontally-scrolling row (Sort moved in,
                              Category/Price/Fabric/On-Sale cloned from the
                              drawer rail) so the common filters do not need
                              the full drawer on a phone.
   All of it is mobile-only; tablet/desktop keep the existing header + rail.
   ========================================================================== */
.ach-shop__quickbar { display: none; }
.ach-shop__mobile-top { display: flex; align-items: center; margin: 0 0 6px; }
.ach-shop__back { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin-left: -10px; color: var(--ach-ink) !important; }
.ach-shop__back svg { width: 22px; height: 22px; }

/* breadcrumb + item count are dropped everywhere in favour of the back arrow
   above - keep the category/search NAME (the h1) visible though. */
.ach-shop__count { display: none !important; }
@media (max-width: 900px) { .ach-shop__crumbs { display: none !important; } }

@media (max-width: 767px) {
	.ach-shop__head-r { display: none; }
	.ach-shop__head {
		margin-top: 0;
		padding-bottom: 0;
		border-bottom: none;
	}

	.ach-shop__quickbar {
		display: flex;
		align-items: center;
		gap: 8px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		margin: 0 calc(-1 * var(--ach-gutter)) 16px;
		padding: 2px var(--ach-gutter) 6px;
	}
	.ach-shop__quickbar::-webkit-scrollbar { display: none; }

	.ach-shop__qb-pill {
		-webkit-appearance: none;
		appearance: none;
		flex: none;
		display: inline-flex;
		align-items: center;
		gap: 6px;
		white-space: nowrap;
		margin: 0;
		padding: 9px 15px;
		border: 1px solid #DCD8E8;
		border-radius: 999px;
		background: #FFFFFF;
		font-family: "Poppins", sans-serif;
		font-size: 13px;
		font-weight: 500;
		color: var(--ach-ink) !important;
		text-decoration: none;
		cursor: pointer;
	}
	.ach-shop__qb-pill svg:not(.ach-shop__qb-chev) { width: 15px; height: 15px; }
	.ach-shop__qb-pill.is-on {
		background: var(--ach-violet);
		border-color: var(--ach-violet);
		color: #FFFFFF !important;
	}

	.ach-shop__quickbar .ach-shop__sort { flex: none; }
	.ach-shop__quickbar .ach-shop__sort-b {
		border-radius: 999px;
		padding: 9px 15px;
		font-size: 13px;
	}

	.ach-shop__qb-pop { position: relative; flex: none; }
	.ach-shop__qb-pop .ach-shop__facet-body {
		position: absolute;
		top: calc(100% + 8px);
		right: 0;
		left: auto;
		z-index: 60;
		width: max-content;
		min-width: 160px;
		max-width: calc(100vw - 32px);
		max-height: 55vh;
		overflow-y: auto;
		padding: 10px 12px;
		border: 1px solid #E5E2EE;
		border-radius: 12px;
		background: #FFFFFF;
		box-shadow: 0 18px 40px -20px rgba(28, 26, 36, .3);
	}
}
@media (max-width: 767px) {
	.ach-shop__quickbar .ach-shop__qb-pill,
	.ach-shop__quickbar .ach-shop__sort-b {
		width: auto !important;
	}
}

/* ==========================================================================
   CATALOGUE - "You may also like" continuation
   Shown under the main grid only on a clean, small category landing (e.g. a
   category with just 2-3 products) so the page never looks empty - the
   category's own items stay first and clearly labelled, other in-stock
   products fill the rest. See Ach_Shop::more_to_explore().
   ========================================================================== */
.ach-shop__explore {
	margin-top: clamp(40px, 5vw, 64px);
	padding-top: clamp(28px, 3.5vw, 40px);
	border-top: 1px solid #E5E2EE;
}
.ach-shop__explore-title {
	margin: 0 0 clamp(16px, 2vw, 22px) !important;
	font-family: "Poppins", sans-serif !important;
	font-size: var(--ach-fs-title) !important;
	font-weight: 700 !important;
	color: var(--ach-ink) !important;
}

/* ==========================================================================
   CATALOGUE - button consistency fix (2026-09-05)
   The theme/Elementor global button style (padding: 16px 34px, radius: 999px,
   font-size: 15px) was winning over several of these controls wherever this
   file didn't already carry !important, so some ended up much larger than
   others (Apply filters rendered at 55px tall, Go at odd sizes, etc). Locking
   every property down here, in one place, for the whole filter/sort family so
   they can never drift apart again: one small pill size for inline controls,
   one compact full-width bar for the two that span the drawer.
   ========================================================================== */
:root {
	--ach-btn-fs: 13px;
	--ach-btn-fw: 600;
}

/* inline pill controls: Filters, Sort, and every quick-bar pill */
.ach-shop__filter-toggle,
.ach-shop__sort-b,
.ach-shop__qb-pill {
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 9px 16px !important;
	border-radius: 999px !important;
	font-size: var(--ach-btn-fs) !important;
	font-weight: var(--ach-btn-fw) !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* full-width bars: the drawer's sticky Apply, and the price range Go button */
.ach-shop__rail-apply,
.ach-shop__range-go {
	height: auto !important;
	min-height: 0 !important;
	padding: 12px 20px !important;
	border-radius: 10px !important;
	font-size: var(--ach-btn-fs) !important;
	font-weight: var(--ach-btn-fw) !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

/* ==========================================================================
   SINGLE PRODUCT PAGE (2026-09-05)
   Still WooCommerce's own default template/markup (no PHP override - lower
   risk, and the semantic classes below are stable across WC versions); this
   reskins it with the site's container, type scale and button language.
   The "two arrows" on the product page were the browser's native <input
   type=number> spinner on the quantity field - removed below.
   ========================================================================== */
body.single-product #content { padding-top: clamp(18px, 3vw, 34px); padding-bottom: var(--ach-section-y); }

body.single-product div.product {
	position: relative;
	width: min(100% - 2 * var(--ach-gutter), var(--ach-cw));
	margin-inline: auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}

body.single-product span.onsale {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 3;
	min-height: 0;
	display: inline-flex;
	align-items: center;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--ach-ink);
	color: #fff;
	font-family: "Poppins", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1;
}

body.single-product .woocommerce-product-gallery {
	grid-column: 1;
	border-radius: 16px;
	overflow: hidden;
	background: #F4F3F7;
}
body.single-product .woocommerce-product-gallery img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
}

body.single-product div.summary.entry-summary {
	grid-column: 2;
}
body.single-product .product_title.entry-title {
	margin: 0 0 10px !important;
	font-family: "Poppins", sans-serif !important;
	font-size: var(--ach-fs-heading) !important;
	font-weight: 700 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.015em;
	color: var(--ach-ink) !important;
}
body.single-product .summary p.price {
	margin: 0 0 16px !important;
	font-family: "Poppins", sans-serif;
}
body.single-product .summary p.price .amount { font-size: 1.35rem; font-weight: 700; color: var(--ach-ink); }
body.single-product .summary p.price del .amount { font-size: 1rem; font-weight: 400; color: #9A97A5; opacity: 1; }
body.single-product .summary p.price ins { text-decoration: none; }

body.single-product .woocommerce-product-details__short-description {
	margin-bottom: 20px;
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-body);
	line-height: var(--ach-lh-body);
	color: var(--ach-ink-soft);
}
body.single-product .woocommerce-product-details__short-description p { margin: 0; }

/* quantity stepper - hide the native number-input spinner arrows */
body.single-product form.cart { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 20px !important; }
body.single-product div.quantity { margin: 0 !important; }
body.single-product input.qty {
	-moz-appearance: textfield;
	height: 46px !important;
	width: 74px !important;
	padding: 0 14px !important;
	border: 1px solid #D3CEE2 !important;
	border-radius: 10px !important;
	background: #fff !important;
	box-shadow: none !important;
	font-family: "Poppins", sans-serif;
	font-size: 14px !important;
	color: var(--ach-ink) !important;
	text-align: center;
}
body.single-product input.qty::-webkit-outer-spin-button,
body.single-product input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.single-product .single_add_to_cart_button,
body.single-product a.button.product_type_simple {
	height: 46px !important;
	min-height: 0 !important;
	padding: 0 30px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: var(--ach-violet) !important;
	color: #fff !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	line-height: 46px !important;
	transition: background-color .15s ease;
}
body.single-product .single_add_to_cart_button:hover { background: var(--ach-ink) !important; color: #fff !important; }

body.single-product .product_meta {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid #E5E2EE;
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-small);
	color: var(--ach-ink-soft);
}
body.single-product .product_meta a { color: var(--ach-ink-soft) !important; text-decoration: underline; }

/* tabs */
body.single-product .woocommerce-tabs {
	grid-column: 1 / -1;
	margin-top: clamp(32px, 4vw, 48px);
	padding-top: clamp(24px, 3vw, 36px);
	border-top: 1px solid #E5E2EE;
}
body.single-product ul.tabs.wc-tabs {
	display: flex;
	gap: 8px;
	margin: 0 0 20px !important;
	padding: 0 !important;
	list-style: none;
	border: 0 !important;
}
body.single-product ul.tabs.wc-tabs li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
}
body.single-product ul.tabs.wc-tabs li a {
	display: inline-flex;
	padding: 9px 16px;
	border: 1px solid #DCD8E8;
	border-radius: 999px;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--ach-ink) !important;
	text-decoration: none;
}
body.single-product ul.tabs.wc-tabs li.active a {
	background: var(--ach-ink);
	border-color: var(--ach-ink);
	color: #fff !important;
}
body.single-product .woocommerce-Tabs-panel {
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-body);
	line-height: var(--ach-lh-body);
	color: var(--ach-ink-soft);
}
body.single-product table.shop_attributes { border: 0; }
body.single-product table.shop_attributes th { color: var(--ach-ink); font-weight: 600; }
body.single-product table.shop_attributes td, body.single-product table.shop_attributes th { border-top-color: #E5E2EE; padding: 10px 0; }

/* related products */
body.single-product section.related.products {
	grid-column: 1 / -1;
	margin-top: clamp(32px, 4vw, 48px);
	padding-top: clamp(24px, 3vw, 36px);
	border-top: 1px solid #E5E2EE;
}
body.single-product section.related.products > h2 {
	margin: 0 0 20px !important;
	font-family: "Poppins", sans-serif !important;
	font-size: var(--ach-fs-heading) !important;
	font-weight: 700 !important;
	color: var(--ach-ink) !important;
}
body.single-product ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: clamp(20px, 2.4vw, 30px) clamp(16px, 1.6vw, 24px) !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
body.single-product ul.products li.product {
	position: relative;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.single-product ul.products .woocommerce-loop-product__link {
	display: block;
	text-decoration: none;
	color: inherit;
}
body.single-product ul.products img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: 12px;
	background: #F4F3F7;
}
body.single-product ul.products .onsale {
	position: absolute;
	top: 10px; left: 10px; z-index: 2;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--ach-ink);
	color: #fff;
	font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
}
body.single-product ul.products .woocommerce-loop-product__title {
	margin: 10px 0 2px !important;
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-small);
	font-weight: 500;
	color: var(--ach-ink);
}
body.single-product ul.products .price {
	font-family: "Poppins", sans-serif;
	font-size: var(--ach-fs-small);
}
body.single-product ul.products .price ins { text-decoration: none; font-weight: 600; color: var(--ach-ink); }
body.single-product ul.products .price del { font-weight: 400; color: #9A97A5; opacity: 1; margin-right: 6px; }
body.single-product ul.products a.add_to_cart_button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	margin-top: 8px !important;
	width: 100% !important;
	height: 38px !important;
	min-height: 0 !important;
	padding: 0 10px !important;
	border-radius: 999px !important;
	background: #fff !important;
	border: 1px solid #DCD8E8 !important;
	color: var(--ach-ink) !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 11.5px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	white-space: nowrap !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

@media (max-width: 900px) {
	body.single-product div.product { grid-template-columns: 1fr; }
	body.single-product .woocommerce-product-gallery,
	body.single-product div.summary.entry-summary { grid-column: 1; }
	body.single-product ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}

/* the tab panel repeats its own label as an oversized <h2> ("Additional
   information" right under the "Additional information" tab) - redundant, drop it */
body.single-product .woocommerce-Tabs-panel > h2 { display: none; }

body.single-product ul.products li.product {
	display: block !important;
	float: none !important;
	width: 100% !important;
}
body.single-product ul.products::before,
body.single-product ul.products::after {
	content: none !important;
	display: none !important;
}

/* ==========================================================================
   HERO - fit to container + drop the eyebrow  (2026-09-05)
   The banner now sits in the same content column as every other homepage
   section (was bleeding wider, to the gutter edge). The small overline on
   each slide ("FESTIVE EDIT 2026", "MADE IN INDIA", ...) is hidden - the
   heading widget is still in the Elementor editor, just not shown; delete it
   there if you want it gone for good.
   ========================================================================== */
.ach-hero {
	width: min(100% - 2 * var(--ach-gutter), var(--ach-cw)) !important;
	max-width: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
@media (max-width: 1099px) {
	.ach-hero { margin-left: auto !important; margin-right: auto !important; }
}

/* card == content width now, so the copy needs its own inset from the rounded
   edges (it used to get that from being centred inside a wider card).
   Padding goes on .e-con only; the inner wrapper is flattened so it doesn't
   stack a second inset on top. */
.ach-hero__slide > .e-con {
	max-width: 100% !important;
	padding-left: clamp(20px, 4vw, 44px) !important;
	padding-right: clamp(20px, 4vw, 44px) !important;
}
.ach-hero__slide > .e-con > .e-con-inner {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* hide the per-slide overline / eyebrow text */
.ach-hero__slide .elementor-widget-heading:nth-child(1) { display: none !important; }

/* ==========================================================================
   SINGLE PRODUCT / PDP v2  (2026-09-05)
   Custom template: woocommerce/content-single-product.php (.ach-pdp__*).
   Flipkart-style: image grid left, sticky summary right (price + discount,
   colour, delivery box, trust badges, Buy Now / Add to Cart), then Highlights
   and Product Details, then related products. Supersedes the earlier
   "SINGLE PRODUCT PAGE" block - its rules target the old default markup and
   are now dead except where re-stated below.
   ========================================================================== */
body.single-product #content { padding-top: clamp(16px, 2.5vw, 30px); padding-bottom: 0; }

body.single-product .ach-pdp {
	display: block !important;
	width: min(100% - 2 * var(--ach-gutter), var(--ach-cw)) !important;
	max-width: none !important;
	margin: 0 auto !important;
	padding: 0 !important;
}

.ach-pdp__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: clamp(28px, 4vw, 60px);
	align-items: start;
}

/* --- gallery --- */
.ach-pdp__gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ach-pdp__gallery.is-single { grid-template-columns: 1fr; }
.ach-pdp__figure { position: relative; margin: 0; }
.ach-pdp__img, .ach-pdp__figure img {
	display: block; width: 100%;
	aspect-ratio: 3 / 4; object-fit: cover;
	border-radius: 14px; background: #F4F3F7;
}
.ach-pdp__flag {
	position: absolute; top: 12px; left: 12px;
	padding: 5px 11px; border-radius: 999px;
	background: var(--ach-ink); color: #fff;
	font-family: "Poppins", sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .04em;
}

/* --- summary --- */
.ach-pdp__summary {
	position: sticky; top: 92px; align-self: start;
	display: flex; flex-direction: column; gap: 14px;
}
.ach-pdp__title {
	margin: 0 !important;
	font-family: "Poppins", sans-serif !important;
	font-size: clamp(1.35rem, 1.05rem + 1.1vw, 1.75rem) !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	letter-spacing: -0.01em;
	color: var(--ach-ink) !important;
}
.ach-pdp__rating { display: flex; align-items: center; gap: 8px; margin-top: -4px; }
.ach-pdp__rating-badge {
	display: inline-flex; align-items: center; gap: 3px;
	padding: 2px 8px; border-radius: 6px;
	background: #1E874B; color: #fff;
	font-family: "Poppins", sans-serif; font-size: 12px; font-weight: 700;
}
.ach-pdp__rating-n { font-family: "Poppins", sans-serif; font-size: 12.5px; color: var(--ach-ink-soft); }
.ach-pdp__short {
	font-family: "Poppins", sans-serif; font-size: var(--ach-fs-body); line-height: var(--ach-lh-body); color: var(--ach-ink-soft);
}
.ach-pdp__short p { margin: 0; }

.ach-pdp__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 10px; margin-top: 2px; }
.ach-pdp__off {
	font-family: "Poppins", sans-serif; font-size: 14px; font-weight: 700; color: #1E874B;
}
.ach-pdp__mrp {
	font-family: "Poppins", sans-serif; font-size: 15px; font-weight: 400; color: #9A97A5; text-decoration: line-through;
}
.ach-pdp__mrp .amount { color: inherit; }
.ach-pdp__now {
	font-family: "Poppins", sans-serif; font-size: clamp(1.5rem, 1.2rem + 1vw, 1.9rem); font-weight: 700; color: var(--ach-ink);
}
.ach-pdp__save { margin: 0 !important; font-family: "Poppins", sans-serif; font-size: 12.5px; color: var(--ach-ink-soft); }

.ach-pdp__opt { display: flex; flex-direction: column; gap: 8px; }
.ach-pdp__opt-label { font-family: "Poppins", sans-serif; font-size: var(--ach-fs-small); color: var(--ach-ink-soft); }
.ach-pdp__opt-label b { color: var(--ach-ink); font-weight: 600; }
.ach-pdp__swatches { display: flex; gap: 8px; }
.ach-pdp__swatch {
	width: 30px; height: 30px; border-radius: 999px;
	background: var(--sw, #ccc);
	box-shadow: inset 0 0 0 1px rgba(28,26,36,.16);
}
.ach-pdp__swatch.is-active { box-shadow: inset 0 0 0 1px rgba(28,26,36,.16), 0 0 0 2px var(--ach-violet); }
.ach-pdp__sizes { display: flex; flex-wrap: wrap; gap: 8px; }
.ach-pdp__size {
	min-width: 40px; padding: 8px 12px; text-align: center;
	border: 1px solid #DCD8E8; border-radius: 8px;
	font-family: "Poppins", sans-serif; font-size: 13px; color: var(--ach-ink);
}

/* --- actions --- */
.ach-pdp__cart { margin: 4px 0 0 !important; }
.ach-pdp__actions { display: flex; gap: 12px; }
.ach-pdp__buy, .ach-pdp__add {
	-webkit-appearance: none; appearance: none;
	flex: 1 1 0; min-width: 0;
	height: 50px; padding: 0 20px;
	border-radius: 10px;
	font-family: "Poppins", sans-serif; font-size: 13.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	cursor: pointer; line-height: 1;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.ach-pdp__buy { border: 0; background: var(--ach-violet); color: #fff; }
.ach-pdp__buy:hover { background: var(--ach-ink); }
.ach-pdp__add { border: 1.5px solid var(--ach-ink); background: #fff; color: var(--ach-ink); }
.ach-pdp__add:hover { background: var(--ach-ink); color: #fff; }
.ach-pdp__buy[disabled], .ach-pdp__add[disabled] { opacity: .45; pointer-events: none; }
.ach-pdp__cart-msg { margin: 8px 0 0 !important; font-family: "Poppins", sans-serif; font-size: 13px; color: #1E874B; }

/* --- delivery + trust --- */
.ach-pdp__delivery {
	display: flex; flex-direction: column; gap: 10px;
	margin-top: 4px; padding: 14px 16px;
	border: 1px solid #E5E2EE; border-radius: 12px;
}
.ach-pdp__delivery-row { display: flex; align-items: flex-start; gap: 10px; font-family: "Poppins", sans-serif; font-size: 13px; line-height: 1.5; color: var(--ach-ink); }
.ach-pdp__delivery-row svg { flex: none; width: 20px; height: 20px; color: var(--ach-violet); margin-top: 1px; }
.ach-pdp__trust {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
	margin: 6px 0 0 !important; padding: 0 !important; list-style: none;
}
.ach-pdp__trust li {
	display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center;
	padding: 12px 6px; border-radius: 10px; background: #F7F6FA;
	font-family: "Poppins", sans-serif; font-size: 11.5px; font-weight: 600; color: var(--ach-ink);
}
.ach-pdp__trust svg { width: 20px; height: 20px; color: var(--ach-violet); }

/* --- highlights + details blocks --- */
.ach-pdp__block {
	margin-top: clamp(32px, 4vw, 52px);
	padding-top: clamp(24px, 3vw, 36px);
	border-top: 1px solid #E5E2EE;
}
.ach-pdp__block-h {
	margin: 0 0 16px !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 1.125rem !important; font-weight: 700 !important;
	color: var(--ach-ink) !important;
}
.ach-pdp__highlights {
	display: grid; grid-template-columns: 1fr 1fr; gap: 10px 32px;
	margin: 0 !important; padding: 0 !important; list-style: none;
}
.ach-pdp__highlights li {
	position: relative; padding-left: 16px;
	font-family: "Poppins", sans-serif; font-size: 13.5px; line-height: 1.5; color: var(--ach-ink-soft);
}
.ach-pdp__highlights li::before { content: ""; position: absolute; left: 0; top: 9px; width: 5px; height: 5px; border-radius: 999px; background: #C9C6D4; }
.ach-pdp__desc {
	margin-bottom: 16px;
	font-family: "Poppins", sans-serif; font-size: var(--ach-fs-body); line-height: var(--ach-lh-body); color: var(--ach-ink-soft);
}
body.single-product .ach-pdp .woocommerce-product-attributes { border: 0; margin: 0; width: 100%; }
body.single-product .ach-pdp .woocommerce-product-attributes th,
body.single-product .ach-pdp .woocommerce-product-attributes td {
	padding: 11px 0 !important; border-top: 1px solid #E5E2EE !important;
	font-family: "Poppins", sans-serif; font-size: 13.5px;
}
body.single-product .ach-pdp .woocommerce-product-attributes th { color: var(--ach-ink); font-weight: 600; width: 180px; }
body.single-product .ach-pdp .woocommerce-product-attributes td { color: var(--ach-ink-soft); }
body.single-product .ach-pdp .woocommerce-product-attributes p { margin: 0; }

/* --- related products: space it off the footer (was touching) --- */
body.single-product section.related.products {
	width: min(100% - 2 * var(--ach-gutter), var(--ach-cw));
	margin: clamp(40px, 5vw, 64px) auto 0;
	padding-top: clamp(28px, 3.5vw, 40px);
	padding-bottom: clamp(56px, 7vw, 96px);
	border-top: 1px solid #E5E2EE;
}

/* ============================ responsive ============================= */
@media (max-width: 900px) {
	.ach-pdp__grid { grid-template-columns: 1fr; gap: 20px; }
	.ach-pdp__gallery { grid-template-columns: 1fr; }
	.ach-pdp__summary { position: static; }
	.ach-pdp__highlights { grid-template-columns: 1fr; }

	/* Flipkart-style sticky action bar on phones */
	.ach-pdp__actions {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
		gap: 0;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
		background: #fff;
		border-top: 1px solid #E5E2EE;
		box-shadow: 0 -6px 24px -12px rgba(28,26,36,.18);
	}
	.ach-pdp__buy, .ach-pdp__add { height: 46px; border-radius: 0; }
	.ach-pdp__add { border-width: 1px; border-right: 0; }
	.ach-pdp__add:first-child { border-top-left-radius: 8px; border-bottom-left-radius: 8px; }
	.ach-pdp__buy { border-top-right-radius: 8px; border-bottom-right-radius: 8px; }
	.ach-pdp__cart-msg { position: fixed; bottom: 72px; left: 14px; right: 14px; z-index: 91; margin: 0 !important; padding: 10px 14px; border-radius: 10px; background: var(--ach-ink); color: #fff; text-align: center; }
	body.single-product { padding-bottom: 72px; }
}
/* PDP buttons - beat the global button style */
.ach-pdp__buy,
.ach-pdp__buy:hover,
.ach-pdp__buy:focus {
	border: 0 !important;
	background: var(--ach-violet) !important;
	color: #fff !important;
}
.ach-pdp__buy:hover { background: var(--ach-ink) !important; }
.ach-pdp__add,
.ach-pdp__add:focus {
	border: 1.5px solid var(--ach-ink) !important;
	background: #fff !important;
	color: var(--ach-ink) !important;
}
.ach-pdp__add:hover {
	background: var(--ach-ink) !important;
	color: #fff !important;
}
@media (max-width: 900px) {
	.ach-pdp__add,
	.ach-pdp__add:focus { border-width: 1px !important; }
}

/* ==========================================================================
   FOOTER SOCIAL  (2026-09-05)
   Icon row under the brand blurb in the footer. Links come from
   ach_social_links() in inc/ach-connect.php.
   ========================================================================== */
.ach-footer__social { display: flex; gap: 10px; margin-top: 18px; }
.ach-footer__social-link {
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px;
	border: 1px solid #D8D4E6; border-radius: 8px;
	color: #4F4C5A !important;
	text-decoration: none;
	transition: color .15s ease, border-color .15s ease;
}
.ach-footer__social-link:hover { color: var(--ach-violet) !important; border-color: #B7ADE6; }
.ach-footer__social-link svg { width: 19px; height: 19px; display: block; fill: currentColor; stroke: currentColor; }
.ach-footer__social-link svg[fill="none"] { fill: none; }


/* ==========================================================================
   GLOBAL BUTTON SYSTEM  (rebuilt 2026-09-07)
   ONE shape + ONE primary colour + ONE secondary treatment for every CTA.
   Every property is !important because Elementor's global kit
   (.elementor-kit-8 button { padding:16px 34px; border-radius:999px;
   font-weight:500 }) has specificity (0,1,1) and beats bare class selectors -
   that is why buttons kept drifting (different padding, pill corners,
   off-centre text) and why hovers went black.
   ========================================================================== */
:root {
	--ach-btn:        #5E41F3;
	--ach-btn-hover:  #4A2FCE;   /* darker shade of the same violet (was ink #1C1A24) */
	--ach-btn-on:     #FFFFFF;
	--ach-btn-radius: 8px;
	--ach-btn-h:      50px;
}

/* -- shared shape: EVERY button family -- */
.ach-hero__slide .elementor-button,
.ach-loved__btn .elementor-button,
.ach-bs__all,
.ach-shop__empty-btn,
.ach-shop__rail-apply,
.ach-shop__range-go,
.ach-connect__news button,
.ach-connect__news [type="submit"],
.ach-connect__news .hostinger-reach-block-submit,
.ach-connect__wa,
.ach-pdp__buy,
.ach-pdp__add,
.ach-shop__more-btn,
body.single-product .single_add_to_cart_button,
body.single-product ul.products a.add_to_cart_button,
body.woocommerce-page .wc-block-components-checkout-place-order-button,
body.woocommerce-page .wc-block-cart__submit-button,
body.woocommerce-page a.checkout-button,
body.woocommerce-page .wc-block-cart__submit-container a,
body.woocommerce-page #place_order {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	width: auto;
	min-height: var(--ach-btn-h) !important;
	height: auto !important;
	padding: 0 26px !important;
	border-radius: var(--ach-btn-radius) !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.15 !important;
	letter-spacing: .02em !important;
	text-align: center !important;
	text-transform: none !important;
	text-decoration: none !important;
	cursor: pointer;
	box-shadow: none !important;
	transition: background-color .16s ease, border-color .16s ease, color .16s ease !important;
}

/* -- PRIMARY: solid violet -- */
.ach-hero__slide .elementor-button,
.ach-loved__btn .elementor-button,
.ach-bs__all, .ach-bs__all:link, .ach-bs__all:visited,
.ach-shop__empty-btn,
.ach-shop__rail-apply,
.ach-shop__range-go,
.ach-connect__news button,
.ach-connect__news [type="submit"],
.ach-connect__news .hostinger-reach-block-submit,
.ach-connect__wa, .ach-connect__wa:link, .ach-connect__wa:visited,
.ach-pdp__buy,
body.single-product .single_add_to_cart_button,
body.woocommerce-page .wc-block-components-checkout-place-order-button,
body.woocommerce-page .wc-block-cart__submit-button,
body.woocommerce-page a.checkout-button,
body.woocommerce-page .wc-block-cart__submit-container a,
body.woocommerce-page #place_order {
	background: var(--ach-btn) !important;
	color: var(--ach-btn-on) !important;
	border: 0 !important;
	fill: var(--ach-btn-on) !important;
}
.ach-hero__slide .elementor-button:hover,
.ach-hero__slide .elementor-button:focus-visible,
.ach-loved__btn .elementor-button:hover,
.ach-bs__all:hover,
.ach-shop__empty-btn:hover,
.ach-shop__rail-apply:hover,
.ach-shop__range-go:hover,
.ach-connect__news button:hover,
.ach-connect__news [type="submit"]:hover,
.ach-connect__news .hostinger-reach-block-submit:hover,
.ach-connect__wa:hover,
.ach-pdp__buy:hover,
body.single-product .single_add_to_cart_button:hover,
body.woocommerce-page .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-page .wc-block-cart__submit-button:hover,
body.woocommerce-page a.checkout-button:hover,
body.woocommerce-page .wc-block-cart__submit-container a:hover,
body.woocommerce-page #place_order:hover {
	background: var(--ach-btn-hover) !important;
	color: var(--ach-btn-on) !important;
	border: 0 !important;
}
.ach-connect__wa svg { fill: currentColor !important; }

/* -- SECONDARY: white, violet outline, darker-violet fill on hover (never black) -- */
.ach-shop__more-btn, .ach-shop__more-btn:link, .ach-shop__more-btn:visited,
.ach-pdp__add,
body.single-product ul.products a.add_to_cart_button {
	background: #FFFFFF !important;
	color: var(--ach-btn) !important;
	border: 1.5px solid var(--ach-btn) !important;
}
.ach-shop__more-btn:hover,
.ach-pdp__add:hover,
body.single-product ul.products a.add_to_cart_button:hover {
	background: var(--ach-btn-hover) !important;
	color: #FFFFFF !important;
	border-color: var(--ach-btn-hover) !important;
}

/* -- disabled -- */
.ach-pdp__buy[disabled], .ach-pdp__add[disabled],
body.woocommerce-page .wc-block-components-checkout-place-order-button:disabled {
	opacity: .5 !important;
	pointer-events: none !important;
}

/* -- PDP action row: the two buttons split the width evenly -- */
.ach-pdp__actions { display: flex !important; gap: 12px !important; }
.ach-pdp__actions .ach-pdp__add,
.ach-pdp__actions .ach-pdp__buy { flex: 1 1 0 !important; min-width: 0 !important; padding: 0 16px !important; }
@media (max-width: 900px) {
	.ach-pdp__actions { gap: 10px !important; }
	.ach-pdp__actions .ach-pdp__add,
	.ach-pdp__actions .ach-pdp__buy { min-height: 46px !important; }
}

/* -- checkout / cart: centre the page, kill the stray red border -- */
body.woocommerce-checkout main.site-main,
body.woocommerce-cart main.site-main {
	width: min(100% - 2 * var(--ach-gutter), var(--ach-cw)) !important;
	max-width: none !important;
	margin-inline: auto !important;
}
body.woocommerce-page .wc-block-components-checkout-place-order-button,
body.woocommerce-page .wc-block-components-checkout-place-order-button:focus {
	border: 0 !important;
	outline: 0 !important;
}


/* ======================================================================
   PDP v2 - variable products: interactive colour swatches + colour video
   (woocommerce/content-single-product.php variable branch)
   ================================================================== */
.ach-pdp__swatches { flex-wrap: wrap; }
button.ach-pdp__swatch {
	-webkit-appearance: none; appearance: none;
	border: 0; padding: 0; margin: 0; cursor: pointer;
	width: 30px; height: 30px; border-radius: 999px;
	background: var(--sw, #ccc);
	box-shadow: inset 0 0 0 1px rgba(28,26,36,.16);
	transition: box-shadow .15s ease, transform .15s ease;
}
button.ach-pdp__swatch:hover { transform: translateY(-1px); }
button.ach-pdp__swatch.is-active { box-shadow: inset 0 0 0 1px rgba(28,26,36,.16), 0 0 0 2px var(--ach-violet); }
button.ach-pdp__swatch.is-oos { opacity: .4; }
button.ach-pdp__swatch.is-oos::after {
	content: ""; position: absolute;
}
.ach-pdp__swatch { position: relative; }
button.ach-pdp__swatch.is-oos {
	background-image: linear-gradient(45deg, transparent 44%, rgba(28,26,36,.55) 45%, rgba(28,26,36,.55) 55%, transparent 56%);
}

.ach-pdp__figure--video { grid-column: 1 / -1; }
.ach-pdp__gallery.is-single .ach-pdp__figure--video { grid-column: auto; }
.ach-pdp__video {
	display: block; width: 100%;
	aspect-ratio: 3 / 4; object-fit: cover;
	border-radius: 14px; background: #000;
}


/* ======================================================================
   PDP v2 - refinements 2026-09-07
   ================================================================== */
@media (min-width: 901px) {
	.ach-pdp__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr) !important; }
}
.ach-pdp__delivery { padding: 12px 14px; gap: 8px; }
.ach-pdp__delivery-row { align-items: center; font-size: 12.5px; line-height: 1.4; }
.ach-pdp__delivery-row svg { width: 18px; height: 18px; }
.ach-pdp__trust {
	display: flex !important; flex-wrap: wrap; align-items: stretch;
	gap: 6px !important;
	border: 1px solid #E5E2EE; border-radius: 12px; padding: 5px;
}
.ach-pdp__trust li {
	flex: 1 1 auto; min-width: 0;
	flex-direction: row !important; align-items: center; justify-content: center;
	gap: 7px; padding: 9px 6px;
	background: transparent; border-radius: 8px;
	white-space: nowrap; font-size: 11.5px; line-height: 1;
}
.ach-pdp__trust li svg { width: 16px; height: 16px; flex: none; }
@media (max-width: 480px) {
	.ach-pdp__trust li { flex-basis: 100%; justify-content: flex-start; padding: 8px 10px; }
}
body.single-product .ach-pdp .woocommerce-product-attributes { table-layout: fixed; }
body.single-product .ach-pdp .woocommerce-product-attributes th,
body.single-product .ach-pdp .woocommerce-product-attributes td {
	vertical-align: top; text-align: left !important;
}
body.single-product .ach-pdp .woocommerce-product-attributes th {
	width: 132px !important; padding-right: 18px !important; white-space: nowrap;
}
body.single-product .ach-pdp .woocommerce-product-attributes td p { margin: 0 !important; }
@media (max-width: 900px) {
	.ach-pdp__gallery,
	.ach-pdp__gallery.is-single {
		display: flex !important;
		grid-template-columns: none !important;
		gap: 10px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.ach-pdp__gallery::-webkit-scrollbar { display: none; }
	.ach-pdp__figure { flex: 0 0 82%; scroll-snap-align: center; margin: 0; }
	.ach-pdp__figure--video { flex-basis: 82%; }
}
body.single-product ul.products li.product .button,
body.single-product ul.products li.product .add_to_cart_button,
body.single-product ul.products li.product .added_to_cart,
body.single-product ul.products li.product .wp-block-button { display: none !important; }
/* PDP v2 - the theme's WooCommerce CSS floats .summary and gives it width:48%,
   which a CSS grid item then resolves against its track (half width). Undo it.
   [ach-pdp__summary width fix] */
body.single-product .ach-pdp .ach-pdp__summary,
body.single-product div.product .ach-pdp__summary {
	float: none !important;
	width: auto !important;
	max-width: none !important;
}
body.single-product .ach-pdp .ach-pdp__gallery {
	float: none !important;
	width: auto !important;
}

/* ======================================================================
   PDP - image lightbox (assets/js/achinova-custom.js -> lightbox())
   ================================================================== */
.ach-pdp__img { cursor: zoom-in; }
.ach-lightbox {
	position: fixed; inset: 0; z-index: 99999;
	display: flex; align-items: center; justify-content: center;
	background: rgba(18, 16, 24, 0.95);
	overscroll-behavior: contain;
}
.ach-lightbox[hidden] { display: none; }
.ach-lightbox__stage {
	margin: 0; display: flex; align-items: center; justify-content: center;
	max-width: 92vw; max-height: 88vh;
}
.ach-lightbox__img {
	max-width: 92vw; max-height: 88vh;
	object-fit: contain; border-radius: 6px;
	cursor: zoom-in; transition: transform .22s ease;
	touch-action: pan-x pan-y pinch-zoom;
}
.ach-lightbox__img.is-zoomed { transform: scale(2.3); cursor: zoom-out; }
.ach-lightbox__close,
.ach-lightbox__nav {
	position: absolute; border: 0; cursor: pointer; color: #fff;
	background: rgba(255,255,255,.14); border-radius: 999px;
	display: flex; align-items: center; justify-content: center;
	line-height: 1; font-family: "Poppins", sans-serif;
	transition: background-color .15s ease;
}
.ach-lightbox__close:hover,
.ach-lightbox__nav:hover { background: rgba(255,255,255,.28); }
.ach-lightbox__close { top: 14px; right: 16px; width: 44px; height: 44px; font-size: 26px; }
.ach-lightbox__nav { top: 50%; transform: translateY(-50%); width: 46px; height: 46px; font-size: 30px; }
.ach-lightbox__prev { left: 14px; }
.ach-lightbox__next { right: 14px; }
.ach-lightbox__nav[hidden] { display: none; }
.ach-lightbox__count {
	position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%);
	color: #fff; font-family: "Poppins", sans-serif; font-size: 13px;
	background: rgba(255,255,255,.12); padding: 5px 12px; border-radius: 999px;
}
.ach-lightbox__count[hidden] { display: none; }
@media (max-width: 600px) {
	.ach-lightbox__nav { width: 40px; height: 40px; font-size: 26px; }
	.ach-lightbox__prev { left: 6px; }
	.ach-lightbox__next { right: 6px; }
	.ach-lightbox__close { top: 10px; right: 10px; }
}
/* ach-lightbox hard overrides - beat the theme/Elementor global button style */
.ach-lightbox { background: rgba(16, 14, 22, 0.97) !important; }
.ach-lightbox__close,
.ach-lightbox__nav {
	width: 46px !important; height: 46px !important;
	min-width: 0 !important; padding: 0 !important;
	border: 0 !important; border-radius: 999px !important;
	background: rgba(255, 255, 255, 0.16) !important;
	color: #fff !important;
	box-shadow: none !important; text-transform: none !important;
	letter-spacing: 0 !important; font-weight: 400 !important;
}
.ach-lightbox__close { width: 44px !important; height: 44px !important; font-size: 24px !important; }
.ach-lightbox__nav { font-size: 28px !important; }
.ach-lightbox__close:hover,
.ach-lightbox__nav:hover { background: rgba(255, 255, 255, 0.3) !important; color: #fff !important; }
@media (max-width: 600px) {
	.ach-lightbox__nav { width: 40px !important; height: 40px !important; }
}
/* search spelling correction notice */
.ach-shop__didyoumean {
	margin: 2px 0 0 !important;
	font-family: "Poppins", sans-serif; font-size: 13.5px; color: var(--ach-ink-soft);
}
.ach-shop__didyoumean strong { color: var(--ach-ink); font-weight: 600; }
.ach-shop__didyoumean-x { margin-left: 8px; color: var(--ach-violet); text-decoration: underline; }
.ach-shop__didyoumean-x:hover { color: var(--ach-ink); }
/* ======================================================================
   voice listening + header back  2026-09-07
   ================================================================== */

/* --- search bar: clear "mic is on" state --- */
.ach-search-bar.is-listening {
	outline: 2px solid var(--ach-violet);
	outline-offset: 0;
	animation: ach-bar-listen 1.5s ease-out infinite;
}
@keyframes ach-bar-listen {
	0%   { box-shadow: 0 0 0 0 rgba(94, 65, 243, 0.30); }
	70%  { box-shadow: 0 0 0 10px rgba(94, 65, 243, 0); }
	100% { box-shadow: 0 0 0 0 rgba(94, 65, 243, 0); }
}
.ach-search-bar.is-listening .ach-search-bar__input::placeholder {
	color: var(--ach-violet); opacity: 1; font-weight: 600;
}
/* equalizer bars replace the mic glyph while listening */
.ach-search-bar__eq { display: none; align-items: flex-end; gap: 2px; height: 16px; }
.ach-search-bar__eq i {
	display: block; width: 3px; height: 40%;
	background: currentColor; border-radius: 2px;
	animation: ach-eq 0.9s ease-in-out infinite;
}
.ach-search-bar__eq i:nth-child(2) { animation-delay: .15s; }
.ach-search-bar__eq i:nth-child(3) { animation-delay: .30s; }
.ach-search-bar__eq i:nth-child(4) { animation-delay: .45s; }
@keyframes ach-eq { 0%, 100% { height: 25%; } 50% { height: 100%; } }
.ach-search-bar__mic.is-listening svg { display: none; }
.ach-search-bar__mic.is-listening .ach-search-bar__eq { display: flex; }
@media (prefers-reduced-motion: reduce) {
	.ach-search-bar.is-listening { animation: none; }
	.ach-search-bar__eq i { animation: none; height: 60%; }
}

/* --- header back arrow: reuses .ach-header__burger box, just an <a> --- */
a.ach-header__back { text-decoration: none; }

/* --- old JS-injected catalogue back arrow: gone, hide any stale copy --- */
.ach-shop__mobile-top { display: none !important; }

/* --- product page: drop the WooCommerce breadcrumb (schema stays in DOM) --- */
@media (max-width: 900px) { body.single-product .woocommerce-breadcrumb, body.woocommerce-page .woocommerce-breadcrumb { display: none !important; } }
/* ======================================================================
   lightbox white + gallery dots  2026-09-07
   ================================================================== */

/* --- lightbox: white full-screen, close button, dots (no arrows) --- */
.ach-lightbox { background: #ffffff !important; }
.ach-lightbox__stage { max-width: 94vw; max-height: 86vh; }
.ach-lightbox__img { max-width: 94vw; max-height: 86vh; border-radius: 4px; }
.ach-lightbox__img.is-zoomed { transform: scale(2.4); }
.ach-lightbox__close {
	background: #F1F0F4 !important; color: #1C1A24 !important;
	box-shadow: 0 1px 4px rgba(0,0,0,.12) !important;
}
.ach-lightbox__close:hover { background: #E4E2EA !important; color: #1C1A24 !important; }
.ach-lightbox__nav { display: none !important; }   /* arrows removed */
.ach-lightbox__dots {
	position: absolute; left: 0; right: 0; bottom: 20px;
	display: flex; justify-content: center; gap: 7px;
}
.ach-lightbox__dots[hidden] { display: none; }
.ach-lightbox__dot {
	width: 7px; height: 7px; padding: 0; border: 0; border-radius: 999px;
	background: #CBC9D3; cursor: pointer; transition: background-color .15s ease, transform .15s ease;
}
.ach-lightbox__dot.is-active { background: var(--ach-violet); transform: scale(1.35); }

/* --- inline gallery dots (mobile swipe indicator) --- */
.ach-pdp__dots { display: none; }
@media (max-width: 900px) {
	.ach-pdp__dots {
		display: flex; justify-content: center; gap: 6px;
		margin-top: 10px;
	}
	.ach-pdp__dots[hidden] { display: none; }
	.ach-pdp__dot {
		width: 6px; height: 6px; padding: 0; border: 0; border-radius: 999px;
		background: #D5D3DD; cursor: pointer; transition: background-color .15s ease, transform .15s ease;
	}
	.ach-pdp__dot.is-active { background: var(--ach-violet); transform: scale(1.4); }
}
/* dot hard reset 2026-09-07 - beat the global button style */
button.ach-lightbox__dot,
button.ach-pdp__dot {
	-webkit-appearance: none !important; appearance: none !important;
	min-width: 0 !important; min-height: 0 !important;
	padding: 0 !important; margin: 0 !important; border: 0 !important;
	box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important;
	flex: 0 0 auto !important;
}
button.ach-lightbox__dot { width: 8px !important; height: 8px !important; border-radius: 999px !important; background: #CBC9D3 !important; }
button.ach-lightbox__dot.is-active { background: var(--ach-violet) !important; }
button.ach-pdp__dot { width: 6px !important; height: 6px !important; border-radius: 999px !important; background: #D5D3DD !important; }
button.ach-pdp__dot.is-active { background: var(--ach-violet) !important; }
/* lightbox img bump 2026-09-07 */
.ach-lightbox__stage { max-width: 96vw !important; max-height: 92vh !important; }
.ach-lightbox__img { max-width: 96vw !important; max-height: 92vh !important; }
@media (max-width: 600px) { .ach-lightbox__img { max-height: 80vh !important; } }

/* ======================================================================
   PDP mobile redesign  2026-09-07
   full-bleed swipe gallery, colour thumbnails under the image, compact
   title, accordion Highlights / Details, horizontal Similar rail
   ================================================================== */

/* --- grid: gallery | (colourbar over summary) on desktop --- */
body.single-product .ach-pdp .ach-pdp__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
	grid-template-rows: auto 1fr;
	grid-template-areas: "gallery colorbar" "gallery summary";
	column-gap: clamp(24px, 3.5vw, 52px);
	row-gap: 18px;
	align-items: start;
}
.ach-pdp__gallery  { grid-area: gallery; }
.ach-pdp__colorbar { grid-area: colorbar; }
.ach-pdp__summary  { grid-area: summary; }

/* desktop order inside the summary column */
@media (min-width: 901px) {
	.ach-pdp__summary > .ach-pdp__title    { order: 1; }
	.ach-pdp__summary > .ach-pdp__rating   { order: 2; }
	.ach-pdp__summary > .ach-pdp__short    { order: 3; }
	.ach-pdp__summary > .ach-pdp__price    { order: 4; }
	.ach-pdp__summary > .ach-pdp__save     { order: 5; }
	.ach-pdp__summary > .ach-pdp__opt--size{ order: 6; }
	.ach-pdp__summary > .ach-pdp__cart     { order: 7; }
	.ach-pdp__summary > .ach-pdp__delivery { order: 8; }
	.ach-pdp__summary > .ach-pdp__trust    { order: 9; }
}

/* --- colour thumbnails --- */
.ach-pdp__colorbar { display: flex; flex-direction: column; gap: 9px; }
.ach-pdp__color-sel {
	font: 600 13px/1.3 "Poppins", sans-serif; color: var(--ach-ink-soft);
}
.ach-pdp__color-sel b { color: var(--ach-ink); font-weight: 600; }
.ach-pdp__thumbs {
	display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none;
	padding-bottom: 2px;
}
.ach-pdp__thumbs::-webkit-scrollbar { display: none; }
button.ach-pdp__thumb {
	-webkit-appearance: none !important; appearance: none !important;
	flex: 0 0 auto !important;
	width: 52px !important; height: 70px !important;
	min-width: 0 !important; padding: 0 !important; margin: 0 !important;
	border: 1.5px solid #E0DDEA !important; border-radius: 8px !important;
	background: #F4F3F7 !important; overflow: hidden !important; cursor: pointer;
	box-shadow: none !important; letter-spacing: 0 !important;
	transition: border-color .15s ease;
}
button.ach-pdp__thumb.is-active { border-color: var(--ach-ink) !important; border-width: 2px !important; }
button.ach-pdp__thumb.is-oos { opacity: .45 !important; }
.ach-pdp__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ach-pdp__thumb-sw { display: block; width: 100%; height: 100%; background: var(--sw, #ccc); }

/* --- accordions (Highlights open, All details closed) --- */
.ach-pdp__acc {
	margin-top: clamp(18px, 2.6vw, 28px);
	padding-top: 2px;
	border-top: 1px solid #E5E2EE;
}
.ach-pdp__acc-h {
	display: flex; align-items: center; gap: 8px;
	padding: 15px 0; cursor: pointer; list-style: none;
	font-family: "Poppins", sans-serif; font-size: 1.05rem; font-weight: 700;
	color: var(--ach-ink);
}
.ach-pdp__acc-h::-webkit-details-marker { display: none; }
.ach-pdp__acc-h small {
	font-weight: 400; font-size: 12.5px; color: var(--ach-ink-soft);
}
.ach-pdp__acc-chev {
	width: 16px; height: 16px; margin-left: auto; flex: none;
	color: var(--ach-ink-soft); transition: transform .2s ease;
}
.ach-pdp__acc[open] > .ach-pdp__acc-h .ach-pdp__acc-chev { transform: rotate(180deg); }
.ach-pdp__acc-body { padding-bottom: 20px; }

/* highlights label / value grid */
.ach-pdp__hl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 28px; }
.ach-pdp__hl {
	display: flex; flex-direction: column; gap: 2px;
	padding: 10px 0; border-bottom: 1px solid #EEECF4;
}
.ach-pdp__hl-k { font-family: "Poppins", sans-serif; font-size: 12.5px; color: var(--ach-ink-soft); }
.ach-pdp__hl-v { font-family: "Poppins", sans-serif; font-size: 14px; font-weight: 500; color: var(--ach-ink); }

/* --- Similar products rail --- */
.ach-pdp__similar {
	margin-top: clamp(26px, 4vw, 44px);
	padding-top: clamp(20px, 3vw, 32px);
	padding-bottom: clamp(44px, 6vw, 76px);
	border-top: 1px solid #E5E2EE;
}
.ach-pdp__similar-head {
	display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
	margin-bottom: 14px;
}
.ach-pdp__similar-head .ach-pdp__block-h { margin: 0 !important; }
.ach-pdp__similar-all {
	display: inline-flex; align-items: center; gap: 4px; flex: none;
	font-family: "Poppins", sans-serif; font-size: 13px; font-weight: 600;
	color: var(--ach-violet); text-decoration: none;
}
.ach-pdp__similar-all svg { width: 14px; height: 14px; }
.ach-pdp__similar-all:hover { color: var(--ach-ink); }
.ach-pdp__similar-rail {
	display: flex; gap: clamp(12px, 2vw, 22px);
	overflow-x: auto; scroll-snap-type: x proximity;
	scrollbar-width: none;
}
.ach-pdp__similar-rail::-webkit-scrollbar { display: none; }
.ach-pdp__similar-rail .ach-pc {
	flex: 0 0 200px; width: auto; margin: 0; scroll-snap-align: start;
}

/* ======================================================================
   PDP mobile order  (<= 900px)
   ================================================================== */
@media (max-width: 900px) {
	body.single-product .ach-pdp .ach-pdp__grid {
		display: flex; flex-direction: column;
		grid-template-columns: none; grid-template-areas: none;
		gap: 0;
	}
	.ach-pdp__gallery  { order: 1; }
	.ach-pdp__dots     { order: 2; }
	.ach-pdp__colorbar { order: 3; margin-top: 14px; }
	.ach-pdp__summary  { order: 4; margin-top: 16px; display: flex; flex-direction: column; }

	.ach-pdp__summary > .ach-pdp__title    { order: 1; }
	.ach-pdp__summary > .ach-pdp__rating   { order: 2; }
	.ach-pdp__summary > .ach-pdp__price    { order: 3; }
	.ach-pdp__summary > .ach-pdp__save     { order: 4; }
	.ach-pdp__summary > .ach-pdp__opt--size{ order: 5; }
	.ach-pdp__summary > .ach-pdp__delivery { order: 6; }
	.ach-pdp__summary > .ach-pdp__trust    { order: 7; }
	.ach-pdp__summary > .ach-pdp__short    { order: 8; }
	.ach-pdp__summary > .ach-pdp__cart     { order: 9; }

	/* compact title on phones */
	.ach-pdp__title {
		font-size: 1.15rem !important; line-height: 1.3 !important;
	}
	.ach-pdp__short { color: var(--ach-ink-soft); }

	/* full-bleed swipe gallery: one image at a time, no peek */
	.ach-pdp__gallery,
	.ach-pdp__gallery.is-single {
		margin-inline: calc(50% - 50vw) !important;
		padding-inline: 0 !important;
		gap: 0 !important;
		border-radius: 0 !important;
	}
	.ach-pdp__figure { flex: 0 0 100% !important; scroll-snap-align: center; margin: 0; }
	.ach-pdp__figure .ach-pdp__img,
	.ach-pdp__figure img,
	.ach-pdp__video {
		border-radius: 0 !important;
		aspect-ratio: 3 / 4;
	}
	.ach-pdp__flag { top: 14px; left: 14px; }

	.ach-pdp__dots { margin-top: 12px; margin-bottom: 2px; }

	.ach-pdp__hl-grid { grid-template-columns: 1fr 1fr; gap: 2px 18px; }
	.ach-pdp__similar-rail .ach-pc { flex-basis: 45%; }
}

@media (max-width: 380px) {
	.ach-pdp__hl-grid { grid-template-columns: 1fr; }
}

/* PDP overflow guard 2026-09-07 - let flex children shrink below content so the
   horizontal scrollers (thumbs, similar rail) don't blow the page width */
.ach-pdp__grid > *,
.ach-pdp__summary > *,
.ach-pdp__colorbar,
.ach-pdp__colorbar > *,
.ach-pdp__similar,
.ach-pdp__similar > *,
.ach-pdp__acc,
.ach-pdp__acc-body > * { min-width: 0; }
.ach-pdp__colorbar { width: 100%; }
.ach-pdp__thumbs,
.ach-pdp__similar-rail { max-width: 100%; }
.ach-pdp__hl-grid { min-width: 0; }
/* (gallery bleeds past .ach-pdp on purpose; no overflow clip here) */
.ach-pdp__summary { overflow-x: clip; }
/* PDP acc header 2026-09-07 - title + subtitle stack, chevron pinned right */
.ach-pdp__acc-h { justify-content: space-between; gap: 12px; align-items: flex-start; }
.ach-pdp__acc-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ach-pdp__acc-t small { font-weight: 400; font-size: 12px; color: var(--ach-ink-soft); }
.ach-pdp__acc-chev { margin-top: 4px; }
.ach-pdp__hl-grid { grid-template-columns: 1fr 1fr !important; }
@media (max-width: 330px) { .ach-pdp__hl-grid { grid-template-columns: 1fr !important; } }
/* PDP spec table 2026-09-07 (inside "All details") */
table.ach-pdp__spec { width: 100%; border-collapse: collapse; margin: 14px 0 0; }
table.ach-pdp__spec th,
table.ach-pdp__spec td {
	text-align: left; vertical-align: top; padding: 10px 0;
	border-top: 1px solid #EEECF4;
	font-family: "Poppins", sans-serif; font-size: 13.5px; font-style: normal;
}
table.ach-pdp__spec th { width: 130px; color: var(--ach-ink-soft); font-weight: 500; }
table.ach-pdp__spec td { color: var(--ach-ink); }

/* ======================================================================
   Desktop breadcrumb + spec table + checkout redesign  2026-09-07
   ================================================================== */

/* ---------- 1. breadcrumb: desktop only (phone keeps the header back arrow) ---------- */
@media (max-width: 900px) {
	.woocommerce-breadcrumb,
	body.single-product .woocommerce-breadcrumb,
	.ach-shop__crumbs { display: none !important; }
}
@media (min-width: 901px) {
	body.single-product .woocommerce-breadcrumb,
	body.woocommerce-page .woocommerce-breadcrumb,
	.ach-shop .ach-shop__crumbs {
		display: block !important;
		width: min(100% - 2 * var(--ach-gutter), var(--ach-cw));
		margin: 0 auto !important;
		padding: 20px 0 6px !important;
		font-family: "Poppins", sans-serif;
		font-size: 12.5px;
		line-height: 1.6;
		color: var(--ach-ink-soft);
	}
	.woocommerce-breadcrumb a,
	.ach-shop__crumbs a {
		color: var(--ach-ink-soft);
		text-decoration: none;
		transition: color .12s ease;
	}
	.woocommerce-breadcrumb a:hover,
	.ach-shop__crumbs a:hover { color: var(--ach-violet); }
	.woocommerce-breadcrumb .ach-crumb-current,
	.ach-shop__crumbs .ach-crumb-current { color: var(--ach-ink); font-weight: 600; }
	.woocommerce-breadcrumb .sep,
	.ach-shop__crumbs .sep { margin: 0 6px; color: #C7C3D4; }
	/* the shop page's own crumb nav already sits in the container */
	.ach-shop__crumbs { padding-top: 0 !important; margin-bottom: 4px !important; }
	body.woocommerce-checkout .woocommerce-breadcrumb,
	body.woocommerce-cart .woocommerce-breadcrumb { display: none !important; }
}

/* ---------- 2. spec table (PDP "All details"): light, roomy, no grey fill ---------- */
table.ach-pdp__spec {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid #E9E6F1;
	border-radius: 12px;
	overflow: hidden;
	margin: 16px 0 0;
}
table.ach-pdp__spec th,
table.ach-pdp__spec td {
	background: transparent !important;
	padding: 13px 18px !important;
	text-align: left;
	vertical-align: top;
	border: 0 !important;
	font-family: "Poppins", sans-serif;
	font-size: 13.5px;
	font-style: normal;
	line-height: 1.45;
}
table.ach-pdp__spec tr + tr th,
table.ach-pdp__spec tr + tr td { border-top: 1px solid #F1EFF7 !important; }
table.ach-pdp__spec th {
	width: 168px;
	color: var(--ach-ink-soft);
	font-weight: 500;
	border-right: 1px solid #F1EFF7 !important;
}
table.ach-pdp__spec td { color: var(--ach-ink); font-weight: 500; }

/* Highlights label/value grid - a touch more air, same light hairline */
.ach-pdp__hl { padding: 12px 2px !important; border-bottom-color: #F1EFF7 !important; }
.ach-pdp__hl-k { margin-bottom: 3px; }

/* ---------- 3. checkout (WooCommerce block checkout) ---------- */
body.woocommerce-checkout { background: #F2F2F6; }
body.woocommerce-checkout main.site-main { max-width: 1160px; }
body.woocommerce-checkout .entry-header .entry-title,
body.woocommerce-checkout h1.entry-title {
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: clamp(1.25rem, 1rem + 1vw, 1.6rem) !important;
	margin: 6px 0 20px !important;
	color: var(--ach-ink) !important;
}

/* NOTE: no gap here - WC lays the two columns out as 65%25 + 35%25 = 100%25,
   so any flex gap forces the sidebar to wrap. Column spacing comes from
   WC's own padding on .wc-block-components-main. */
.wc-block-checkout { align-items: flex-start !important; }
.wc-block-checkout__main { padding-right: clamp(24px, 3vw, 44px) !important; }

/* left column: every checkout step is its own white card */
.wc-block-checkout__main .wc-block-components-checkout-step,
.wc-block-checkout__main > .wp-block-woocommerce-checkout-fields-block > .wp-block-woocommerce-checkout-shipping-method-block:not(:empty),
.wc-block-checkout__main .wp-block-woocommerce-checkout-pickup-options-block:not(:empty) {
	background: #fff !important;
	border: 1px solid #E7E5EF !important;
	border-radius: 12px !important;
	padding: 20px 22px !important;
	margin: 0 0 16px !important;
	box-shadow: 0 1px 2px rgba(28,26,36,.04) !important;
}
.wc-block-checkout__main .wc-block-components-checkout-step::before,
.wc-block-checkout__main .wc-block-components-checkout-step::after { display: none !important; content: none !important; }
.wc-block-checkout__main .wc-block-components-checkout-step { border-bottom-width: 1px !important; }
.wc-block-checkout__main .wc-block-components-checkout-step__content { margin-left: 0 !important; }

/* step titles */
.wc-block-components-checkout-step__title {
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 1rem !important;
	color: var(--ach-ink) !important;
}
.wc-block-components-checkout-step__heading { margin-bottom: 4px !important; }
.wc-block-components-checkout-step__description {
	font-family: "Poppins", sans-serif;
	font-size: 12.5px;
	color: var(--ach-ink-soft) !important;
}

/* inputs */
.wc-block-components-text-input input.input-text,
.wc-block-components-text-input .wc-blocks-components-select__container,
.wc-blocks-components-select .wc-blocks-components-select__container,
.wc-block-components-address-form input,
.wc-block-checkout .components-text-control__input,
.wc-block-components-combobox .components-form-token-field__input {
	border-radius: 8px !important;
	border: 1px solid #DBD8E6 !important;
	background: #fff !important;
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus { color: var(--ach-ink); }

/* right column: the Price Details card */
.wc-block-checkout__sidebar {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 4px 0 0 !important;
}
/* replace the old outer card with mild dividers between logical blocks */
.wc-block-components-totals-coupon.wc-block-components-totals-wrapper,
.wp-block-woocommerce-checkout-order-summary-coupon-form-block.wc-block-components-totals-wrapper {
	border-top: 1px solid #EDEBF3 !important;
	padding-top: 10px !important;
	margin-top: 4px !important;
}
.wc-block-components-totals-footer-item {
	padding-bottom: 10px !important;
}
.ach-co-sidebar-buy {
	border-top: 1px solid #EDEBF3 !important;
	padding-top: 18px !important;
}
.wc-block-components-checkout-order-summary__title {
	border-bottom: 1px solid #EEECF4;
	padding: 16px 0 12px !important;
	margin-bottom: 6px !important;
}
.wc-block-components-checkout-order-summary__title-text {
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 0.8rem !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ach-ink-soft) !important;
}
.wc-block-components-order-summary-item {
	font-family: "Poppins", sans-serif;
	padding: 12px 0 !important;
}
.wc-block-components-order-summary-item__description .wc-block-components-product-name {
	font-weight: 600; color: var(--ach-ink);
}
.wc-block-components-totals-item {
	font-family: "Poppins", sans-serif !important;
	font-size: 13.5px !important;
	padding: 7px 0 !important;
	color: var(--ach-ink);
}
.wc-block-components-totals-item__label { color: var(--ach-ink-soft); }
.wc-block-components-totals-footer-item {
	border-top: 1px solid #EEECF4 !important;
	margin-top: 6px !important;
	padding-top: 13px !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 15.5px !important;
	font-weight: 700 !important;
	color: var(--ach-ink) !important;
}

/* coupon panel - quieter */
.wc-block-components-totals-coupon .wc-block-components-panel__button {
	font-family: "Poppins", sans-serif !important;
	font-size: 13px !important;
	color: var(--ach-violet) !important;
}

/* Place Order */
.wc-block-checkout__actions {
	background: #fff;
	border: 1px solid #E7E5EF;
	border-radius: 12px;
	padding: 16px 18px !important;
	margin: 0 !important;
}
.wc-block-checkout__actions_row { justify-content: stretch !important; }
button.wc-block-components-checkout-place-order-button {
	width: 100% !important;
	min-height: 52px !important;
	border-radius: 8px !important;
	background: var(--ach-btn, #5E41F3) !important;
	color: #fff !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	letter-spacing: .04em;
	text-transform: uppercase;
	box-shadow: none !important;
	transition: background-color .15s ease;
}
button.wc-block-components-checkout-place-order-button:hover {
	background: var(--ach-btn-hover, #1C1A24) !important;
}

/* trust line under the button */
.wc-block-checkout__actions::after {
	content: "Safe & secure payments \00B7  Easy returns \00B7  100% authentic";
	display: block;
	margin-top: 12px;
	text-align: center;
	font-family: "Poppins", sans-serif;
	font-size: 11.5px;
	color: var(--ach-ink-soft);
}

@media (max-width: 900px) {
	.wc-block-checkout__sidebar { position: static !important; }
	body.woocommerce-checkout main.site-main { padding-left: 12px; padding-right: 12px; }
}

/* checkout mobile summary tidy 2026-09-07 */
@media (max-width: 900px) {
	.wc-block-checkout__sidebar { padding: 18px 16px 16px !important; }
	.wc-block-components-checkout-order-summary__title {
		border-top: 0 !important; border-bottom: 0 !important;
		padding: 14px 0 !important; margin-bottom: 0 !important;
	}
	.wc-block-components-checkout-order-summary__title[aria-expanded="true"] { border-bottom: 1px solid #EEECF4 !important; margin-bottom: 6px !important; }
	.wc-block-checkout__actions { margin-top: 4px !important; }
}

/* checkout actions fix 2026-09-07 - the actions block wraps a full order summary
   on mobile; don't card-wrap all of it, and drop the duplicate top summary there */
.wc-block-checkout__actions {
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 8px 0 0 !important;
}
.wc-block-checkout__actions::after { content: none !important; }
.wc-block-checkout__actions_row { justify-content: stretch !important; position: relative; }
.wc-block-checkout__actions_row::after {
	content: "Safe \0026  secure payments \00B7  Easy returns \00B7  100\0025  authentic";
	flex-basis: 100%;
	display: block;
	margin-top: 12px;
	text-align: center;
	font-family: "Poppins", sans-serif;
	font-size: 11.5px;
	color: var(--ach-ink-soft);
}

@media (max-width: 900px) {
	/* WC repeats the summary next to the button on phones - keep that one,
	   hide the collapsible one stacked above the form */
	.wc-block-checkout__sidebar { display: none !important; }
	.wc-block-checkout__actions .wp-block-woocommerce-checkout-order-summary-block {
		background: #fff;
		border: 1px solid #E7E5EF;
		border-radius: 12px;
		padding: 6px 16px 14px !important;
		margin-bottom: 14px !important;
	}
	.wc-block-checkout__actions .wc-block-components-checkout-order-summary__title {
		border: 0 !important;
		padding: 14px 0 10px !important;
	}
}
@media (min-width: 901px) {
	.wc-block-checkout__actions .wp-block-woocommerce-checkout-order-summary-block { display: none !important; }
}

/* ach-pdp__cart flex fix - WC/theme makes form.cart a flex row, squashing the
   actions row; force it to a plain block so the two buttons fill the width */
.ach-pdp .ach-pdp__cart { display: block !important; }
.ach-pdp .ach-pdp__actions { width: 100% !important; }

/* place-order border kill - reset.css puts a 1px #cc3366 border on every button */
.wc-block-components-checkout-place-order-button,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-checkout-place-order-button:focus,
.wc-block-components-checkout-place-order-button:active { border: 0 !important; outline: 0 !important; }

/* checkout qty + savings (ACH CHECKOUT ENHANCE js) */
.ach-co-qty { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.ach-co-q {
	-webkit-appearance: none; appearance: none;
	width: 26px; height: 26px; min-width: 0; min-height: 0; flex: none;
	padding: 0; border: 1px solid #D8D5E6; border-radius: 6px;
	background: #fff; color: var(--ach-ink);
	font: 600 15px/1 "Poppins", sans-serif; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
}
.ach-co-q:hover { border-color: var(--ach-btn); color: var(--ach-btn); }
.ach-co-qn { min-width: 18px; text-align: center; font: 600 13px/1 "Poppins", sans-serif; color: var(--ach-ink); }
.ach-co-rm {
	-webkit-appearance: none; appearance: none;
	margin-left: 4px; padding: 0 4px; border: 0; background: none; min-height: 0;
	color: var(--ach-ink-soft); font: 500 12px/1 "Poppins", sans-serif;
	text-decoration: underline; cursor: pointer;
}
.ach-co-rm:hover { color: #C0392B; }
.ach-co-mrp { text-decoration: line-through; color: var(--ach-ink-soft); margin-right: 6px; font-weight: 400; }
.ach-co-savings {
	margin: 6px 0 2px; padding: 8px 12px; border-radius: 8px;
	background: #E9F7EF; color: #1E874B; text-align: center;
	font: 600 12.5px/1.3 "Poppins", sans-serif;
}
.ach-co-savings b { font-weight: 700; }
/* ach-co-q hard reset - beat .elementor-kit-8 button (violet bg + 16px 34px) */
button.ach-co-q {
	-webkit-appearance: none !important; appearance: none !important;
	width: 26px !important; height: 26px !important;
	min-width: 0 !important; min-height: 0 !important; flex: none !important;
	padding: 0 !important; margin: 0 !important;
	border: 1px solid #D8D5E6 !important; border-radius: 6px !important;
	background: #fff !important; color: var(--ach-ink) !important;
	font: 600 15px/1 "Poppins", sans-serif !important;
	letter-spacing: 0 !important; text-transform: none !important;
	box-shadow: none !important;
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
}
button.ach-co-q:hover { border-color: var(--ach-btn) !important; color: var(--ach-btn) !important; background: #fff !important; }
button.ach-co-rm {
	-webkit-appearance: none !important; appearance: none !important;
	width: auto !important; height: auto !important; min-height: 0 !important;
	margin: 0 0 0 6px !important; padding: 2px 4px !important;
	border: 0 !important; border-radius: 0 !important;
	background: none !important; color: var(--ach-ink-soft) !important;
	font: 500 12px/1 "Poppins", sans-serif !important;
	letter-spacing: 0 !important; text-transform: none !important;
	text-decoration: underline !important; box-shadow: none !important;
	display: inline-flex !important; align-items: center !important;
}
button.ach-co-rm:hover { color: #C0392B !important; background: none !important; }

/* ==========================================================================
   MY ACCOUNT / LOGIN PAGE  (2026-09-15)
   Raw default WooCommerce markup was completely unstyled on this page - huge
   theme-default entry-title (56px), grey unstyled Login/Register buttons,
   default 3px-radius inputs, red required asterisks, overlapping password-
   toggle icon. Brought in line with the rest of the site (checkout card
   treatment, GLOBAL BUTTON SYSTEM tokens, Poppins type).
   ========================================================================== */
body.woocommerce-account { background: #F2F2F6; }
body.woocommerce-account main.site-main { max-width: 1160px; }
body.woocommerce-account .entry-header .entry-title,
body.woocommerce-account h1.entry-title {
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: clamp(1.25rem, 1rem + 1vw, 1.6rem) !important;
	margin: 6px 0 20px !important;
	color: var(--ach-ink) !important;
}

/* two-column login/register grid (WC's own u-columns float layout replaced) */
body.woocommerce-account #customer_login.u-columns.col2-set {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	gap: clamp(16px, 2.4vw, 28px);
	align-items: start;
	max-width: none !important;
	margin: 0 0 40px !important;
}
@media (max-width: 767px) {
	body.woocommerce-account #customer_login.u-columns.col2-set { grid-template-columns: 1fr; }
}
body.woocommerce-account .u-column1.col-1,
body.woocommerce-account .u-column2.col-2 {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	background: #fff;
	border: 1px solid #E7E5EF;
	border-radius: 12px;
	padding: 24px 22px;
	box-shadow: 0 1px 2px rgba(28,26,36,.04);
	grid-row: 1 !important;
}
body.woocommerce-account .u-column1.col-1 { grid-column: 1 !important; }
body.woocommerce-account .u-column2.col-2 { grid-column: 2 !important; }
@media (max-width: 767px) {
	body.woocommerce-account .u-column1.col-1,
	body.woocommerce-account .u-column2.col-2 { grid-column: 1 !important; grid-row: auto !important; }
}
body.woocommerce-account #customer_login h2 {
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 1.05rem !important;
	margin: 0 0 18px !important;
	color: var(--ach-ink) !important;
}

/* form rows / labels / inputs */
body.woocommerce-account .woocommerce-form-row { margin: 0 0 16px !important; }
body.woocommerce-account .woocommerce-form-row label {
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--ach-ink);
	display: block;
	margin-bottom: 6px;
}
body.woocommerce-account .woocommerce-form-row label .required {
	color: var(--ach-btn, #5E41F3);
	text-decoration: none;
}
body.woocommerce-account .woocommerce-Input,
body.woocommerce-account input[type="text"],
body.woocommerce-account input[type="email"],
body.woocommerce-account input[type="password"] {
	width: 100% !important;
	box-sizing: border-box !important;
	border: 1px solid #DAD7E4 !important;
	border-radius: 8px !important;
	padding: 11px 14px !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 14px !important;
	color: var(--ach-ink) !important;
	background: #fff !important;
	box-shadow: none !important;
}
body.woocommerce-account .woocommerce-Input:focus {
	outline: none !important;
	border-color: var(--ach-btn, #5E41F3) !important;
	box-shadow: 0 0 0 3px rgba(94,65,243,.12) !important;
}

/* password show/hide toggle - was overlapping the input text */
body.woocommerce-account .password-input {
	position: relative;
	display: block;
}
body.woocommerce-account .password-input input {
	padding-right: 44px !important;
}
body.woocommerce-account .show-password-input {
	position: absolute !important;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	min-height: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	opacity: .55;
}
body.woocommerce-account .show-password-input:hover { opacity: .9; }

/* remember-me row + submit button, side by side */
body.woocommerce-account p.form-row:has(button[type="submit"]) {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin: 4px 0 0 !important;
}
body.woocommerce-account .woocommerce-form__label-for-checkbox {
	display: flex !important;
	align-items: center;
	gap: 8px;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	font-weight: 400 !important;
	color: var(--ach-ink-soft);
	margin: 0 !important;
	order: 1;
}
body.woocommerce-account .woocommerce-form__input-checkbox {
	accent-color: var(--ach-btn, #5E41F3);
	width: 16px;
	height: 16px;
	margin: 0 !important;
}

/* buttons - same shape + violet as the rest of the site's CTAs */
body.woocommerce-account .woocommerce-form-login__submit,
body.woocommerce-account .woocommerce-form-register__submit {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	order: 2;
	width: auto;
	min-height: var(--ach-btn-h, 50px) !important;
	height: auto !important;
	padding: 0 26px !important;
	border-radius: var(--ach-btn-radius, 8px) !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: .02em !important;
	text-transform: none !important;
	background: var(--ach-btn, #5E41F3) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color .16s ease !important;
}
body.woocommerce-account .woocommerce-form-login__submit:hover,
body.woocommerce-account .woocommerce-form-register__submit:hover {
	background: var(--ach-btn-hover, #4A2FCE) !important;
}
body.woocommerce-account .woocommerce-form-register__submit { width: 100%; }

/* lost-password link + register privacy text */
body.woocommerce-account .woocommerce-LostPassword {
	margin: 14px 0 0 !important;
}
body.woocommerce-account .woocommerce-LostPassword a {
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	color: var(--ach-btn, #5E41F3);
	text-decoration: underline;
}
body.woocommerce-account .woocommerce-privacy-policy-text p,
body.woocommerce-account #customer_login > .u-column2 p:not(.form-row) {
	font-family: "Poppins", sans-serif;
	font-size: 12.5px;
	color: var(--ach-ink-soft);
	line-height: 1.5;
	margin: 0 0 16px !important;
}
body.woocommerce-account .woocommerce-privacy-policy-link {
	color: var(--ach-btn, #5E41F3);
	text-decoration: underline;
}

/* logged-in dashboard (orders / addresses / account details) - same card
   treatment + violet nav so it doesn't jar against the styled login view */
body.woocommerce-account .woocommerce-MyAccount-navigation {
	background: #fff;
	border: 1px solid #E7E5EF;
	border-radius: 12px;
	padding: 8px;
	margin-bottom: 24px;
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
body.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; }
body.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--ach-ink);
	padding: 10px 14px;
	border-radius: 8px;
	text-decoration: none;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--ach-btn, #5E41F3);
	color: #fff;
}
body.woocommerce-account .woocommerce-MyAccount-content {
	background: #fff;
	border: 1px solid #E7E5EF;
	border-radius: 12px;
	padding: 22px;
}


/* sidebar proxy Place Order button (2026-09-15) */
.ach-co-sidebar-buy {
	width: 100% !important;
	margin-top: 18px !important;
}


/* registration first/last name pair (2026-09-15) */
body.woocommerce-account .ach-form-row-pair {
	display: flex !important;
	gap: 12px;
	align-items: flex-start;
}
body.woocommerce-account .ach-form-half {
	flex: 1 1 0;
	min-width: 0;
}
@media (max-width: 480px) {
	body.woocommerce-account .ach-form-row-pair { flex-direction: column; }
}


/* ---------------------------------------------------------------------------
   ACCOUNT DASHBOARD (2026-09-15) - custom myaccount/dashboard.php override
   ------------------------------------------------------------------------- */
.ach-dash__greeting {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 20px !important;
}
.ach-dash__hello {
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	color: var(--ach-ink);
	margin: 0 !important;
}
.ach-dash__hello strong { font-weight: 700; }
.ach-dash__logout {
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--ach-btn, #5E41F3);
	text-decoration: underline;
}
.ach-dash__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
@media (max-width: 640px) {
	.ach-dash__cards { grid-template-columns: 1fr; }
}
.ach-dash__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-align: center;
	background: #F7F6FB;
	border: 1px solid #E7E5EF;
	border-radius: 12px;
	padding: 24px 16px;
	text-decoration: none;
	transition: border-color .15s ease, background-color .15s ease;
}
.ach-dash__card:hover {
	border-color: var(--ach-btn, #5E41F3);
	background: #F1EEFC;
}
.ach-dash__card-num {
	font-family: "Poppins", sans-serif;
	font-size: 28px;
	font-weight: 700;
	color: var(--ach-btn, #5E41F3);
	line-height: 1;
}
.ach-dash__card-icon {
	width: 28px;
	height: 28px;
	color: var(--ach-btn, #5E41F3);
}
.ach-dash__card-icon svg { width: 100%; height: 100%; }
.ach-dash__card-label {
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--ach-ink);
}


/* account forms: save/submit buttons everywhere (details, addresses, password) + password fieldset (2026-09-15) */
body.woocommerce-account form.woocommerce-EditAccountForm button[type="submit"],
body.woocommerce-account form.woocommerce-address-fields button[type="submit"],
body.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: var(--ach-btn-h, 50px) !important;
	height: auto !important;
	padding: 0 26px !important;
	border-radius: var(--ach-btn-radius, 8px) !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: .02em !important;
	text-transform: none !important;
	background: var(--ach-btn, #5E41F3) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color .16s ease !important;
}
body.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button:hover {
	background: var(--ach-btn-hover, #4A2FCE) !important;
}
body.woocommerce-account fieldset {
	border: 1px solid #E7E5EF !important;
	border-radius: 10px !important;
	padding: 18px 18px 4px !important;
	margin: 6px 0 18px !important;
}
body.woocommerce-account fieldset legend {
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	color: var(--ach-ink) !important;
	padding: 0 8px !important;
	margin-left: -8px;
}


/* account content headings (Addresses page h2s etc.) (2026-09-15) */
body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3 {
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 1.05rem !important;
	margin: 0 0 4px !important;
	color: var(--ach-ink) !important;
}
body.woocommerce-account address {
	font-family: "Poppins", sans-serif;
	font-style: normal;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--ach-ink-soft);
}


/* account content: anchor-styled buttons too, e.g. empty-orders 'Browse products' (2026-09-15) */
body.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-Button.button,
body.woocommerce-account .woocommerce-MyAccount-content a.button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: var(--ach-btn-h, 50px) !important;
	height: auto !important;
	padding: 0 26px !important;
	border-radius: var(--ach-btn-radius, 8px) !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: .02em !important;
	text-transform: none !important;
	text-decoration: none !important;
	background: var(--ach-btn, #5E41F3) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color .16s ease !important;
}
body.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-Button.button:hover,
body.woocommerce-account .woocommerce-MyAccount-content a.button:hover {
	background: var(--ach-btn-hover, #4A2FCE) !important;
	color: #fff !important;
}


/* ---------------------------------------------------------------------------
   HEADER ACCOUNT DROPDOWN (2026-09-15)
   ------------------------------------------------------------------------- */
.ach-account-menu { position: relative; }
.ach-account-trigger { background: none; border: 0; cursor: pointer; padding: 0; }
.ach-account-dropdown {
	position: absolute;
	top: 100%;
	right: 0;
	margin-top: 12px;
	background: #fff;
	border: 1px solid #E7E5EF;
	border-radius: 12px;
	box-shadow: 0 10px 28px rgba(28,26,36,.14);
	min-width: 210px;
	padding: 8px;
	z-index: 60;
}
.ach-account-dropdown[hidden] { display: none !important; }
.ach-account-dropdown__hi {
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	color: var(--ach-ink-soft);
	padding: 8px 12px 10px;
	margin: 0 0 4px !important;
	border-bottom: 1px solid #F0EEF6;
}
.ach-account-dropdown__hi strong { color: var(--ach-ink); font-weight: 700; }
.ach-account-dropdown a {
	display: block;
	padding: 10px 12px;
	border-radius: 8px;
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--ach-ink);
	text-decoration: none;
}
.ach-account-dropdown a:hover { background: #F7F6FB; }
.ach-account-dropdown__logout { color: #C0392B !important; margin-top: 4px; border-top: 1px solid #F0EEF6; padding-top: 12px !important; border-radius: 0 0 8px 8px; }


/* Google sign-in button polish (2026-09-15) */
.ach-social-login {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid #F0EEF6;
}
.ach-social-login .nsl-heading {
	margin: 0 0 10px !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	color: var(--ach-ink-soft) !important;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.ach-social-login .nsl-container-buttons { width: 100%; }
.ach-social-login a[data-provider] {
	width: 100% !important;
	display: block !important;
}
.ach-social-login .nsl-button {
	width: 100% !important;
	box-sizing: border-box !important;
	border: 1px solid #DAD7E4 !important;
	border-radius: 8px !important;
	min-height: 46px !important;
}


/* ======================================================================
   CHECKOUT ORDER SUMMARY ITEMS - consistent row alignment + rounded
   thumbnails (2026-09-15). Fixes: divider lines crowding the price
   numbers, inconsistent image sizing, no border-radius on thumbnails.
   ================================================================== */
.wc-block-components-order-summary-item {
	display: flex !important;
	align-items: flex-start !important;
	gap: 12px !important;
	padding: 14px 0 !important;
	border-bottom: 1px solid #EEECF4 !important;
}
.wc-block-components-order-summary__content .wc-block-components-order-summary-item:last-child {
	border-bottom: 0 !important;
}
.wc-block-components-order-summary-item__image {
	flex: 0 0 56px !important;
	width: 56px !important;
	height: 56px !important;
}
.wc-block-components-order-summary-item__image img {
	width: 56px !important;
	height: 56px !important;
	object-fit: cover !important;
	border-radius: 10px !important;
	display: block !important;
}
.wc-block-components-order-summary-item__description {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	padding: 2px 14px 0 0 !important;
}
.wc-block-components-order-summary-item__total-price {
	flex: 0 0 auto !important;
	padding: 2px 0 0 !important;
	text-align: right !important;
	white-space: nowrap !important;
}

.wc-block-components-order-summary-item__image img {
	max-width: 56px !important;
	max-height: 56px !important;
}


/* ======================================================================
   MY ACCOUNT - ORDERS TABLE action buttons (2026-09-15). The global
   a.button CTA styling (min-height 50px, wide padding) made View/Pay/
   Cancel huge and overlap in the narrow Actions column - shrink them
   here specifically, scoped tighter than the global rule so it wins.
   ================================================================== */
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 8px !important;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.button {
	min-height: 0 !important;
	height: auto !important;
	padding: 7px 14px !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: .01em !important;
	border-radius: 6px !important;
	margin: 0 !important;
	white-space: nowrap !important;
}


/* ======================================================================
   MY ACCOUNT - ORDERS LIST (2026-09-15). Status pill colours + a real
   card boundary per order on mobile (core's small-screen CSS only added
   a faint 2.5% zebra tint, so orders visually ran into each other).
   ================================================================== */
.ach-order-status {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border-radius: 999px;
	font-family: "Poppins", sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	background: #EEECF4;
	color: var(--ach-ink);
	white-space: nowrap;
}
.ach-order-status--processing,
.ach-order-status--completed,
.ach-order-status--on-hold {
	background: #E4F5EC;
	color: #1E8E5A;
}
.ach-order-status--cancelled,
.ach-order-status--failed,
.ach-order-status--pending,
.ach-order-status--refunded {
	background: #FCEAE8;
	color: #C0392B;
}

@media (max-width: 768px) {
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive {
		border: 0 !important;
	}
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr.woocommerce-orders-table__row {
		display: block !important;
		background: #fff !important;
		border: 1px solid #E7E5EF !important;
		border-left: 4px solid #DAD7E4 !important;
		border-radius: 10px !important;
		padding: 4px 16px !important;
		margin: 0 0 14px !important;
	}
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr.woocommerce-orders-table__row--status-processing,
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr.woocommerce-orders-table__row--status-completed,
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr.woocommerce-orders-table__row--status-on-hold {
		border-left-color: #1E8E5A !important;
	}
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr.woocommerce-orders-table__row--status-cancelled,
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr.woocommerce-orders-table__row--status-failed,
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr.woocommerce-orders-table__row--status-pending {
		border-left-color: #C0392B !important;
	}
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr td,
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr th {
		background: transparent !important;
		padding: 10px 0 !important;
		border-bottom: 1px solid #F1EFF6 !important;
		font-family: "Poppins", sans-serif !important;
		font-size: 13.5px !important;
	}
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr td::before,
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr th::before {
		color: var(--ach-ink-soft) !important;
	}
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr td:last-child,
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr th:last-child {
		border-bottom: 0 !important;
	}
	body.woocommerce-account table.woocommerce-orders-table.shop_table_responsive tr td.woocommerce-orders-table__cell-order-actions {
		display: flex !important;
		flex-wrap: wrap !important;
		gap: 8px !important;
		justify-content: flex-end !important;
	}
}


/* ======================================================================
   CHECKOUT MOBILE PASS (2026-09-15). Three real bugs found live:
   1) .wc-block-components-order-summary__content computes as
      display:table in the mobile collapsed-panel context, so it grows
      to fit its content instead of the card width - prices overflowed
      past the card edge. Force block layout so it respects the width.
   2) Each checkout step (contact/billing/payment) was a full white card
      (border+radius+22px padding) - stacked on a narrow phone this reads
      as boxes inside boxes eating width. Flatten to full-width sections
      separated by a plain divider below 768px.
   3) The "Checkout" H1 sat only 6px under the sticky search bar.
   ================================================================== */
.wc-block-components-order-summary__content {
	display: block !important;
	width: 100% !important;
}

@media (max-width: 767px) {
	body.woocommerce-checkout h1.entry-title,
	body.woocommerce-cart h1.entry-title {
		margin-top: 26px !important;
	}

	.wc-block-checkout__main .wc-block-components-checkout-step,
	.wc-block-checkout__main > .wp-block-woocommerce-checkout-fields-block > .wp-block-woocommerce-checkout-shipping-method-block:not(:empty),
	.wc-block-checkout__main .wp-block-woocommerce-checkout-pickup-options-block:not(:empty) {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		padding: 18px 0 !important;
		margin: 0 !important;
		border-bottom: 1px solid #E7E5EF !important;
	}
	.wc-block-checkout__main .wc-block-components-checkout-step:first-child {
		padding-top: 4px !important;
	}
	.wc-block-checkout__main .wc-block-components-checkout-step:last-child {
		border-bottom: 0 !important;
	}

	.wc-block-components-order-summary-item__description {
		padding-right: 10px !important;
	}
	.wc-block-components-order-summary-item__total-price {
		padding-right: 2px !important;
	}
}


/* ======================================================================
   CHECKOUT MOBILE PASS 2 (2026-09-15). Follow-ups from live feedback:
   - h1 fix above corrected (was scoped to a .entry-header ancestor that
     doesn't exist on this page - the real wrapper is .page-header - so
     it silently never matched and the base 6px rule kept winning).
   - Drop the long per-item description in the order summary on mobile,
     name only.
   - Drop the sidebar's own card border/background on mobile (the step
     cards above it were already flattened); keep just a mild top border
     above the coupon/subtotal/total cluster.
   - Shrink + centre the newsletter/marketing checkboxes.
   - Trim the page's own side gutter so content gets more width.
   ================================================================== */
@media (max-width: 767px) {
	body.woocommerce-checkout main.site-main,
	body.woocommerce-cart main.site-main {
		padding-left: 8px !important;
		padding-right: 8px !important;
	}

	.wc-block-components-product-metadata__description {
		display: none !important;
	}

	.wc-block-checkout__sidebar {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		padding: 4px 0 0 !important;
	}
	.wc-block-components-totals-coupon.wc-block-components-totals-wrapper,
	.wp-block-woocommerce-checkout-order-summary-coupon-form-block.wc-block-components-totals-wrapper {
		border-top: 1px solid #EDEBF3 !important;
		padding-top: 10px !important;
		margin-top: 4px !important;
	}
	.wc-block-components-totals-footer-item {
		border-top: 1px solid #EDEBF3 !important;
		padding-bottom: 10px !important;
	}

	.wc-block-components-checkbox__input {
		width: 16px !important;
		min-width: 16px !important;
		height: 16px !important;
	}
	.wc-block-components-checkbox__mark {
		width: 12px !important;
		height: 12px !important;
		top: 2px !important;
		left: 2px !important;
	}
	label:has(> .wc-block-components-checkbox__input) {
		align-items: center !important;
		gap: 8px !important;
	}
}

@media (max-width: 767px) {
	.wp-block-woocommerce-checkout-order-summary-block,
	.checkout-order-summary-block-fill {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		padding: 0 !important;
	}
}


/* ======================================================================
   CHECKOUT MOBILE PASS 3 (2026-09-15).
   - Order summary still had two stacked 16px+16px wrapper paddings left
     over from its own card design (~40px lost each side) - cut both.
   - H1-to-first-step gap was 62px (26px H1 margin-top + 20px H1 margin-
     bottom + the step's own spacing) - trim the H1's own bottom margin.
   - Newsletter opt-in checkbox sat flush against the email input.
   - Added a "Sign up" prompt next to "Log in" (JS: achinova-custom.js)
     that checks the existing "Create an account" box instead of a full
     inline registration form - accountsystem forms are already handled.
   ================================================================== */
@media (max-width: 767px) {
	.wp-block-woocommerce-checkout-order-summary-block {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	.wc-block-components-order-summary {
		padding-left: 2px !important;
		padding-right: 2px !important;
	}
	body.woocommerce-checkout h1.entry-title {
		margin-bottom: 4px !important;
	}
	.wc-block-components-address-form__hostinger-reach-newsletter-optin {
		margin-top: 12px !important;
	}
}

.ach-signup-prompt {
	all: unset !important;
	display: inline !important;
	box-sizing: content-box !important;
	margin-left: 10px !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	line-height: normal !important;
	color: var(--ach-btn, #5E41F3) !important;
	text-decoration: underline !important;
	cursor: pointer !important;
}

.ach-signup-prompt::before {
	content: "\00B7";
	margin-right: 10px;
	text-decoration: none;
	color: var(--ach-ink-soft);
}


/* ==========================================================================
   UNIFIED LOGIN/SIGNUP GATE + GOOGLE WELCOME MODAL (2026-09-15)
   Markup + AJAX: inc/ach-account.php. JS: achinova-custom.js (ACH AUTH GATE
   / ACH WELCOME MODAL). Gate hides the native two-column login/register
   grid until the visitor's email/phone is checked, then reveals just the
   relevant column, pre-filled, single-column and centred.
   ========================================================================== */
.ach-auth-gate {
	max-width: 420px;
	margin: 0 auto 28px;
	background: #fff;
	border: 1px solid #E7E5EF;
	border-radius: 12px;
	padding: 30px 26px;
	text-align: center;
}
.ach-auth-gate__title {
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	font-size: 1.4rem;
	margin: 0 0 6px;
	color: var(--ach-ink);
}
.ach-auth-gate__sub {
	font-family: "Poppins", sans-serif;
	font-size: 13.5px;
	color: var(--ach-ink-soft);
	margin: 0 0 20px;
}
.ach-auth-gate__google { margin-bottom: 16px; }
.ach-auth-gate__google .ach-social-login { border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important; }
.ach-auth-gate__divider { position: relative; margin: 18px 0; text-align: center; }
.ach-auth-gate__divider::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 50%;
	border-top: 1px solid #E7E5EF;
}
.ach-auth-gate__divider span {
	position: relative;
	background: #fff;
	padding: 0 12px;
	font-family: "Poppins", sans-serif;
	font-size: 12px;
	color: var(--ach-ink-soft);
	text-transform: uppercase;
	letter-spacing: .05em;
}
.ach-auth-gate__label {
	display: block;
	text-align: left;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--ach-ink);
	margin-bottom: 6px;
}
.ach-auth-gate__input {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #DAD7E4;
	border-radius: 8px;
	padding: 13px 14px;
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	color: var(--ach-ink);
	margin-bottom: 14px;
	background: #fff;
}
.ach-auth-gate__input:focus {
	outline: none;
	border-color: var(--ach-btn, #5E41F3);
	box-shadow: 0 0 0 3px rgba(94, 65, 243, .12);
}
.ach-auth-gate__error {
	color: #C0392B;
	font-family: "Poppins", sans-serif;
	font-size: 12.5px;
	text-align: left;
	margin: -8px 0 12px;
}
.ach-auth-gate__continue {
	width: 100% !important;
	min-height: var(--ach-btn-h, 50px) !important;
	height: auto !important;
	padding: 0 20px !important;
	border-radius: var(--ach-btn-radius, 8px) !important;
	background: var(--ach-btn, #5E41F3) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: none !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	cursor: pointer;
	transition: background-color .16s ease;
}
.ach-auth-gate__continue:hover { background: var(--ach-btn-hover, #4A2FCE); }
.ach-auth-gate__continue:disabled { opacity: .6; cursor: default; }

.ach-auth-gate__notice {
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	color: var(--ach-ink-soft);
	background: #F7F6FB;
	border-radius: 8px;
	padding: 10px 12px;
	margin: 0 0 16px;
	text-align: left;
}

.ach-auth-back {
	all: unset !important;
	display: flex !important;
	align-items: center !important;
	gap: 6px !important;
	margin: 0 0 16px !important;
	font-family: "Poppins", sans-serif !important;
	font-size: 13px !important;
	color: var(--ach-btn, #5E41F3) !important;
	text-decoration: underline !important;
	cursor: pointer !important;
}

/* native two-column grid: hidden pre-check, single-column post-check.
   Matches (and beats) the specificity of the pre-existing
   body.woocommerce-account #customer_login.u-columns.col2-set rule so
   these states reliably win regardless of source order. */
body.woocommerce-account #customer_login.u-columns.col2-set.ach-hidden-initial {
	display: none !important;
}
body.woocommerce-account #customer_login.u-columns.col2-set.ach-resolved {
	display: block !important;
	max-width: 420px;
	margin: 0 auto !important;
}
body.woocommerce-account #customer_login.u-columns.col2-set.ach-resolved .u-column1,
body.woocommerce-account #customer_login.u-columns.col2-set.ach-resolved .u-column2 { display: none !important; }
body.woocommerce-account #customer_login.u-columns.col2-set.ach-resolved.ach-show-login .u-column1 { display: block !important; }
body.woocommerce-account #customer_login.u-columns.col2-set.ach-resolved.ach-show-register .u-column2 { display: block !important; }

/* ==========================================================================
   GOOGLE WELCOME MODAL
   ========================================================================== */
.ach-welcome-modal { position: fixed; inset: 0; z-index: 9999; }
.ach-welcome-modal[hidden] { display: none !important; }
.ach-welcome-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(28, 26, 36, .5);
}
.ach-welcome-modal__card {
	position: relative;
	max-width: 380px;
	margin: 10vh auto 0;
	background: #fff;
	border-radius: 16px;
	padding: 34px 28px 28px;
	text-align: center;
	box-shadow: 0 12px 40px rgba(28, 26, 36, .25);
}
.ach-welcome-modal__close {
	position: absolute !important;
	top: 14px !important;
	right: 14px !important;
	width: 28px !important;
	height: 28px !important;
	min-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
	font-size: 22px !important;
	line-height: 1 !important;
	color: var(--ach-ink-soft) !important;
	cursor: pointer !important;
}
.ach-welcome-modal__title {
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	font-size: 1.25rem;
	margin: 4px 0 8px;
	color: var(--ach-ink);
}
.ach-welcome-modal__text {
	font-family: "Poppins", sans-serif;
	font-size: 13.5px;
	color: var(--ach-ink-soft);
	margin: 0 0 22px;
}
.ach-welcome-modal__google {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 50px !important;
	border-radius: var(--ach-btn-radius, 8px) !important;
	background: var(--ach-btn, #5E41F3) !important;
	color: #fff !important;
	text-decoration: none !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	margin-bottom: 14px !important;
	transition: background-color .16s ease;
}
.ach-welcome-modal__google:hover { background: var(--ach-btn-hover, #4A2FCE); }
.ach-welcome-modal__alt {
	display: inline-block;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	color: var(--ach-btn, #5E41F3);
	text-decoration: underline;
}
@media (max-width: 480px) {
	.ach-welcome-modal__card { margin: 8vh 16px 0; max-width: none; }
}
