/**
 * Commaperfume — Comma Perfume store design
 */

:root {
	--cp-olive: #000000;
	--cp-olive-dark: #4a5830;
	--cp-olive-hover: #6b7a48;
	--cp-gold: #b8956e;
	--cp-gold-light: #c5a059;
	--cp-coral: #e85d4c;
	--cp-red-badge: #d35959;
	--cp-white: #ffffff;
	--cp-off-white: #f8f8f6;
	--cp-text: #222222;
	--cp-text-muted: #666666;
	--cp-border: #e8e8e0;
	--cp-container: 1320px;
	--cp-font-sans: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--cp-font-script: "Allura", "Cormorant Garamond", Georgia, serif;
	--cp-header-h: 80px;
	--cp-topbar-h: 38px;
	--cp-mobile-topbar-h: 54px;
}

/* Base overrides */
.cp-niche-theme {
	font-family: var(--cp-font-sans);
	color: var(--cp-text);
	background: var(--cp-white);
}

.cp-niche-theme #site-header,
.cp-niche-theme .site-header,
.cp-niche-theme #site-footer.site-footer {
	display: none !important;
}

.cp-container {
	width: 100%;
	max-width: var(--cp-container);
	margin: 0 auto;
	padding: 0 20px;
}

/* Logo */
.cp-logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	line-height: 1;
	flex-shrink: 0;
}

.cp-logo__text {
	display: block;
	font-family: var(--cp-font-script);
	font-size: clamp(1.45rem, 4vw, 2.15rem);
	font-weight: 400;
	color: var(--cp-gold-light);
	white-space: nowrap;
	letter-spacing: 0.01em;
}

.cp-logo__img {
	display: block;
	height: 46px;
	width: auto;
	max-width: min(220px, 28vw);
	object-fit: contain;
}

.cp-logo--sm { font-size: 1.25rem; }
.cp-logo--footer {
	display: block;
	margin-bottom: 12px;
	font-family: var(--cp-font-script);
	font-size: 2rem;
	color: var(--cp-gold-light);
}
.cp-logo--inline {
	display: block;
	text-align: center;
	margin: 8px 0 16px;
	font-family: var(--cp-font-script);
	font-size: 2.5rem;
	color: var(--cp-gold);
}

/* Top bar */
.cp-top-bar {
	background: var(--cp-olive);
	color: var(--cp-white);
	font-size: 12px;
	min-height: var(--cp-topbar-h);
}

.cp-top-bar__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 12px;
	min-height: var(--cp-topbar-h);
}

.cp-top-bar__email {
	color: var(--cp-white);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	justify-self: start;
}

.cp-top-bar__promo {
	margin: 0;
	text-align: center;
	justify-self: center;
	font-weight: 500;
}

.cp-top-bar__currency {
	justify-self: end;
}

/* Currency switcher */
.cp-currency-switch {
	position: relative;
	display: inline-block;
	vertical-align: middle;
}

.cp-currency-switch__toggle {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 34px;
	padding: 6px 12px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.22);
	color: var(--cp-white);
	font-family: var(--cp-font-sans);
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	line-height: 1;
	transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.cp-currency-switch__toggle:hover,
.cp-currency-switch.is-open .cp-currency-switch__toggle {
	background: rgba(255, 255, 255, 0.14);
	border-color: rgba(255, 255, 255, 0.35);
}

.cp-currency-switch__current {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.cp-currency-switch__flag {
	display: block;
	width: 22px;
	height: 16px;
	object-fit: cover;
	border-radius: 2px;
	flex-shrink: 0;
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.cp-currency-switch__code {
	letter-spacing: 0.06em;
	font-size: 12px;
}

.cp-currency-switch__caret {
	flex-shrink: 0;
	opacity: 0.85;
	transition: transform 0.2s ease;
}

.cp-currency-switch.is-open .cp-currency-switch__caret {
	transform: rotate(180deg);
}

.cp-currency-switch__menu {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	min-width: 168px;
	margin: 0;
	padding: 6px;
	list-style: none;
	background: var(--cp-white);
	border: 1px solid var(--cp-border);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
	z-index: 2000;
	overflow: hidden;
}

.cp-currency-switch__menu[hidden] {
	display: none !important;
}

.cp-currency-switch.is-open .cp-currency-switch__menu {
	display: block;
}

.cp-currency-switch__item + .cp-currency-switch__item {
	border-top: 1px solid var(--cp-border);
}

.cp-currency-switch__option {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 11px 12px;
	color: var(--cp-text);
	text-decoration: none;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	transition: background 0.15s ease, color 0.15s ease;
}

.cp-currency-switch__option-main {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.cp-currency-switch__option:hover {
	background: var(--cp-off-white);
	color: var(--cp-text);
}

.cp-currency-switch__option.is-active {
	background: var(--cp-off-white);
	color: var(--cp-gold);
}

.cp-currency-switch__check {
	flex-shrink: 0;
	color: var(--cp-gold);
}

.cp-mobile-drawer__currency {
	margin: 0 0 16px;
	padding: 0 0 16px;
	border-bottom: 1px solid var(--cp-border);
}

.cp-mobile-drawer__currency .cp-currency-switch {
	display: block;
	width: 100%;
}

.cp-mobile-drawer__currency .cp-currency-switch__toggle {
	display: flex;
	color: var(--cp-text);
	width: 100%;
	justify-content: space-between;
	padding: 10px 14px;
	background: var(--cp-off-white);
	border: 1px solid var(--cp-border);
	box-sizing: border-box;
}

.cp-mobile-drawer__currency .cp-currency-switch__toggle:hover,
.cp-mobile-drawer__currency .cp-currency-switch.is-open .cp-currency-switch__toggle {
	background: var(--cp-white);
	border-color: var(--cp-gold);
	box-shadow: 0 0 0 1px rgba(184, 149, 110, 0.15);
}

.cp-mobile-drawer__currency .cp-currency-switch__menu {
	position: static;
	display: block;
	box-shadow: none;
	border: 1px solid var(--cp-border);
	margin-top: 8px;
	padding: 6px;
	width: 100%;
	box-sizing: border-box;
}

/* Hide legacy WOOCS ddslick in top bar if present */
.cp-top-bar .woocommerce-currency-switcher-form,
.cp-top-bar .dd-container,
.cp-top-bar .dd-select {
	display: none !important;
}

.cp-currency-label {
	color: var(--cp-white);
	font-size: 13px;
	font-weight: 600;
}

/* Sticky site header (top bar + main nav together) */
.cp-site-header-wrap {
	position: sticky;
	top: 0;
	z-index: 1100;
	background: var(--cp-white);
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.2s ease;
}

.admin-bar .cp-site-header-wrap {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .cp-site-header-wrap {
		top: 46px;
	}
}

/* Header */
.cp-header {
	background: var(--cp-white);
	border-bottom: 1px solid var(--cp-border);
	position: relative;
	box-shadow: none;
}

.cp-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: var(--cp-header-h);
}

.cp-header__brand {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	min-width: 0;
}

.cp-nav {
	flex: 1 1 auto;
	display: flex;
	justify-content: center;
	min-width: 0;
}

.cp-nav__list {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	gap: 0 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cp-nav__item {
	position: static;
}

.cp-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	text-decoration: none;
	color: var(--cp-text);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 28px 2px;
	white-space: nowrap;
	transition: color 0.2s;
}

.cp-nav__link:hover,
.cp-nav__item.current-menu-item > .cp-nav__link {
	color: var(--cp-olive);
}

.cp-nav__caret {
	flex-shrink: 0;
	opacity: 0.7;
}

/* Mega menu */
.cp-mega-menu {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--cp-white);
	border-top: 1px solid var(--cp-border);
	border-bottom: 1px solid var(--cp-border);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
	z-index: 1001;
}

.cp-nav__item--has-mega:hover .cp-mega-menu,
.cp-nav__item--has-mega:focus-within .cp-mega-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.cp-mega-menu__inner {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	padding: 28px 20px 32px;
}

.cp-mega-menu__col h4 {
	margin: 0 0 14px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cp-olive);
}

.cp-mega-menu__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cp-mega-menu__col li {
	margin-bottom: 8px;
}

