/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
 */

/* 1. Design tokens */
:root {
	--cm-text: #202027;
	--cm-text-muted: #62626e;
	--cm-brand: #9636a8;
	--cm-brand-hover: #762587;
	--cm-background: #ffffff;
	--cm-background-soft: #f7f5fa;
	--cm-border: #e3dfe6;
	--cm-success: #237448;
	--cm-focus: #762587;
	--cm-radius-sm: 0.375rem;
	--cm-radius-md: 0.625rem;
	--cm-radius-lg: 1rem;
	--cm-radius-button: 999px;
	--cm-shadow-sm: 0 2px 8px rgb(32 32 39 / 5%);
	--cm-shadow-md: 0 8px 24px rgb(32 32 39 / 8%);
	--cm-content-max: 75rem;
	--cm-space-1: 0.25rem;
	--cm-space-2: 0.5rem;
	--cm-space-3: 0.75rem;
	--cm-space-4: 1rem;
	--cm-space-5: 1.5rem;
	--cm-space-6: 2rem;
	--cm-space-7: 3rem;
	--cm-space-8: 4rem;
	--cm-gutter: clamp(1rem, 3vw, 2rem);
	--cm-font-family: var(--theme-font-family, system-ui, sans-serif);
	--cm-font-body: 1rem;
	--cm-font-small: 0.875rem;
	--cm-font-h1: clamp(2rem, 1.4rem + 2.5vw, 3.5rem);
	--cm-font-h2: clamp(1.625rem, 1.2rem + 1.8vw, 2.5rem);
	--cm-font-h3: clamp(1.25rem, 1.1rem + 0.7vw, 1.625rem);
	--cm-font-h4: 1.125rem;
	--cm-transition: 160ms ease;
}

/* Readable footer text and keyboard focus across Blocksy footer rows. */
body #footer.ct-footer,
body #footer.ct-footer > [data-row] {
	background: var(--cm-background-soft);
	color: var(--cm-text);
}

body #footer.ct-footer :is(.widget-title, .ct-footer-copyright, p, li, a) {
	color: var(--cm-text);
}

body #footer.ct-footer .ct-social-box {
	--theme-icon-color: var(--cm-text);
	--theme-icon-hover-color: var(--cm-brand-hover);
}

body #footer.ct-footer a:hover {
	color: var(--cm-brand-hover);
	text-decoration: underline;
}

body #footer.ct-footer a:focus-visible {
	outline: 3px solid var(--cm-focus);
	outline-offset: 3px;
}

/* 2. Typography */
/* Opt-in typography preserves existing Elementor sections and theme widgets. */
:where(.cm-container, .cm-section, .cm-card) {
	font-family: var(--cm-font-family);
	font-size: var(--cm-font-body);
	line-height: 1.65;
	color: var(--cm-text);
	overflow-wrap: break-word;
}

:where(.cm-container, .cm-section, .cm-card) :where(h1, h2, h3, h4) {
	margin-block: 0 var(--cm-space-4);
	font-family: inherit;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: inherit;
}

:where(.cm-container, .cm-section, .cm-card) h1 { font-size: var(--cm-font-h1); }
:where(.cm-container, .cm-section, .cm-card) h2 { font-size: var(--cm-font-h2); }
:where(.cm-container, .cm-section, .cm-card) h3 { font-size: var(--cm-font-h3); }
:where(.cm-container, .cm-section, .cm-card) h4 { font-size: var(--cm-font-h4); }

:where(.cm-container, .cm-section, .cm-card) p {
	margin-block: 0 var(--cm-space-4);
	font-size: var(--cm-font-body);
	line-height: 1.65;
}

:where(.cm-container, .cm-section, .cm-card) li {
	font-size: var(--cm-font-body);
	line-height: 1.65;
}

:where(.cm-container, .cm-section, .cm-card) label {
	font-size: var(--cm-font-small);
	font-weight: 600;
	line-height: 1.5;
}

/* 3. Layout */
.cm-container {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--cm-content-max);
	margin-inline: auto;
	padding-inline: var(--cm-gutter);
}

