/**
 * P12 responsive and accessibility corrections.
 * The rules are intentionally narrow and preserve the approved visual design.
 */

:root {
	--gsc-accessible-accent: #c52f43;
	--gsc-focus-ring: #a91f34;
}

/* One clear homepage intent, kept inside the existing content rhythm. */
.gsc-home-intro {
	padding: clamp(18px, 2.6vw, 34px) 0 clamp(12px, 2vw, 24px);
	background: #fff;
}

.gsc-home-intro__inner {
	width: min(var(--theme-normal-container-max-width, 1290px), calc(100% - 40px));
	margin-inline: auto;
}

.gsc-home-intro h1 {
	margin: 0 0 8px;
	font-size: clamp(28px, 3.2vw, 46px);
	line-height: 1.12;
}

.gsc-home-intro p {
	max-width: 850px;
	margin: 0;
	color: #535353;
}

/* The verified homepage slideshow becomes the sole panoramic banner. */
body.home .elementor-element[data-id="4cb05e8"] {
	flex-direction: row;
}

body.home .elementor-element[data-id="9cc18ae"] {
	--width: 100%;
	width: 100%;
	min-height: 0 !important;
	aspect-ratio: 2.45 / 1;
	overflow: hidden;
}

/* Use one consistent desktop row for every WooCommerce product-category intro. */
@media (min-width: 1000px) {
	body.tax-product_cat main#main > .hero-section .entry-header {
		display: grid;
		grid-template-columns: minmax(280px, 35%) minmax(0, 1fr);
		grid-template-areas:
			"title description"
			"title breadcrumbs";
		align-items: center;
		column-gap: 24px;
		row-gap: 10px;
		width: var(--theme-container-width);
		max-width: var(--theme-normal-container-max-width, 1290px);
		padding-block: 24px;
	}

	body.tax-product_cat main#main > .hero-section .page-title {
		grid-area: title;
		align-self: stretch;
		display: flex;
		align-items: center;
		justify-content: flex-start;
		margin: 0;
		padding: 14px 20px;
		text-align: left;
		background: #fff;
	}

	body.tax-product_cat main#main > .hero-section .page-description {
		grid-area: description;
		align-self: end;
		margin: 0;
		padding-inline: 16px;
		text-align: center;
	}

	body.tax-product_cat main#main > .hero-section .ct-breadcrumbs {
		grid-area: breadcrumbs;
		align-self: start;
		margin: 0;
		padding-inline: 16px;
		text-align: center;
	}

	body.tax-product_cat main#main > .ct-container {
		padding-top: 32px;
		padding-bottom: 48px;
	}

	body.tax-product_cat main#main .woo-listing-top {
		margin-bottom: 20px;
	}
}

@media (max-width: 689px) {
	body.home .elementor-element[data-id="9cc18ae"] {
		aspect-ratio: 2 / 1;
	}
}

/* Remove legacy contact copies where the standardized owner panel is shown. */
body.home .elementor-element[data-id="bceea29"],
body.single-product .elementor-1931 {
	display: none !important;
}

/* A restrained gap on Elementor subpages prevents content touching the header. */
body.page:not(.home):not(.page-id-953) .site-main > .elementor:first-child {
	padding-top: clamp(14px, 1.6vw, 24px);
}

/* Product specification tables follow the same content column as prose. */
body.single-product .woocommerce-Tabs-panel--description > table {
	width: min(100%, var(--theme-normal-container-max-width, 1290px)) !important;
	max-width: var(--theme-normal-container-max-width, 1290px);
	margin-inline: auto;
}

/* Keep white utility-header copy and CTA labels above WCAG AA contrast. */
.ct-header [data-row="top"],
.site-header [data-row="top"] {
	background-color: var(--gsc-accessible-accent) !important;
}

main a[href^="mailto:"],
main a[href^="tel:"],
footer a[href^="mailto:"],
footer a[href^="tel:"],
.ct-breadcrumbs a,
.ct-breadcrumbs .separator {
	color: var(--gsc-accessible-accent) !important;
}

.woocommerce .return-to-shop .button,
.woocommerce .return-to-shop .button:hover,
.woocommerce .return-to-shop .button:focus-visible,
.frm-fluent-form .ff-btn,
.frm-fluent-form .ff-btn:hover,
.frm-fluent-form .ff-btn:focus-visible {
	background-color: var(--gsc-accessible-accent) !important;
	color: #fff !important;
}

.frm-fluent-form input:not([type="checkbox"]):not([type="radio"]),
.frm-fluent-form select,
.frm-fluent-form textarea {
	color: #f5f5f5 !important;
}

.frm-fluent-form input::placeholder,
.frm-fluent-form textarea::placeholder {
	color: #bfbfbf !important;
	opacity: 1 !important;
}