.cp-mega-menu__col a {
	text-decoration: none;
	color: var(--cp-text);
	font-size: 13px;
	font-weight: 500;
	transition: color 0.15s;
}

.cp-mega-menu__col a:hover {
	color: var(--cp-olive);
}

.cp-header-actions {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
}

.cp-action-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	color: var(--cp-gold);
	text-decoration: none;
	border: none;
	background: transparent;
	cursor: pointer;
}

.cp-cart-link {
	width: auto;
	gap: 8px;
	padding: 0 4px;
	font-size: 12px;
	font-weight: 600;
	color: var(--cp-gold);
}

.cp-cart-link__total {
	font-size: 12px;
	font-weight: 600;
	color: var(--cp-text);
	white-space: nowrap;
}

.cp-cart-link__total .woocommerce-Price-amount {
	color: inherit;
}

.cp-cart-link__icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	flex-shrink: 0;
}

.cp-cart-link__qty {
	position: absolute;
	top: -4px;
	right: -6px;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	font-size: 10px;
	font-weight: 700;
	line-height: 16px;
	text-align: center;
	color: var(--cp-white);
	background: #000000;
	border-radius: 50%;
}

.cp-cart-link__count {
	display: none;
}

.cp-cart-link__label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: capitalize;
}

.cp-badge {
	position: absolute;
	top: -4px;
	right: -6px;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	font-size: 10px;
	font-weight: 700;
	line-height: 16px;
	text-align: center;
	color: var(--cp-white);
	background: #3b82f6;
	border-radius: 50%;
}

.cp-menu-toggle {
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	width: 40px;
	height: 40px;
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
	flex-shrink: 0;
}

.cp-menu-toggle__bar {
	display: block;
	width: 22px;
	height: 2px;
	background: #2e3033;
	border-radius: 1px;
}

.cp-search-panel {
	border-top: 1px solid var(--cp-border);
	padding: 16px 0;
	background: var(--cp-off-white);
}

.cp-search-panel[hidden] {
	display: none !important;
}

/* Side tab — hidden to match reference layout */
.cp-side-tab {
	display: none !important;
}

/* Hero — diagonal stripes like reference */
.cp-hero {
	margin-bottom: 0;
	overflow: hidden;
}

.cp-hero__stripes {
	display: flex;
	height: clamp(260px, 38vw, 460px);
	overflow: hidden;
	background: #111;
}

.cp-hero__stripe {
	flex: 1 1 0;
	margin: 0 -3%;
	transform: skewX(-8deg);
	overflow: hidden;
	position: relative;
}

.cp-hero__stripe-inner {
	position: absolute;
	inset: -10% -20%;
	background-size: cover;
	background-position: center;
	transform: skewX(8deg) scale(1.08);
}

.cp-hero__stripe--1 .cp-hero__stripe-inner { background-position: 30% center; }
.cp-hero__stripe--2 .cp-hero__stripe-inner { background-position: 40% center; }
.cp-hero__stripe--3 .cp-hero__stripe-inner { background-position: 50% center; }
.cp-hero__stripe--4 .cp-hero__stripe-inner { background-position: 60% center; }
.cp-hero__stripe--5 .cp-hero__stripe-inner { background-position: 70% center; }

/* Mobile drawer */
.cp-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 1100;
}

.cp-overlay[hidden],
.cp-mobile-drawer[hidden] {
	display: none !important;
}

.cp-mobile-drawer {
	position: fixed;
	top: 0;
	left: 0;
	width: min(320px, 88vw);
	height: 100%;
	background: var(--cp-white);
	z-index: 1200;
	overflow-y: auto;
	padding: 20px;
	box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
}

.cp-mobile-drawer__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
}

.cp-drawer-close {
	border: none;
	background: none;
	font-size: 28px;
	cursor: pointer;
	line-height: 1;
}

.cp-mobile-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cp-mobile-nav__list a {
	display: block;
	padding: 12px 0;
	border-bottom: 1px solid var(--cp-border);
	text-decoration: none;
	color: var(--cp-text);
	font-weight: 600;
	font-size: 13px;
	text-transform: uppercase;
}

.cp-mobile-nav__sub {
	list-style: none;
	margin: 0 0 8px;
	padding: 0 0 0 16px;
}

.cp-mobile-nav__sub a {
	font-size: 12px;
	font-weight: 500;
	text-transform: none;
	border-bottom: none;
	padding: 8px 0;
	color: var(--cp-text-muted);
}

/* Main */
.cp-main {
	min-height: 50vh;
}

.cp-main--page .cp-page-title {
	text-align: center;
	font-size: clamp(1.5rem, 4vw, 2rem);
	margin: 32px 0 24px;
	font-weight: 700;
}

/* Sections */
.cp-section {
	padding: 48px 20px;
	max-width: var(--cp-container);
	margin: 0 auto;
}

.cp-section--featured {
	padding-top: 36px;
}

.cp-category-banners {
	padding: 8px 0 48px;
	background: var(--cp-white);
}

.cp-category-banners__inner {
	max-width: var(--cp-container);
}

.cp-section__title {
	text-align: center;
	font-size: clamp(1.35rem, 3.5vw, 1.75rem);
	font-weight: 700;
	margin: 0 0 8px;
	color: var(--cp-text);
}

.cp-section__subtitle {
	text-align: center;
	color: var(--cp-text-muted);
	margin: 0 0 32px;
	font-size: 15px;
}

.cp-section__cta {
	text-align: center;
	margin-top: 28px;
}

/* Buttons */
.cp-btn {
	display: inline-block;
	padding: 14px 32px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
	border: none;
	cursor: pointer;
	transition: background 0.2s, transform 0.15s;
}

.cp-btn--primary,
.cp-btn--olive {
	background: var(--cp-olive);
	color: var(--cp-white);
}

.cp-btn--primary:hover,
.cp-btn--olive:hover {
	background: var(--cp-olive-hover);
	color: var(--cp-white);
}

.cp-btn--coral {
	background: var(--cp-coral);
	color: var(--cp-white);
}

.cp-btn--coral:hover {
	background: #d94a3a;
	color: var(--cp-white);
}

/* Category banners — 3-column lifestyle tiles like reference */
.cp-category-banners__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	margin: 0;
	padding: 0;
}

@media (min-width: 768px) {
	.cp-category-banners__grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 10px;
	}

	.cp-cat-banner {
		aspect-ratio: 1 / 1;
		padding: 32px 16px 40px;
	}
}

.cp-cat-banner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	aspect-ratio: 2 / 1;
	padding: 24px 16px 28px;
	background-size: cover;
	background-position: center;
	text-decoration: none;
	color: var(--cp-white);
	text-align: center;
	overflow: hidden;
	transition: transform 0.25s ease;
}

.cp-cat-banner:hover {
	transform: scale(1.01);
	color: var(--cp-white);
}

.cp-cat-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.38);
	transition: background 0.25s ease;
}

.cp-cat-banner:hover::before {
	background: rgba(0, 0, 0, 0.48);
}

.cp-cat-banner > * {
	position: relative;
	z-index: 1;
}

.cp-cat-banner__promo {
	position: absolute;
	left: 0;
	top: 50%;
	z-index: 2;
	transform: translateY(-50%);
	padding: 14px 7px;
	background: var(--cp-olive-dark);
	color: var(--cp-white);
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.08em;
	writing-mode: vertical-rl;
	text-orientation: mixed;
}

.cp-cat-banner__title {
	margin-top: 8px;
	font-size: clamp(1.65rem, 3.2vw, 2.25rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cp-cat-banner__sub {
	margin: 10px 0 18px;
	max-width: 210px;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;
	opacity: 0.96;
}

.cp-cat-banner__btn {
	display: inline-block;
	padding: 11px 26px;
	background: var(--cp-white);
	color: var(--cp-olive-dark);
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: background 0.2s ease, color 0.2s ease;
}

.cp-cat-banner:hover .cp-cat-banner__btn {
	background: var(--cp-off-white);
	color: var(--cp-olive);
}

/* Search By tabs */
.cp-tabs__nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-bottom: 24px;
}

.cp-tabs__btn {
	padding: 14px 28px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	border: 2px solid var(--cp-text);
	background: var(--cp-white);
	color: var(--cp-text);
	cursor: pointer;
	transition: all 0.2s;
}

.cp-tabs__btn.is-active {
	background: var(--cp-text);
	color: var(--cp-white);
}

.cp-tabs__desc {
	text-align: center;
	max-width: 640px;
	margin: 0 auto 28px;
	color: var(--cp-text-muted);
}

.cp-tabs__panel[hidden] {
	display: none !important;
}

.cp-brand-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-bottom: 28px;
}