.cm-section {
	padding-block: clamp(2rem, 5vw, 4rem);
	background-color: var(--cm-background);
}

/* Apply to selected WordPress sections when integrating the reference design. */
.cm-section--soft {
	background-color: var(--cm-background-soft);
}

.cm-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--cm-space-5);
}

.cm-grid > * { min-width: 0; }

/* 4. Buttons */
/* Only explicit call-to-action classes: no generic button/input reset.
 * Transaction pages and header/mini-cart controls retain their existing styles.
 * Use .cm-btn--secondary together with .cm-btn. */
:where(body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account))
:is(.cm-btn, #main .ct-button, #main .wp-element-button,
#main .wp-block-button__link, #main .products .product .add_to_cart_button,
#main .product .single_add_to_cart_button) {
	box-sizing: border-box;
	min-height: 2.75rem;
	padding: var(--cm-space-3) var(--cm-space-5);
	border: 1px solid transparent;
	border-radius: var(--cm-radius-button);
	background-color: var(--cm-brand);
	color: #ffffff;
	font-family: var(--cm-font-family);
	font-size: var(--cm-font-body);
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	transition: background-color var(--cm-transition), color var(--cm-transition),
		border-color var(--cm-transition);
}

.cm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--cm-space-2);
	max-width: 100%;
}

@media (hover: hover) {
	:where(body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account))
	:is(.cm-btn, #main .ct-button, #main .wp-element-button,
	#main .wp-block-button__link, #main .products .product .add_to_cart_button,
	#main .product .single_add_to_cart_button):hover:not(:disabled):not(.disabled):not(.loading):not([aria-disabled="true"]) {
		background-color: var(--cm-brand-hover);
		color: #ffffff;
	}
}

:where(body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account))
.cm-btn.cm-btn--secondary {
	border-color: var(--cm-brand);
	background-color: var(--cm-background);
	color: var(--cm-brand);
}

@media (hover: hover) {
	:where(body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account))
	.cm-btn.cm-btn--secondary:hover:not(:disabled):not(.disabled):not(.loading):not([aria-disabled="true"]) {
		border-color: var(--cm-brand-hover);
		background-color: var(--cm-background-soft);
		color: var(--cm-brand-hover);
	}
}

.cm-btn:where(:disabled, .disabled, [aria-disabled="true"]) {
	cursor: not-allowed;
}

/* 5. Cards */
.cm-card {
	box-sizing: border-box;
	min-width: 0;
	padding: var(--cm-space-5);
	border: 1px solid var(--cm-border);
	border-radius: var(--cm-radius-lg);
	background-color: var(--cm-background);
	box-shadow: var(--cm-shadow-sm);
}

.cm-card .cm-card__title {
	margin-block: 0 var(--cm-space-3);
	font-size: var(--cm-font-h3);
	font-weight: 700;
	line-height: 1.3;
}

.cm-card .cm-card__text {
	margin-block: 0 var(--cm-space-4);
	color: var(--cm-text-muted);
	line-height: 1.65;
}

.cm-card > :last-child { margin-block-end: 0; }

.cm-badge {
	display: inline-block;
	padding: var(--cm-space-1) var(--cm-space-3);
	border: 1px solid var(--cm-border);
	border-radius: var(--cm-radius-sm);
	background-color: var(--cm-background-soft);
	color: var(--cm-brand-hover);
	font-family: var(--cm-font-family);
	font-size: var(--cm-font-small);
	font-weight: 600;
	line-height: 1.5;
}

/* 6. WooCommerce refinements */
/* Product prices only; keep tax, sale, quantity and availability logic intact. */
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account)
#main :where(.products .product, .product .summary) .price {
	font-family: var(--cm-font-family);
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.5;
	font-variant-numeric: tabular-nums;
	color: var(--cm-text);
}

