/**
 * Product archive catalogue contract.
 *
 * Catalogue documents contain the same four widgets but use three different
 * Elementor container depths. These selectors normalize all three structures
 * without page IDs, database changes, or generated Elementor classes.
 */

/* Use the supplied full-resolution artwork with the shared category tint. */
body.term-dog-toys #page .kiddee-product-archive-hero {
	background-image: url('../images/dog-toys-cover-original.png');
}

body.term-cat-toys #page .kiddee-product-archive-hero {
	background-image: url('../images/cat-toys-cover-original.png');
}

/* This cover places its embedded title higher than the older category artwork.
 * Keep the shared hero geometry while biasing only this semantic category crop upward. */
body.term-stainless-steel-fitness-equipment {
	--kiddee-product-archive-hero-position: center 38%;
}


/* Spare-parts artwork carries its embedded title near the top edge. Keep the
 * shared archive geometry while preserving that title inside the hero crop. */
body.term-spare-parts {
	--kiddee-product-archive-hero-position: center top;
}

/* Native hidden state must remain authoritative even when catalogue controls
 * are otherwise displayed by their component rules. */
:is(body.tax-product_cat, body.post-type-archive-product) :is(
	.kiddee-all-products-return[hidden],
	.kiddee-product-category-panel--hero[hidden]
) {
	display: none;
}

:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) {
	display: grid;
	grid-template-columns: minmax(310px, 1.14fr) minmax(0, .86fr);
	grid-template-rows: auto auto auto;
	align-items: center;
	column-gap: clamp(32px, 5vw, 72px);
	row-gap: 0;
	width: min(1120px, calc(100% - 40px));
	max-width: 1120px;
	min-height: 0;
	margin: clamp(36px, 7vw, 88px) auto clamp(42px, 7vw, 92px);
	padding: clamp(46px, 6vw, 78px) clamp(40px, 6vw, 76px);
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner {
	display: contents;
}

:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-heading:first-child {
	grid-column: 2;
	grid-row: 1;
	align-self: end;
	margin-top: 44px;
}

:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-heading:first-child .elementor-heading-title {
	margin: 0;
	color: var(--kv2-airbnb-ink);
	font-size: var(--kv2-type-title-md-size);
	line-height: var(--kv2-type-title-md-line);
	text-align: left;
}

:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-heading:nth-child(2) {
	grid-column: 2;
	grid-row: 2;
	align-self: start;
	margin-top: 18px;
}

:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-heading:nth-child(2) .elementor-heading-title {
	margin: 0;
	color: var(--kv2-color-muted-text);
	font-size: var(--kv2-type-title-md-size);
	line-height: var(--kv2-type-title-md-line);
	text-align: left;
}

:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-button {
	grid-column: 2;
	grid-row: 3;
	align-self: start;
	justify-self: start;
	margin-top: 30px;
}

:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-image {
	grid-column: 1;
	grid-row: 1 / 4;
	align-self: stretch;
	display: flex;
	align-items: center;
	padding: clamp(10px, 1.5vw, 18px);
	background: color-mix(in srgb, var(--kv2-color-surface) 82%, transparent);
	border: 1px solid color-mix(in srgb, var(--kv2-color-surface) 92%, transparent);
	border-radius: 22px;
	box-shadow: 0 24px 50px color-mix(in srgb, var(--kv2-color-primary-dark) 14%, transparent);
}

:is(.tax-product_cat, .post-type-archive-product) #page :is(
	:where(.kiddee-catalogue-intro),
	:where(.kiddee-catalogue-intro)
) .elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 10px 15px 10px 18px;
	color: var(--kv2-color-surface);
	background: var(--kv2-color-catalogue-cta);
	border: 0;
	border-radius: 999px;
	box-shadow: 0 13px 26px color-mix(in srgb, var(--kv2-color-catalogue-cta-hover) 28%, transparent);
	font-size: var(--kv2-type-button-size);
	font-weight: var(--kv2-type-button-weight);
	line-height: var(--kv2-type-button-line);
	transition: transform var(--kv2-transition), box-shadow var(--kv2-transition), background var(--kv2-transition);
}

:is(.tax-product_cat, .post-type-archive-product) #page :is(
	:where(.kiddee-catalogue-intro),
	:where(.kiddee-catalogue-intro)
) .elementor-widget-button .elementor-button-text::after {
	content: "\2193";
	display: inline-grid;
	place-items: center;
	width: 23px;
	height: 23px;
	margin-left: 9px;
	color: var(--kv2-color-catalogue-cta-hover);
	background: var(--kv2-color-surface);
	border-radius: 50%;
	font-size: var(--kv2-type-button-size);
	font-weight: var(--kv2-type-button-weight);
	line-height: var(--kv2-type-button-line);
}