@media (min-width: 576px) {
	.cp-brand-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 992px) {
	.cp-brand-grid { grid-template-columns: repeat(5, 1fr); }
}

.cp-brand-item {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 72px;
	padding: 16px;
	border: 1px solid var(--cp-border);
	text-decoration: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.cp-brand-item:hover {
	border-color: var(--cp-olive);
	box-shadow: 0 4px 12px rgba(75, 83, 32, 0.12);
}

.cp-brand-item__name {
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-text);
	text-align: center;
}

.cp-chip-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-bottom: 28px;
}

.cp-chip {
	padding: 10px 18px;
	border: 1px solid var(--cp-border);
	border-radius: 4px;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	color: var(--cp-text);
	transition: all 0.2s;
}

.cp-chip:hover {
	background: var(--cp-olive);
	border-color: var(--cp-olive);
	color: var(--cp-white);
}

.cp-search-by .cp-btn {
	display: block;
	margin: 0 auto;
}

/* Why choose */
.cp-why-choose {
	background: var(--cp-off-white);
	max-width: 100%;
	padding-left: 20px;
	padding-right: 20px;
}

.cp-why-choose__intro {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 40px;
	color: var(--cp-text-muted);
	line-height: 1.7;
}

.cp-features {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	max-width: 900px;
	margin: 0 auto;
}

@media (min-width: 768px) {
	.cp-features {
		grid-template-columns: 1fr 1fr;
	}
}

.cp-feature {
	text-align: center;
}

.cp-feature__icon {
	font-size: 2rem;
	margin-bottom: 12px;
	color: var(--cp-olive);
}

.cp-feature h3 {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin: 0 0 8px;
}

.cp-feature p {
	font-size: 14px;
	color: var(--cp-text-muted);
	margin: 0;
	line-height: 1.6;
}

/* WooCommerce product grid */
.cp-niche-theme ul.products {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px 16px;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}

@media (min-width: 576px) {
	.cp-niche-theme ul.products { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 992px) {
	.cp-niche-theme ul.products { grid-template-columns: repeat(4, 1fr); gap: 28px 20px; }
}

.cp-niche-theme ul.products::before,
.cp-niche-theme ul.products::after {
	display: none !important;
}

.cp-product-card {
	margin: 0 !important;
	width: 100% !important;
	float: none !important;
}

.cp-product-card__inner {
	position: relative;
	text-align: center;
	background: var(--cp-white);
	padding-bottom: 8px;
}

/* Thumbnail — Jet Woo style */
.cp-product-card__thumbnail {
	position: relative;
	margin-bottom: 14px;
	overflow: hidden;
	background: #f7f7f5;
}

.cp-product-card__thumb-link {
	display: block;
	text-decoration: none;
}

.cp-product-card__thumbs-inner {
	position: relative;
	width: 100%;
	padding-top: 100%;
	overflow: hidden;
}

.cp-product-card__img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain;
	object-position: center;
	transition: opacity 0.45s ease;
	transform: none;
}

.cp-product-card__img--hover {
	opacity: 0;
}

.cp-product-card__thumbnail--has-hover:hover .cp-product-card__img--primary {
	opacity: 0;
}

.cp-product-card__thumbnail--has-hover:hover .cp-product-card__img--hover {
	opacity: 1;
}

.cp-product-card__overlay {
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0);
	transition: background 0.3s ease;
	pointer-events: none;
}

.cp-product-card__thumbnail:hover .cp-product-card__overlay {
	background: rgba(255, 255, 255, 0.04);
}

.cp-product-card__badges {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 3;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.cp-product-card__badge {
	display: inline-block;
	padding: 5px 10px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--cp-white);
	background: var(--cp-red-badge);
	border-radius: 2px;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.cp-product-card__title {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.45;
	margin: 0 0 10px;
	padding: 0 8px;
}

.cp-product-card__title a {
	color: var(--cp-text);
	text-decoration: none;
	transition: color 0.2s;
}

.cp-product-card__title a:hover {
	color: var(--cp-olive);
}

.cp-product-card__price {
	font-size: 14px;
	margin-bottom: 14px;
	padding: 0 8px;
}

.cp-product-card__price .price {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: baseline;
	gap: 6px;
}

.cp-product-card__price del {
	color: var(--cp-text-muted);
	font-size: 13px;
	opacity: 0.85;
}

.cp-product-card__price del .amount {
	text-decoration: line-through;
}

.cp-product-card__price ins {
	text-decoration: none;
	font-weight: 700;
	color: var(--cp-text);
}

.cp-product-card__actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 8px 0 4px;
	padding: 0 4px;
}

.cp-product-card__button {
	flex: 1 1 auto;
	margin-bottom: 0;
	min-width: 0;
}

.cp-product-card__button .button,
.cp-product-card__button a.button {
	display: inline-block !important;
	width: 100% !important;
	min-width: 0;
	padding: 11px 14px !important;
	background: var(--cp-white) !important;
	color: var(--cp-text) !important;
	border: 1px solid #d5d5d0 !important;
	border-radius: 0 !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	text-transform: none !important;
	transition: all 0.2s ease !important;
}

.cp-product-card__button .button:hover,
.cp-product-card__button a.button:hover {
	background: var(--cp-olive) !important;
	border-color: var(--cp-olive) !important;
	color: var(--cp-white) !important;
}

/* Wishlist — heart icon beside Add to cart */
.cp-product-card__wishlist {
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
}

.cp-product-card__wishlist .yith-wcwl-add-to-wishlist {
	margin: 0;
}

.cp-product-card__wishlist .yith-wcwl-add-button a,
.cp-product-card__wishlist .yith-wcwl-wishlistexistsbrowse a,
.cp-product-card__wishlist .yith-wcwl-wishlistaddedbrowse a {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0 !important;
	font-size: 0 !important;
	line-height: 1 !important;
	text-decoration: none !important;
	color: var(--cp-gold) !important;
	background: transparent !important;
	border: 1px solid #d5d5d0 !important;
	border-radius: 0 !important;
	transition: color 0.2s, border-color 0.2s;
}

.cp-product-card__wishlist .yith-wcwl-add-button a:hover,
.cp-product-card__wishlist .yith-wcwl-wishlistexistsbrowse a:hover {
	color: var(--cp-olive) !important;
	border-color: var(--cp-olive) !important;
}

.cp-product-card__wishlist .yith-wcwl-icon,
.cp-product-card__wishlist i {
	font-size: 18px !important;
	line-height: 1;
	color: var(--cp-gold) !important;
}

.cp-product-card__wishlist .yith-wcwl-add-button a:hover .yith-wcwl-icon,
.cp-product-card__wishlist .yith-wcwl-add-button a:hover i {
	color: var(--cp-olive) !important;
}

.cp-product-card__wishlist .feedback {
	display: none !important;
}

.cp-product-card__wishlist a span:not([class*="yith"]):not([class*="fa"]),
.cp-product-card__wishlist .yith-wcwl-add-button a > span,
.cp-product-card__wishlist .yith-wcwl-wishlistexistsbrowse a > span,
.yith-wcwl-add-to-wishlist-button__label {
	display: none !important;
}

.cp-sale-badge,
.cp-niche-theme span.onsale {
	display: none !important;
}

/* Best sellers — horizontal list on desktop */
.cp-section--bestsellers ul.products.cp-bestsellers-list {
	grid-template-columns: 1fr !important;
	gap: 0 !important;
}