/* 7. Accessibility */
:where(body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account))
:is(.cm-btn, #main .ct-button, #main .wp-element-button,
#main .wp-block-button__link, #main .products .product .add_to_cart_button,
#main .product .single_add_to_cart_button):focus-visible,
:where(.cm-container, .cm-section, .cm-card) :where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid var(--cm-focus);
	outline-offset: 3px;
	box-shadow: 0 0 0 3px var(--cm-background);
}

@media (prefers-reduced-motion: reduce) {
	:where(body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account))
	:is(.cm-btn, #main .ct-button, #main .wp-element-button,
	#main .wp-block-button__link, #main .products .product .add_to_cart_button,
	#main .product .single_add_to_cart_button) {
		transition: none;
	}
}

/* 8. Responsive adjustments */
/* One column at 360px, two at 768px, three from 1024px; capped at 1440px. */
@media (min-width: 48rem) {
	.cm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cm-card { padding: var(--cm-space-6); }
}

@media (min-width: 64rem) {
	.cm-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--cm-space-6);
	}
}

/* 9. Native WooCommerce product media (Blocksy).
 * Keep category artwork and the homepage hero under their existing controls.
 * This cannot undo a crop already baked into a WooCommerce thumbnail file.
 */
#main .products .product:not(.product-category) .ct-media-container,
#main .ct-product-gallery-container .ct-media-container {
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

#main .products .product:not(.product-category) .ct-media-container img,
#main .ct-product-gallery-container .ct-media-container > img {
	object-fit: contain;
}

#main .products .product:not(.product-category) .ct-media-container {
	overflow: hidden;
}

/* Limit zoom to catalogue cards; leave the gallery's own zoom controls intact. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	#main .products .product:not(.product-category) .ct-media-container img {
		transition: transform 220ms ease;
	}

	#main .products .product:not(.product-category) .ct-media-container:hover img {
		transform: scale(1.025);
	}
}

@media (prefers-reduced-motion: reduce), (hover: none) {
	#main .products .product:not(.product-category) .ct-media-container img {
		transition: none;
		transform: none;
	}
}

#main .woocommerce-product-details__short-description,
#main .product .summary,
#main .woocommerce-Tabs-panel {
	min-width: 0;
	overflow-wrap: anywhere;
}

#main .product .summary :is(input.qty, select, .single_add_to_cart_button) {
	min-height: 44px;
	max-width: 100%;
}

@media (max-width: 47.99rem) {
	#main .product .summary .single_add_to_cart_button {
		white-space: normal;
	}

	#main .product .summary table.variations {
		width: 100%;
		table-layout: fixed;
	}
}

/* 10. Existing Elementor homepage: preserve content, images and section order. */
#main .elementor-618 {
	--cm-heading-font: system-ui, -apple-system, "Segoe UI", sans-serif;
}

#main .elementor-618 :is(.elementor-element-ad87533, .elementor-element-21100f94) {
	padding: clamp(2rem, 5vw, 5rem) var(--cm-gutter);
	background-position: center right;
}

#main .elementor-618 :is(.elementor-element-ad87533, .elementor-element-21100f94) > .elementor-background-overlay {
	background: linear-gradient(90deg, #f7f5fa 0%, rgb(247 245 250 / 97%) 36%, rgb(247 245 250 / 58%) 58%, rgb(247 245 250 / 0%) 82%);
	opacity: 1;
}

#main .elementor-618 :is(.elementor-element-ad87533, .elementor-element-21100f94) > .elementor-container {
	min-height: 540px;
	max-width: var(--cm-content-max);
}

#main .elementor-618 :is(.elementor-element-e4bb6e1, .elementor-element-62a99ce2) {
	width: 56%;
}

#main .elementor-618 :is(.elementor-element-e4bb6e1, .elementor-element-62a99ce2) > .elementor-widget-wrap {
	padding: 0;
	align-content: center;
	column-gap: 1rem;
	row-gap: 1.25rem;
}

#main .elementor-618 :is(.elementor-element-e4bb6e1, .elementor-element-62a99ce2) .elementor-widget {
	margin: 0;
	text-align: left;
}