:where(html:not([data-kiddee-input="touch"])) :is(.tax-product_cat, .post-type-archive-product) #page :is(
	:where(.kiddee-catalogue-intro),
	:where(.kiddee-catalogue-intro)
) .elementor-widget-button .elementor-button:hover{
	color: var(--kv2-color-surface);
	background: var(--kv2-color-catalogue-cta-hover);
	box-shadow: 0 17px 34px color-mix(in srgb, var(--kv2-color-catalogue-cta-hover) 36%, transparent);
	transform: translateY(-2px);
}

:is(.tax-product_cat, .post-type-archive-product) #page :is(
	:where(.kiddee-catalogue-intro),
	:where(.kiddee-catalogue-intro)
) .elementor-widget-button .elementor-button:active {
	box-shadow: 0 8px 18px color-mix(in srgb, var(--kv2-color-catalogue-cta-hover) 28%, transparent);
	transform: translateY(0);
}

:is(.tax-product_cat, .post-type-archive-product) #page :is(
	:where(.kiddee-catalogue-intro),
	:where(.kiddee-catalogue-intro)
) .elementor-widget-button .elementor-button:focus-visible {
	outline: 3px solid var(--kv2-color-primary-dark);
	outline-offset: 3px;
}

:is(.tax-product_cat, .post-type-archive-product) #page :is(
	:where(.kiddee-catalogue-intro),
	:where(.kiddee-catalogue-intro)
) .elementor-widget-button .elementor-button:is([aria-disabled="true"], .is-disabled) {
	color: var(--kv2-color-muted-text);
	background: var(--kv2-color-background);
	box-shadow: none;
	cursor: not-allowed;
	opacity: .72;
	transform: none;
}

@media (max-width: 61.99rem) {
	:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) {
		grid-template-columns: minmax(280px, 1.1fr) minmax(0, .9fr);
		width: min(860px, calc(100% - 32px));
		column-gap: 30px;
		padding: 44px 38px;
	}
}

@media (max-width: 47.99rem) {
	:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		width: calc(100% - 28px);
		margin: 34px auto 54px;
		padding: 32px 24px 26px;
		text-align: center;
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-heading:first-child {
		grid-column: 1;
		grid-row: 2;
		margin-top: 0;
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-heading:nth-child(2) {
		grid-column: 1;
		grid-row: 3;
		margin-top: 13px;
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-heading .elementor-heading-title {
		text-align: center;
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-image {
		grid-column: 1;
		grid-row: 4;
		margin-top: 25px;
		padding: 9px;
		border-radius: 18px;
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-button {
		grid-column: 1;
		grid-row: 5;
		justify-self: center;
		margin-top: 24px;
	}
}

:is(.tax-product_cat, .post-type-archive-product) #page .kiddee-product-grid-heading {
	margin-top: clamp(210px, 13vw, 250px);
}

:is(.tax-product_cat, .post-type-archive-product) #page .kiddee-product-grid-heading :is(
	.kiddee-product-grid-heading__eyebrow,
	.kiddee-product-grid-heading__title
),
:is(.tax-product_cat, .post-type-archive-product) #page ul.products li.product :is(
	.woocommerce-loop-product__title,
	.price
) {
	color: var(--kv2-color-text);
}

@media (max-width: 63.99rem) {
	:is(.tax-product_cat, .post-type-archive-product) #page .kiddee-product-grid-heading {
		margin-top: 132px;
	}
}

@media (max-width: 47.99rem) {
	:is(.tax-product_cat, .post-type-archive-product) #page .kiddee-product-grid-heading {
		margin-top: 82px;
	}
}