@media (min-width: 768px) {
	.cp-section--bestsellers ul.products.cp-bestsellers-list .cp-product-card__inner {
		display: grid;
		grid-template-columns: 160px 1fr auto;
		gap: 24px;
		align-items: center;
		text-align: left;
		padding: 20px 0;
		border-bottom: 1px solid var(--cp-border);
	}

	.cp-section--bestsellers ul.products.cp-bestsellers-list .cp-product-card__thumbnail {
		margin: 0;
	}

	.cp-section--bestsellers ul.products.cp-bestsellers-list .cp-product-card__thumbs-inner {
		padding-top: 0;
		height: 140px;
	}

	.cp-section--bestsellers ul.products.cp-bestsellers-list .cp-product-card__img {
		position: static;
		width: auto !important;
		height: 140px !important;
		max-height: 140px;
	}

	.cp-section--bestsellers ul.products.cp-bestsellers-list .cp-product-card__title,
	.cp-section--bestsellers ul.products.cp-bestsellers-list .cp-product-card__price {
		padding: 0;
		text-align: left;
	}

	.cp-section--bestsellers ul.products.cp-bestsellers-list .cp-product-card__wishlist {
		display: none;
	}

	.cp-section--bestsellers ul.products.cp-bestsellers-list .cp-product-card__button .button {
		min-width: 160px;
	}
}

/* Shop page */
.cp-shop-header {
	margin: 32px 0 24px;
	text-align: center;
}

.cp-niche-theme .woocommerce-result-count,
.cp-niche-theme .woocommerce-ordering {
	margin-bottom: 20px;
}

/* Footer */
.cp-footer-newsletter {
	background: var(--cp-off-white);
	padding: 48px 20px;
	border-top: 1px solid var(--cp-border);
}

.cp-footer-newsletter__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}

@media (min-width: 992px) {
	.cp-footer-newsletter__grid {
		grid-template-columns: 1fr 1fr;
		align-items: start;
	}
}

.cp-footer-newsletter h3 {
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	line-height: 1.5;
	margin: 0 0 16px;
}

.cp-social-icons {
	display: flex;
	gap: 16px;
}

.cp-social-icons a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--cp-text);
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
	color: var(--cp-text);
}

.cp-subscribe-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	max-width: 100%;
}

.cp-subscribe-form input {
	flex: 1 1 200px;
	min-width: 0;
	padding: 14px 16px;
	border: 1px solid var(--cp-border);
	font-size: 14px;
}

.cp-subscribe-form button {
	padding: 14px 24px;
	background: var(--cp-olive);
	color: var(--cp-white);
	border: none;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0.05em;
	cursor: pointer;
}

.cp-footer-main {
	background: var(--cp-olive);
	color: var(--cp-white);
	padding: 48px 20px;
}

.cp-footer-main__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}

@media (min-width: 576px) {
	.cp-footer-main__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 992px) {
	.cp-footer-main__grid { grid-template-columns: 1.4fr repeat(3, 1fr); }
}

.cp-footer-main a {
	color: rgba(255, 255, 255, 0.9);
	text-decoration: none;
	font-size: 14px;
}

.cp-footer-main a:hover {
	color: var(--cp-white);
	text-decoration: underline;
}

.cp-footer-col h4 {
	color: var(--cp-gold-light);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0 0 16px;
}

.cp-footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cp-footer-col li {
	margin-bottom: 8px;
}

.cp-footer-col p {
	font-size: 14px;
	line-height: 1.6;
	opacity: 0.9;
	margin: 0 0 12px;
}

.cp-footer-bottom {
	background: #2a2a2a;
	color: rgba(255, 255, 255, 0.75);
	padding: 16px 20px;
	font-size: 12px;
}

.cp-footer-bottom__inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}

.cp-payment-icons {
	display: flex;
	gap: 12px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.05em;
}

/* WhatsApp plugin alignment */
.cp-niche-theme .ht-ctc-chat,
.cp-niche-theme .ccw_plugin {
	z-index: 800 !important;
}

/* Mega menu tweaks */
.cp-nav #mega-menu-wrap-menu-1,
.cp-nav .mega-menu-wrap {
	width: 100%;
}

/* Responsive header */
@media (max-width: 1199px) {
	.cp-nav__link {
		font-size: 10px;
		letter-spacing: 0.06em;
	}

	.cp-nav__list {
		gap: 0 12px;
	}

	.cp-logo__text {
		font-size: 1.75rem;
	}

	.cp-cart-link__label {
		display: none;
	}
}

@media (max-width: 991px) {
	.cp-top-bar .cp-container {
		padding-left: 10px;
		padding-right: 10px;
	}

	.cp-top-bar__inner {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 3px;
		padding: 7px 0 6px;
		min-height: var(--cp-mobile-topbar-h);
	}

	.cp-top-bar__email {
		display: none;
	}

	.cp-top-bar__promo {
		font-size: 11px;
		line-height: 1.25;
		font-weight: 500;
		white-space: nowrap;
	}

	.cp-top-bar__currency {
		line-height: 1;
	}

	.cp-currency-switch__toggle {
		min-height: 30px;
		padding: 5px 10px;
		gap: 8px;
	}

	.cp-currency-switch__flag {
		width: 20px;
		height: 14px;
	}

	.cp-header {
		border-bottom: 1px solid #ecece6;
		background: var(--cp-white);
	}

	.cp-header .cp-container {
		padding-left: 6px;
		padding-right: 6px;
		max-width: 100%;
	}

	.cp-header__inner {
		display: grid;
		grid-template-columns: 40px 1fr auto;
		align-items: center;
		column-gap: 4px;
		min-height: 58px;
	}

	.cp-header__brand {
		display: contents;
	}

	.cp-menu-toggle {
		display: inline-flex;
		grid-column: 1;
		grid-row: 1;
		justify-self: start;
		width: 40px;
		height: 40px;
	}

	.cp-logo {
		grid-column: 2;
		grid-row: 1;
		justify-self: center;
		max-width: min(210px, 52vw);
		overflow: visible;
	}

	.cp-logo__text {
		margin: 0 auto;
	}

	.cp-nav {
		display: none;
	}

	.cp-header-actions {
		grid-column: 3;
		grid-row: 1;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 0;
		flex-shrink: 0;
		min-width: 0;
	}

	.cp-show-desktop-only {
		display: none !important;
	}

	.cp-cart-link__total {
		display: none;
	}

	.cp-search-toggle {
		width: 38px;
		height: 40px;
		flex-shrink: 0;
		padding: 0;
	}

	.cp-icon-search {
		width: 23px;
		height: 23px;
	}

	.cp-cart-link {
		display: inline-flex;
		align-items: center;
		width: auto;
		height: 40px;
		gap: 0;
		padding: 0 1px;
		flex-shrink: 0;
	}

	.cp-cart-link__icon {
		width: 24px;
		height: 24px;
		margin-left: 1px;
	}

	.cp-icon-cart {
		width: 20px;
		height: 20px;
	}

	.cp-cart-link__qty {
		top: -3px;
		right: -4px;
		min-width: 14px;
		height: 14px;
		font-size: 9px;
		line-height: 14px;
	}

	.cp-cart-link__label {
		display: none;
	}

	.cp-account-link {
		width: 34px;
		height: 40px;
		flex-shrink: 0;
		padding: 0;
		margin-left: 1px;
	}

	.cp-icon-account {
		width: 26px;
		height: 26px;
	}

	.cp-action-btn {
		color: inherit;
	}

	.cp-section--featured {
		padding-top: 24px;
	}

	.cp-section--featured .cp-section__title {
		font-size: 1.25rem;
		margin-bottom: 6px;
	}

	.cp-section--featured .cp-section__subtitle {
		font-size: 13px;
		margin-bottom: 22px;
	}
}

@media (min-width: 992px) {
	.cp-show-desktop-only {
		display: inline-flex;
	}

	.cp-site-header-wrap.is-scrolled {
		box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
	}
}

@media (max-width: 480px) {
	.cp-side-tab {
		font-size: 10px;
		padding: 8px 14px;
	}

	.cp-section {
		padding: 32px 16px;
	}

	.cp-niche-theme ul.products {
		gap: 12px;
	}
}