#main .elementor-618 :is(.elementor-element-fe734ef, .elementor-element-6e49ee0b) h2 {
	font: 600 1rem/1.5 var(--cm-heading-font);
	color: var(--cm-text-muted);
	margin: 0;
}

#main .elementor-618 :is(.elementor-element-a37135a, .elementor-element-7ecb2722) h1 {
	font: 700 clamp(2rem, 3.8vw, 3.5rem)/1.12 Arial, sans-serif;
	text-shadow: none;
	mix-blend-mode: normal;
	letter-spacing: -.035em;
	color: var(--cm-text);
}

#main .elementor-618 :is(.elementor-element-3203e2f, .elementor-element-1aac35f0) {
	width: 100%;
}

#main .elementor-618 :is(.elementor-element-3203e2f, .elementor-element-1aac35f0) h2 {
	font: 700 clamp(1.4rem, 2.2vw, 2rem)/1.3 Arial, sans-serif;
	text-shadow: none;
	mix-blend-mode: normal;
	color: var(--cm-text);
}

#main .elementor-618 :is(.elementor-element-6a23e4d, .elementor-element-2a8bb268) p {
	font: 400 calc(1rem + 2px)/1.7 var(--cm-heading-font);
	color: var(--cm-text-muted);
	max-width: 48ch;
	margin: 0;
}

#main .elementor-618 :is(:is(.elementor-element-72c5003, .elementor-element-5447ca2f), :is(.elementor-element-cb02729, .elementor-element-2235d65d)) {
	width: auto;
	max-width: none;
	--container-widget-width: auto;
}

#main .elementor-618 .elementor-button {
	border-radius: var(--cm-radius-button);
	min-height: 48px;
	padding: 1rem 1.6rem;
	font: 650 .9375rem/1.2 var(--cm-heading-font);
	background: var(--cm-brand);
	color: white;
}

#main .elementor-618 .elementor-button:focus-visible {
	outline: 3px solid var(--cm-focus);
	outline-offset: 4px;
}

#main .elementor-618 :is(.elementor-element-a455457, .elementor-element-1aa30cc9) {
	max-width: var(--cm-content-max);
	margin: 2rem auto;
	padding: 1.5rem;
	border: 1px solid var(--cm-border);
	border-radius: var(--cm-radius-lg);
	box-shadow: var(--cm-shadow-sm);
	background: white;
}

#main .elementor-618 :is(.elementor-element-a455457, .elementor-element-1aa30cc9) :is(h5, p) {
	font-family: var(--cm-heading-font);
	color: var(--cm-text);
}

#main .elementor-618 :is(.elementor-element-a455457, .elementor-element-1aa30cc9) p {
	font-size: calc(.875rem + 2px);
	line-height: 1.6;
	color: var(--cm-text-muted);
}

#main .elementor-618 :is(.elementor-element-8df24eb, .elementor-element-dfa778f) {
	padding: 3rem var(--cm-gutter) 1.5rem;
}

#main .elementor-618 :is(.elementor-element-5d63f82, .elementor-element-696acb1b) h2 {
	font: 700 clamp(1.75rem, 3vw, 2.5rem)/1.2 var(--cm-heading-font);
	color: var(--cm-text);
}

#main .elementor-618 :is(:is(.elementor-element-f485642, .elementor-element-24ca993d), :is(.elementor-element-c66eed5, .elementor-element-65e6c377), :is(.elementor-element-cd39268, .elementor-element-b2191fe), :is(.elementor-element-dea9ff2, .elementor-element-2b3c2ef8)) {
	padding: 1rem var(--cm-gutter);
}

#main .elementor-618 :is(:is(.elementor-element-f485642, .elementor-element-24ca993d), :is(.elementor-element-c66eed5, .elementor-element-65e6c377), :is(.elementor-element-cd39268, .elementor-element-b2191fe), :is(.elementor-element-dea9ff2, .elementor-element-2b3c2ef8)) img {
	object-fit: contain;
	height: auto;
}

#main .products .product-category .ct-media-container img {
	object-fit: contain;
}