/* Start the desktop overlay layout above tablet/iPad Pro widths. */
@media (min-width: 75rem) {
	:is(.tax-product_cat, .post-type-archive-product) #page :is(
		:where(.kiddee-catalogue-intro-shell),
		:where(.kiddee-catalogue-intro-shell),
		:where(.kiddee-catalogue-intro-shell),
		:where(.kiddee-catalogue-intro-shell)
	) {
		--content-width: 100%;
		position: relative;
		z-index: 4;
		display: flex;
		align-self: flex-end;
		width: min(520px, 46vw);
		max-width: 520px;
		min-height: 0;
		margin-top: calc(-31.25vw + 20px);
		margin-right: calc(50% - 50vw + clamp(24px, 3vw, 48px));
		margin-bottom: max(0px, calc(31.25vw - 580px));
		margin-left: auto;
		padding: 0;
		background: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :is(
		.elementor-location-archive.elementor,
		.elementor[data-elementor-type="archive"]
	) > .e-con:first-child::after {
		content: "";
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :is(
		:where(.kiddee-catalogue-intro-shell),
		:where(.kiddee-catalogue-intro-shell)
	) > .e-con-inner {
		width: 100%;
		max-width: none;
		padding: 0;
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :is(
		:where(.kiddee-catalogue-intro),
		:where(.kiddee-catalogue-intro)
	) {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto auto auto auto;
		align-content: center;
		align-items: center;
		width: 100%;
		max-width: none;
		min-height: 0;
		margin: 0;
		padding: 0;
		color: var(--kv2-color-surface);
		background: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :is(
		:where(.kiddee-catalogue-intro) > .elementor-widget-heading:first-child,
		:where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-heading:first-child
	) {
		position: relative;
		z-index: 1;
		grid-column: 1;
		grid-row: 2;
		justify-self: center;
		width: min(100%, 360px);
		margin: 0;
		padding: 15px 14px 0;
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :is(
		:where(.kiddee-catalogue-intro) > .elementor-widget-heading:first-child,
		:where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-heading:first-child
	) .elementor-heading-title {
		margin: 0;
		color: var(--kv2-color-surface);
		font-size: var(--kv2-type-title-md-size);
		line-height: var(--kv2-type-title-md-line);
		text-align: center;
		text-shadow: 0 3px 18px color-mix(in srgb, var(--kv2-color-text) 28%, transparent);
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :is(
		:where(.kiddee-catalogue-intro) > .elementor-widget-heading:nth-child(2),
		:where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-heading:nth-child(2)
	) {
		position: relative;
		z-index: 1;
		grid-column: 1;
		grid-row: 3;
		justify-self: center;
		width: min(100%, 360px);
		margin: 8px 0 0;
		padding: 0 14px;
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :is(
		:where(.kiddee-catalogue-intro) > .elementor-widget-heading:nth-child(2),
		:where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-heading:nth-child(2)
	) .elementor-heading-title {
		margin: 0;
		color: var(--kv2-color-surface);
		font-size: var(--kv2-type-title-md-size);
		line-height: var(--kv2-type-title-md-line);
		text-align: center;
		text-shadow: 0 2px 12px color-mix(in srgb, var(--kv2-color-text) 24%, transparent);
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :is(
		:where(.kiddee-catalogue-intro) > .elementor-widget-button,
		:where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-button
	) {
		position: relative;
		z-index: 1;
		grid-column: 1;
		grid-row: 4;
		justify-self: center;
		margin: 13px 0 0;
		padding: 0 14px;
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :is(
		:where(.kiddee-catalogue-intro) > .elementor-widget-image,
		:where(.kiddee-catalogue-intro) > .e-con-inner > .elementor-widget-image
	) {
		position: relative;
		z-index: 2;
		grid-column: 1;
		grid-row: 1;
		align-self: center;
		display: flex;
		width: 100%;
		max-width: none;
		margin: 0;
		padding: 3px;
		background: color-mix(in srgb, var(--kv2-color-surface) 96%, transparent);
		border: 1px solid color-mix(in srgb, var(--kv2-color-surface) 80%, transparent);
		border-radius: 12px;
		box-shadow: 0 12px 28px color-mix(in srgb, var(--kv2-color-primary-dark) 16%, transparent);
	}

	:is(.tax-product_cat, .post-type-archive-product) #page :is(
		:where(.kiddee-catalogue-intro),
		:where(.kiddee-catalogue-intro)
	) .elementor-widget-image img {
		display: block;
		width: 100%;
		height: auto;
		max-height: none;
		object-fit: cover;
		border-radius: 9px;
	}
}

/* Approved taxonomy landing guide. Keep all presentation scoped to the
 * renderer wrapper so archive controls and product cards retain their owners. */
.kiddee-taxonomy-landing-guide { width: 100%; margin-block: clamp(20px, 3vw, 32px) clamp(26px, 4vw, 44px); color: var(--kv2-color-text); }
.kiddee-taxonomy-landing-guide__intro { margin-block: 0 clamp(18px, 2.5vw, 28px); color: var(--kv2-color-muted-text); }
.kiddee-taxonomy-landing-guide__intro > :last-child, .kiddee-taxonomy-landing-disclosure__content > :last-child { margin-bottom: 0; }
.kiddee-taxonomy-landing-guide__section { margin-block: 0 clamp(18px, 2.5vw, 28px); }
.kiddee-taxonomy-landing-guide__section > :is(h2, h3) { margin: 0 0 var(--kv2-space-3); color: var(--kv2-airbnb-ink); font-family: var(--font-heading); font-weight: var(--font-weight-semibold); line-height: 1.25; }
.kiddee-taxonomy-landing-guide__section > h2 { font-size: var(--kv2-type-display-md-size); }
.kiddee-taxonomy-landing-guide__section > h3 { font-size: var(--kv2-type-display-sm-size); }
.kiddee-taxonomy-landing-guide > .kiddee-taxonomy-landing-disclosure, .kiddee-taxonomy-landing-guide__section > .kiddee-taxonomy-landing-disclosure { display: block; border: 1px solid var(--kv2-color-border); border-radius: var(--kv2-radius-md); background: var(--kv2-color-surface); box-shadow: var(--kv2-shadow-sm); overflow: hidden; }
.kiddee-taxonomy-landing-disclosure__summary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--kv2-space-3); min-height: 44px; padding: var(--kv2-space-3) var(--kv2-space-4); color: var(--kv2-airbnb-muted); background: var(--kv2-color-soft-blue); font-size: var(--kv2-type-body-sm-size); font-weight: var(--kv2-type-body-sm-weight); line-height: var(--kv2-type-body-sm-line); cursor: pointer; list-style: none; transition: color var(--kv2-transition), background-color var(--kv2-transition); }
.kiddee-taxonomy-landing-disclosure__summary::-webkit-details-marker { display: none; }
:where(html:not([data-kiddee-input="touch"])) .kiddee-taxonomy-landing-disclosure__summary:hover,
.kiddee-taxonomy-landing-disclosure[open] > .kiddee-taxonomy-landing-disclosure__summary{ color: var(--kv2-color-primary-dark); background: var(--kv2-color-soft-teal); }
.kiddee-taxonomy-landing-disclosure__icon { display: block; flex: 0 0 auto; color: var(--kv2-color-primary); }
.kiddee-taxonomy-landing-disclosure__label { min-width: 0; overflow-wrap: anywhere; }
.kiddee-taxonomy-landing-disclosure__chevron { display: block; width: 9px; height: 9px; margin: 0 3px 4px 0; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform var(--kv2-transition); }
.kiddee-taxonomy-landing-disclosure[open] .kiddee-taxonomy-landing-disclosure__chevron { margin-bottom: -2px; transform: rotate(225deg); }
.kiddee-taxonomy-landing-disclosure__content { padding: var(--kv2-space-4) clamp(var(--kv2-space-4), 3vw, var(--kv2-space-6)); border-top: 1px solid var(--kv2-color-border); color: var(--kv2-color-text); font-size: var(--kv2-type-body-md-size); line-height: var(--kv2-type-body-md-line); }
.kiddee-taxonomy-landing-disclosure__content :is(h2, h3, h4) { margin-block: var(--kv2-space-4) var(--kv2-space-2); color: var(--kv2-airbnb-ink); }
.kiddee-taxonomy-landing-disclosure__content :is(h2, h3, h4):first-child { margin-top: 0; }
.kiddee-taxonomy-landing-disclosure__content :is(ol, ul) { margin-block: var(--kv2-space-3); padding-inline-start: 1.4rem; }
.kiddee-taxonomy-landing-disclosure__content li + li { margin-top: var(--kv2-space-2); }
.kiddee-taxonomy-landing-disclosure__content a { font-weight: var(--font-weight-semibold); }
@media (max-width: 47.99rem) {
	.kiddee-taxonomy-landing-guide { margin-block: 18px 28px; }
	.kiddee-taxonomy-landing-guide__section { margin-bottom: 20px; }
	.kiddee-taxonomy-landing-disclosure__summary { gap: var(--kv2-space-2); padding: 11px var(--kv2-space-3); }
	.kiddee-taxonomy-landing-disclosure__content { padding: var(--kv2-space-3) var(--kv2-space-4) var(--kv2-space-4); font-size: var(--kv2-type-body-sm-size); }
}
@media (prefers-reduced-motion: reduce) {
	.kiddee-taxonomy-landing-disclosure__summary, .kiddee-taxonomy-landing-disclosure__chevron { transition: none; }
}

/* No-catalogue child archives match the New Item layout. */
:is(body.term-stainless-steel-fitness-equipment, body.term-safe-playground-surface) #page .kiddee-catalogue-intro-region {
	display: none;
}

:is(body.term-stainless-steel-fitness-equipment, body.term-safe-playground-surface) #page :is(
	.elementor-location-archive.elementor > .e-con:first-child,
	.elementor[data-elementor-type="archive"] > .e-con:first-child,
	.elementor[data-elementor-type="product-archive"] > .e-con:first-child
)::after {
	content: none;
}

@media (min-width: 75rem) {
	:is(body.term-stainless-steel-fitness-equipment, body.term-safe-playground-surface) #page .elementor-widget-woocommerce-products {
		margin-top: -114px;
	}
}

@media (min-width: 48rem) and (max-width: 74.99rem) {
	:is(body.term-stainless-steel-fitness-equipment, body.term-safe-playground-surface) #page .elementor-widget-woocommerce-products {
		margin-top: -12px;
	}
}
@media (max-width: 47.99rem) {
	:is(body.term-stainless-steel-fitness-equipment, body.term-safe-playground-surface) #page .elementor-widget-woocommerce-products {
		margin-top: -34px;
	}
}