/* WooCommerce Blocks — match Niche product cards */
.cp-niche-theme .wc-block-product-template,
.cp-niche-theme ul.wc-block-product-template,
.cp-niche-theme .wp-block-woocommerce-product-collection {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 20px 16px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

@media (min-width: 576px) {
	.cp-niche-theme .wc-block-product-template {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}

@media (min-width: 992px) {
	.cp-niche-theme .wc-block-product-template {
		grid-template-columns: repeat(4, 1fr) !important;
		gap: 28px 20px !important;
	}
}

.cp-niche-theme .wc-block-product,
.cp-niche-theme .wc-block-product-template > li {
	text-align: center;
}

.cp-niche-theme .wc-block-components-product-image img {
	object-fit: contain;
	max-height: 220px;
	width: auto;
	margin: 0 auto;
}

.cp-niche-theme .wc-block-components-product-title,
.cp-niche-theme .wc-block-grid__product-title {
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1.45 !important;
	margin: 12px 0 8px !important;
}

.cp-niche-theme .wc-block-components-product-price,
.cp-niche-theme .wc-block-grid__product-price {
	font-size: 14px;
	margin-bottom: 12px;
}

.cp-niche-theme .wc-block-components-product-price del {
	color: var(--cp-text-muted);
	font-size: 12px;
}

.cp-niche-theme .wc-block-components-product-price ins {
	text-decoration: none;
	font-weight: 700;
}

.cp-niche-theme .wc-block-grid__product-onsale,
.cp-niche-theme .wc-block-components-product-sale-badge {
	background: var(--cp-red-badge) !important;
	color: var(--cp-white) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	border-radius: 2px !important;
	padding: 4px 8px !important;
}

.cp-niche-theme .wc-block-grid__product .wp-block-button__link,
.cp-niche-theme .wc-block-components-product-button .wp-block-button__link,
.cp-niche-theme .wc-block-components-add-to-cart-button {
	background: var(--cp-olive) !important;
	color: var(--cp-white) !important;
	border-radius: 0 !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	width: 100%;
	padding: 12px 16px !important;
}

.cp-niche-theme .wc-block-grid__product .wp-block-button__link:hover {
	background: var(--cp-olive-hover) !important;
}

.cp-main--shop .woocommerce-breadcrumb,
.cp-main--shop .woocommerce-result-count,
.cp-main--shop .woocommerce-ordering {
	margin-bottom: 16px;
}

/* Cart page — Comma Perfume layout */
.cp-main--cart {
	padding: 24px 0 48px;
}

.cp-container--cart {
	max-width: 640px;
}

.cp-cart-empty {
	text-align: center;
	padding: 48px 20px;
}

.cp-cart-empty .wc-empty-cart-message,
.cp-cart-empty .cart-empty.woocommerce-info {
	background: transparent;
	border: none;
	padding: 0;
	margin: 0 0 24px;
	font-size: 16px;
	color: var(--cp-text-muted);
	text-align: center;
}

.cp-cart-empty .return-to-shop {
	margin: 0;
}

.cp-cart-empty .cp-btn--primary {
	display: inline-block;
	padding: 14px 28px;
	background: var(--cp-olive);
	color: var(--cp-white);
	text-decoration: none;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cp-niche-theme .cp-cart-form {
	margin: 0;
}

.cp-niche-theme .cp-cart-items {
	display: block;
	width: 100%;
}

.cp-niche-theme .cp-cart-item {
	padding: 28px 0;
	border-bottom: 1px solid var(--cp-border);
}

.cp-niche-theme .cp-cart-item__top {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.cp-niche-theme .cp-cart-item__media {
	position: relative;
	width: 100%;
	max-width: 220px;
	margin-bottom: 16px;
}

.cp-niche-theme .cp-cart-item__remove {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	color: var(--cp-text-muted) !important;
	font-size: 22px;
	line-height: 1;
	text-decoration: none !important;
}

.cp-niche-theme .cp-cart-item__remove:hover {
	color: var(--cp-coral) !important;
}

.cp-niche-theme .cp-cart-item__thumb {
	display: block;
}

.cp-niche-theme .cp-cart-item__thumb img {
	display: block;
	width: 100%;
	max-width: 180px;
	height: auto;
	max-height: 200px;
	margin: 0 auto;
	object-fit: contain;
}

.cp-niche-theme .cp-cart-item__name {
	font-size: 15px;
	line-height: 1.4;
	font-weight: 600;
	margin-bottom: 8px;
	max-width: 100%;
}

.cp-niche-theme .cp-cart-item__name a {
	color: var(--cp-text);
	text-decoration: none;
}

.cp-niche-theme .cp-cart-item__name a:hover {
	color: var(--cp-olive);
}

.cp-niche-theme .cp-cart-item__unit-price {
	font-size: 15px;
	font-weight: 500;
	margin-bottom: 16px;
	color: var(--cp-text);
}

.cp-niche-theme .cp-cart-item__unit-price del {
	opacity: 0.55;
}

.cp-niche-theme .cp-cart-item__unit-price ins {
	text-decoration: none;
}

.cp-niche-theme .cp-cart-item__qty {
	margin-bottom: 18px;
}

.cp-niche-theme .cp-cart-qty {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0;
}

.cp-niche-theme .cp-cart-qty .quantity {
	display: inline-flex;
	margin: 0;
}

.cp-niche-theme .cp-cart-qty .qty {
	width: 48px;
	min-height: 36px;
	height: 36px;
	padding: 0 6px;
	margin: 0;
	border: none;
	border-top: 1px solid var(--cp-border);
	border-bottom: 1px solid var(--cp-border);
	border-radius: 0;
	text-align: center;
	font-size: 14px;
	font-weight: 600;
	background: var(--cp-white);
	-moz-appearance: textfield;
}

.cp-niche-theme .cp-cart-qty .qty::-webkit-outer-spin-button,
.cp-niche-theme .cp-cart-qty .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.cp-niche-theme .cp-cart-qty .cp-qty-btn {
	width: 36px;
	height: 36px;
	border: 1px solid var(--cp-border);
	background: var(--cp-white);
	color: var(--cp-gold);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	padding: 0;
}

.cp-niche-theme .cp-cart-qty .cp-qty-btn--minus {
	border-right: none;
}

.cp-niche-theme .cp-cart-qty .cp-qty-btn--plus {
	border-left: none;
}

.cp-niche-theme .cp-cart-qty .cp-qty-btn:hover {
	color: var(--cp-olive);
}

.cp-niche-theme .cp-cart-qty.is-loading {
	opacity: 0.55;
	pointer-events: none;
}

.cp-niche-theme .cp-cart-item__subtotal {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	width: 100%;
	font-size: 15px;
}

.cp-niche-theme .cp-cart-item__subtotal-label {
	font-weight: 500;
	color: var(--cp-text);
}

.cp-niche-theme .cp-cart-item__subtotal-value {
	font-weight: 700;
}

.cp-niche-theme .cp-cart-form-actions {
	padding: 24px 0 8px;
}

.cp-niche-theme .cp-cart-coupon {
	display: flex;
	width: 100%;
	margin-bottom: 18px;
}

.cp-niche-theme .cp-cart-coupon__input {
	flex: 1;
	min-width: 0;
	height: 46px;
	padding: 0 14px;
	border: 1px solid var(--cp-border);
	border-right: none;
	border-radius: 0;
	font-size: 14px;
	box-sizing: border-box;
}

.cp-niche-theme .cp-cart-coupon__btn {
	flex-shrink: 0;
	height: 46px;
	padding: 0 22px !important;
	background: #2b2b2b !important;
	color: var(--cp-white) !important;
	border: 1px solid #2b2b2b !important;
	border-radius: 0 !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	cursor: pointer;
}

.cp-niche-theme .cp-cart-coupon__btn:hover {
	background: #111 !important;
	border-color: #111 !important;
}

.cp-niche-theme .cp-cart-shop-more {
	display: inline-block;
	margin-bottom: 14px;
	font-size: 14px;
	font-weight: 600;
	color: var(--cp-text);
	text-decoration: none;
}

.cp-niche-theme .cp-cart-shop-more:hover {
	color: var(--cp-olive);
}

.cp-niche-theme .cp-cart-update-btn {
	display: inline-block;
	padding: 12px 24px !important;
	background: #8a8a8a !important;
	color: var(--cp-white) !important;
	border: none !important;
	border-radius: 0 !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	cursor: pointer;
}

.cp-niche-theme .cp-cart-update-btn:hover {
	background: #777 !important;
}

.cp-niche-theme .cp-cart-collaterals {
	margin-top: 8px;
}

.cp-niche-theme .cp-cart-totals {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	background: transparent;
	border: none;
}

.cp-niche-theme .cp-cart-totals__table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 20px;
}

.cp-niche-theme .cp-cart-totals__table tr {
	border-bottom: 1px solid var(--cp-border);
}

.cp-niche-theme .cp-cart-totals__table th,
.cp-niche-theme .cp-cart-totals__table td {
	padding: 14px 0;
	border: none;
	font-size: 15px;
	font-weight: 500;
	vertical-align: middle;
}

.cp-niche-theme .cp-cart-totals__table th {
	text-align: left;
	font-weight: 500;
}

.cp-niche-theme .cp-cart-totals__table td {
	text-align: right;
	font-weight: 600;
}

.cp-niche-theme .cp-cart-totals__table td::before {
	display: none !important;
}

.cp-niche-theme .cp-cart-totals__table .order-total th,
.cp-niche-theme .cp-cart-totals__table .order-total td {
	font-size: 16px;
	font-weight: 700;
	padding-top: 16px;
}

.cp-niche-theme .cp-cart-checkout {
	margin-top: 8px;
	padding-bottom: 8px;
}

.cp-niche-theme .cp-cart-checkout .checkout-button {
	display: block;
	width: 100%;
	padding: 16px 24px !important;
	background: var(--cp-coral) !important;
	color: var(--cp-white) !important;
	border: none !important;
	border-radius: 0 !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	text-align: center;
	box-sizing: border-box;
	text-decoration: none !important;
}

.cp-niche-theme .cp-cart-checkout .checkout-button:hover {
	background: #d94a3a !important;
	color: var(--cp-white) !important;
}

/* WooCommerce cart table overrides on cart page */
.cp-niche-theme .cp-main--cart table.shop_table_responsive tr td {
	background: transparent !important;
	text-align: inherit !important;
}

.cp-niche-theme .cp-main--cart table.shop_table_responsive tr td::before {
	display: none !important;
}

@media (max-width: 767px) {
	.cp-main--cart {
		padding: 16px 0 32px;
	}

	.cp-container--cart {
		padding-left: 16px;
		padding-right: 16px;
	}

	.cp-niche-theme .cp-cart-coupon__btn {
		padding: 0 16px !important;
	}
}

/* Checkout page — classic WooCommerce form */
.cp-main--checkout {
	padding: 24px 0 48px;
}

.cp-container--checkout {
	max-width: 960px;
}

.cp-niche-theme .cp-main--checkout .woocommerce {
	max-width: 100%;
}

.cp-niche-theme .cp-main--checkout .woocommerce-info,
.cp-niche-theme .cp-main--checkout .woocommerce-error,
.cp-niche-theme .cp-main--checkout .woocommerce-message {
	margin-bottom: 20px;
	border-radius: 0;
}

.cp-niche-theme .cp-main--checkout form.checkout {
	display: block;
}

.cp-niche-theme .cp-main--checkout #customer_details {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	margin-bottom: 32px;
}

.cp-niche-theme .cp-main--checkout #customer_details .col-1,
.cp-niche-theme .cp-main--checkout #customer_details .col-2 {
	width: 100%;
	float: none;
}

.cp-niche-theme .cp-main--checkout .woocommerce-billing-fields h3,
.cp-niche-theme .cp-main--checkout .woocommerce-shipping-fields h3,
.cp-niche-theme .cp-main--checkout #order_review_heading {
	font-family: var(--cp-font-heading);
	font-size: 20px;
	font-weight: 600;
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--cp-border);
}