@media (max-width: 767px) {
	#main .elementor-618 :is(.elementor-element-ad87533, .elementor-element-21100f94) {
		background-position: 65% top;
		padding: 18rem 1.25rem 2rem;
	}

	#main .elementor-618 :is(.elementor-element-ad87533, .elementor-element-21100f94) > .elementor-background-overlay {
		background: linear-gradient(180deg, transparent 0, rgb(247 245 250 / 15%) 10rem, #f7f5fa 18rem);
	}

	#main .elementor-618 :is(.elementor-element-ad87533, .elementor-element-21100f94) > .elementor-container {
		min-height: 0;
	}

	#main .elementor-618 :is(.elementor-element-e4bb6e1, .elementor-element-62a99ce2) {
		width: 100%;
	}

	#main .elementor-618 :is(.elementor-element-a455457, .elementor-element-1aa30cc9) {
		max-width: calc(100% - 2.5rem);
		padding: 1rem;
	}

	#main .elementor-618 :is(:is(.elementor-element-72c5003, .elementor-element-5447ca2f), :is(.elementor-element-cb02729, .elementor-element-2235d65d)) {
		width: 100%;
		flex: 0 0 100%;
	}

	#main .elementor-618 :is(.elementor-element-ad87533, .elementor-element-21100f94) .elementor-widget-button .elementor-widget-container {
		margin: 0;
	}

	#main .elementor-618 :is(.elementor-element-ad87533, .elementor-element-21100f94) .elementor-button {
		width: 100%;
	}
}

/* Keep both admin toolbar groups on one row, clear of the mobile menu. */
@media (max-width: 782px) {
	#wpadminbar #wp-toolbar {
		display: flex;
		justify-content: space-between;
	}

	#wpadminbar #wp-admin-bar-root-default {
		min-width: 0;
		flex: 1 1 auto;
		display: flex;
		flex-wrap: nowrap;
	}

	#wpadminbar #wp-admin-bar-top-secondary {
		flex: 0 0 auto;
	}
}

/* 11. Readable navigation, including current items and keyboard focus. */
#header .menu-container .ct-menu-link {
	color: var(--cm-text);
}

#header .menu-container .sub-menu {
	background-color: var(--cm-background);
}

#header .menu-container .ct-menu-link:is(:hover, [aria-current="page"]) {
	color: #ffffff;
	background-color: var(--cm-brand);
}

body [data-header] #offcanvas .ct-panel-inner,
body[data-header] #offcanvas .ct-panel-inner {
	background: var(--cm-background-soft);
	color: var(--cm-text);
}

body[data-header] #offcanvas [data-id="text"] {
	--theme-text-color: var(--cm-text);
}

#offcanvas .mobile-menu .ct-menu-link,
#offcanvas .ct-toggle-dropdown-mobile,
#offcanvas .ct-toggle-close {
	color: var(--cm-text);
	--theme-icon-color: currentColor;
}

#offcanvas .mobile-menu .ct-menu-link {
	min-height: 44px;
}

#offcanvas .mobile-menu .ct-menu-link:is(:hover, [aria-current="page"]) {
	color: var(--cm-brand-hover);
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

#offcanvas :is(.ct-toggle-dropdown-mobile, .ct-toggle-close) {
	min-width: 44px;
	min-height: 44px;
}

#header .menu-container :is(a, button):focus-visible,
#offcanvas :is(a, button):focus-visible {
	outline: 3px solid var(--cm-focus);
	outline-offset: 2px;
}

/* Readable contact links in the mobile drawer. */
#offcanvas [data-id="text"] a {
	color: var(--cm-text);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

#offcanvas [data-id="text"] a:hover {
	color: var(--cm-brand-hover);
}

/* Keep contact form controls comfortably tappable without changing its data. */
#post-1290 .wpforms-form :is(input:not([type="hidden"]), select, textarea, button) {
	min-height: 44px;
}

#post-1290 .wpforms-form :is(input, select, textarea, button):focus-visible {
	outline: 3px solid var(--cm-focus);
	outline-offset: 2px;
}