.frm-fluent-form .ff-custom_html,
.frm-fluent-form .ff-custom_html p,
.frm-fluent-form .ff-el-form-check-label {
	color: #f5f5f5 !important;
}

.frm-fluent-form .ff-custom_html a,
.frm-fluent-form .ff-el-form-check-label a {
	color: #ff8a99 !important;
	text-decoration: underline !important;
	text-underline-offset: 0.16em;
}

html.gsc-inquiry-modal-open {
	overflow: hidden;
	overscroll-behavior: none;
}

body.gsc-inquiry-modal-open {
	position: fixed;
	top: var(--gsc-inquiry-scroll-top, 0);
	right: 0;
	left: 0;
	width: 100%;
	overflow: hidden;
}

body.single-product .dust-inquiry-modal {
	box-sizing: border-box;
	top: var(--gsc-inquiry-viewport-top, 0);
	right: auto;
	bottom: auto;
	left: var(--gsc-inquiry-viewport-left, 0);
	width: 100%;
	width: var(--gsc-inquiry-viewport-width, 100%);
	height: 100vh;
	height: 100dvh;
	height: var(--gsc-inquiry-viewport-height, 100dvh);
	padding: 18px;
	padding-top: max(18px, env(safe-area-inset-top));
	padding-right: max(18px, env(safe-area-inset-right));
	padding-bottom: max(18px, env(safe-area-inset-bottom));
	padding-left: max(18px, env(safe-area-inset-left));
	overscroll-behavior: none;
}

body.single-product .dust-inquiry-modal[hidden] {
	display: none !important;
}

body.single-product .dust-inquiry-panel {
	max-height: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	scroll-padding-top: 58px;
	scroll-padding-bottom: max(18px, env(safe-area-inset-bottom));
	touch-action: pan-y;
	-webkit-overflow-scrolling: touch;
}

:where(a, button, input, select, textarea, [role="button"], [tabindex]):focus-visible {
	outline: 3px solid var(--gsc-focus-ring) !important;
	outline-offset: 3px !important;
}

.single-product .dust-netto,
.single-product .product_meta a {
	color: #535353 !important;
	opacity: 1 !important;
}

.single-product .single_add_to_cart_button,
.single-product .single_add_to_cart_button:hover,
.single-product .single_add_to_cart_button:focus-visible {
	background-color: var(--gsc-accessible-accent) !important;
	color: #fff !important;
}

body.single-product main#main a[href^="mailto:"],
body.single-product main#main a[href^="tel:"] {
	color: var(--gsc-accessible-accent) !important;
}

body.single-product main#main a[href^="mailto:"]:hover,
body.single-product main#main a[href^="tel:"]:hover {
	color: #a91f34 !important;
}

body.single-product .woocommerce-product-attributes,
body.single-product .woocommerce-tabs table {
	width: 100%;
	max-width: 100%;
	table-layout: fixed;
}

body.single-product .woocommerce-product-attributes th,
body.single-product .woocommerce-product-attributes td,
body.single-product .woocommerce-tabs th,
body.single-product .woocommerce-tabs td {
	overflow-wrap: anywhere;
	word-break: normal;
}

.ct-header-account .ct-account-item,
.ct-header-wishlist,
.ct-header-cart a,
.ct-header-trigger,
.ct-toggle-dropdown-mobile,
.ct-toggle-dropdown-desktop-ghost {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
}

.single-product .single_add_to_cart_button,
.single-product .ct-wishlist-button-single,
.single-product .dust-inquiry-btn,
.single-product .dust-inquiry-close,
.single-product .products .button,
.woocommerce-cart-form .button,
.woocommerce-checkout .button,
.frm-fluent-form .ff-btn-submit {
	min-height: 44px;
}

a[href^="tel:"] {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding-inline: 4px;
}

.woocommerce-cart-form .product-remove a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
}

@media (max-width: 1024px) {

	.woocommerce .quantity .qty,
	.frm-fluent-form input:not([type="checkbox"]):not([type="radio"]),
	.frm-fluent-form select,
	.frm-fluent-form textarea {
		min-height: 44px;
	}
}

@media (max-width: 820px) {
	body.single-product .woocommerce-Tabs-panel--description > table {
		display: block;
		overflow-x: auto;
		table-layout: auto;
		-webkit-overflow-scrolling: touch;
	}
	body.single-product .dust-inquiry-modal {
		padding: 10px;
		padding-top: max(10px, env(safe-area-inset-top));
		padding-right: max(10px, env(safe-area-inset-right));
		padding-bottom: max(10px, env(safe-area-inset-bottom));
		padding-left: max(10px, env(safe-area-inset-left));
	}

	.woocommerce-product-attributes-item__label {
		width: 40%;
	}

	.cky-consent-container,
	.cky-consent-container .cky-consent-bar {
		max-width: calc(100vw - 24px) !important;
	}

	.cky-consent-container .cky-btn {
		min-height: 44px;
	}
}