.cp-niche-theme .cp-main--checkout .form-row {
	margin-bottom: 14px;
}

.cp-niche-theme .cp-main--checkout .form-row label {
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 6px;
}

.cp-niche-theme .cp-main--checkout .form-row input.input-text,
.cp-niche-theme .cp-main--checkout .form-row textarea,
.cp-niche-theme .cp-main--checkout .form-row select {
	width: 100%;
	min-height: 46px;
	padding: 10px 14px;
	border: 1px solid var(--cp-border);
	border-radius: 0;
	font-size: 14px;
	box-sizing: border-box;
}

.cp-niche-theme .cp-main--checkout #order_review_heading {
	margin-top: 8px;
}

.cp-niche-theme .cp-main--checkout #order_review.woocommerce-checkout-review-order {
	margin-top: 0;
	padding: 0;
	border: 1px solid var(--cp-border);
	background: var(--cp-white);
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table thead th {
	padding: 14px 20px;
	border-bottom: 1px solid var(--cp-border);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cp-text-muted);
	background: var(--cp-off-white);
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table thead .product-total,
.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tbody .product-total,
.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tbody td {
	padding: 16px 20px;
	border-bottom: 1px solid var(--cp-border);
	font-size: 14px;
	vertical-align: middle;
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tbody .product-name {
	font-weight: 600;
	line-height: 1.45;
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tbody .product-quantity {
	font-weight: 700;
	color: var(--cp-text-muted);
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tfoot th,
.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tfoot td {
	padding: 12px 20px;
	border-top: 1px solid var(--cp-border);
	font-size: 14px;
	vertical-align: top;
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tfoot th {
	font-weight: 600;
	text-align: left;
	width: 58%;
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tfoot td {
	font-weight: 600;
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-totals td {
	text-align: right;
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods li {
	margin: 0;
	padding: 0;
	line-height: 1.5;
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods label {
	font-weight: 500;
}

.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table .order-total th,
.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table .order-total td {
	padding-top: 16px;
	padding-bottom: 18px;
	font-size: 16px;
	font-weight: 700;
}

.cp-niche-theme .cp-main--checkout #payment {
	background: transparent;
	border-radius: 0;
	margin: 0;
	padding: 20px 20px 24px;
	border-top: 1px solid var(--cp-border);
}

.cp-niche-theme .cp-main--checkout #payment ul.payment_methods {
	margin: 0 0 16px;
	padding: 0;
	border: none;
}

.cp-niche-theme .cp-main--checkout #payment ul.payment_methods li {
	margin: 0;
	padding: 0 0 12px;
	border: none;
}

.cp-niche-theme .cp-main--checkout #payment ul.payment_methods li label {
	display: block;
	font-weight: 700;
	font-size: 14px;
	margin-bottom: 0;
	cursor: pointer;
}

.cp-niche-theme .cp-main--checkout #payment .payment_box {
	background: var(--cp-off-white);
	padding: 12px 14px;
	margin: 10px 0 0;
	border: 1px solid var(--cp-border);
	border-radius: 0;
}

.cp-niche-theme .cp-main--checkout #payment .payment_box p {
	margin: 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--cp-text-muted);
}

.cp-niche-theme .cp-main--checkout #payment .place-order {
	margin: 0;
	padding: 0;
}

.cp-niche-theme .cp-main--checkout #payment .woocommerce-terms-and-conditions-wrapper {
	margin: 0 0 16px;
}

.cp-niche-theme .cp-main--checkout #payment .woocommerce-privacy-policy-text p {
	margin: 0;
	font-size: 12px;
	line-height: 1.6;
	color: var(--cp-text-muted);
}

.cp-niche-theme .cp-main--checkout #pwgc-redeem-gift-card-form {
	margin: 0 0 18px;
	padding: 16px 0 0;
	border-top: 1px solid var(--cp-border);
}

.cp-niche-theme .cp-main--checkout #pwgc-redeem-gift-card-form label {
	display: block;
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 700;
}

.cp-niche-theme .cp-main--checkout #pwgc-redeem-gift-card-number {
	width: 100%;
	min-height: 46px;
	margin: 0 0 10px;
	padding: 10px 14px;
	border: 1px solid var(--cp-border);
	border-radius: 0;
	font-size: 14px;
	box-sizing: border-box;
}

.cp-niche-theme .cp-main--checkout #pwgc-redeem-button {
	display: inline-block;
	margin: 0 0 0 !important;
	padding: 12px 20px !important;
	background: #2b2b2b !important;
	color: var(--cp-white) !important;
	border: 1px solid #2b2b2b !important;
	border-radius: 0 !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	cursor: pointer;
}

.cp-niche-theme .cp-main--checkout #pwgc-redeem-error {
	margin: 0 0 8px;
	font-size: 13px;
}