/* Homepage annotations: enlarge the brand label by 2px. */
#main .elementor-618 :is(.elementor-element-fe734ef, .elementor-element-6e49ee0b) p {
	font-size: calc(1rem + 2px);
}

/* Replace the validation card's empty image with a decorative person icon. */
#main .elementor-618 .elementor-element-178ad39f .elementor-widget-container {
	text-align: center;
}

#main .elementor-618 .elementor-element-178ad39f img {
	display: none;
}

#main .elementor-618 .elementor-element-178ad39f .elementor-widget-container::before {
	content: "";
	display: inline-block;
	width: 50px;
	height: 50px;
	vertical-align: middle;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224 256a128 128 0 1 0 0-256 128 128 0 0 0 0 256zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6C448 348.2 387.8 288 313.6 288z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Keep the homepage brand name on one typographic baseline. */
#post-618 :is(.elementor-element-fe734ef, .elementor-element-6e49ee0b) .elementor-drop-cap,
#post-618 :is(.elementor-element-fe734ef, .elementor-element-6e49ee0b) .elementor-drop-cap-letter {
	float: none;
	display: inline;
	font: inherit;
	line-height: inherit;
	margin: 0;
	padding: 0;
	color: inherit;
}

/* Keep the existing mobile logo and three controls within the header row. */
@media (max-width: 999px) {
	#header [data-device="mobile"] .site-logo-container img {
		width: clamp(120px, 38vw, 180px);
		max-width: 100%;
		height: auto;
	}

	#header [data-device="mobile"] [data-items="primary"] {
		gap: 4px;
	}

	#header [data-device="mobile"] :is(.ct-account-item, .ct-cart-item, .ct-header-trigger) {
		min-width: 44px;
		min-height: 44px;
		margin: 0;
		padding: 8px;
		justify-content: center;
	}

	#header [data-device="mobile"] :is(.ct-account-item, .ct-cart-item, .ct-header-trigger) svg {
		width: 22px;
		height: 22px;
	}

	#header [data-device="mobile"] .ct-cart-item > .ct-label[data-price="yes"] {
		display: none;
	}
}

/* Site-wide purple text and header icons: darker shade, body copy +2px. */
:root body {
	--cm-purple-text: #925689;
	--theme-palette-color-3: var(--cm-purple-text);
	--wp--preset--color--palette-color-3: var(--cm-purple-text);
	--e-global-color-blocksy_palette_3: var(--cm-purple-text);
	--theme-text-color: var(--cm-purple-text);
	--theme-link-initial-color: var(--cm-purple-text);
	--theme-link-hover-color: #762587;
	--theme-font-size: 18px;
	font-size: 18px;
}

#header :is(.ct-header-search, .ct-account-item, .ct-cart-item) {
	--theme-icon-color: var(--cm-purple-text);
	--theme-icon-hover-color: #762587;
	--theme-text-color: var(--cm-purple-text);
	--theme-link-initial-color: var(--cm-purple-text);
}

#main table.shop_table {
	--theme-table-font-size: 17px;
}

#main .shop_table [class*="product-name"] .price {
	--theme-font-size: 17px;
}

#main .shop_table .quantity {
	font-size: 16px;
}

#main .ct-breadcrumbs {
	--theme-font-size: 14px;
	--theme-text-color: var(--cm-purple-text);
}

#main .elementor-widget-text-editor {
	font-size: 18px;
}

#main .elementor-618 :is(.elementor-element-fe734ef, .elementor-element-6e49ee0b) p {
	font-size: 20px;
	color: var(--cm-purple-text);
}

/* Make the cart's shipping calculator visibly actionable. */
#main .cart_totals .shipping-calculator-button {
	color: #762587;
	font-size: 18px;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: .2em;
	line-height: 1.5;
}

#main .cart_totals .shipping-calculator-button:hover {
	color: #581a66;
}

#main .cart_totals .shipping-calculator-button:focus-visible {
	outline: 3px solid var(--cm-focus);
	outline-offset: 4px;
}

/* Offer a quote request as a second cart action. */
#main .cart_totals .cm-cart-quote-button {
	display: flex;
	justify-content: center;
	width: 100%;
	margin-top: 12px;
	align-items: center;
	min-height: 40px;
	height: 40px;
	padding: 5px 20px;
	border: 2px solid #762587;
	background: #ffffff;
	color: #762587;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.65;
	text-align: center;
}

#main .cart_totals .cm-cart-quote-button:hover {
	background: #f7f5fa;
	color: #581a66;
}

#main .cart_totals .cm-cart-quote-button:focus-visible {
	outline: 3px solid var(--cm-focus);
	outline-offset: 4px;
}

#post-1290 #wpforms-246 {
	scroll-margin-top: 130px;
}

#main .cm-cart-instructions {
	clear: both;
	padding-top: 24px;
	text-align: left;
}

#main .cm-cart-instructions label {
	display: block;
	margin-bottom: 8px;
	color: #762587;
	font-size: 18px;
	font-weight: 700;
}

#main .cm-cart-instructions textarea {
	display: block;
	width: 100%;
	min-height: 120px;
	margin-bottom: 12px;
	padding: 12px;
	font-size: 18px;
	resize: vertical;
}

#main .cm-cart-instructions button { float: none; }
#main .cm-cart-instructions-status {
	display: block;
	margin-top: 8px;
	font-size: 16px;
}

#main .shop_table .actions button[name="update_cart"] { float: right; }
#main .shop_table .actions .cm-continue-shopping {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	margin-right: 12px;
	padding: 5px 16px;
	border: 2px solid #762587;
	background: #fff;
	color: #762587;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.65;
	text-decoration: none;
}
#main .shop_table .actions .cm-continue-shopping:hover { background: #f7f5fa; }
#main .shop_table .actions .cm-continue-shopping:focus-visible {
	outline: 3px solid var(--cm-focus);
	outline-offset: 4px;
}
@media (max-width: 689px) {
	#main .shop_table .actions .cm-continue-shopping {
		width: 100%;
		margin: 12px 0 0;
	}
}

/* Privacy information and equally prominent accept/refuse choices. */
.cm-privacy-notice { margin: 1rem 0; padding: 1rem; background: #f7f5fa; color: #34303b; font-size: 15px; line-height: 1.6; }
.cm-privacy-notice a, .cm-privacy-links a { color: #762587; text-decoration: underline; }
.cm-privacy-links { padding: 1rem; text-align: center; background: #f7f5fa; font-size: 15px; line-height: 1.8; }
.cmplz-cookiebanner .cmplz-buttons :is(.cmplz-accept, .cmplz-deny) { background: #762587 !important; border-color: #762587 !important; color: #fff !important; font-weight: 600; }
.cmplz-cookiebanner .cmplz-buttons :is(.cmplz-accept, .cmplz-deny):hover { background: #5b1d68 !important; border-color: #5b1d68 !important; }
.cmplz-cookiebanner :is(button, a):focus-visible { outline: 3px solid #202027; outline-offset: 3px; }


/* Desktop dropdown menu: increase the existing 12px text by 2px. */
#header .menu-container .sub-menu .ct-menu-link {
	font-size: 14px;
}

/* Keep the mug caption directly below its square collection photograph. */
#post-618 .elementor-element-6b5ff67a > .elementor-widget-wrap:has(.elementor-element-b1152c7) {
	margin: 0 0 0 -62px;
	padding: 0;
	background-position: center top;
	background-size: 100% auto;
	align-content: flex-start;
}
#post-618 .elementor-element-6b5ff67a:has(.elementor-element-b1152c7) .elementor-element-5b2dc59 {
	margin-bottom: 0;
}
#post-618 .elementor-element-6b5ff67a:has(.elementor-element-b1152c7) .elementor-spacer-inner {
	height: auto;
	aspect-ratio: 1;
}

@media (max-width: 767px) {
	#post-618 .elementor-element-6b5ff67a > .elementor-widget-wrap:has(.elementor-element-b1152c7) {
		margin: 0;
	}

}

/* Collection prices added below the other homepage photographs. */
#post-618 .elementor-column > .elementor-widget-wrap:has(.cm-collection-price) {
	padding: 0;
	background-position: center top;
	background-size: 100% auto;
	align-content: flex-start;
}
#post-618 .elementor-column:has(.cm-collection-price) .elementor-widget-spacer {
	margin-bottom: 0;
}
#post-618 .elementor-column:has(.cm-collection-price) .elementor-spacer-inner {
	height: auto;
	aspect-ratio: 1;
}
#post-618 .cm-collection-price {
	box-sizing: border-box;
	max-width: 100%;
	overflow-wrap: break-word;
}