.cp-niche-theme .cp-main--checkout #place_order {
	display: block;
	width: 100%;
	margin-top: 4px;
	padding: 16px 24px !important;
	background: var(--cp-coral) !important;
	color: var(--cp-white) !important;
	border: none !important;
	border-radius: 0 !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	cursor: pointer;
}

.cp-niche-theme .cp-main--checkout #place_order:hover {
	background: #d94a3a !important;
}

.cp-niche-theme .cp-main--checkout table.shop_table_responsive tr td::before {
	display: none !important;
}

@media (max-width: 767px) {
	.cp-main--checkout {
		padding: 16px 0 32px;
	}

	.cp-container--checkout {
		padding-left: 16px;
		padding-right: 16px;
	}

	.cp-niche-theme .cp-main--checkout #customer_details {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table thead th,
	.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tbody td,
	.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tfoot th,
	.cp-niche-theme .cp-main--checkout .woocommerce-checkout-review-order-table tfoot td {
		padding-left: 16px;
		padding-right: 16px;
	}

	.cp-niche-theme .cp-main--checkout #payment {
		padding: 16px 16px 20px;
	}
}

/* Order received / thank you page */
.cp-main--order-received {
	padding: 32px 0 56px;
}

.cp-container--order-received {
	max-width: 640px;
	padding-left: 20px;
	padding-right: 20px;
}

.cp-order-received__hero {
	text-align: center;
	padding: 36px 28px 28px;
	margin-bottom: 24px;
	background: var(--cp-off-white);
	border: 1px solid var(--cp-border);
}

.cp-order-received__hero--failed {
	background: #fff5f5;
	border-color: #f0d0d0;
}

.cp-order-received__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 18px;
	border-radius: 50%;
	background: var(--cp-white);
	border: 2px solid var(--cp-gold);
	color: var(--cp-gold);
}

.cp-order-received__icon--failed {
	border-color: var(--cp-coral);
	color: var(--cp-coral);
	background: var(--cp-white);
}

.cp-order-received__title {
	margin: 0 0 8px;
	padding: 0;
	border: none;
	background: transparent !important;
	font-family: var(--cp-font-sans);
	font-size: clamp(22px, 4vw, 28px);
	font-weight: 700;
	line-height: 1.3;
	color: var(--cp-text);
}

.cp-order-received__subtitle,
.cp-order-received__email-note {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--cp-text-muted);
}

.cp-order-received__email-note {
	margin-top: 12px;
	font-size: 13px;
}

/* Reset WooCommerce default order overview floats/borders */
.cp-niche-theme .cp-order-received ul.order_details,
.cp-niche-theme .cp-order-received .woocommerce-order-overview {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	list-style: none !important;
	margin: 0 0 20px !important;
	padding: 0 !important;
	width: 100%;
}

.cp-niche-theme .cp-order-received ul.order_details::before,
.cp-niche-theme .cp-order-received ul.order_details::after,
.cp-niche-theme .cp-order-received .woocommerce-order-overview::before,
.cp-niche-theme .cp-order-received .woocommerce-order-overview::after {
	display: none !important;
	content: none !important;
}

.cp-niche-theme .cp-order-received ul.order_details li,
.cp-niche-theme .cp-order-received .woocommerce-order-overview li {
	float: none !important;
	display: flex !important;
	flex-direction: column;
	justify-content: center;
	gap: 8px;
	min-height: 76px;
	margin: 0 !important;
	padding: 16px 18px !important;
	border: 1px solid var(--cp-border) !important;
	border-right: 1px solid var(--cp-border) !important;
	background: var(--cp-white);
	text-transform: none !important;
	font-size: inherit !important;
	line-height: 1.4 !important;
	list-style: none !important;
	box-sizing: border-box;
}

.cp-niche-theme .cp-order-received ul.order_details li strong,
.cp-niche-theme .cp-order-received .woocommerce-order-overview li strong {
	display: block;
	margin: 0;
	font-size: inherit;
	font-weight: 700;
	line-height: 1.4;
	text-transform: none;
}

.cp-order-received__meta-label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cp-text-muted);
}

.cp-order-received__meta-value {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--cp-text);
}

.cp-niche-theme .cp-order-received .cp-order-received__meta-item.order .cp-order-received__meta-value {
	color: var(--cp-gold);
	font-size: 17px;
}

.cp-niche-theme .cp-order-received .cp-order-received__meta-item.method {
	grid-column: 1 / -1;
}

.cp-order-received__notice:empty {
	display: none;
	margin: 0;
}

.cp-order-received__notice > p {
	margin: 0 0 20px;
	padding: 14px 18px;
	background: var(--cp-off-white);
	border: 1px solid var(--cp-border);
	border-left: 3px solid var(--cp-gold);
	font-size: 14px;
	line-height: 1.55;
	color: var(--cp-text);
}

.cp-order-received__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	margin: 0 0 24px;
}

.cp-order-received__actions .cp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	width: auto;
	max-width: 100%;
	padding: 14px 32px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	border: none;
	cursor: pointer;
	box-sizing: border-box;
}

.cp-order-received__details {
	margin-top: 0;
}

.cp-niche-theme .cp-order-received .woocommerce-order-details,
.cp-niche-theme .cp-order-received .woocommerce-customer-details {
	margin-bottom: 28px;
}

.cp-niche-theme .cp-order-received .woocommerce-order-details {
	border: 1px solid var(--cp-border);
	background: var(--cp-white);
}

.cp-niche-theme .cp-order-received .woocommerce-order-details__title,
.cp-niche-theme .cp-order-received .woocommerce-column__title {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0;
	padding: 16px 24px 12px;
	border-bottom: 1px solid var(--cp-border);
	color: var(--cp-text);
}

.cp-niche-theme .cp-order-received .woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
}

.cp-niche-theme .cp-order-received .woocommerce-table--order-details thead {
	display: none;
}

.cp-niche-theme .cp-order-received .woocommerce-table--order-details tbody tr {
	background: var(--cp-off-white);
	border-bottom: 1px solid var(--cp-border);
}

.cp-niche-theme .cp-order-received .woocommerce-table--order-details tbody td {
	padding: 16px 24px;
	border: none;
	vertical-align: middle;
}

.cp-niche-theme .cp-order-received .woocommerce-table--order-details td.product-total {
	width: 34%;
	text-align: right;
	font-weight: 700;
	font-size: 15px;
	white-space: nowrap;
}

.cp-order-item {
	display: flex;
	align-items: center;
	gap: 14px;
}

.cp-order-item__thumb {
	flex-shrink: 0;
	width: 64px;
}

.cp-order-item__thumb img {
	display: block;
	width: 64px;
	height: 64px;
	object-fit: contain;
	background: var(--cp-white);
	border: 1px solid var(--cp-border);
}

.cp-order-item__info {
	min-width: 0;
}

.cp-order-item__name {
	display: block;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--cp-gold);
	text-decoration: none;
	margin-bottom: 4px;
}

.cp-order-item__name:hover {
	color: var(--cp-text);
}

.cp-order-item__qty {
	display: block;
	font-size: 12px;
	color: var(--cp-text-muted);
}

.cp-niche-theme .cp-order-received .woocommerce-table--order-details tfoot tr {
	border-top: 1px solid var(--cp-border);
}

.cp-niche-theme .cp-order-received .woocommerce-table--order-details tfoot th,
.cp-niche-theme .cp-order-received .woocommerce-table--order-details tfoot td {
	padding: 10px 24px;
	border: none;
	font-size: 14px;
	vertical-align: top;
}

.cp-niche-theme .cp-order-received .woocommerce-table--order-details tfoot th {
	width: 66%;
	font-weight: 600;
	text-align: left;
}

.cp-niche-theme .cp-order-received .woocommerce-table--order-details tfoot td {
	width: 34%;
	font-weight: 600;
	text-align: right;
}

.cp-niche-theme .cp-order-received .woocommerce-table--order-details tfoot tr:last-child th,
.cp-niche-theme .cp-order-received .woocommerce-table--order-details tfoot tr:last-child td {
	padding-top: 14px;
	padding-bottom: 16px;
	font-size: 16px;
	font-weight: 700;
}