@media (max-width: 767px) {
	#post-618 .elementor-column > .elementor-widget-wrap:has(.cm-collection-price) {
		margin: 0;
	}

}

/* Centre each price badge and its text beneath the matching photograph. */
#post-618 .elementor-widget-text-editor:has(.cm-collection-price),
#post-618 .elementor-element-b1152c7 {
	text-align: center;
}

/* Give every collection photograph the same square dimensions as column one. */
#post-618 :is(.elementor-element-24ca993d, .elementor-element-65e6c377, .elementor-element-b2191fe, .elementor-element-2b3c2ef8) .elementor-column > .elementor-widget-wrap {
 flex: 0 0 100%;
 width: 100%;
 padding: 0;
 background-position: center top;
 background-size: 100% auto;
 align-content: flex-start;
}
#post-618 :is(.elementor-element-24ca993d, .elementor-element-65e6c377, .elementor-element-b2191fe, .elementor-element-2b3c2ef8) .elementor-widget-spacer { margin-bottom: 0; }
#post-618 :is(.elementor-element-24ca993d, .elementor-element-65e6c377, .elementor-element-b2191fe, .elementor-element-2b3c2ef8) .elementor-spacer-inner { height: auto; aspect-ratio: 1; }
@media (max-width: 767px) {
 #post-618 :is(.elementor-element-24ca993d, .elementor-element-65e6c377, .elementor-element-b2191fe, .elementor-element-2b3c2ef8) .elementor-column > .elementor-widget-wrap { margin: 0; }
}

/* Return to the product list below the purchase controls. */
.single-product #main .cm-product-continue {
	clear: both;
	margin: 16px 0 24px;
}
.single-product #main .cm-product-continue-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	padding: 12px 24px;
	border: 2px solid #9636a8;
	border-radius: 30px;
	background: #fff;
	color: #9636a8;
	font-size: 17px;
	font-weight: 600;
	text-align: center;
}
.single-product #main .cm-product-continue-button:hover {
	background: #9636a8;
	color: #fff;
}
.single-product #main .cm-product-continue-button:focus-visible {
	outline: 3px solid #762587;
	outline-offset: 3px;
}

/* Catalogue cards: show the cart quantity with lot and removal controls. */
#main .cm-catalogue-cart {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
}
#main .cm-catalogue-cart-count {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 4px 8px;
	color: #762587;
	font-size: 14px;
	line-height: 1.3;
	text-align: center;
}
#main .cm-catalogue-cart-count strong { font-size: 17px; }
#main .cm-catalogue-cart-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 40px;
	width: 40px;
	min-width: 40px;
	min-height: 44px;
	padding: 0;
	border: 1px solid #9636a8;
	border-radius: 8px;
	background: #fff;
	color: #9636a8;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}
#main .cm-catalogue-cart-action:hover { background: #9636a8; color: #fff; }
#main .cm-catalogue-cart-action:disabled { opacity: .45; cursor: default; }
#main .cm-catalogue-cart :is(a, button):focus-visible { outline: 3px solid #762587; outline-offset: 3px; }
#cm-catalogue-cart-status.woocommerce-error { position: fixed; bottom: 20px; left: 5%; width: 90%; z-index: 100000; }