.cp-niche-theme .cp-order-received .woocommerce-customer-details address {
	font-style: normal;
	font-size: 14px;
	line-height: 1.7;
	color: var(--cp-text);
	padding: 16px 18px;
	background: var(--cp-off-white);
	border: 1px solid var(--cp-border);
	margin: 0;
}

.cp-niche-theme .cp-order-received .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 0;
}

.cp-niche-theme .cp-order-received .woocommerce-columns--addresses .col-1,
.cp-niche-theme .cp-order-received .woocommerce-columns--addresses .col-2 {
	width: 100%;
	float: none;
}

.cp-niche-theme .cp-order-received table.shop_table_responsive tr td::before {
	display: none !important;
}

@media (max-width: 767px) {
	.cp-main--order-received {
		padding: 20px 0 40px;
	}

	.cp-container--order-received {
		padding-left: 16px;
		padding-right: 16px;
	}

	.cp-order-received__hero {
		padding: 28px 18px 22px;
		margin-bottom: 20px;
	}

	.cp-niche-theme .cp-order-received ul.order_details,
	.cp-niche-theme .cp-order-received .woocommerce-order-overview {
		grid-template-columns: 1fr;
		gap: 8px;
		margin-bottom: 16px !important;
	}

	.cp-niche-theme .cp-order-received ul.order_details li,
	.cp-niche-theme .cp-order-received .woocommerce-order-overview li {
		min-height: 0;
		padding: 14px 16px !important;
	}

	.cp-niche-theme .cp-order-received .cp-order-received__meta-item.method {
		grid-column: auto;
	}

	.cp-order-received__actions {
		margin-bottom: 20px;
	}

	.cp-order-received__actions .cp-btn {
		width: 100%;
	}

	.cp-niche-theme .cp-order-received .woocommerce-order-details__title,
	.cp-niche-theme .cp-order-received .woocommerce-column__title {
		padding-left: 16px;
		padding-right: 16px;
	}

	.cp-niche-theme .cp-order-received .woocommerce-table--order-details tbody td,
	.cp-niche-theme .cp-order-received .woocommerce-table--order-details tfoot th,
	.cp-niche-theme .cp-order-received .woocommerce-table--order-details tfoot td {
		padding-left: 16px;
		padding-right: 16px;
	}

	.cp-niche-theme .cp-order-received .woocommerce-table--order-details tbody td.product-total {
		text-align: right;
		padding-top: 0;
	}

	.cp-niche-theme .cp-order-received .woocommerce-columns--addresses {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

.cp-header.is-scrolled,
.cp-site-header-wrap.is-scrolled {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* Side cart drawer */
.cp-cart-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 1250;
}

.cp-cart-overlay[hidden] {
	display: none !important;
}

.cp-cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	width: min(420px, 100vw);
	height: 100%;
	max-height: 100dvh;
	background: var(--cp-white);
	z-index: 1300;
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform 0.28s ease;
	box-shadow: -8px 0 32px rgba(0, 0, 0, 0.12);
}

.cp-cart-drawer[hidden]:not(.is-open) {
	display: none !important;
}

.cp-cart-drawer.is-open {
	transform: translateX(0);
}

.cp-cart-drawer__head {
	display: grid;
	grid-template-columns: 40px 1fr 40px;
	align-items: center;
	padding: 16px 18px;
	border-bottom: 1px solid var(--cp-border);
	flex-shrink: 0;
}

.cp-cart-drawer__close {
	border: none;
	background: none;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	color: var(--cp-text);
	padding: 0;
	justify-self: start;
}

.cp-cart-drawer__title {
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	text-align: center;
	letter-spacing: 0.02em;
}

.cp-cart-drawer__content {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
}

.cp-cart-drawer__scroll {
	flex: 1;
	overflow-y: auto;
	padding: 16px 18px;
	-webkit-overflow-scrolling: touch;
}

.cp-mini-cart {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cp-mini-cart__item {
	position: relative;
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 12px;
	padding: 14px 0;
	border-bottom: 1px solid var(--cp-border);
}

.cp-mini-cart__item:first-child {
	padding-top: 0;
}

.cp-mini-cart__remove {
	position: absolute;
	top: 0;
	right: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	color: var(--cp-text-muted) !important;
	text-decoration: none !important;
	font-size: 18px;
	line-height: 1;
}

.cp-mini-cart__remove:hover {
	color: var(--cp-coral) !important;
}

.cp-mini-cart__media img {
	display: block;
	width: 72px;
	height: 72px;
	object-fit: contain;
	background: var(--cp-off-white);
}

.cp-mini-cart__name {
	padding-right: 28px;
	font-size: 13px;
	line-height: 1.35;
	font-weight: 600;
	margin-bottom: 10px;
}

.cp-mini-cart__name a {
	color: var(--cp-text);
	text-decoration: none;
}

.cp-mini-cart__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.cp-mini-cart__qty {
	display: inline-flex;
	align-items: center;
	gap: 0;
	border: 1px solid var(--cp-border);
	background: var(--cp-white);
}

.cp-mini-cart__qty.is-loading {
	opacity: 0.55;
	pointer-events: none;
}

.cp-qty-btn {
	width: 32px;
	height: 32px;
	border: none;
	background: transparent;
	color: var(--cp-gold);
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
	padding: 0;
}

.cp-qty-btn:hover {
	color: var(--cp-olive);
}

.cp-qty-val {
	min-width: 28px;
	text-align: center;
	font-size: 13px;
	font-weight: 600;
}

.cp-mini-cart__price {
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
}

.cp-mini-cart__price del {
	opacity: 0.55;
	font-weight: 500;
}

.cp-mini-cart__price ins {
	text-decoration: none;
}

.cp-cart-drawer__empty {
	text-align: center;
	padding: 40px 12px;
}

.cp-cart-drawer__empty p {
	color: var(--cp-text-muted);
	margin: 0 0 20px;
}

.cp-cart-drawer__footer {
	flex-shrink: 0;
	padding: 16px 18px 20px;
	border-top: 1px solid var(--cp-border);
	background: var(--cp-white);
}

.cp-cart-drawer__promo-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: none;
	background: none;
	padding: 0;
	margin-bottom: 14px;
	font-size: 13px;
	font-weight: 600;
	color: var(--cp-text);
	cursor: pointer;
}

.cp-cart-drawer__promo-form {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 14px;
}

.cp-cart-drawer__promo-input {
	flex: 1 1 140px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--cp-border);
	font-size: 13px;
	box-sizing: border-box;
}

.cp-cart-drawer__promo-apply {
	padding: 10px 16px;
	font-size: 11px;
}

.cp-btn--outline {
	background: var(--cp-white);
	color: var(--cp-text);
	border: 1px solid var(--cp-border);
}

.cp-cart-drawer__promo-msg {
	width: 100%;
	margin: 0;
	font-size: 12px;
	color: var(--cp-olive);
}

.cp-cart-drawer__promo-msg.is-error {
	color: var(--cp-coral);
}

.cp-cart-drawer__coupons {
	list-style: none;
	margin: 0 0 12px;
	padding: 0;
	font-size: 12px;
	color: var(--cp-text-muted);
}

.cp-cart-drawer__totals {
	margin: 0 0 16px;
	padding: 0;
}

.cp-cart-drawer__total-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 6px 0;
	font-size: 14px;
}

.cp-cart-drawer__total-row dt,
.cp-cart-drawer__total-row dd {
	margin: 0;
}

.cp-cart-drawer__total-row--grand {
	border-top: 1px dashed var(--cp-border);
	padding-top: 14px;
	margin-top: 8px;
	font-size: 15px;
	font-weight: 700;
}

.cp-cart-drawer__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.cp-cart-drawer__actions .cp-btn {
	padding: 14px 10px;
	font-size: 11px;
	text-align: center;
	box-sizing: border-box;
}

.cp-cart-link__qty--empty {
	display: none;
}

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

@media (max-width: 767px) {
	.cp-cart-drawer {
		width: 100vw;
	}
}

@media (max-width: 991px) {
	.cp-site-header-wrap.is-scrolled {
		box-shadow: none;
	}

	.cp-header.is-scrolled {
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	}
}

/* Hide legacy promo */
.cp-promo-bar {
	display: none !important;
}
