/*
Theme Name: CLC Blocks
Description: CLC Maderas block-theme child for the Gutenberg and WooCommerce rebuild.
Author: CLC / Novamira
Template: twentytwentyfive
Version: 0.1.0
Text Domain: clc-blocks
*/

/* Montserrat variable, en WOFF2 y recortada a los alfabetos que el sitio usa.
   El TTF original pesaba 727 KB y era la descarga más pesada del sitio, más que
   cualquier página. WOFF2 comprime con Brotli, y el recorte saca cirílico,
   vietnamita y demás alfabetos que acá no aparecen nunca: 727 KB -> 67 KB.
   Se conservan el eje de peso completo (100 a 900) y todo el latín. */
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("./assets/fonts/Montserrat-VariableFont_wght.woff2") format("woff2");
}

/* Dynamic home catalogue and executed-project sections. */
.clc-home-product-carousels .clc-section__inner {
	display: grid;
	gap: clamp(1.6rem, 3vw, 2.8rem);
}

.clc-home-product-carousel {
	min-width: 0;
}

.clc-home-product-carousel__viewport {
	position: relative;
}

.clc-home-product-carousel__heading,
.clc-home-section-heading {
	display: flex;
	gap: 1rem;
	align-items: end;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.clc-home-product-carousel__heading h3 {
	margin: 0;
	font-size: clamp(1.1rem, 2vw, 1.5rem);
}

.clc-home-product-carousel__heading a,
.clc-home-section-heading > a {
	flex: 0 0 auto;
	color: var(--clc-green-700);
	font-size: 0.75rem;
	font-weight: 750;
	text-decoration: none;
	text-transform: uppercase;
}

.clc-home-product-rail {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 4rem) / 5);
	gap: 1rem;
	overflow-x: auto;
	padding: 0.25rem 0.125rem 1rem;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
}

.clc-home-product-rail::-webkit-scrollbar {
	display: none;
}

.clc-home-product-carousel__arrow {
	position: absolute;
	z-index: 3;
	top: 50%;
	display: grid;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	place-items: center;
	border: 1px solid var(--clc-line);
	border-radius: 50%;
	background: #fff;
	box-shadow: var(--clc-shadow-sm);
	color: var(--clc-green-800);
	cursor: pointer;
	font-size: 1.25rem;
	transition: transform 160ms ease, box-shadow 160ms ease;
	transform: translateY(-50%);
}

.clc-home-product-carousel__arrow--prev {
	left: 0.65rem;
}

.clc-home-product-carousel__arrow--next {
	right: 0.65rem;
}

.clc-home-product-carousel__arrow:disabled {
	opacity: 0;
	pointer-events: none;
}

.clc-home-product-carousel__arrow--prev:hover,
.clc-home-product-carousel__arrow--prev:focus-visible {
	transform: translate(-3px, -50%);
}

.clc-home-product-carousel__arrow--next:hover,
.clc-home-product-carousel__arrow--next:focus-visible {
	transform: translate(3px, -50%);
}

.clc-home-product-carousel__scroll-cue {
	display: none;
	gap: 0.75rem;
	align-items: center;
	margin: -0.125rem 0 0;
	color: var(--clc-muted);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.025em;
}

.clc-home-product-carousel__scroll-cue.is-scrollable {
	display: none;
}

.clc-home-product-card {
	--clc-card-action-height: 50px;
	--clc-card-inline-space: 1.15rem;
	display: flex;
	min-width: 0;
	flex-direction: column;
	scroll-snap-align: start;
	overflow: hidden;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
	background: #fff;
	box-shadow: var(--clc-shadow-sm);
}

.clc-home-product-card__image {
	display: block;
	overflow: hidden;
	padding: 0;
	background: #fff;
	aspect-ratio: 1 / 1;
}

.clc-home-product-card__image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.clc-home-product-card h4 {
	min-height: 3.4em;
	margin: 0;
	padding: 0.9rem var(--clc-card-inline-space) 0;
	font-size: 0.875rem;
	line-height: 1.4;
}

.clc-home-product-card h4 a {
	color: inherit;
	text-decoration: none;
}

.clc-home-product-card__price {
	margin-top: auto;
	padding: 0.75rem var(--clc-card-inline-space) 0;
	color: var(--clc-green-700);
	font-size: 0.875rem;
	font-weight: 800;
}

.clc-home-product-card__action {
	display: flex;
	height: var(--clc-card-action-height);
	min-height: var(--clc-card-action-height);
	box-sizing: border-box;
	margin: 1rem var(--clc-card-inline-space) 1.4rem;
	align-items: center;
	justify-content: center;
	padding: 0.75rem;
	border-radius: var(--clc-radius-pill);
	background: var(--clc-green-700);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 750;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
}

.clc-home-project-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(0.8rem, 2vw, 1.5rem);
}

.clc-home-project-card {
	overflow: hidden;
	border-radius: var(--clc-radius-md);
	background: var(--clc-green-900);
	aspect-ratio: 4 / 3;
}

.clc-home-project-card a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	color: #fff;
	text-decoration: none;
}

.clc-home-project-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.84;
	transition: transform 250ms ease, opacity 250ms ease;
}

.clc-home-project-card span {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	padding: 1.5rem 1rem 1rem;
	background: linear-gradient(transparent, rgba(7, 23, 12, 0.88));
	font-weight: 800;
}

.clc-home-project-card:hover img {
	opacity: 1;
	transform: scale(1.04);
}

@media (max-width: 781px) {
	.clc-hero-slider .cb-button-prev,
	.clc-hero-slider .cb-button-next {
		display: none;
	}

	.clc-hero-slider .cb-pagination {
		bottom: 18px !important;
	}

	.clc-home-product-rail {
		grid-auto-columns: calc((100% - 0.75rem) / 2);
		gap: 0.75rem;
	}

	.clc-home-product-carousel__arrow {
		display: none;
	}

	.clc-home-product-carousel__scroll-cue.is-scrollable {
		display: flex;
		margin-top: 0.125rem;
	}

	.clc-home-product-card h4 {
		font-size: 0.75rem;
	}

	.clc-home-product-card__price {
		font-size: 0.75rem;
	}

	.clc-home-product-card__action {
		margin-inline: 0.5rem;
		font-size: 0.625rem;
	}

	.clc-home-project-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.clc-home-section-heading {
		align-items: start;
	}
}

:root {
	/* Color -------------------------------------------------------------
	 * La paleta vive en theme.json, que es de donde la toma el editor de
	 * bloques. Estas variables la consumen para que haya una sola fuente de
	 * verdad: cambiar un color de marca se hace alli y nada mas. El hex queda
	 * de respaldo por si el token no estuviera disponible en algun contexto.
	 * Los tonos auxiliares de mas abajo no estan en theme.json a proposito:
	 * no se eligen desde el editor.
	 */
	--clc-green-900: var(--wp--preset--color--clc-dark-green, #123d22);
	--clc-green-800: #18562b;
	--clc-green-700: var(--wp--preset--color--clc-green, #21722d);
	--clc-green-500: #5a943f;
	--clc-sage: var(--wp--preset--color--clc-sage, #dce8d8);
	--clc-cream: var(--wp--preset--color--clc-cream, #f5f1e8);
	--clc-cream-2: #fbf9f4;
	--clc-ink: var(--wp--preset--color--clc-ink, #20231f);
	--clc-muted: #667066;
	--clc-line: #dfe4dc;

	/* Canal RGB ---------------------------------------------------------
	 * rgba() necesita los tres numeros sueltos y no acepta un hex, asi que el
	 * verde oscuro se escribe una sola vez aca y de aca salen todas las
	 * sombras y velos del sitio.
	 */
	--clc-ink-rgb: 18, 61, 34;

	/* Radios ------------------------------------------------------------
	 */
	--clc-radius-sm: 10px;
	--clc-radius-md: 18px;
	--clc-radius-lg: 28px;
	--clc-radius-pill: 999px;

	/* Sombras -----------------------------------------------------------
	 */
	--clc-shadow: 0 18px 55px rgba(var(--clc-ink-rgb), 0.12);
	/* Tres niveles de elevacion. Antes habia once sombras sueltas, cada una
	 * usada una sola vez y todas variaciones de las mismas tres formas. */
	--clc-shadow-sm: 0 8px 24px rgba(var(--clc-ink-rgb), 0.12);
	--clc-shadow-md: 0 12px 32px rgba(var(--clc-ink-rgb), 0.12);
	--clc-shadow-card: 0 24px 60px rgba(var(--clc-ink-rgb), 0.09);
	--clc-focus-ring: 0 0 0 3px rgba(33, 114, 45, 0.12);

	/* Tarjetas de producto ----------------------------------------------
	 */
	--clc-card-inline-space: 1.15rem;
	--clc-card-action-height: 50px;
	--clc-card-action-radius: var(--clc-radius-pill);

	/* Tipografia --------------------------------------------------------
	 */
	--clc-title-page: clamp(2rem, 3.2vw, 3.25rem);
	--clc-title-product: 2rem;
	--clc-title-hero: clamp(2.25rem, 4vw, 3.25rem);
	--clc-heading-h2: clamp(1.375rem, 2vw, 1.75rem);
	--clc-heading-h3: clamp(1.25rem, 1.5vw, 1.5rem);
	--clc-heading-h4: clamp(1.0625rem, 1.1vw, 1.25rem);
}

html {
	scroll-behavior: smooth;
}

body {
	overflow-x: hidden;
	background: #fff;
	color: var(--clc-ink);
	font-family: "Montserrat", Arial, Helvetica, sans-serif;
}

body,
button,
input,
select,
textarea {
	font-family: "Montserrat", Arial, Helvetica, sans-serif;
}

a {
	text-underline-offset: 0.18em;
}

.wp-site-blocks {
	padding: 0;
}

.wp-site-blocks > * {
	margin-block-start: 0;
}

.clc-site-main {
	margin-block-start: 0;
}

.clc-site-main > .entry-content {
	margin-block-start: 0;
}

.clc-site-main .entry-content > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: none;
}

.single-product .wp-block-post-title {
	font-size: var(--clc-title-product);
	line-height: 1.08;
	text-wrap: balance;
}

.clc-section {
	padding: clamp(4.5rem, 7vw, 7.5rem) clamp(1.25rem, 4vw, 4rem);
}

.clc-section--soft {
	background: var(--clc-cream-2);
}

.clc-section--green {
	background: var(--clc-green-900);
	color: #fff;
}

.clc-section__inner {
	width: min(1180px, 100%);
	margin-inline: auto;
}

.clc-eyebrow {
	margin-bottom: 0.75rem;
	color: var(--clc-green-700);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.clc-section-title {
	max-width: 760px;
	margin-top: 0;
	margin-bottom: 1rem;
	font-size: var(--clc-heading-h2);
	font-weight: 750;
	letter-spacing: -0.045em;
	line-height: 1.04;
}

.clc-section-intro {
	max-width: 720px;
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
	color: var(--clc-muted);
	font-size: clamp(1rem, 1.5vw, 1.18rem);
	line-height: 1.75;
}

.clc-section--green .clc-eyebrow,
.clc-section--green .clc-section-intro {
	color: rgba(255, 255, 255, 0.72);
}

.wp-element-button,
.wp-block-button__link,
.button,
button,
input[type="submit"] {
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.045em;
	text-transform: uppercase;
	transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.wp-element-button:hover,
.wp-block-button__link:hover,
.button:hover,
button:hover,
input[type="submit"]:hover {
	transform: translateY(-1px);
	box-shadow: var(--clc-shadow-sm);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	border-width: 1px;
}

/* Header */
.clc-utility-bar {
	position: relative;
	z-index: 30;
	padding: 0.55rem clamp(1rem, 4vw, 4rem);
	background: var(--clc-green-900);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}

.clc-utility-bar a {
	color: inherit;
	text-decoration: none;
}

.clc-utility-bar__inner {
	width: min(1180px, 100%);
	margin-inline: auto;
}

.clc-social-links {
	gap: 0.5rem !important;
}

.clc-social-links p {
	margin: 0;
}

.clc-social-links a {
	display: grid;
	width: 28px;
	height: 28px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 50%;
	transition: border-color 140ms ease, background-color 140ms ease;
}

.clc-social-links a::before {
	width: 13px;
	height: 13px;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
}

.clc-social-links a:hover {
	border-color: rgba(255, 255, 255, 0.65);
	background: rgba(255, 255, 255, 0.1);
}

.clc-social-links a:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.clc-social-link--facebook::before {
	background-image: url("assets/social-icons/facebook.svg");
}

.clc-social-link--instagram::before {
	background-image: url("assets/social-icons/instagram.svg");
}

.clc-social-link--youtube::before {
	background-image: url("assets/social-icons/youtube.svg");
}

.clc-social-link--linkedin::before {
	background-image: url("assets/social-icons/linkedin.svg");
}

.clc-social-link--whatsapp::before {
	background-image: url("assets/social-icons/whatsapp.svg");
}

.clc-main-header {
	position: relative;
	z-index: 40;
	padding: 0.75rem clamp(1rem, 4vw, 4rem);
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(14px);
}

.clc-main-header:has(.clc-catalog-search__panel:not([hidden])) {
	z-index: 80;
}

.clc-main-header__inner {
	display: grid !important;
	grid-template-areas: "logo search actions";
	grid-template-columns: auto minmax(320px, 1fr) auto;
	gap: clamp(1rem, 2.6vw, 2.5rem);
	align-items: center;
	width: min(1180px, 100%);
	margin-inline: auto;
}

.clc-main-header .wp-block-site-logo {
	grid-area: logo;
	margin: 0;
}

.clc-main-header .wp-block-site-logo img {
	width: auto;
	max-width: 132px;
	height: 60px;
	object-fit: contain;
}

.clc-main-header .clc-catalog-search {
	grid-area: search;
	justify-self: center;
}

.clc-header-actions {
	grid-area: actions;
	flex-shrink: 0;
	gap: 0.5rem !important;
	font-size: 0.75rem;
	font-weight: 700;
	white-space: nowrap;
}

.clc-header-actions .wc-block-customer-account__link,
.clc-header-actions .wc-block-mini-cart__button {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	min-height: 42px;
	padding: 0.75rem 0.75rem;
	border: 0;
	border-radius: var(--clc-radius-pill);
	background: transparent;
	color: var(--clc-ink);
	box-shadow: none;
	text-decoration: none;
}

.clc-header-actions .wc-block-mini-cart__button {
	padding-inline: 1rem;
	background: var(--clc-cream);
	color: var(--clc-green-900);
}

.clc-header-actions .wc-block-customer-account__link:hover,
.clc-header-actions .wc-block-mini-cart__button:hover {
	background: var(--clc-sage);
	color: var(--clc-green-900);
	box-shadow: none;
	transform: none;
}

.clc-header-actions .wc-block-customer-account__link:focus-visible,
.clc-header-actions .wc-block-mini-cart__button:focus-visible {
	outline: 2px solid var(--clc-green-700);
	outline-offset: 2px;
}

.clc-header-actions .wc-block-customer-account__account-icon,
.clc-header-actions .wc-block-mini-cart__icon {
	width: 20px;
	height: 20px;
}

.clc-menu-bar {
	position: relative;
	z-index: 45;
	padding: 0 clamp(1rem, 4vw, 4rem);
	border-block: 1px solid var(--clc-line);
	background: #fff;
}

.clc-menu-bar__inner {
	width: min(1180px, 100%);
	margin-inline: auto;
}

.clc-menu-bar .wp-block-navigation {
	width: 100%;
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.025em;
	text-transform: uppercase;
}

.clc-menu-bar .wp-block-navigation__container {
	width: 100%;
	justify-content: space-between;
	gap: clamp(0.7rem, 2.5vw, 2rem);
}

.clc-menu-bar .wp-block-navigation-item__content {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	padding-block: 0.75rem;
	text-decoration: none;
}

.clc-menu-bar .wp-block-navigation-item__content::before {
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	background: currentColor;
	content: "";
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.clc-menu-link--home > .wp-block-navigation-item__content::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m3 11 9-8 9 8v10h-6v-6H9v6H3V11Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m3 11 9-8 9 8v10h-6v-6H9v6H3V11Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-menu-link--shop > .wp-block-navigation-item__content::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 9h16l-1 12H5L4 9Zm4 0a4 4 0 0 1 8 0' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 9h16l-1 12H5L4 9Zm4 0a4 4 0 0 1 8 0' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-menu-link--wood > .wp-block-navigation-item__content::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3-5 7h3l-4 6h5v5h2v-5h5l-4-6h3l-5-7Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3-5 7h3l-4 6h5v5h2v-5h5l-4-6h3l-5-7Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-menu-link--floor > .wp-block-navigation-item__content::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h18v16H3V4Zm6 0v16m6-16v16M3 12h18' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h18v16H3V4Zm6 0v16m6-16v16M3 12h18' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E");
}

.clc-menu-link--protection > .wp-block-navigation-item__content::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 5 6v5c0 4.7 2.7 8.2 7 10 4.3-1.8 7-5.3 7-10V6l-7-3Zm-3 9 2 2 4-5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 5 6v5c0 4.7 2.7 8.2 7 10 4.3-1.8 7-5.3 7-10V6l-7-3Zm-3 9 2 2 4-5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-menu-link--custom > .wp-block-navigation-item__content::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m14 5 5 5M12 7l5 5-9 9H3v-5l9-9Zm4-4 5 5-3 3-5-5 3-3Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m14 5 5 5M12 7l5 5-9 9H3v-5l9-9Zm4-4 5 5-3 3-5-5 3-3Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-menu-link--contact > .wp-block-navigation-item__content::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h16v12H9l-5 4V5Zm4 4h8m-8 4h5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h16v12H9l-5 4V5Zm4 4h8m-8 4h5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-menu-bar .wp-block-navigation-item__content:hover {
	color: var(--clc-green-700);
}

.clc-menu-bar .wp-block-navigation-item__content:focus-visible {
	outline: 2px solid var(--clc-green-700);
	outline-offset: 3px;
}

/* Dynamic catalogue navigation */
.clc-catalog-nav {
	width: 100%;
	color: var(--clc-ink);
	font-family: Montserrat, Arial, Helvetica, sans-serif;
}

.clc-catalog-nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.clc-catalog-nav__open,
.clc-catalog-nav__quick-scroller,
.clc-catalog-nav__mobile-heading,
.clc-catalog-nav__submenu-toggle {
	display: none;
}

.clc-catalog-nav__list {
	display: flex;
	width: 100%;
	align-items: stretch;
	justify-content: space-between;
	gap: clamp(0.3rem, 0.85vw, 0.9rem);
}

.clc-catalog-nav__scroller {
	width: 100%;
}

.clc-catalog-nav__item--depth-0 {
	position: relative;
	display: flex;
	align-items: stretch;
}

.clc-catalog-nav__link-row {
	display: flex;
	align-items: stretch;
}

.clc-catalog-nav__link {
	color: inherit;
	text-decoration: none;
}

.clc-catalog-nav__item--depth-0 > .clc-catalog-nav__link-row > .clc-catalog-nav__link {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	padding-block: 0.75rem;
	font-size: clamp(0.59rem, 0.66vw, 0.69rem);
	font-weight: 750;
	letter-spacing: 0.025em;
	line-height: 1.15;
	text-transform: uppercase;
	white-space: nowrap;
}

.clc-catalog-nav__item--depth-0 > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	background: currentColor;
	content: "";
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.clc-catalog-nav__item--depth-0.has-children > .clc-catalog-nav__link-row > .clc-catalog-nav__link::after {
	width: 6px;
	height: 6px;
	margin: -2px 2px 0 2px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	content: "";
	transform: rotate(45deg);
}

.clc-catalog-nav__item--shop > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 9h16l-1 12H5L4 9Zm4 0a4 4 0 0 1 8 0' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 9h16l-1 12H5L4 9Zm4 0a4 4 0 0 1 8 0' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-catalog-nav__item--wood > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3-5 7h3l-4 6h5v5h2v-5h5l-4-6h3l-5-7Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3-5 7h3l-4 6h5v5h2v-5h5l-4-6h3l-5-7Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-catalog-nav__item--floor > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h18v16H3V4Zm6 0v16m6-16v16M3 12h18' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h18v16H3V4Zm6 0v16m6-16v16M3 12h18' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E");
}

.clc-catalog-nav__item--deck > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18v4H3V5Zm0 5h18v4H3v-4Zm0 5h18v4H3v-4ZM8 5v14m8-14v14' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18v4H3V5Zm0 5h18v4H3v-4Zm0 5h18v4H3v-4ZM8 5v14m8-14v14' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-catalog-nav__item--protection > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 5 6v5c0 4.7 2.7 8.2 7 10 4.3-1.8 7-5.3 7-10V6l-7-3Zm-3 9 2 2 4-5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 5 6v5c0 4.7 2.7 8.2 7 10 4.3-1.8 7-5.3 7-10V6l-7-3Zm-3 9 2 2 4-5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-catalog-nav__item--installation > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 6a5 5 0 0 0-6.5 6.5L3 17l4 4 4.5-4.5A5 5 0 0 0 18 10l-3 3-4-4 3-3Z' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 6a5 5 0 0 0-6.5 6.5L3 17l4 4 4.5-4.5A5 5 0 0 0 18 10l-3 3-4-4 3-3Z' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-catalog-nav__item--custom > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m14 5 5 5M12 7l5 5-9 9H3v-5l9-9Zm4-4 5 5-3 3-5-5 3-3Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m14 5 5 5M12 7l5 5-9 9H3v-5l9-9Zm4-4 5 5-3 3-5-5 3-3Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-catalog-nav__item--contact > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h16v12H9l-5 4V5Zm4 4h8m-8 4h5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h16v12H9l-5 4V5Zm4 4h8m-8 4h5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-catalog-nav__item--about > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5.5A3.5 3.5 0 0 1 7.5 2H11v17H7.5A3.5 3.5 0 0 0 4 22V5.5Zm16 0A3.5 3.5 0 0 0 16.5 2H13v17h3.5A3.5 3.5 0 0 1 20 22V5.5Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5.5A3.5 3.5 0 0 1 7.5 2H11v17H7.5A3.5 3.5 0 0 0 4 22V5.5Zm16 0A3.5 3.5 0 0 0 16.5 2H13v17h3.5A3.5 3.5 0 0 1 20 22V5.5Z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.clc-catalog-nav__item--depth-0 > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	width: 22px;
	height: 22px;
	flex-basis: 22px;
	background-color: transparent;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	-webkit-mask-image: none;
	mask-image: none;
}

.clc-catalog-nav__item--shop > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	background-image: url("assets/menu-icons/tienda.png");
}

.clc-catalog-nav__item--wood > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	background-image: url("assets/menu-icons/maderas.png");
}

.clc-catalog-nav__item--floor > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	background-image: url("assets/menu-icons/pisos.png");
}

.clc-catalog-nav__item--deck > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	background-image: url("assets/menu-icons/deck.png");
}

.clc-catalog-nav__item--protection > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	background-image: url("assets/menu-icons/proteccion.png");
}

.clc-catalog-nav__item--installation > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	background-image: url("assets/menu-icons/instalacion.png");
}

.clc-catalog-nav__item--custom > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	background-image: url("assets/menu-icons/productos-a-pedido.webp");
}

.clc-catalog-nav__item--contact > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	background-image: url("assets/menu-icons/contacto.png");
}

.clc-catalog-nav__item--about > .clc-catalog-nav__link-row > .clc-catalog-nav__link::before {
	background-image: url("assets/menu-icons/conoce-clc.png");
}

.clc-catalog-nav__item--depth-0:hover > .clc-catalog-nav__link-row > .clc-catalog-nav__link,
.clc-catalog-nav__item--depth-0:focus-within > .clc-catalog-nav__link-row > .clc-catalog-nav__link {
	color: var(--clc-green-700);
}

.clc-catalog-nav__link:focus-visible,
.clc-catalog-nav__submenu-toggle:focus-visible,
.clc-catalog-nav__open:focus-visible,
.clc-catalog-nav__close:focus-visible {
	outline: 2px solid var(--clc-green-700);
	outline-offset: 3px;
}

.clc-catalog-nav__item--depth-0 > .clc-catalog-nav__submenu {
	position: absolute;
	z-index: 90;
	top: calc(100% - 1px);
	left: 0;
	display: none;
	min-width: 250px;
	gap: 0.25rem;
	padding: 0.75rem;
	border: 1px solid var(--clc-line);
	border-radius: 0 0 10px 10px;
	background: #fff;
	box-shadow: var(--clc-shadow-md);
}

.clc-catalog-nav__item--depth-0:nth-last-child(-n + 2) > .clc-catalog-nav__submenu {
	right: 0;
	left: auto;
}

.clc-catalog-nav__item--depth-0:hover > .clc-catalog-nav__submenu,
.clc-catalog-nav__item--depth-0:focus-within > .clc-catalog-nav__submenu {
	display: grid;
}

.clc-catalog-nav__item--depth-0.is-mega > .clc-catalog-nav__submenu {
	width: min(720px, calc(100vw - 2rem));
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 0.75rem;
	padding: 1rem;
}

.clc-catalog-nav__item--depth-1 > .clc-catalog-nav__link-row > .clc-catalog-nav__link {
	display: block;
	width: 100%;
	padding: 0.5rem 0.5rem;
	border-radius: 6px;
	color: var(--clc-green-900);
	font-size: 0.75rem;
	font-weight: 650;
	line-height: 1.25;
	text-transform: none;
}

.clc-catalog-nav__item--depth-1 > .clc-catalog-nav__link-row > .clc-catalog-nav__link:hover {
	background: var(--clc-sage);
}

.clc-catalog-nav__item--depth-1.has-children > .clc-catalog-nav__link-row > .clc-catalog-nav__link {
	border-bottom: 1px solid var(--clc-line);
	border-radius: 0;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}

.clc-catalog-nav__item--depth-1 > .clc-catalog-nav__submenu {
	display: grid;
	gap: 0.125rem;
	padding-top: 0.25rem;
}

.clc-catalog-nav__item--depth-2 .clc-catalog-nav__link {
	display: block;
	padding: 0.5rem 0.5rem;
	border-radius: 6px;
	color: var(--clc-muted);
	font-size: 0.75rem;
	font-weight: 550;
	line-height: 1.25;
	text-transform: none;
}

.clc-catalog-nav__item--depth-2 .clc-catalog-nav__link:hover {
	background: var(--clc-sage);
	color: var(--clc-green-900);
}

/* Slider */
.clc-hero-slider {
	margin: 0 !important;
	background: var(--clc-green-900);
}

.clc-hero-slider .wp-block-cover {
	min-height: clamp(620px, 70vw, 790px);
	padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 7vw, 7rem) !important;
}

.clc-hero-slider .wp-block-cover__background {
	background: linear-gradient(90deg, rgba(7, 23, 12, 0.86) 0%, rgba(7, 23, 12, 0.58) 39%, rgba(7, 23, 12, 0.06) 72%) !important;
	opacity: 1 !important;
}

.clc-hero-slider .wp-block-cover__inner-container {
	width: min(1180px, 100%);
	margin-inline: auto;
}

.clc-hero-copy {
	width: min(620px, 88%);
	margin: 0 !important;
}

.clc-sparlack-promo {
	display: grid;
	width: 100%;
	align-items: center;
	grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
	gap: clamp(2rem, 6vw, 6rem);
}

.clc-sparlack-promo__visual {
	width: min(390px, 30vw);
	margin: 0 0 0 auto !important;
	padding: clamp(0.85rem, 1.8vw, 1.35rem);
	border: 1px solid rgba(220, 232, 216, 0.75);
	border-radius: var(--clc-radius-lg);
	background: #fff;
	box-shadow: var(--clc-shadow);
}

.clc-sparlack-promo__visual img {
	display: block;
	width: 100%;
	max-height: 500px;
	object-fit: contain;
}

.clc-hero-kicker {
	margin-bottom: 1rem;
	color: #d6e5ce;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.clc-hero-title {
	margin: 0 0 1.25rem;
	color: #fff;
	font-size: var(--clc-title-hero);
	font-weight: 760;
	letter-spacing: -0.055em;
	line-height: 0.99;
	text-wrap: balance;
}

.clc-hero-text {
	max-width: 560px;
	margin-bottom: 2rem;
	color: rgba(255, 255, 255, 0.82);
	font-size: clamp(1rem, 1.7vw, 1.2rem);
	line-height: 1.7;
}

.clc-hero-slider .wp-block-button__link {
	padding: 1rem 1.5rem;
}

.clc-hero-slider .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.72);
	color: #fff;
}

.clc-hero-slider .cb-button-prev,
.clc-hero-slider .cb-button-next {
	width: 46px;
	height: 46px;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 50%;
	background: rgba(var(--clc-ink-rgb), 0.4);
	color: #fff;
	backdrop-filter: blur(8px);
}

.clc-hero-slider .cb-button-prev::after,
.clc-hero-slider .cb-button-next::after {
	font-size: 0.875rem;
	font-weight: 800;
}

.clc-hero-slider .swiper-pagination-bullet {
	width: 9px;
	height: 9px;
	background: #fff;
	opacity: 0.48;
}

.clc-hero-slider .swiper-pagination-bullet-active {
	width: 28px;
	border-radius: 999px;
	opacity: 1;
}

/* Promise strip */
.clc-promise-strip {
	position: relative;
	z-index: 5;
	width: min(1100px, calc(100% - 2.5rem));
	margin: -48px auto 0 !important;
	padding: 1.25rem 1.5rem;
	border: 1px solid rgba(var(--clc-ink-rgb), 0.08);
	border-radius: var(--clc-radius-md);
	background: #fff;
	box-shadow: var(--clc-shadow);
}

.clc-promise {
	gap: 0.75rem;
	align-items: center;
}

.clc-promise strong {
	display: block;
	margin-bottom: 0.25rem;
	color: var(--clc-green-800);
	font-size: 0.875rem;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.clc-promise span {
	color: var(--clc-muted);
	font-size: 0.75rem;
}

.clc-promise__icon {
	display: grid;
	width: 42px;
	height: 42px;
	flex: 0 0 42px;
	place-items: center;
	border-radius: 50%;
	background: var(--clc-sage);
	color: var(--clc-green-800);
	font-size: 1.125rem;
	font-weight: 800;
}

/* Categories */
.clc-category-grid {
	display: grid !important;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.6rem) !important;
}

.clc-category-card {
	position: relative;
	text-align: center;
}

.clc-category-card a {
	color: inherit;
	text-decoration: none;
}

.clc-category-card figure {
	overflow: hidden;
	margin: 0 0 1rem;
	border: 7px solid #fff;
	border-radius: 50%;
	box-shadow: var(--clc-shadow-md);
	aspect-ratio: 1;
}

.clc-category-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 300ms ease;
}

.clc-category-card figure > a {
	display: block;
	width: 100%;
	height: 100%;
}

.clc-category-card:hover img {
	transform: scale(1.055);
}

.clc-category-card h3 {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 800;
	letter-spacing: 0.035em;
	line-height: 1.3;
	text-transform: uppercase;
}

.clc-category-card p {
	margin: 0.5rem 0 0;
	color: var(--clc-muted);
	font-size: 0.75rem;
}

/* Canonical WooCommerce product card */
.wc-block-product-template {
	gap: 1.25rem;
	margin-block: 0;
}

.clc-product-collection--featured .wc-block-product-template {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.clc-product-collection--catalog .wc-block-product-template {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.wc-block-product-template > li.wc-block-product {
	--clc-card-action-height: 50px;
	--clc-card-inline-space: 1.15rem;
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
	padding: 0 0 1.5rem;
	overflow: hidden;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
	background: #fff;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.wc-block-product-template > li.wc-block-product:hover {
	transform: translateY(-4px);
	box-shadow: var(--clc-shadow);
}

.wc-block-product-template .wp-block-woocommerce-product-image {
	margin: 0 0 1.25rem;
}

.wc-block-product-template .wc-block-components-product-image {
	overflow: hidden;
	background: var(--clc-cream-2);
}

.wc-block-product-template .wc-block-components-product-image img {
	width: 100%;
	aspect-ratio: 1;
	transition: transform 260ms ease;
}

.wc-block-product-template > li.wc-block-product:hover .wc-block-components-product-image img {
	transform: scale(1.025);
}

.wc-block-product-template .wp-block-post-title {
	margin: 0 1.25rem;
	color: var(--clc-ink);
	font-size: 0.875rem;
	font-weight: 750;
	line-height: 1.55;
}

.wc-block-product-template .wp-block-post-title a {
	color: inherit;
	text-decoration: none;
}

/* El precio absorbe el espacio sobrante de la tarjeta (margin-top: auto), no el
 * botón. Así precio y botón quedan anclados juntos al fondo y el precio cae a la
 * misma altura en toda la fila, sin importar cuántas líneas ocupe el título.
 * El padding-top conserva la separación mínima con el título cuando no sobra
 * espacio. Antes el precio llevaba un margen fijo y flotaba con el título. */
.wc-block-product-template .wp-block-woocommerce-product-price {
	margin: auto 1.25rem 0;
	padding-top: 0.75rem;
	color: var(--clc-green-700);
	font-size: 1rem;
	font-weight: 800;
}

.wc-block-product-template .wp-block-woocommerce-product-button {
	width: auto;
	margin: 0 1.25rem;
	padding-top: 1rem;
}

/* El precio va SIEMPRE pegado al boton, y todo bloque opcional (swatches) se
 * ubica por encima. Asi la distancia del precio al fondo de la tarjeta es
 * constante por construccion y queda alineado en toda la fila, sin reservar
 * huecos. La tarjeta ya es flex, asi que alcanza con `order` y no hay que
 * tocar el marcado que genera el bloque.
 *
 * Imagen y titulo se quedan en el order 0 por defecto. Un bloque opcional
 * nuevo solo necesita entrar con order 1 para heredar el mismo comportamiento. */
.wc-block-product-template > li.wc-block-product > .clc-product-swatches,
.wc-block-grid__products > .wc-block-grid__product > .clc-product-swatches {
	order: 1;
}

.wc-block-product-template > li.wc-block-product > .wp-block-woocommerce-product-price,
.wc-block-grid__products > .wc-block-grid__product > .wc-block-grid__product-price {
	order: 2;
}

.wc-block-product-template > li.wc-block-product > .wp-block-woocommerce-product-button,
.wc-block-product-template > li.wc-block-product > .clc-timber-quote-button,
.wc-block-grid__products > .wc-block-grid__product > .wc-block-grid__product-add-to-cart {
	order: 3;
}

/* El !important es necesario: WooCommerce declara
 * `.wp-block-button.wc-block-components-product-button .wp-block-button__link { width: auto }`
 * con mayor especificidad (2 clases + 1 clase vs 2 clases). Sin forzarlo el
 * botón queda a la mitad del ancho de la tarjeta. Verificado en la tienda. */
.wc-block-product-template .wc-block-components-product-button__button {
	display: flex;
	width: 100% !important;
	box-sizing: border-box;
	height: var(--clc-card-action-height);
	min-height: var(--clc-card-action-height);
	align-items: center;
	justify-content: center;
	padding: 0.5rem 1rem;
	background: var(--clc-green-700);
	color: #fff;
	text-align: center;
}

/* Quote-only timber products bypass WooCommerce's product-button wrapper.
 * Reset the global block-link height so their action matches native card
 * buttons instead of stretching to fill the remaining card height. */
.wc-block-product-template > li.wc-block-product > .clc-timber-quote-button,
.wc-block-grid__products > li.wc-block-grid__product > .clc-timber-quote-button,
.woocommerce ul.products li.product > .clc-timber-quote-button {
	display: flex;
	width: auto;
	min-height: var(--clc-card-action-height);
	height: var(--clc-card-action-height);
	box-sizing: border-box;
	margin: 1rem var(--clc-card-inline-space) 0;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1rem;
	background: var(--clc-green-700);
	color: #fff;
	text-align: center;
}

.wc-block-product-template .wc-block-components-product-sale-badge {
	top: 1rem;
	right: 1rem;
	min-width: 0;
	min-height: 0;
	padding: 0.5rem 0.75rem;
	border: 0;
	border-radius: 999px;
	background: var(--clc-ink);
	color: #fff;
	z-index: 20;
	font-size: 0.625rem;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
}

/* WooCommerce still uses its earlier grid markup in a few system views. */
.wc-block-grid__products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
	margin: 0;
	padding: 0;
}

.wc-block-grid__products > .wc-block-grid__product {
	display: flex;
	width: auto;
	max-width: none;
	flex-direction: column;
	margin: 0;
	padding: 0 0 1.5rem;
	overflow: hidden;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
	background: #fff;
	text-align: left;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

/*
 * Esta grilla la usa el bloque viejo de WooCommerce, el unico que quedo en
 * pie: los productos recomendados del carrito vacio. Ese bloque nace pensado
 * para flexbox y trae `flex: 1 0 25%; max-width: 25%` desde all-products.css
 * con el selector `.wc-block-grid.has-4-columns .wc-block-grid__product`.
 *
 * Arriba se convirtio la lista en CSS grid, asi que el `flex` quedo inerte
 * pero el `max-width` NO: la tarjeta se encogia al 25% de su propia columna.
 * Medido en el carrito de produccion, antes -> despues:
 *
 *   ancho de la tarjeta   81px -> 326px   (su columna mide 326)
 *   imagen              80x80 -> 300x300
 *   lineas del titulo    5 y 6 -> 2
 *   boton                80x82 -> 162x44
 *
 * La regla de arriba ya dice `max-width: none`, pero pierde: 0,2,0 contra
 * 0,3,0. Se sube la especificidad en vez de agregar otro !important, que de
 * esos el tema ya tiene 91 y hay una tarea para sacarlos.
 */
.wc-block-grid[class*="has-"] .wc-block-grid__products > .wc-block-grid__product {
	flex: 0 1 auto;
	max-width: none;
}

.wc-block-grid__products > .wc-block-grid__product:hover {
	transform: translateY(-4px);
	box-shadow: var(--clc-shadow);
}

.wc-block-grid__product-link {
	color: inherit;
	text-decoration: none;
}

.wc-block-grid__product-image {
	margin: 0 0 1.25rem;
	overflow: hidden;
	background: var(--clc-cream-2);
}

.wc-block-grid__product-image img {
	width: 100%;
	margin: 0;
	aspect-ratio: 1;
	transition: transform 260ms ease;
}

.wc-block-grid__product:hover .wc-block-grid__product-image img {
	transform: scale(1.025);
}

.wc-block-grid__product-title {
	margin: 0 1.25rem;
	color: var(--clc-ink);
	font-size: 0.875rem;
	font-weight: 750;
	line-height: 1.55;
}

/* Mismo anclaje que la tarjeta moderna: el precio se lleva el espacio sobrante. */
.wc-block-grid__product-price {
	margin: auto 1.25rem 0;
	padding-top: 0.75rem;
	color: var(--clc-green-700);
	font-size: 1rem;
	font-weight: 800;
}

.wc-block-grid__product-add-to-cart {
	width: auto;
	margin: 0 1.25rem;
	padding-top: 1rem;
}

.wc-block-grid__product-add-to-cart .wp-element-button {
	display: flex;
	width: 100%;
	box-sizing: border-box;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1rem;
	background: var(--clc-green-700);
	color: #fff;
	text-align: center;
}

.wc-block-grid__product-onsale {
	top: 1rem;
	right: 1rem;
	left: auto;
	min-width: 0;
	min-height: 0;
	padding: 0.5rem 0.75rem;
	border: 0;
	border-radius: 999px;
	background: var(--clc-ink);
	color: #fff;
	z-index: 20;
	font-size: 0.625rem;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
}

/* Shop and product-category hero */
.clc-catalog-hero {
	position: relative;
	isolation: isolate;
	display: grid;
	min-height: clamp(320px, 29vw, 380px);
	overflow: hidden;
	background: var(--clc-green-900);
	color: #fff;
}

.clc-catalog-hero__media,
.clc-catalog-hero__scrim {
	position: absolute;
	inset: 0;
}

.clc-catalog-hero__media {
	z-index: -2;
}

.clc-catalog-hero__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.clc-catalog-hero__scrim {
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(10, 35, 19, 0.84) 0%, rgba(var(--clc-ink-rgb), 0.48) 48%, rgba(var(--clc-ink-rgb), 0.08) 100%),
		linear-gradient(0deg, rgba(8, 28, 15, 0.5) 0%, rgba(8, 28, 15, 0.04) 62%);
}

.clc-catalog-hero__inner {
	display: flex;
	box-sizing: border-box;
	width: min(1180px, calc(100% - clamp(2.5rem, 8vw, 8rem)));
	min-height: inherit;
	margin-inline: auto;
	padding-block: clamp(2rem, 4vw, 3.4rem);
	flex-direction: column;
}

.clc-catalog-hero__breadcrumbs {
	font-size: 0.75rem;
	font-weight: 650;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.clc-catalog-hero__breadcrumbs ol {
	display: flex;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
}

.clc-catalog-hero__breadcrumbs li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.clc-catalog-hero__breadcrumbs li:not(:last-child)::after {
	content: "/";
	color: rgba(255, 255, 255, 0.48);
}

.clc-catalog-hero__breadcrumbs a,
.clc-catalog-hero__breadcrumbs span {
	color: rgba(255, 255, 255, 0.78);
	text-decoration: none;
}

.clc-catalog-hero__breadcrumbs a:hover {
	color: #fff;
	text-decoration: underline;
}

.clc-catalog-hero__content {
	margin-top: auto;
}

.clc-catalog-hero__title {
	max-width: 980px;
	margin: 0 0 clamp(1.4rem, 2.5vw, 2.1rem);
	color: #fff;
	font-size: var(--clc-title-hero);
	font-weight: 750;
	line-height: 0.98;
	text-transform: uppercase;
	text-wrap: balance;
}

.clc-catalog-hero__nav-label {
	margin: 0 0 0.75rem;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.625rem;
	font-weight: 750;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.clc-catalog-hero__categories ul {
	display: flex;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
	gap: 0.8rem clamp(1.25rem, 3vw, 2.6rem);
	list-style: none;
}

.clc-catalog-hero__categories li {
	margin: 0;
}

.clc-catalog-hero__categories a {
	display: flex;
	min-height: 44px;
	padding: 0.125rem 0 0.5rem;
	border-bottom: 2px solid rgba(255, 255, 255, 0.28);
	flex-direction: column;
	justify-content: flex-end;
	color: #fff;
	text-decoration: none;
	transition: border-color 160ms ease, transform 160ms ease;
}

.clc-catalog-hero__categories a:hover {
	border-color: #fff;
	transform: translateY(-1px);
}

.clc-catalog-hero__categories a:focus-visible,
.clc-catalog-hero__breadcrumbs a:focus-visible {
	border-radius: 3px;
	outline: 3px solid #fff;
	outline-offset: 4px;
}

.clc-catalog-hero__category-name {
	font-size: clamp(0.75rem, 1vw, 0.86rem);
	font-weight: 750;
	letter-spacing: 0.035em;
	line-height: 1.25;
	text-transform: uppercase;
}

.clc-catalog-hero__category-count {
	margin-top: 0.25rem;
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.2;
}

.clc-catalog-main {
	padding-top: clamp(2.8rem, 5vw, 4.8rem);
}

.clc-catalog-main .clc-section-intro:empty {
	display: none;
}

.clc-catalog-hero-editor {
	display: flex;
	min-height: 220px;
	padding: 2rem;
	align-items: flex-start;
	justify-content: flex-end;
	flex-direction: column;
	gap: 0.5rem;
	background:
		linear-gradient(90deg, rgba(var(--clc-ink-rgb), 0.92), rgba(var(--clc-ink-rgb), 0.45)),
		var(--clc-green-900);
	color: #fff;
}

.clc-catalog-hero-editor span {
	max-width: 620px;
	color: rgba(255, 255, 255, 0.74);
	font-size: 0.875rem;
}

.clc-catalog-toolbar {
	margin: 2rem 0 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--clc-line);
	color: var(--clc-muted);
	font-size: 0.875rem;
}

.clc-catalog-layout {
	display: grid;
	grid-template-columns: minmax(230px, 260px) minmax(0, 1fr);
	gap: clamp(1.25rem, 2.2vw, 2rem);
	align-items: start;
}

.clc-catalog-results {
	grid-column: 2;
	min-width: 0;
}

.clc-catalog-layout .clc-product-collection--catalog .wc-block-product-template {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.9rem;
}

/* The shop grid is denser than the reusable product grids elsewhere. */
.clc-catalog-layout .clc-product-collection--catalog .wc-block-product-template > li.wc-block-product {
	--clc-card-action-height: 42px;
	--clc-card-inline-space: 0.75rem;
	padding-bottom: 1rem;
}

.clc-catalog-layout .clc-product-collection--catalog .wp-block-woocommerce-product-image {
	margin-bottom: 0.85rem;
}

.clc-catalog-layout .clc-product-collection--catalog .wp-block-post-title {
	margin-inline: 0.75rem;
	font-size: 0.78rem !important;
	line-height: 1.35 !important;
}

.clc-catalog-layout .clc-product-collection--catalog .wp-block-woocommerce-product-price {
	margin-inline: 0.75rem;
	padding-top: 0.55rem;
	font-size: 0.78rem !important;
}

.clc-catalog-layout .clc-product-collection--catalog .wp-block-woocommerce-product-button {
	margin-inline: 0.75rem;
	padding-top: 0.75rem;
}

.clc-catalog-layout .clc-product-collection--catalog .wc-block-components-product-button__button,
.clc-catalog-layout .clc-product-collection--catalog .clc-timber-quote-button {
	height: var(--clc-card-action-height);
	min-height: var(--clc-card-action-height);
	padding: 0.4rem 0.5rem;
	font-size: 0.68rem !important;
	line-height: 1.15;
}

.clc-catalog-filters {
	grid-column: 1;
	grid-row: 1;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	margin: 2rem 0 1.5rem;
	padding: 1.1rem;
	overflow: hidden;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
	background: #fff;
}

/* Woo's filter fieldsets keep their intrinsic min-content width by default.
 * Long taxonomy labels then push the filter block through the sidebar border. */
.clc-catalog-filters *,
.clc-catalog-filters *::before,
.clc-catalog-filters *::after {
	box-sizing: border-box;
}

/* Woo renders this as a flex item. Its default min-width:auto adopts the
 * 338px intrinsic width of the two price inputs, even inside a 260px sidebar.
 * Let the wrapper shrink to the filter's actual padded content box. */
.clc-catalog-filters > .wc-block-product-filters__content {
	width: auto;
	max-width: 100%;
	min-width: 0;
	flex: 1 1 0;
	align-self: stretch;
}

.clc-catalog-filters .wp-block-woocommerce-product-filter-taxonomy,
.clc-catalog-filters .wp-block-woocommerce-product-filter-attribute,
.clc-catalog-filters .wp-block-woocommerce-product-filter-price,
.clc-catalog-filters .wp-block-woocommerce-product-filter-active,
.clc-catalog-filters fieldset,
.clc-catalog-filters ul,
.clc-catalog-filters li,
.clc-catalog-filters label {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.clc-catalog-filters fieldset {
	min-inline-size: 0;
	margin-inline: 0;
}

.clc-catalog-filters .wc-block-product-filter-checkbox-list__text-wrapper,
.clc-catalog-filters .wc-block-product-filter-checkbox-list__label {
	min-width: 0;
}

.clc-catalog-filters .wc-block-product-filter-checkbox-list__text-wrapper {
	overflow-wrap: anywhere;
}

.clc-catalog-filters .wp-block-woocommerce-product-filter-price-slider,
.clc-catalog-filters .wc-block-product-filter-price-slider__content,
.clc-catalog-filters .wc-block-product-filter-price-slider__range,
.clc-catalog-filters .wc-block-product-filter-price-slider__left,
.clc-catalog-filters .wc-block-product-filter-price-slider__right,
.clc-catalog-filters .wp-block-woocommerce-product-filter-price-slider input {
	max-width: 100%;
	min-width: 0;
}

.clc-catalog-filters .wp-block-woocommerce-product-filter-price-slider,
.clc-catalog-filters .wc-block-product-filter-price-slider__content,
.clc-catalog-filters .wc-block-product-filter-price-slider__range {
	width: 100%;
}

.clc-catalog-filters__title {
	margin: 0;
	font-size: 1.25rem;
}

.clc-catalog-filters .wp-block-woocommerce-product-filter-taxonomy,
.clc-catalog-filters .wp-block-woocommerce-product-filter-attribute,
.clc-catalog-filters .wp-block-woocommerce-product-filter-price {
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--clc-line);
}

.clc-category-cascade {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--clc-line);
}

.clc-category-cascade h3 {
	margin: 0 0 0.75rem;
	font-size: 0.8rem;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.clc-category-cascade__navigation {
	display: grid;
	gap: 0.45rem;
	margin-bottom: 0.7rem;
}

.clc-category-cascade__all {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 0.35rem;
	color: var(--wp--preset--color--contrast, #1b1b1b);
	font-size: 0.75rem;
	font-weight: 600;
	text-decoration: none;
}

.clc-category-cascade__all:hover,
.clc-category-cascade__all:focus-visible {
	text-decoration: underline;
}

.clc-category-cascade__breadcrumbs:empty {
	display: none;
}

.clc-category-cascade__breadcrumbs {
	display: flex;
	max-width: 100%;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.2rem;
}

.clc-category-cascade__breadcrumbs button {
	min-width: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #5c5c5c;
	cursor: pointer;
	font: inherit;
	font-size: 0.72rem;
	text-align: left;
}

.clc-category-cascade__breadcrumbs button:not(:last-child)::after {
	content: " /";
	color: #989898;
}

.clc-category-cascade__breadcrumbs button[aria-current="location"] {
	color: var(--wp--preset--color--contrast, #1b1b1b);
	font-weight: 700;
}

.clc-category-cascade__list {
	display: grid;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.clc-category-cascade__item {
	display: flex;
	width: 100%;
	min-width: 0;
	align-items: stretch;
	border-bottom: 1px solid #eceae6;
}

.clc-category-cascade__item:last-child {
	border-bottom: 0;
}

.clc-category-cascade__choice {
	display: flex;
	min-width: 0;
	flex: 1 1 auto;
	align-items: center;
	gap: 0.5rem;
	padding: 0.55rem 0.2rem;
	color: inherit;
	font-size: 0.78rem;
	line-height: 1.25;
	text-decoration: none;
}

.clc-category-cascade__choice:hover .clc-category-cascade__name,
.clc-category-cascade__choice:focus-visible .clc-category-cascade__name {
	text-decoration: underline;
}

.clc-category-cascade__check {
	position: relative;
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	border: 1px solid #737373;
	border-radius: 2px;
	background: #fff;
}

.clc-category-cascade__choice[aria-current="true"] .clc-category-cascade__check {
	border-color: var(--wp--preset--color--contrast, #1b1b1b);
	background: var(--wp--preset--color--contrast, #1b1b1b);
}

.clc-category-cascade__choice[aria-current="true"] .clc-category-cascade__check::after {
	content: "";
	position: absolute;
	top: 2px;
	left: 4px;
	width: 5px;
	height: 8px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.clc-category-cascade__name {
	min-width: 0;
	flex: 1 1 auto;
	overflow-wrap: anywhere;
}

.clc-category-cascade__count {
	flex: 0 0 auto;
	color: #6f6f6f;
	font-size: 0.72rem;
}

.clc-category-cascade__open {
	display: inline-grid;
	width: 36px;
	min-width: 36px;
	min-height: 36px;
	place-items: center;
	align-self: center;
	padding: 0;
	border: 0;
	border-left: 1px solid #eceae6;
	background: transparent;
	color: inherit;
	cursor: pointer;
	font-size: 1.25rem;
	line-height: 1;
}

.clc-category-cascade__open:hover,
.clc-category-cascade__open:focus-visible {
	background: #f5f3ee;
}

.clc-category-cascade:not([data-clc-category-ready="true"]) .clc-category-cascade__open {
	display: none;
}

.clc-category-cascade__panel[hidden] {
	display: none;
}

.clc-category-cascade__noscript {
	margin: 0.5rem 0 0;
	font-size: 0.72rem;
}

.clc-catalog-filters .wp-block-woocommerce-product-filter-taxonomy h3,
.clc-catalog-filters .wp-block-woocommerce-product-filter-attribute h3,
.clc-catalog-filters .wp-block-woocommerce-product-filter-price h3 {
	margin: 0 0 0.75rem;
	font-size: 0.8rem;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.clc-catalog-brand-filter .wc-block-product-filter-checkbox-list__label {
	align-items: center;
	gap: 0.5rem;
}

.clc-catalog-brand-filter .wc-block-product-filter-checkbox-list__input-wrapper {
	flex: 0 0 auto;
}

.clc-catalog-brand-filter .wc-block-product-filter-checkbox-list__text-wrapper {
	min-width: 0;
}

@media (max-width: 1080px) and (min-width: 782px) {
	.clc-catalog-layout {
		grid-template-columns: minmax(210px, 235px) minmax(0, 1fr);
		gap: 1.5rem;
	}

	.clc-catalog-layout .clc-product-collection--catalog .wc-block-product-template {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.clc-catalog-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.clc-catalog-filters {
		grid-column: 1;
		grid-row: 1;
		margin-top: 1.25rem;
	}

	.clc-catalog-results {
		grid-column: 1;
		grid-row: 2;
	}

	.clc-catalog-layout .clc-product-collection--catalog .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.clc-catalog-layout .clc-product-collection--catalog .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.clc-product-collection .wp-block-query-pagination {
	margin-top: 3rem;
}

.clc-product-collection--catalog[data-clc-catalog-infinite="true"] .wp-block-query-pagination {
	display: none;
}

.clc-catalog-infinite-status {
	min-height: 44px;
	margin: 1.5rem 0 0;
	padding: 0.75rem 1rem;
	color: var(--clc-muted);
	font-size: 0.875rem;
	text-align: center;
}

.clc-product-collection--catalog.is-loading .clc-catalog-infinite-status {
	color: var(--clc-green-700);
}

.clc-catalog-infinite-status[data-clc-catalog-end="true"] {
	color: var(--clc-muted);
	font-weight: 700;
}

/* Cart */
.clc-cart-heading {
	max-width: 820px;
	margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.clc-cart-heading .clc-section-title {
	margin-bottom: 1rem;
}

.clc-cart-intro {
	max-width: 760px;
	margin: 0;
	color: var(--clc-muted);
	font-size: clamp(1rem, 1.5vw, 1.2rem);
	line-height: 1.7;
}

.clc-cart-main .wp-block-post-content {
	margin-block-start: 0;
	min-width: 0;
}

/* CLCWPV2-60: reflow the Blocks cart instead of hiding a horizontal strip.
 * Every column is allowed to shrink, and the table/sidebar become full-width
 * mobile rows so price, coupon, pickup and payment remain reachable. */
@media (max-width: 781px) {
	body.woocommerce-cart .clc-cart-main,
	body.woocommerce-cart .clc-cart-main .clc-section__inner,
	body.woocommerce-cart .clc-cart-main .wp-block-post-content,
	body.woocommerce-cart .wc-block-cart,
	body.woocommerce-cart .wc-block-cart__main,
	body.woocommerce-cart .wc-block-components-sidebar {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	body.woocommerce-cart .wc-block-cart {
		display: flex;
		flex-direction: column;
		gap: 1.5rem;
	}

	body.woocommerce-cart .wc-block-cart-items {
		width: 100%;
		max-width: 100%;
		table-layout: fixed;
	}

	body.woocommerce-cart .wc-block-cart-item__product,
	body.woocommerce-cart .wc-block-cart-item__total,
	body.woocommerce-cart .wc-block-cart-item__quantity {
		min-width: 0;
		box-sizing: border-box;
	}

	body.woocommerce-cart .wc-block-cart-item__product {
		overflow-wrap: anywhere;
	}

	body.woocommerce-cart .wc-block-components-sidebar {
		margin-inline: 0;
	}

	body.woocommerce-cart .wc-block-cart__sidebar,
	body.woocommerce-cart .wc-block-components-sidebar-layout,
	body.woocommerce-cart .wc-block-components-sidebar-layout__main,
	body.woocommerce-cart .wc-block-components-sidebar-layout__sidebar {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	body.woocommerce-cart .wc-block-components-sidebar-layout {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 1.25rem;
	}

	body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row {
		display: grid;
		grid-template-columns: 72px minmax(0, 1fr);
		gap: 0.75rem;
		padding-inline: 0;
	}

	body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-item__image {
		width: 72px;
		padding: 0;
	}

	body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-item__product {
		width: auto;
		padding: 0;
	}

	body.woocommerce-cart .wc-block-cart-item__prices,
	body.woocommerce-cart .wc-block-cart-item__total,
	body.woocommerce-cart .wc-block-components-product-price {
		display: block;
		max-width: 100%;
		white-space: normal;
	}

	body.woocommerce-cart .wc-block-components-totals-coupon,
	body.woocommerce-cart .wc-block-components-totals-shipping,
	body.woocommerce-cart .wc-block-cart__submit,
	body.woocommerce-cart .wc-block-cart__submit-button {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	body.woocommerce-cart .wc-block-components-totals-coupon__form {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 0.75rem;
	}
}

/* Legacy WooCommerce loops use the same visual system. */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
	margin: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	padding: 0 0 1.5rem;
	overflow: hidden;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
	background: #fff;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.woocommerce ul.products li.product:hover {
	transform: translateY(-4px);
	box-shadow: var(--clc-shadow);
}

.woocommerce ul.products li.product a img {
	margin: 0 0 1.25rem;
	background: var(--clc-cream-2);
	aspect-ratio: 1;
}

.woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button {
	margin-inline: 1.25rem;
}

.woocommerce-loop-product__title {
	min-height: 3.25em;
	padding: 0 !important;
	color: var(--clc-ink);
	font-size: 0.875rem !important;
	font-weight: 750;
	line-height: 1.55;
}

.woocommerce ul.products li.product .price {
	display: block;
	margin-top: 0.75rem;
	color: var(--clc-green-700);
	font-size: 1rem;
	font-weight: 800;
}

.woocommerce ul.products li.product .button {
	display: block;
	margin-top: 1rem;
	padding: 0.75rem 1rem;
	background: var(--clc-green-700);
	color: #fff;
	text-align: center;
}

.woocommerce .onsale {
	top: 1rem;
	right: 1rem;
	left: auto;
	min-width: 0;
	min-height: 0;
	padding: 0.5rem 0.75rem;
	border-radius: 999px;
	background: var(--clc-ink);
	color: #fff;
	z-index: 20;
	font-size: 0.625rem;
	line-height: 1;
	text-transform: uppercase;
}

/* Protection product coverage calculator */
.clc-coverage-calculator {
	box-sizing: border-box;
	width: 100%;
	margin: 1.5rem 0;
	padding: 1.25rem 1.25rem;
	border: 1px solid var(--clc-line);
	border-left: 4px solid var(--clc-green-700);
	border-radius: var(--clc-radius-md);
	background: var(--clc-cream-2);
	color: var(--clc-ink);
}

.clc-coverage-calculator__eyebrow {
	margin: 0 0 0.5rem;
	color: var(--clc-green-700);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.clc-coverage-calculator__controls {
	margin-bottom: 1rem;
}

.clc-coverage-calculator__controls > label {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 0.5rem;
	font-size: 0.75rem;
	font-weight: 750;
}

.clc-coverage-calculator__controls > label span {
	color: var(--clc-muted);
	font-size: 0.75rem;
}

.clc-coverage-calculator__stepper {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr) 46px;
	min-height: 48px;
	overflow: hidden;
	border: 1px solid var(--clc-line);
	border-radius: 999px;
	background: #fff;
}

.clc-coverage-calculator__stepper button {
	display: grid;
	border: 0;
	background: transparent;
	color: var(--clc-green-900);
	cursor: pointer;
	font-size: 1.25rem;
	font-weight: 750;
	place-items: center;
}

.clc-coverage-calculator__stepper button:hover,
.clc-coverage-calculator__stepper button:focus-visible {
	background: var(--clc-sage);
	outline: none;
}

.clc-coverage-calculator__stepper input {
	width: 100%;
	min-width: 0;
	padding: 0.5rem;
	border: 0;
	border-inline: 1px solid var(--clc-line);
	background: #fff;
	color: var(--clc-ink);
	font: inherit;
	font-size: 1rem;
	font-weight: 750;
	text-align: center;
	-moz-appearance: textfield;
}

.clc-coverage-calculator__stepper input::-webkit-outer-spin-button,
.clc-coverage-calculator__stepper input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.clc-coverage-calculator__stepper input:focus {
	outline: 2px solid var(--clc-green-700);
	outline-offset: -2px;
}

.clc-coverage-calculator__result p {
	display: flex;
	margin: 0;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.5rem 0.75rem;
}

.clc-coverage-calculator__result strong {
	color: var(--clc-green-900);
	font-size: clamp(1.65rem, 4vw, 2.25rem);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1;
}

.clc-coverage-calculator__result [data-clc-coverage-units] {
	color: var(--clc-muted);
	font-size: 0.875rem;
	font-weight: 650;
}

.clc-coverage-calculator__note {
	margin: 0.75rem 0 0;
	color: var(--clc-muted);
	font-size: 0.75rem;
	line-height: 1.55;
}

.clc-protection-cart-form .quantity {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}

/* Single-product characteristics and metadata */
.clc-product-details {
	clear: both;
	width: 100%;
	max-width: 1240px;
	margin: clamp(2rem, 3vw, 3rem) auto 0;
	box-sizing: border-box;
}

.clc-product-characteristics {
	margin: 0;
	padding: clamp(1.125rem, 2vw, 1.5rem) 0 0;
	border-top: 1px solid var(--clc-line);
}

.clc-product-characteristics h2 {
	margin: 0 0 1rem;
	color: var(--clc-ink);
	font-size: clamp(0.95rem, 1.35vw, 1.125rem);
	font-weight: 800;
	letter-spacing: -0.025em;
}

.clc-product-characteristics ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(82px, 1fr));
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.clc-product-characteristics li {
	display: flex;
	min-width: 0;
	align-items: center;
	flex-direction: column;
	text-align: center;
}

.clc-product-characteristics__icon {
	display: grid;
	width: 46px;
	height: 46px;
	margin-bottom: 0.5rem;
	place-items: center;
	border: 1px solid var(--clc-green-700);
	border-radius: 50%;
	color: var(--clc-green-700);
}

.clc-product-characteristics__icon svg {
	width: 22px;
	height: 22px;
}

.clc-product-characteristics__label {
	color: var(--clc-muted);
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.clc-product-characteristics strong {
	margin-top: 0.25rem;
	color: var(--clc-ink);
	font-size: 0.75rem;
	line-height: 1.35;
}

.clc-product-accordions,
.clc-product-faqs__items {
	display: grid;
	gap: 0.5rem;
}

.clc-product-accordions details,
.clc-product-faqs details {
	overflow: hidden;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-sm);
	background: var(--clc-cream-2);
}

.clc-product-accordions summary,
.clc-product-faqs summary {
	display: flex;
	min-height: 58px;
	padding: 1rem 1.25rem;
	align-items: center;
	justify-content: space-between;
	box-sizing: border-box;
	color: var(--clc-ink);
	cursor: pointer;
	font-size: 1rem;
	font-weight: 750;
	list-style: none;
}

.clc-product-accordions summary::-webkit-details-marker,
.clc-product-faqs summary::-webkit-details-marker {
	display: none;
}

.clc-product-accordions summary::after,
.clc-product-faqs summary::after {
	width: 9px;
	height: 9px;
	margin-left: 1rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	content: "";
	transform: rotate(45deg) translateY(-2px);
	transition: transform 160ms ease;
}

.clc-product-accordions details[open] summary::after,
.clc-product-faqs details[open] summary::after {
	transform: rotate(225deg) translate(-2px, -2px);
}

.clc-product-accordions details[open] summary,
.clc-product-faqs details[open] summary {
	border-bottom: 1px solid var(--clc-line);
	background: #fff;
}

.clc-product-accordion__content {
	padding: clamp(1.25rem, 3vw, 2rem);
	background: #fff;
	color: var(--clc-muted);
	font-size: 0.875rem;
	line-height: 1.75;
}

.clc-product-faqs {
	margin-top: clamp(2.5rem, 5vw, 4rem);
}

.clc-product-faqs h2 {
	margin: 0 0 1.25rem;
	color: var(--clc-ink);
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.15;
}

.clc-product-faqs__answer > :first-child {
	margin-top: 0;
}

.clc-product-faqs__answer > :last-child {
	margin-bottom: 0;
}

.clc-product-description > :first-child,
.clc-product-policy > :first-child {
	margin-top: 0;
}

.clc-product-description > :last-child,
.clc-product-policy > :last-child {
	margin-bottom: 0;
}

.clc-product-specifications {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin: 0;
}

.clc-product-specifications > div {
	display: grid;
	grid-template-columns: minmax(130px, 0.8fr) minmax(0, 1.2fr);
	gap: 1rem;
	margin: 0;
	padding: 1rem 1.25rem;
	align-items: start;
}

.clc-product-specifications > div:nth-child(4n + 1),
.clc-product-specifications > div:nth-child(4n + 2) {
	background: var(--clc-cream-2);
}

.clc-product-specifications dt {
	color: var(--clc-ink);
	font-weight: 700;
}

.clc-product-specifications dd {
	margin: 0;
	color: var(--clc-muted);
}

.clc-product-document {
	display: inline-flex;
	padding: 1rem 1rem;
	align-items: center;
	gap: 1rem;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-sm);
	color: var(--clc-ink);
	text-decoration: none;
	transition: border-color 160ms ease, background-color 160ms ease;
}

.clc-product-document:hover {
	border-color: var(--clc-green-700);
	background: var(--clc-cream-2);
}

.clc-product-document__icon {
	display: grid;
	width: 46px;
	height: 46px;
	flex: 0 0 46px;
	place-items: center;
	border-radius: 50%;
	background: var(--clc-green-900);
	color: #fff;
}

.clc-product-document__icon svg {
	width: 23px;
	height: 23px;
}

.clc-product-document strong,
.clc-product-document small {
	display: block;
}

.clc-product-document small {
	margin-top: 0.25rem;
	color: var(--clc-muted);
	font-size: 0.75rem;
}

.clc-product-policy h3 {
	color: var(--clc-ink);
	font-size: 1rem;
}

.clc-product-policy a {
	color: var(--clc-green-700);
	font-weight: 700;
}

/* Custom products banner */
.clc-project-banner {
	overflow: hidden;
	border-radius: var(--clc-radius-lg);
	box-shadow: var(--clc-shadow);
}

.clc-project-banner .wp-block-cover {
	min-height: 610px;
	padding: clamp(2rem, 6vw, 5rem) !important;
}

.clc-project-banner .wp-block-cover__background {
	background: linear-gradient(90deg, rgba(8, 18, 11, 0.8), rgba(8, 18, 11, 0.28) 62%, transparent) !important;
	opacity: 1 !important;
}

.clc-project-banner__copy {
	width: min(580px, 100%);
	margin: 0 !important;
}

.clc-project-banner h2 {
	margin: 0 0 1.25rem;
	font-size: var(--clc-heading-h2);
	letter-spacing: -0.05em;
	line-height: 1;
}

/* Brands */
.clc-brand-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem !important;
}

.clc-brand-card {
	display: grid;
	min-width: 0;
	grid-template-columns: 112px minmax(0, 1fr);
	gap: 1.25rem;
	align-items: center;
	padding: 1.25rem;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--clc-radius-md);
	background: rgba(255, 255, 255, 0.055);
	color: #fff;
	text-align: left;
	text-decoration: none;
	transition:
		background 160ms ease,
		border-color 160ms ease,
		transform 160ms ease;
}

.clc-brand-card:hover,
.clc-brand-card:focus-visible {
	border-color: rgba(255, 255, 255, 0.38);
	background: rgba(255, 255, 255, 0.11);
	color: #fff;
	transform: translateY(-2px);
}

.clc-brand-card:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

.clc-brand-card__logo {
	display: block;
	overflow: hidden;
	border-radius: 50%;
	background: var(--clc-cream);
	aspect-ratio: 1;
}

.clc-brand-card__logo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.clc-brand-card__copy {
	display: flex;
	min-width: 0;
	flex-direction: column;
	align-items: flex-start;
}

.clc-brand-card h3 {
	margin: 0;
	color: #fff;
	font-size: 1rem;
}

.clc-brand-card__description {
	margin: 0.5rem 0 0;
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.75rem;
	line-height: 1.55;
}

.clc-brand-card__action {
	display: inline-flex;
	gap: 0.25rem;
	align-items: center;
	margin-top: 0.75rem;
	color: #fff;
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

/* Customers logo rail */
.clc-customers {
	overflow: hidden;
	background: var(--clc-cream-2);
}

.clc-customers__intro {
	max-width: 620px;
}

.clc-customers__rail {
	position: relative;
	width: 100vw;
	margin-left: 50%;
	transform: translateX(-50%);
	overflow: hidden;
	border-top: 1px solid var(--clc-line);
	border-bottom: 1px solid var(--clc-line);
	background: #fff;
}

.clc-customers__track {
	display: flex;
	width: max-content;
	animation: clc-customer-roll 28s linear infinite;
}

.clc-customers__set {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
}

.clc-customers__item {
	display: grid;
	width: clamp(190px, 22vw, 280px);
	height: 140px;
	box-sizing: border-box;
	place-items: center;
	padding: 1.5rem 2rem;
	border-right: 1px solid var(--clc-line);
	color: var(--clc-green-900);
	text-align: center;
	text-decoration: none;
}

.clc-customers__item:hover,
.clc-customers__item:focus-visible {
	background: var(--clc-cream-2);
	color: var(--clc-green-700);
}

.clc-customers__item:focus-visible {
	outline: 3px solid var(--clc-green-700);
	outline-offset: -3px;
}

.clc-customers__logo {
	display: block;
	max-width: 190px;
	max-height: 78px;
	object-fit: contain;
	filter: grayscale(1) contrast(1.2) brightness(0.7);
	opacity: 0.78;
	transition: filter 160ms ease, opacity 160ms ease;
}

.clc-customers__item:hover .clc-customers__logo,
.clc-customers__item:focus-visible .clc-customers__logo {
	filter: none;
	opacity: 1;
}

.clc-customers__logo--wordmark {
	max-width: 190px;
	font-size: 0.875rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.clc-customers__logo--wordmark small {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.625rem;
	font-weight: 650;
	letter-spacing: 0.2em;
}

@keyframes clc-customer-roll {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

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

@media (max-width: 640px) {
	.clc-customers__item {
		width: 170px;
		height: 110px;
		padding-inline: 1rem;
	}

	.clc-customers__logo {
		max-width: 145px;
		max-height: 64px;
	}
}

/* Gallery */
.clc-gallery-grid {
	display: grid !important;
	grid-template-columns: 1.35fr 0.65fr 0.65fr;
	grid-template-rows: repeat(2, 280px);
	gap: 1rem !important;
}

.clc-gallery-grid figure {
	height: 100%;
	margin: 0;
	overflow: hidden;
	border-radius: var(--clc-radius-md);
}

.clc-gallery-grid figure:first-child {
	grid-row: 1 / span 2;
}

.clc-gallery-grid img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 300ms ease;
}

.clc-gallery-grid figure:hover img {
	transform: scale(1.035);
}

/* Posts */
.clc-post-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem !important;
}

.clc-post-card {
	overflow: hidden;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
	background: #fff;
}

.clc-post-card .wp-block-post-featured-image {
	overflow: hidden;
	margin: 0;
	aspect-ratio: 16 / 10;
}

.clc-post-card .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.clc-post-card__body {
	padding: 1.25rem;
}

.clc-post-card .wp-block-post-date {
	color: var(--clc-green-700);
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.clc-post-card .wp-block-post-title {
	margin: 0.75rem 0 0.75rem;
	font-size: 1.125rem;
	line-height: 1.35;
}

.clc-post-card .wp-block-post-title a {
	color: var(--clc-ink);
	text-decoration: none;
}

.clc-post-card .wp-block-post-excerpt {
	color: var(--clc-muted);
	font-size: 0.875rem;
	line-height: 1.65;
}

/* Contact callout */
.clc-contact-band {
	padding: clamp(3.5rem, 7vw, 6rem) clamp(1.25rem, 4vw, 4rem);
	background: var(--clc-sage);
}

.clc-contact-band__inner {
	width: min(1180px, 100%);
	margin-inline: auto;
}

.clc-contact-band h2 {
	margin: 0;
	font-size: var(--clc-heading-h2);
	letter-spacing: -0.045em;
	line-height: 1.05;
}

.clc-location-cards {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem !important;
}

.clc-location-card {
	padding: 1.5rem;
	border-radius: var(--clc-radius-md);
	background: rgba(255, 255, 255, 0.72);
}

.clc-location-card h3 {
	margin: 0 0 0.75rem;
	font-size: 1rem;
}

.clc-location-card p {
	margin: 0;
	color: var(--clc-muted);
	font-size: 0.875rem;
	line-height: 1.65;
}

/* Footer */
.clc-footer {
	padding: clamp(4rem, 7vw, 6rem) clamp(1.25rem, 4vw, 4rem) 2rem;
	background: #0d2e1a;
	color: #fff;
}

.clc-footer__inner {
	width: min(1180px, 100%);
	margin-inline: auto;
}

.clc-footer-brand {
	margin: 0;
}

.clc-footer-brand img {
	display: block;
	width: min(11.25rem, 100%);
	height: auto;
}

.clc-footer h3 {
	color: #fff;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.clc-footer p,
.clc-footer li,
.clc-footer a {
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.75rem;
	line-height: 1.7;
	text-decoration: none;
}

.clc-footer .wp-block-navigation {
	align-items: flex-start;
}

.clc-footer-bottom {
	margin-top: 3rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.clc-footer-bottom p {
	margin: 0;
	font-size: 0.75rem;
}

.clc-floating-contact {
	position: fixed;
	right: 1.15rem;
	bottom: 1.15rem;
	z-index: 60;
	display: inline-flex;
	width: 56px;
	max-width: calc(100vw - 2rem);
	height: 56px;
	box-sizing: border-box;
	align-items: center;
	justify-content: flex-start;
	gap: 0.75rem;
	overflow: hidden;
	padding: 0 12px;
	border: 3px solid #fff;
	border-radius: var(--clc-radius-pill);
	background: var(--clc-green-700);
	box-shadow: var(--clc-shadow-md);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 750;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}

.clc-floating-contact__icon {
	flex: 0 0 26px;
	width: 26px;
	height: 26px;
	background: url("assets/social-icons/whatsapp.svg") center / contain no-repeat;
}

.clc-floating-contact__label {
	opacity: 0;
	transform: translateX(8px);
	transition:
		opacity 140ms ease,
		transform 140ms ease;
}

@media (hover: hover) and (pointer: fine) {
	.clc-floating-contact:hover {
		width: min(290px, calc(100vw - 2rem));
		padding-right: 16px;
	}

	.clc-floating-contact:hover .clc-floating-contact__label {
		opacity: 1;
		transform: translateX(0);
	}
}

.clc-floating-contact:focus-visible {
	width: min(290px, calc(100vw - 2rem));
	padding-right: 16px;
	outline: 3px solid var(--clc-green-900);
	outline-offset: 3px;
}

.clc-floating-contact:focus-visible .clc-floating-contact__label {
	opacity: 1;
	transform: translateX(0);
}

.clc-floating-contact:active {
	transform: translateY(1px);
}

@media (prefers-reduced-motion: reduce) {
	.clc-floating-contact__label {
		transition: none;
	}
}

/* CLCWPV2-52/59: common geometry for every WooCommerce card surface. The
 * collection context only changes the column count and the mobile colour
 * summary; image, copy and action keep one contract. */
:where(
	.wc-block-product-template > li.wc-block-product,
	.wc-block-grid__products > .wc-block-grid__product,
	.woocommerce ul.products li.product
) :where(.wp-block-woocommerce-product-image, .wc-block-components-product-image, a.woocommerce-loop-product__link > img) {
	box-sizing: border-box;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	background: var(--clc-cream-2);
}

body :is(
	.wc-block-product-template > li.wc-block-product,
	.wc-block-grid__products > .wc-block-grid__product,
	.woocommerce ul.products li.product
) :is(.wp-block-woocommerce-product-image img, .wc-block-components-product-image img, a.woocommerce-loop-product__link > img) {
	display: block;
	width: 100%;
	height: 100%;
	/* WooCommerce emits style="object-fit:cover" inline on Product Image
	 * blocks. Important is required here specifically to preserve complete
	 * product imagery across catalogue and related-card surfaces. */
	object-fit: contain !important;
}

:where(
	.wc-block-product-template .wc-block-components-product-button__button,
	.wc-block-product-template .clc-timber-quote-button,
	.wc-block-grid__products .wc-block-grid__product-add-to-cart,
	.woocommerce ul.products li.product .button
) {
	min-height: var(--clc-card-action-height, 50px);
	height: var(--clc-card-action-height, 50px);
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 1rem;
	border-radius: var(--clc-card-action-radius, var(--clc-radius-pill));
	line-height: 1.2;
	text-align: center;
	white-space: normal;
}

@media (min-width: 782px) {
	/* CLCWPV2-57: related products use the same four-column/grid-gap system as
	 * the catalogue and consume the full detail content width. */
	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wc-block-product-template {
		display: grid !important;
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 1.25rem;
		width: 100%;
		max-width: 1240px;
		margin-inline: auto;
	}

	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wc-block-product-template > li.wc-block-product {
		min-width: 0;
		width: 100% !important;
	}
}

.clc-related-products__all {
	display: flex;
	justify-content: center;
	margin: 1.5rem auto 0;
	padding-inline: 1rem;
}

.clc-related-products__all .wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border-radius: 0;
	background: transparent;
	color: var(--clc-green-700);
	font-size: 1rem;
	font-weight: 650;
	line-height: 1.2;
	text-align: center;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-transform: none;
	text-underline-offset: 3px;
}

.clc-related-products__all .wp-element-button:hover,
.clc-related-products__all .wp-element-button:focus-visible {
	background: transparent;
	color: var(--clc-green-800);
}

/* Sugerencias al pie del carro.
 *
 * Va fuera del bloque woocommerce/cart, no dentro: ahi el carro es React y al
 * montar el estado vacio reemplazaba el DOM, con lo que el boton "Agregar al
 * carro" quedaba sin sus enlaces de interactividad. Fuera funciona y, de paso,
 * la seccion queda a lo ancho en los dos estados del carro.
 *
 * La grilla la aporta .clc-product-collection, la misma del resto del sitio. */
body.woocommerce-cart .clc-cart-suggestions-section {
	margin-top: 64px;
	/* La regla global :last-child de WordPress pone este margen en cero si el
	 * selector no incluye body. Sin este espacio el enlace toca el pie. */
	margin-bottom: 64px;
}

.clc-cart-suggestions__titulo {
	margin-bottom: 32px;
}

/* El titulo y el enlace cambian segun el estado del carro, y lo hace el CSS, no
 * PHP: el comprador puede vaciar el carro sin recargar la pagina, y ahi el
 * servidor ya no vuelve a opinar. Con PHP el titulo se quedaba en "¿Quieres
 * agregar algo mas?" sobre un carro vacio.
 *
 * El estado se lee del propio carro: filled-cart-block y empty-cart-block nunca
 * conviven, React deja solo el que corresponde y :has() lo sigue al instante.
 *
 * Por defecto se ve la version del carro vacio, que es la que incluye el enlace
 * al catalogo. Asi, en un navegador sin :has(), la seccion sigue teniendo un
 * titulo coherente en vez de quedarse sin ninguno. */
.clc-cart-suggestions__titulo-lleno {
	display: none;
}

body:has(.wp-block-woocommerce-filled-cart-block) .clc-cart-suggestions__titulo-vacio {
	display: none;
}

body:has(.wp-block-woocommerce-filled-cart-block) .clc-cart-suggestions__titulo-lleno {
	display: inline;
}

/* Fuera la linea de despacho del resumen del carro.
 *
 * Mostraba cosas como "Retiro en tienda: gratis" contradiciendo al propio pie
 * del total, que dice que el despacho se calcula al momento de pagar: con una
 * direccion a medias el carro elige el primer metodo disponible y lo muestra
 * como si fuera el definitivo.
 *
 * El bloque ya se saca del contenido de la pagina en la migracion, pero eso solo
 * cubre la carga: en cuanto WooCommerce elige una tarifa, React monta esta linea
 * por su cuenta aunque el bloque no exista en el contenido. Comprobado. Por eso
 * hacen falta las dos partes.
 *
 * Solo se toca el carro. El checkout sigue mostrando el despacho, que es donde
 * corresponde elegirlo y verlo. */
body.woocommerce-cart .wc-block-components-totals-shipping {
	display: none;
}

/* Y con el, el contenedor entero. Ocultar solo el componente dejaba en pie a sus
 * dos padres, cada uno con su borde superior y su relleno de 16 px: entre
 * "Agregar cupon" y "Total estimado" quedaba una segunda linea divisoria con un
 * hueco vacio en medio. Tiene que quedar una sola linea.
 *
 * Este contenedor lo monta React y su unico contenido es el despacho. Los
 * impuestos y los descuentos van en sus propios bloques, fuera de este, asi que
 * sacarlo no se lleva nada mas por delante. */
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-totals-block,
body.woocommerce-cart .wc-block-components-totals-wrapper:has( .wc-block-components-totals-shipping ) {
	display: none;
}

/* Fuera el "Ver carro" de las sugerencias: el comprador ya esta en el carro.
 *
 * Y ademas lleva mal. Comprobado: el servidor no imprime ese enlace en ninguna
 * pagina, lo arma JavaScript al agregar. En el catalogo apunta a /carro/, que es
 * lo correcto; en esta pagina apunta a la ficha del producto, porque aqui se
 * cargan los paquetes del carro en React y el enlace se arma con el permalink
 * del producto en vez de la direccion del carro. Es de WooCommerce, no del tema.
 *
 * Se oculta solo dentro de esta seccion, asi el catalogo y la ficha siguen
 * mostrandolo tal como viene. */
.clc-cart-suggestions .added_to_cart {
	display: none;
}

.clc-cart-suggestions__cta {
	margin-top: 24px;
}

.clc-cart-suggestions__cta a {
	color: var(--clc-green-700);
	font-weight: 650;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.clc-cart-suggestions__cta a:hover,
.clc-cart-suggestions__cta a:focus-visible {
	color: var(--clc-green-800);
}

/* Responsive */
@media (max-width: 1080px) {
	.clc-category-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		row-gap: 2rem !important;
	}

	.woocommerce ul.products,
	.clc-product-collection .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.wc-block-grid__products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.clc-brand-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.clc-gallery-grid {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: repeat(3, 240px);
	}

	.clc-gallery-grid figure:first-child {
		grid-row: 1 / span 2;
	}

	.clc-main-header__inner {
		grid-template-columns: auto minmax(260px, 1fr) auto;
		gap: 1rem;
	}

	.clc-menu-bar__inner {
		justify-content: space-between !important;
		min-height: 48px;
	}

	.clc-menu-bar__inner::before {
		color: var(--clc-green-900);
		content: "Catálogo";
		font-size: 0.75rem;
		font-weight: 750;
		letter-spacing: 0.055em;
		text-transform: uppercase;
	}

	.clc-menu-bar .wp-block-navigation {
		width: auto;
	}

	.clc-menu-bar .wp-block-navigation__responsive-container-open {
		display: flex;
		color: var(--clc-green-900);
	}

	.clc-menu-bar .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}

	.clc-menu-bar .wp-block-navigation__responsive-container.is-menu-open {
		padding: 2rem;
		background: #fff !important;
		color: var(--clc-ink) !important;
	}

	.clc-menu-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		align-items: stretch;
		gap: 0;
	}

	.clc-menu-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		width: 100%;
		padding: 1rem 0;
		border-bottom: 1px solid var(--clc-line);
		color: var(--clc-green-900);
	}

	.clc-menu-bar .wp-block-navigation__responsive-container-close {
		color: var(--clc-green-900);
	}

	.clc-header-actions .clc-account-link .label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.clc-header-actions .wc-block-customer-account__link {
		padding-inline: 0.75rem;
	}
}

@media (max-width: 781px) {
	.clc-product-characteristics ul {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.clc-product-specifications {
		grid-template-columns: 1fr;
	}

	.clc-product-specifications > div:nth-child(4n + 1),
	.clc-product-specifications > div:nth-child(4n + 2) {
		background: transparent;
	}

	.clc-product-specifications > div:nth-child(odd) {
		background: var(--clc-cream-2);
	}

	.clc-utility-bar__locations {
		display: none !important;
	}

	.clc-utility-bar__inner {
		justify-content: center !important;
	}

	.clc-main-header {
		padding-block: 0.75rem;
		backdrop-filter: none;
	}

	.clc-main-header__inner {
		grid-template-areas:
			"logo actions"
			"search search";
		grid-template-columns: minmax(90px, auto) 1fr;
		gap: 0.75rem 1rem;
	}

	.clc-main-header .wp-block-site-logo img {
		max-width: 100px;
		height: 48px;
	}

	.clc-header-actions {
		margin-left: auto;
		justify-self: end;
	}

	.clc-menu-bar,
	.clc-menu-bar__inner {
		display: contents !important;
	}

	.clc-header-actions .clc-catalog-nav__open {
		min-height: 40px;
		/* Geometria original del disparador del catalogo, restituida tras quitar un
	 * apano de cache. La invariante la fija: no llevarla a la escala. */
	padding: 0.55rem 0.35rem;
	}

	.clc-catalog-nav__quick-scroller {
		display: block;
		width: 100%;
		overflow-x: auto;
		border-block: 1px solid var(--clc-line);
		background: #fff;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
		overscroll-behavior-inline: contain;
		-webkit-overflow-scrolling: touch;
	}

	.clc-catalog-nav__quick-scroller::-webkit-scrollbar {
		display: none;
	}

	.clc-catalog-nav__quick-list {
		display: flex;
		width: max-content;
		min-width: 100%;
		padding-inline: 0.5rem;
	}

	.clc-catalog-nav__quick-list::after {
		content: "";
		flex: 0 0 1rem;
	}

	.clc-catalog-nav__quick-item {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}

	.clc-catalog-nav__quick-item a {
		display: block;
		padding: 0.75rem 0.75rem;
		color: var(--clc-green-900);
		font-size: 0.75rem;
		font-weight: 750;
		letter-spacing: 0.035em;
		text-decoration: none;
		text-transform: uppercase;
		white-space: nowrap;
	}

	.clc-catalog-nav__quick-item a:focus-visible {
		outline: 2px solid var(--clc-green-700);
		outline-offset: -4px;
	}

	.clc-header-actions .wc-block-mini-cart__button {
		min-height: 40px;
		padding: 0.5rem 0.75rem;
		font-size: 0.625rem;
	}

	.clc-hero-slider .wp-block-cover {
		min-height: 690px;
		padding: 4rem 1.25rem 4rem !important;
	}

	.clc-hero-slider .wp-block-cover__background {
		background: linear-gradient(0deg, rgba(7, 23, 12, 0.9) 0%, rgba(7, 23, 12, 0.62) 56%, rgba(7, 23, 12, 0.12) 100%) !important;
	}

	.clc-hero-slider .wp-block-cover__image-background {
		object-position: 58% center;
	}

	.clc-hero-copy {
		width: 100%;
		margin-top: auto !important;
	}

	.clc-sparlack-promo {
		align-content: end;
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.clc-hero-slide--sparlack .clc-hero-copy {
		margin-top: 0 !important;
	}

	.clc-sparlack-promo__visual {
		order: -1;
		width: min(150px, 42vw);
		margin: 0 !important;
		padding: 0.5rem;
		border-radius: var(--clc-radius-md);
	}

	.clc-sparlack-promo__visual img {
		max-height: 190px;
	}

	.clc-hero-slide--sparlack .clc-hero-title {
		font-size: var(--clc-title-hero);
	}

	.clc-hero-title {
		font-size: var(--clc-title-hero);
	}

	.clc-hero-slider .cb-button-prev,
	.clc-hero-slider .cb-button-next {
		top: auto;
		bottom: 26px;
	}

	.clc-hero-slider .cb-button-prev {
		left: 1.25rem;
	}

	.clc-hero-slider .cb-button-next {
		right: 1.25rem;
	}

	.clc-promise-strip {
		margin-top: -20px !important;
	}

	.clc-promise-strip > .wp-block-columns {
		gap: 1rem !important;
	}

	.clc-category-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.clc-post-grid,
	.clc-location-cards {
		grid-template-columns: 1fr;
	}

	.clc-brand-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem !important;
	}

	.clc-brand-card {
		grid-template-columns: 1fr;
		gap: 0.75rem;
		align-content: start;
		padding: 0.75rem;
		text-align: center;
	}

	.clc-brand-card__logo {
		width: min(86px, 100%);
		margin-inline: auto;
	}

	.clc-brand-card__copy {
		align-items: center;
	}

	.clc-brand-card h3 {
		font-size: 0.875rem;
	}

	.clc-brand-card__description {
		font-size: 0.625rem;
		line-height: 1.4;
	}

	.clc-brand-card__action {
		margin-top: 0.5rem;
		font-size: 0.625rem;
	}

	.clc-gallery-grid {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 310px repeat(2, 180px);
	}

	.clc-gallery-grid figure:first-child {
		grid-column: 1 / span 2;
		grid-row: auto;
	}

	.clc-project-banner .wp-block-cover {
		min-height: 660px;
		align-items: flex-end;
	}

	.clc-project-banner .wp-block-cover__image-background {
		object-position: 63% center;
	}

	.clc-project-banner .wp-block-cover__background {
		background: linear-gradient(0deg, rgba(8, 18, 11, 0.9), rgba(8, 18, 11, 0.12) 78%) !important;
	}
}

@media (max-width: 520px) {
	.clc-section {
		padding-inline: 1rem;
	}

	.clc-product-details {
		margin-top: 3rem;
	}

	.clc-product-characteristics {
		padding: 1.25rem 1rem;
	}

	.clc-product-characteristics ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.5rem 0.75rem;
	}

	.clc-product-characteristics__icon {
		width: 58px;
		height: 58px;
	}

	.clc-product-accordions summary {
		min-height: 56px;
		padding-inline: 1rem;
	}

	.clc-product-accordion__content {
		padding: 1rem;
	}

	.clc-product-specifications > div {
		grid-template-columns: 1fr;
		gap: 0.25rem;
		padding: 1rem;
	}

	.clc-product-document {
		width: 100%;
		box-sizing: border-box;
	}

	.clc-catalog-hero {
		min-height: 320px;
	}

	.clc-catalog-hero__scrim {
		background:
			linear-gradient(0deg, rgba(9, 32, 17, 0.96) 0%, rgba(var(--clc-ink-rgb), 0.7) 62%, rgba(var(--clc-ink-rgb), 0.3) 100%);
	}

	.clc-catalog-hero__inner {
		width: 100vw;
		max-width: 100vw;
		min-width: 0;
		padding: 1.25rem 1rem 1.5rem;
	}

	.clc-catalog-hero__breadcrumbs {
		font-size: 0.625rem;
	}

	.clc-catalog-hero__title {
		margin-bottom: 1.25rem;
		font-size: var(--clc-title-hero);
	}

	.clc-catalog-hero__content {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.clc-catalog-hero__categories {
		width: calc(100% + 2rem);
		min-width: 0;
		box-sizing: border-box;
		margin-inline: -1rem;
	}

	.clc-catalog-hero__nav-label {
		margin-inline: 1rem;
	}

	.clc-catalog-hero__categories ul {
		width: 100%;
		min-width: 0;
		box-sizing: border-box;
		overflow-x: auto;
		/* El 1rem de la derecha reserva exactamente 16px de respiro al final del
	 * carrusel. Esta medido y la invariante lo comprueba: no llevarlo a la escala. */
	padding: 0.2rem 1rem 0.65rem;
		flex-wrap: nowrap;
		gap: 1.25rem;
		scroll-padding-inline: 1rem;
		scroll-snap-type: x proximity;
		scrollbar-width: thin;
	}

	.clc-catalog-hero__categories li {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}

	/* Compensate subpixel card widths so the 16px end inset never rounds below
	 * the header's right edge during a maximum scroll. */
	.clc-catalog-hero__categories li:last-child {
		margin-right: 2px;
	}

	.woocommerce ul.products,
	.clc-product-collection:not(.clc-product-collection--catalog) .wc-block-product-template {
		grid-template-columns: 1fr !important;
	}

	/* El catálogo (tienda, categorías, atributos y búsqueda) se queda en 2 columnas.
	 * La tarjeta baja a ~164 px, así que el margen interior de 1.15rem se come el
	 * 22% del ancho y parte el precio largo ("Cotización según formato").
	 *
	 * `grid-auto-rows: 1fr` iguala TODAS las filas a la más alta, no solo las
	 * tarjetas entre sí dentro de una misma fila (que el grid ya estiraba). Sin
	 * esto la altura saltaba de 424 a 565 px entre filas. El precio y el botón ya
	 * están anclados al fondo, así que el espacio sobrante queda como aire arriba. */
	.clc-product-collection--catalog .wc-block-product-template {
		gap: 1rem;
		grid-auto-rows: 1fr;
	}

	.clc-product-collection--catalog .wc-block-product-template .wp-block-post-title,
	.clc-product-collection--catalog .wc-block-product-template .clc-product-swatches,
	.clc-product-collection--catalog .wc-block-product-template .wp-block-woocommerce-product-price,
	.clc-product-collection--catalog .wc-block-product-template .wp-block-woocommerce-product-button,
	.clc-product-collection--catalog .wc-block-product-template .clc-timber-quote-button {
		margin-inline: 0.75rem;
	}

	/* El div interno del precio arrastra su propio margen de 1.15rem (regla de la
	 * grilla clásica), que sumado al del contenedor deja el texto en 75 px y parte
	 * "Cotización". El margen lo pone el contenedor. */
	.clc-product-collection--catalog .wc-block-product-template .wc-block-grid__product-price {
		margin-inline: 0;
	}

	/* Ocultar las muestras y mostrar el resumen es responsabilidad del bloque
	 * (clc-product-components), que lo aplica en todos sus contextos. Acá solo se
	 * le da al texto la voz del tema. */
	.clc-product-swatches__summary {
		color: var(--clc-muted);
		font-size: 0.75rem;
		font-weight: 600;
		line-height: 1.3;
	}

	/* El resumen se ancla al precio en vez de colgar del título, así queda a la
	 * misma altura en todas las tarjetas: el título ocupa dos o tres líneas según
	 * el producto y arrastraba el texto con él.
	 *
	 * El espacio sobrante lo absorbe el bloque de colores, no el precio, que es
	 * quien lo absorbía hasta ahora (`margin: auto 1.15rem 0`). Solo puede haber
	 * un `margin-top: auto` en la columna: con dos, el espacio se reparte entre
	 * ambos y vuelve a abrirse un hueco. Las tarjetas sin colores conservan el
	 * del precio, que sigue siendo el que las ancla. */
	.clc-product-collection .wc-block-product-template .clc-product-swatches {
		margin-top: auto;
	}

	.clc-product-collection li.wc-block-product:has(.clc-product-swatches) .wp-block-woocommerce-product-price {
		margin-top: 0;
	}

	/* El pill global (--clc-radius-pill) se ve como globo cuando el rótulo cae en
	 * dos líneas, que es lo que pasa a este ancho. Se baja el radio al del resto
	 * de la tarjeta y se compacta el interlineado, que era lo que inflaba el botón
	 * a 68 px de alto. Acotado a la tarjeta del catálogo: el resto del sitio
	 * conserva el pill de Franco.
	 *
	 * El rótulo NO entra en una línea: "Agregar al carro" necesita 145 px y hay
	 * 123. Bajar la tipografía a ~10,8 px lo resolvería, pero deja el botón
	 * ilegible. Se acepta el wrap y se fija `min-height` para que los botones de
	 * una y dos líneas midan igual; el font-size no se toca porque WordPress lo
	 * declara con !important en `.has-small-font-size`. */
	.clc-product-collection--catalog .wc-block-product-template .wc-block-components-product-button__button,
	.clc-product-collection--catalog .wc-block-product-template .clc-timber-quote-button {
		height: 50px;
		min-height: 50px;
		box-sizing: border-box;
		padding-block: 0.5rem;
		padding-inline: 0.5rem;
		border-radius: var(--clc-radius-pill);
		letter-spacing: 0.02em;
		line-height: 1.2;
	}

	.clc-product-collection--catalog .wc-block-product-template > li.wc-block-product > .clc-timber-quote-button {
		margin-top: 1rem;
		margin-inline: 0.75rem;
		height: 50px;
		min-height: 50px;
		box-sizing: border-box;
		padding: 0.5rem 0.5rem;
		border-radius: var(--clc-radius-pill);
		letter-spacing: 0.02em;
		line-height: 1.2;
	}

	.wc-block-grid__products {
		grid-template-columns: 1fr;
	}

	.clc-category-grid {
		gap: 1.25rem 0.75rem !important;
	}

	.clc-category-card figure {
		border-width: 4px;
	}

	.clc-category-card h3 {
		font-size: 0.75rem;
	}

	.clc-gallery-grid {
		grid-template-columns: 1fr;
		grid-template-rows: repeat(5, 240px);
	}

	.clc-gallery-grid figure:first-child {
		grid-column: auto;
	}

	.clc-hero-slider .wp-block-buttons,
	.clc-contact-band .wp-block-buttons {
		flex-direction: column;
		align-items: stretch;
	}

	.clc-hero-slider .wp-block-button,
	.clc-contact-band .wp-block-button {
		width: 100%;
	}

	.clc-hero-slider .wp-block-button__link,
	.clc-contact-band .wp-block-button__link {
		width: 100%;
		box-sizing: border-box;
		text-align: center;
	}
}

@media (max-width: 1180px) {
	body.clc-catalog-menu-open {
		overflow: hidden;
	}

	.clc-menu-bar__inner::before {
		content: none !important;
	}

	.clc-catalog-nav__open {
		display: inline-flex;
		gap: 0.75rem;
		align-items: center;
		padding: 0.75rem 0;
		border: 0;
		background: transparent;
		color: var(--clc-green-900);
		font: inherit;
		font-size: 0.75rem;
		font-weight: 750;
		letter-spacing: 0.055em;
		text-transform: uppercase;
		cursor: pointer;
	}

	.clc-catalog-nav__hamburger,
	.clc-catalog-nav__hamburger::before,
	.clc-catalog-nav__hamburger::after {
		display: block;
		width: 20px;
		height: 2px;
		border-radius: 2px;
		background: currentColor;
		content: "";
	}

	.clc-catalog-nav__hamburger {
		position: relative;
	}

	.clc-catalog-nav__hamburger::before {
		position: absolute;
		top: -6px;
	}

	.clc-catalog-nav__hamburger::after {
		position: absolute;
		top: 6px;
	}

	.clc-catalog-nav__panel {
		position: fixed;
		z-index: 100000;
		inset: 0;
		display: none;
		flex-direction: column;
		overflow-y: auto;
		background: #fff;
		color: var(--clc-ink);
		overscroll-behavior: contain;
	}

	.clc-catalog-nav.is-open .clc-catalog-nav__panel {
		display: flex;
	}

	.clc-catalog-nav__mobile-heading {
		position: sticky;
		z-index: 2;
		top: 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 1rem 1.25rem;
		border-bottom: 1px solid var(--clc-line);
		background: #fff;
		color: var(--clc-green-900);
		font-size: 0.875rem;
		letter-spacing: 0.035em;
		text-transform: uppercase;
	}

	.clc-catalog-nav__close {
		display: grid;
		width: 40px;
		height: 40px;
		padding: 0;
		place-items: center;
		border: 1px solid var(--clc-line);
		border-radius: 999px;
		background: #fff;
		color: var(--clc-green-900);
		font-size: 1.625rem;
		line-height: 1;
		cursor: pointer;
	}

	.clc-catalog-nav__scroller {
		min-height: 0;
		flex: 1;
		overflow-y: auto;
		padding-inline: 1.25rem;
		box-sizing: border-box;
		overscroll-behavior: contain;
	}

	.clc-catalog-nav__list {
		display: block;
		padding: 0.25rem 0 2rem;
	}

	.clc-catalog-nav__item--depth-0 {
		display: block;
		border-bottom: 1px solid var(--clc-line);
	}

	.clc-catalog-nav__link-row {
		width: 100%;
		align-items: center;
	}

	.clc-catalog-nav__item--depth-0 > .clc-catalog-nav__link-row > .clc-catalog-nav__link {
		flex: 1;
		padding: 1rem 0;
		font-size: 0.75rem;
		white-space: normal;
	}

	.clc-catalog-nav__item--depth-0.has-children > .clc-catalog-nav__link-row > .clc-catalog-nav__link::after {
		content: none;
	}

	.clc-catalog-nav__submenu-toggle {
		display: grid;
		width: 42px;
		height: 42px;
		flex: 0 0 42px;
		place-items: center;
		border: 0;
		border-radius: 999px;
		background: transparent;
		color: var(--clc-green-900);
		font: inherit;
		font-size: 1rem;
		cursor: pointer;
	}

	.clc-catalog-nav__submenu-toggle[aria-expanded="true"] > span[aria-hidden="true"] {
		transform: rotate(180deg);
	}

	.clc-catalog-nav__item--depth-0 > .clc-catalog-nav__submenu,
	.clc-catalog-nav__item--depth-0.is-mega > .clc-catalog-nav__submenu,
	.clc-catalog-nav__item--depth-0:hover > .clc-catalog-nav__submenu,
	.clc-catalog-nav__item--depth-0:focus-within > .clc-catalog-nav__submenu,
	.clc-catalog-nav__item--depth-1 > .clc-catalog-nav__submenu {
		position: static;
		display: none;
		width: auto;
		min-width: 0;
		padding: 0 0 0.75rem 1.5rem;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.clc-catalog-nav__item.is-submenu-open > .clc-catalog-nav__submenu {
		display: grid;
		grid-template-columns: 1fr;
		gap: 0.125rem;
	}

	.clc-catalog-nav__item--depth-1 > .clc-catalog-nav__link-row > .clc-catalog-nav__link,
	.clc-catalog-nav__item--depth-1.has-children > .clc-catalog-nav__link-row > .clc-catalog-nav__link {
		flex: 1;
		padding: 0.75rem 0;
		border: 0;
		border-radius: 0;
		font-size: 0.75rem;
		letter-spacing: 0;
		text-transform: none;
	}

	.clc-catalog-nav__item--depth-2 .clc-catalog-nav__link {
		padding: 0.5rem 0;
		font-size: 0.75rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* Project stories */
.clc-project-single {
	background: #fff;
}

.clc-project-archive {
	box-sizing: border-box;
	min-height: 70vh;
	padding: clamp(4.5rem, 9vw, 8.5rem) clamp(1.25rem, 4vw, 4rem) clamp(5rem, 9vw, 9rem);
	background: #fff;
}

.clc-project-archive__intro {
	margin: 0 0 clamp(3.5rem, 7vw, 6.5rem);
	text-align: center;
}

.clc-project-archive__eyebrow {
	margin: 0 0 1rem;
	color: var(--clc-green-700);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.095em;
	text-transform: uppercase;
}

.clc-project-archive__title {
	margin: 0;
	font-size: var(--clc-title-hero);
	letter-spacing: -0.055em;
	line-height: 0.97;
}

.clc-project-archive__lead {
	max-width: 670px;
	margin: 1.5rem auto 0;
	color: var(--clc-muted);
	font-size: clamp(1rem, 1.55vw, 1.2rem);
	line-height: 1.7;
}

.clc-project-archive__grid {
	gap: clamp(2.5rem, 4vw, 4.5rem) clamp(1rem, 2.5vw, 2rem);
}

.clc-project-card {
	min-width: 0;
}

.clc-project-card__image {
	overflow: hidden;
	margin: 0 0 1.25rem;
	border-radius: var(--clc-radius-md);
	background: var(--clc-sage);
}

.clc-project-card__image img {
	transition: transform 280ms ease;
}

.clc-project-card__image a:hover img {
	transform: scale(1.025);
}

.clc-project-card__title {
	margin: 0;
	font-size: clamp(1.35rem, 2vw, 1.9rem);
	letter-spacing: -0.025em;
}

.clc-project-card__title a {
	color: var(--clc-ink);
	text-decoration: none;
}

.clc-project-card__excerpt {
	margin-top: 0.75rem;
}

.clc-project-card__excerpt p {
	margin: 0;
	color: var(--clc-muted);
	font-size: 0.875rem;
	line-height: 1.65;
}

.clc-project-card__excerpt .wp-block-post-excerpt__more-text {
	margin-top: 1rem;
}

.clc-project-card__excerpt .wp-block-post-excerpt__more-link {
	color: var(--clc-green-700);
	font-size: 0.75rem;
	font-weight: 800;
	text-decoration: none;
}

.clc-project-archive__pagination {
	margin-top: clamp(3.5rem, 7vw, 6rem);
}

.clc-project-archive__pagination a {
	color: var(--clc-green-700);
	font-weight: 750;
	text-decoration: none;
}

.clc-project-hero {
	padding: clamp(3.5rem, 7vw, 7rem) clamp(1.25rem, 4vw, 4rem) 0;
}

.clc-project-breadcrumb {
	display: flex;
	gap: 0.5rem;
	align-items: center;
	margin: 0 0 1.25rem;
	color: var(--clc-muted);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.075em;
	text-transform: uppercase;
}

.clc-project-breadcrumb a {
	color: var(--clc-green-700);
	text-decoration: none;
}

.clc-project-title {
	max-width: 980px;
	margin: 0;
	font-size: var(--clc-title-hero);
	letter-spacing: -0.055em;
	line-height: 0.95;
}

.clc-project-facts {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: stretch;
	margin-block: clamp(2.5rem, 5vw, 4.5rem);
}

.clc-project-facts__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	border-top: 1px solid var(--clc-line);
}

.clc-project-facts__grid > div {
	padding: 1.25rem 1rem 1.25rem 0;
	border-bottom: 1px solid var(--clc-line);
}

.clc-project-facts__grid dt,
.clc-project-contribution__eyebrow,
.clc-project-source__eyebrow,
.clc-related-projects__heading > p {
	margin: 0 0 0.25rem;
	color: var(--clc-green-700);
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.085em;
	text-transform: uppercase;
}

.clc-project-facts__grid dd {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
}

.clc-project-facts__value {
	display: block;
}

.clc-project-facts__client-logo {
	display: block;
	width: auto;
	max-width: min(180px, 100%);
	height: 2.8rem;
	margin-bottom: 0.5rem;
	object-fit: contain;
	object-position: left center;
}

.clc-project-facts__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin-top: 0.5rem;
	font-size: 0.75rem;
	font-weight: 650;
}

.clc-project-facts__links a {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	min-height: 1.5rem;
	color: var(--clc-green-700);
	line-height: 1.35;
	text-decoration: none;
}

.clc-project-facts__links a:hover span:not(.screen-reader-text) {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.clc-project-facts__links a:focus-visible {
	border-radius: 2px;
	outline: 2px solid var(--clc-green-700);
	outline-offset: 3px;
}

.clc-project-facts__links svg {
	width: 1rem;
	height: 1rem;
	flex: 0 0 auto;
}

.clc-project-contribution {
	padding: clamp(1.5rem, 3vw, 2.35rem);
	border-radius: var(--clc-radius-md);
	background: var(--clc-green-900);
	color: #fff;
}

.clc-project-contribution__eyebrow {
	color: #a9d1a9;
}

.clc-project-contribution h2 {
	margin: 0 0 1rem;
	color: #fff;
	font-size: var(--clc-heading-h2);
}

.clc-project-contribution p {
	margin: 0;
	color: rgba(255, 255, 255, 0.84);
	font-size: 0.875rem;
	line-height: 1.65;
}

.clc-project-contribution .clc-project-contribution__status {
	display: inline-block;
	margin-top: 1.25rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--clc-radius-pill);
	color: #fff;
	font-size: 0.625rem;
	font-weight: 750;
	letter-spacing: 0.035em;
}

.clc-project-featured {
	overflow: hidden;
	margin-bottom: 0;
	border-radius: var(--clc-radius-lg);
	background: var(--clc-cream);
}

.clc-project-featured img {
	width: 100%;
}

.clc-project-story {
	padding: clamp(4rem, 8vw, 8rem) clamp(1.25rem, 4vw, 4rem);
}

.clc-project-story .wp-block-post-content > p {
	margin-block: 0 2rem;
	color: #343a34;
	font-size: clamp(1.08rem, 1.55vw, 1.28rem);
	line-height: 1.8;
}

.clc-project-story .wp-block-post-content > p:first-of-type {
	color: var(--clc-ink);
	font-size: clamp(1.35rem, 2.35vw, 1.8rem);
	font-weight: 600;
	line-height: 1.5;
}

.clc-project-story h2 {
	margin-block: clamp(3.75rem, 7vw, 6rem) 1.25rem;
	font-size: var(--clc-heading-h2);
	letter-spacing: -0.035em;
}

.clc-project-story figure.alignwide {
	position: relative;
	left: 50%;
	width: min(1180px, calc(100vw - 2.5rem));
	max-width: none;
	margin-block: clamp(3rem, 7vw, 6rem);
	transform: translateX(-50%);
}

.clc-project-story figure img {
	width: 100%;
	border-radius: var(--clc-radius-md);
}

.clc-project-story figcaption {
	margin-top: 0.75rem;
	color: var(--clc-muted);
	font-size: 0.75rem;
	text-align: left;
}

.clc-project-image-slot {
	width: min(1180px, calc(100vw - 2.5rem));
	min-height: clamp(280px, 50vw, 620px);
	margin: clamp(3rem, 7vw, 6rem) 0;
	margin-left: 50%;
	place-content: center;
	transform: translateX(-50%);
	border: 1px dashed #aeb9ad;
	border-radius: var(--clc-radius-md);
	background: var(--clc-cream-2);
	color: var(--clc-muted);
	text-align: center;
}

.clc-project-image-slot p {
	margin: 0;
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.clc-project-source-wrap {
	padding: 0 clamp(1.25rem, 4vw, 4rem) clamp(4rem, 7vw, 7rem);
}

.clc-project-source {
	display: flex;
	gap: 2rem;
	align-items: center;
	justify-content: space-between;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
	background: var(--clc-cream-2);
}

.clc-project-source p {
	margin: 0.25rem 0;
	color: var(--clc-muted);
	font-size: 0.75rem;
}

.clc-project-source__link {
	flex: 0 0 auto;
	padding: 0.75rem 1.25rem;
	border-radius: var(--clc-radius-pill);
	background: var(--clc-green-700);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 800;
	text-decoration: none;
}

.clc-project-related-wrap {
	padding: clamp(4rem, 7vw, 7rem) clamp(1.25rem, 4vw, 4rem);
	background: var(--clc-cream-2);
}

.clc-related-projects__heading {
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.clc-related-projects__heading h2 {
	max-width: 700px;
	margin: 0;
	font-size: var(--clc-heading-h2);
	letter-spacing: -0.04em;
}

.clc-related-projects__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2.5vw, 2rem);
}

.clc-related-project a {
	color: inherit;
	text-decoration: none;
}

.clc-related-project__image {
	overflow: hidden;
	aspect-ratio: 4 / 3;
	margin-bottom: 1rem;
	border-radius: var(--clc-radius-md);
	background: var(--clc-sage);
}

.clc-related-project__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 260ms ease;
}

.clc-related-project a:hover img {
	transform: scale(1.025);
}

.clc-related-project p {
	margin: 0 0 0.25rem;
	color: var(--clc-green-700);
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.clc-related-project h3 {
	margin: 0;
	font-size: clamp(1rem, 1.5vw, 1.3rem);
}

@media (max-width: 800px) {
	.clc-project-archive__grid {
		grid-template-columns: 1fr;
	}

	.clc-project-facts {
		grid-template-columns: 1fr;
	}

	.clc-project-facts__grid {
		grid-template-columns: 1fr;
	}

	.clc-project-source {
		align-items: flex-start;
		flex-direction: column;
	}

	.clc-project-source__link {
		width: 100%;
		box-sizing: border-box;
		text-align: center;
	}

	.clc-related-projects__grid {
		grid-template-columns: 1fr;
	}
}

/* Guided contact page */
.clc-contact-page {
	background: #fff;
}

.clc-contact-hero {
	box-sizing: border-box;
	padding: clamp(4.5rem, 9vw, 8.5rem) clamp(1.25rem, 4vw, 4rem) clamp(3.5rem, 7vw, 6.5rem);
	text-align: center;
}

.clc-contact-hero__eyebrow,
.clc-contact-step,
.clc-contact-method__eyebrow,
.clc-contact-location__eyebrow {
	margin: 0 0 1rem;
	color: var(--clc-green-700);
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.clc-contact-hero__title {
	max-width: 1000px;
	margin: 0 auto;
	font-size: var(--clc-title-hero);
	letter-spacing: -0.06em;
	line-height: 0.96;
}

.clc-contact-hero__lead {
	max-width: 760px;
	margin: 2rem auto 0;
	color: var(--clc-muted);
	font-size: clamp(1rem, 1.55vw, 1.2rem);
	line-height: 1.75;
}

.clc-contact-choice {
	box-sizing: border-box;
	padding: 0 clamp(1.25rem, 4vw, 4rem) clamp(5rem, 9vw, 9rem);
}

.clc-contact-choice__heading,
.clc-contact-locations__heading {
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.clc-contact-choice__heading h2,
.clc-contact-locations__heading h2 {
	max-width: 760px;
	margin: 0;
	font-size: var(--clc-heading-h2);
	letter-spacing: -0.04em;
}

.clc-contact-methods {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1rem, 2.5vw, 2rem);
}

.clc-contact-method {
	position: relative;
	display: flex;
	min-height: 410px;
	box-sizing: border-box;
	align-items: flex-start;
	flex-direction: column;
	padding: clamp(1.75rem, 4vw, 3rem);
	overflow: hidden;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-lg);
	background: var(--clc-cream-2);
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.clc-contact-method:hover,
.clc-contact-method.is-selected {
	border-color: rgba(33, 114, 45, 0.35);
	box-shadow: var(--clc-shadow);
	transform: translateY(-3px);
}

.clc-contact-method--whatsapp {
	background: var(--clc-green-900);
	color: #fff;
}

.clc-contact-method__number {
	position: absolute;
	top: 1.3rem;
	right: 1.6rem;
	color: rgba(102, 112, 102, 0.16);
	font-size: clamp(4rem, 8vw, 7.5rem);
	font-weight: 800;
	letter-spacing: -0.08em;
	line-height: 1;
}

.clc-contact-method--whatsapp .clc-contact-method__number {
	color: rgba(255, 255, 255, 0.1);
}

.clc-contact-method__icon {
	display: grid;
	width: 58px;
	height: 58px;
	margin-bottom: auto;
	place-items: center;
	border-radius: 50%;
	background: var(--clc-sage);
	color: var(--clc-green-900);
}

.clc-contact-method--whatsapp .clc-contact-method__icon {
	background: rgba(255, 255, 255, 0.13);
	color: #fff;
}

.clc-contact-method__icon svg {
	width: 25px;
	height: 25px;
	fill: currentColor;
}

.clc-contact-method__eyebrow {
	margin-top: 2rem;
}

.clc-contact-method--whatsapp .clc-contact-method__eyebrow {
	color: #a9d1a9;
}

.clc-contact-method h3 {
	margin: 0;
	color: inherit;
	font-size: var(--clc-heading-h3);
	letter-spacing: -0.045em;
}

.clc-contact-method > p:not(.clc-contact-method__eyebrow) {
	max-width: 520px;
	margin: 1rem 0 1.5rem;
	color: var(--clc-muted);
	font-size: 0.875rem;
	line-height: 1.7;
}

.clc-contact-method--whatsapp > p:not(.clc-contact-method__eyebrow) {
	color: rgba(255, 255, 255, 0.76);
}

.clc-contact-method__action {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	justify-content: center;
	padding: 1rem 1.25rem;
	border: 0;
	border-radius: var(--clc-radius-pill);
	background: var(--clc-green-700);
	color: #fff;
	cursor: pointer;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.045em;
	text-decoration: none;
	text-transform: uppercase;
}

.clc-contact-method--whatsapp .clc-contact-method__action {
	background: #fff;
	color: var(--clc-green-900);
}

.clc-contact-page.is-enhanced .clc-contact-email-panel[hidden],
.clc-contact-page.is-enhanced [data-clc-type-panel][hidden],
.clc-contact-page.is-enhanced [data-clc-contact-shared][hidden] {
	display: none;
}

.clc-contact-email-panel {
	box-sizing: border-box;
	padding: clamp(4.5rem, 8vw, 8rem) clamp(1.25rem, 4vw, 4rem);
	scroll-margin-top: 1rem;
	background: var(--clc-cream-2);
}

.clc-contact-email-panel__heading {
	margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
	text-align: center;
}

.clc-contact-email-panel__title {
	margin: 0;
	font-size: var(--clc-heading-h2);
	letter-spacing: -0.05em;
}

.clc-contact-email-panel__title:focus {
	border-radius: 4px;
	outline: 2px solid var(--clc-green-700);
	outline-offset: 0.35rem;
}

.clc-contact-email-panel__heading > p:last-child {
	max-width: 680px;
	margin: 1rem auto 0;
	color: var(--clc-muted);
}

.clc-contact-form {
	width: min(920px, 100%);
	margin-inline: auto;
}

.clc-contact-form fieldset {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.clc-contact-form legend {
	width: 100%;
	margin-bottom: 1.25rem;
	color: var(--clc-ink);
	font-size: clamp(1.15rem, 2vw, 1.5rem);
	font-weight: 750;
}

.clc-contact-type {
	margin-bottom: clamp(1.25rem, 2.5vw, 1.8rem) !important;
}

.clc-contact-type .wpcf7-form-control-wrap {
	display: block;
}

.clc-contact-type .wpcf7-radio {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
}

.clc-contact-type .wpcf7-list-item {
	margin: 0;
}

.clc-contact-type .wpcf7-list-item label {
	position: relative;
	display: flex;
	min-height: 64px;
	box-sizing: border-box;
	align-items: center;
	padding: 1rem 1.25rem 1rem 3rem;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
	background: #fff;
	cursor: pointer;
	font-size: 0.875rem;
	font-weight: 750;
	transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}

.clc-contact-type .wpcf7-list-item label:has(input:checked) {
	border-color: var(--clc-green-700);
	background: #f2f8f0;
	box-shadow: 0 0 0 1px var(--clc-green-700);
}

.clc-contact-type input {
	position: absolute;
	left: 1.15rem;
	width: 18px;
	height: 18px;
	accent-color: var(--clc-green-700);
}

.clc-contact-type input:focus {
	outline: 0;
}

.clc-contact-type label:focus-within {
	outline: 2px solid var(--clc-green-700);
	outline-offset: 3px;
}

.clc-contact-route {
	margin-bottom: clamp(1.25rem, 2.5vw, 1.8rem);
	padding: clamp(1.15rem, 2.2vw, 1.75rem);
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-lg);
	background: #fff;
}

.clc-contact-route__intro {
	margin: 0 0 1rem;
}

.clc-contact-route__intro strong {
	display: block;
	margin-bottom: 0.25rem;
	font-size: 1rem;
}

.clc-contact-route__intro span {
	color: var(--clc-muted);
	font-size: 0.875rem;
}

.clc-product-finder {
	position: relative;
	margin-bottom: 1rem;
	padding: clamp(1rem, 2vw, 1.35rem);
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
	background: var(--clc-cream-2);
}

.clc-product-finder__categories {
	margin-bottom: 1rem;
}

.clc-product-finder__label {
	display: block;
	margin: 0 0 0.5rem;
	color: var(--clc-ink);
	font-size: 0.75rem;
	font-weight: 750;
}

.clc-product-finder__category-list {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.clc-product-finder__category {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	padding: 0.5rem 0.75rem;
	border: 1px solid #cfd6cd;
	border-radius: var(--clc-radius-pill);
	background: #fff;
	color: var(--clc-ink);
	cursor: pointer;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
}

.clc-product-finder__category small {
	display: grid;
	min-width: 20px;
	height: 20px;
	padding-inline: 0.25rem;
	place-items: center;
	border-radius: var(--clc-radius-pill);
	background: var(--clc-cream);
	color: var(--clc-muted);
	font-size: 0.625rem;
}

.clc-product-finder__category:hover,
.clc-product-finder__category.is-active {
	border-color: var(--clc-green-700);
	background: #edf7eb;
	box-shadow: none;
	transform: none;
}

.clc-product-finder__category.is-active small {
	background: var(--clc-green-700);
	color: #fff;
}

.clc-product-finder__search {
	display: block;
}

.clc-product-finder__control {
	position: relative;
	display: block;
	min-height: 52px;
	overflow: hidden;
	border: 1px solid #cfd6cd;
	border-radius: var(--clc-radius-pill);
	background: #fff;
	transition: border-color 150ms ease, box-shadow 150ms ease;
}

.clc-product-finder__control::before {
	position: absolute;
	z-index: 1;
	top: 50%;
	left: 17px;
	width: 12px;
	height: 12px;
	border: 2px solid var(--clc-green-700);
	border-radius: 50%;
	content: "";
	pointer-events: none;
	transform: translateY(-62%);
}

.clc-product-finder__control::after {
	position: absolute;
	z-index: 1;
	top: calc(50% + 5px);
	left: 29px;
	width: 7px;
	height: 2px;
	border-radius: 2px;
	background: var(--clc-green-700);
	content: "";
	pointer-events: none;
	transform: rotate(45deg);
	transform-origin: left center;
}

.clc-product-finder__control:focus-within {
	border-color: var(--clc-green-700);
	box-shadow: var(--clc-focus-ring);
}

.clc-product-finder__control input {
	width: 100%;
	height: 50px;
	box-sizing: border-box;
	padding: 0 1rem 0 3rem;
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--clc-ink);
	font-size: 0.875rem;
}

.clc-product-finder__results {
	max-height: 390px;
	margin-top: 0.5rem;
	overflow: auto;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
	background: #fff;
	box-shadow: var(--clc-shadow-md);
}

.clc-product-finder__result {
	display: grid;
	width: 100%;
	grid-template-columns: 58px minmax(0, 1fr) auto;
	gap: 0.75rem;
	align-items: center;
	padding: 0.75rem;
	border: 0;
	border-bottom: 1px solid var(--clc-line);
	border-radius: 0;
	background: #fff;
	color: var(--clc-ink);
	cursor: pointer;
	text-align: left;
	text-transform: none;
}

.clc-product-finder__result:last-child {
	border-bottom: 0;
}

/* La opcion senalada con las flechas del teclado. Se ve igual que al pasar
 * el puntero: es la misma idea, senalar sin haber elegido todavia. */
.clc-product-finder__result.is-active,
.clc-product-finder__result:hover,
.clc-product-finder__result:focus-visible {
	background: var(--clc-cream-2);
	box-shadow: none;
	transform: none;
}

.clc-product-finder__result:focus-visible {
	outline: 2px solid var(--clc-green-700);
	outline-offset: -3px;
}

.clc-product-finder__result.is-selected,
.clc-product-finder__result.is-selected:disabled {
	background: #edf7eb;
	color: var(--clc-ink);
	cursor: default;
	opacity: 1;
}

.clc-product-finder__result.is-selected::after {
	color: var(--clc-green-700);
	content: "Agregado ✓";
	font-size: 0.625rem;
	font-weight: 800;
	white-space: nowrap;
}

.clc-product-finder__result.is-selected .clc-product-finder__result-price {
	display: none;
}

.clc-product-finder__result-image {
	width: 58px;
	height: 58px;
	border-radius: var(--clc-radius-sm);
	background: var(--clc-cream);
	object-fit: cover;
}

.clc-product-finder__result-copy {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 0.25rem;
}

.clc-product-finder__result-copy strong {
	overflow: hidden;
	font-size: 0.75rem;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.clc-product-finder__result-copy span {
	overflow: hidden;
	color: var(--clc-muted);
	font-size: 0.625rem;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.clc-product-finder__result-price {
	font-size: 0.75rem;
	font-weight: 750;
	white-space: nowrap;
}

.clc-product-finder__result-price del {
	display: none;
}

.clc-product-finder__loading,
.clc-product-finder__empty {
	padding: 1rem;
	color: var(--clc-muted);
	font-size: 0.75rem;
}

.clc-product-finder__empty {
	display: flex;
	gap: 0.25rem;
	flex-direction: column;
}

.clc-product-finder__empty strong {
	color: var(--clc-ink);
}

.clc-product-finder__selected {
	margin-top: 0.75rem;
	padding: 0.75rem;
	border: 1px solid var(--clc-green-700);
	border-radius: var(--clc-radius-md);
	background: #edf7eb;
}

.clc-product-finder__selected[hidden] {
	display: none;
}

.clc-product-finder__selected-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.25rem;
	color: var(--clc-green-700);
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.clc-product-finder__selected-heading > p {
	display: contents;
}

.clc-product-finder__selected-heading span {
	letter-spacing: 0;
	text-transform: none;
}

.clc-product-finder__selected-list {
	display: grid;
	gap: 0;
}

.clc-product-finder__selected-item {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr) auto;
	gap: 0.75rem;
	align-items: center;
	padding: 0.75rem 0;
	border-top: 1px solid rgba(40, 102, 51, 0.18);
}

.clc-product-finder__selected-image {
	width: 58px;
	height: 58px;
	border-radius: var(--clc-radius-sm);
	background: var(--clc-cream);
	object-fit: cover;
}

.clc-product-finder__selected-copy {
	display: flex;
	min-width: 0;
	overflow: hidden;
	flex-direction: column;
	gap: 0.25rem;
}

.clc-product-finder__selected-copy strong,
.clc-product-finder__selected-copy span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.clc-product-finder__selected-copy strong {
	font-size: 0.75rem;
}

.clc-product-finder__selected-copy span {
	color: var(--clc-muted);
	font-size: 0.625rem;
}

.clc-product-finder__remove {
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--clc-green-700);
	border-radius: var(--clc-radius-pill);
	background: transparent;
	color: var(--clc-green-700);
	cursor: pointer;
	font-size: 0.625rem;
	font-weight: 800;
}

.clc-product-finder__remove:hover {
	box-shadow: none;
	transform: none;
}

.clc-product-finder__category-error {
	color: var(--clc-muted);
	font-size: 0.75rem;
}

.clc-contact-field-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem 0.75rem;
}

.clc-contact-field-grid > br,
.clc-contact-field > br {
	display: none;
}

.clc-contact-route > p:has(> br:only-child),
.clc-contact-form__shared > p:has(> br:only-child) {
	display: none;
}

.clc-contact-field {
	display: block;
	margin: 0;
	color: var(--clc-ink);
	font-size: 0.75rem;
	font-weight: 750;
}

/* Campos que se dejaron de pedir sin sacarlos del formulario.
 *
 * Se esconden en vez de borrarlos para poder devolverlos con una clase, y
 * porque las etiquetas siguen existiendo en el cuerpo del correo: si se
 * borraran, esas referencias quedarían colgando.
 *
 * VA DESPUÉS de .clc-contact-field a propósito: las dos son una sola clase, así
 * que pesan igual y gana la última. Puesta antes no ocultaba nada, y eso no se
 * ve leyendo el selector: hay que mirar dónde cae en el archivo.
 *
 * Y esconder no alcanza si además se valida: la etapa del proyecto se exigía
 * desde PHP, y escondida sin tocar eso habría dejado la ruta Proyectos
 * imposible de enviar. Ver clc_blocks_validate_contact_route. */
.clc-contact-field--oculto {
	display: none;
}

.clc-contact-field--full {
	grid-column: 1 / -1;
}

.clc-contact-field__label {
	display: block;
	margin-bottom: 0.5rem;
}

.clc-contact-field__optional {
	color: var(--clc-muted);
	font-size: 0.625rem;
	font-weight: 550;
}

.clc-contact-field .wpcf7-form-control-wrap {
	display: block;
}

.clc-contact-field input:not([type="checkbox"]):not([type="radio"]),
.clc-contact-field select,
.clc-contact-field textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 1rem 1rem;
	border: 1px solid #cfd6cd;
	border-radius: var(--clc-radius-sm);
	outline: none;
	background: #fff;
	color: var(--clc-ink);
	font-size: 0.875rem;
	font-weight: 500;
	transition: border-color 150ms ease, box-shadow 150ms ease;
}

.clc-contact-field select {
	min-height: 51px;
}

.clc-contact-field textarea {
	min-height: 150px;
	resize: vertical;
}

.clc-contact-field input:focus,
.clc-contact-field select:focus,
.clc-contact-field textarea:focus {
	border-color: var(--clc-green-700);
	box-shadow: var(--clc-focus-ring);
}

.clc-contact-field input[type="file"] {
	padding: 0.75rem;
	background: var(--clc-cream-2);
}

.clc-contact-form .wpcf7-not-valid {
	border-color: #a82e2e !important;
}

.clc-contact-form .wpcf7-not-valid-tip {
	margin-top: 0.25rem;
	color: #8c2424;
	font-size: 0.75rem;
	font-weight: 650;
}

.clc-contact-form__shared {
	padding-top: clamp(1.25rem, 2.5vw, 1.8rem);
	border-top: 1px solid var(--clc-line);
}

.clc-contact-consent {
	display: grid;
	gap: 0.5rem;
	margin-top: 0.75rem;
	color: var(--clc-muted);
	font-size: 0.75rem;
	line-height: 1.55;
}

.clc-contact-consent .wpcf7-list-item {
	margin: 0;
}

.clc-contact-consent label {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
}

.clc-contact-consent input {
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
	margin-top: 0.125rem;
	accent-color: var(--clc-green-700);
}

.clc-contact-form p:has(.wpcf7-hidden) {
	display: none;
	margin: 0;
}

.clc-contact-form__submit {
	display: flex;
	gap: 1rem;
	align-items: center;
	margin-top: 1.25rem;
}

.clc-contact-form__submit input[type="submit"] {
	min-width: 190px;
	padding: 1rem 1.25rem;
	border: 0;
	background: var(--clc-green-700);
	color: #fff;
	cursor: pointer;
}

.clc-contact-form__submit-note {
	margin: 0;
	color: var(--clc-muted);
	font-size: 0.75rem;
}

.clc-contact-form .wpcf7-spinner {
	margin: 0;
}

.clc-contact-form__turnstile {
	width: min(100%, 30rem);
	margin: 1.25rem 0 0.75rem;
}

.clc-contact-form__turnstile .wpcf7-turnstile {
	width: 100%;
	min-height: 4.1rem;
}

.clc-contact-form .wpcf7-response-output {
	margin: 1.5rem 0 0 !important;
	padding: 1rem 1.25rem !important;
	border: 1px solid var(--clc-green-700) !important;
	border-radius: var(--clc-radius-sm);
	background: #edf7eb;
	color: var(--clc-green-900);
	font-size: 0.75rem;
	font-weight: 650;
}

.clc-contact-form.invalid .wpcf7-response-output,
.clc-contact-form.failed .wpcf7-response-output,
.clc-contact-form.spam .wpcf7-response-output {
	border-color: #a82e2e !important;
	background: #fff2f0;
	color: #7d2424;
}

.clc-contact-locations {
	box-sizing: border-box;
	padding: clamp(4.5rem, 8vw, 8rem) clamp(1.25rem, 4vw, 4rem);
}

.clc-contact-location-grid {
	align-items: stretch;
	gap: clamp(1rem, 2.5vw, 2rem);
}

.clc-contact-location {
	display: grid;
	min-width: 0;
	grid-template-columns: minmax(190px, 0.82fr) minmax(0, 1.18fr);
	overflow: hidden;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-lg);
	background: var(--clc-cream-2);
}

.clc-contact-location__media {
	display: grid;
	width: calc(100% - clamp(1.4rem, 2.4vw, 2rem));
	height: auto;
	aspect-ratio: 1;
	box-sizing: border-box;
	align-self: center;
	margin: clamp(0.7rem, 1.2vw, 1rem) !important;
	overflow: hidden;
	border-radius: var(--clc-radius-md);
	background: var(--clc-cream);
	place-items: center;
}

.clc-contact-location__media img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.clc-contact-location__body {
	display: flex;
	min-width: 0;
	box-sizing: border-box;
	align-items: flex-start;
	flex-direction: column;
	padding: clamp(1.35rem, 2.6vw, 2rem);
}

.clc-contact-location__body > * {
	margin-block-start: 0;
}

.clc-contact-location h3 {
	margin: 0 0 0.75rem;
	font-size: var(--clc-heading-h3);
}

.clc-contact-location__details,
.clc-contact-location__hours {
	color: var(--clc-muted);
	font-size: 0.875rem;
	line-height: 1.7;
}

.clc-contact-location__details {
	margin: 0 0 1rem;
}

.clc-contact-location__details a {
	color: inherit;
	text-decoration-color: var(--clc-sage);
	text-underline-offset: 0.18em;
}

.clc-contact-location__hours {
	margin: 0 0 1.25rem;
}

.clc-contact-location__hours strong {
	color: var(--clc-ink);
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.clc-contact-location__map {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	margin-top: auto;
	color: var(--clc-green-700);
	font-size: 0.75rem;
	font-weight: 750;
	text-decoration: none;
}

.clc-contact-location__map svg {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	fill: currentColor;
}

.clc-contact-location__map span {
	border-bottom: 1px solid currentColor;
}

.clc-contact-location__map:hover {
	color: var(--clc-green-900);
}

.clc-contact-location__map:focus-visible {
	border-radius: 3px;
	outline: 2px solid var(--clc-green-700);
	outline-offset: 4px;
}

@media (max-width: 800px) {
	.clc-contact-methods,
	.clc-contact-type .wpcf7-radio,
	.clc-contact-field-grid {
		grid-template-columns: 1fr;
	}

	.clc-contact-method {
		min-height: 360px;
	}

	.clc-contact-field--full {
		grid-column: auto;
	}

	.clc-contact-form__submit {
		align-items: stretch;
		flex-direction: column;
	}

	.clc-contact-form__submit input[type="submit"] {
		width: 100%;
	}

	.clc-product-finder__result {
		grid-template-columns: 52px minmax(0, 1fr);
	}

	.clc-product-finder__result-image {
		width: 52px;
		height: 52px;
	}

	.clc-product-finder__result-price {
		display: none;
	}

	.clc-product-finder__selected-item {
		grid-template-columns: 52px minmax(0, 1fr);
	}

	.clc-product-finder__selected-image {
		width: 52px;
		height: 52px;
	}

	.clc-product-finder__remove {
		grid-column: 1 / -1;
	}

	.clc-contact-location-grid {
		flex-direction: column;
	}

	.clc-contact-location {
		grid-template-columns: 1fr;
	}

	.clc-contact-location__media {
		height: auto;
	}
}

/* Productos a pedido */
.clc-custom-projects-page {
	background: #fff;
}

.clc-custom-projects-inner {
	width: min(1180px, calc(100% - clamp(2.5rem, 8vw, 8rem)));
	margin-inline: auto;
}

.clc-custom-project-hero {
	min-height: clamp(420px, 48vw, 620px);
}

.clc-custom-project-hero .clc-catalog-hero__image {
	object-position: center 56%;
}

.clc-custom-project-hero .clc-catalog-hero__scrim {
	background:
		linear-gradient(90deg, rgba(8, 29, 16, 0.9) 0%, rgba(var(--clc-ink-rgb), 0.6) 48%, rgba(var(--clc-ink-rgb), 0.12) 100%),
		linear-gradient(0deg, rgba(8, 28, 15, 0.52) 0%, rgba(8, 28, 15, 0.06) 68%);
}

.clc-custom-project-hero .clc-catalog-hero__title {
	max-width: 900px;
	margin-bottom: 1rem;
}

.clc-custom-project-hero__eyebrow,
.clc-custom-projects-eyebrow {
	margin: 0 0 0.75rem;
	color: var(--clc-green-700);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.clc-custom-project-hero__eyebrow {
	color: rgba(255, 255, 255, 0.72);
}

.clc-custom-project-hero__lead {
	max-width: 720px;
	margin: 0 0 1.5rem;
	color: rgba(255, 255, 255, 0.86);
	font-size: clamp(0.98rem, 1.7vw, 1.22rem);
	line-height: 1.65;
}

.clc-custom-project-hero__link {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	gap: 0.75rem;
	padding-bottom: 0.25rem;
	border-bottom: 2px solid rgba(255, 255, 255, 0.38);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.055em;
	text-decoration: none;
	text-transform: uppercase;
}

.clc-custom-project-hero__link:hover {
	border-color: #fff;
}

.clc-custom-project-hero__link:focus-visible,
.clc-custom-project-tile:focus-visible,
.clc-custom-project-story__cta:focus-visible {
	border-radius: 4px;
	outline: 3px solid currentColor;
	outline-offset: 5px;
}

.clc-custom-project-story {
	padding: clamp(5rem, 9vw, 9rem) 0;
	background: var(--clc-green-900);
	color: #fff;
}

.clc-custom-project-story .clc-custom-projects-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
	gap: clamp(3rem, 8vw, 8rem);
	align-items: start;
}

.clc-custom-project-story__copy h2,
.clc-custom-project-types__heading h2,
.clc-custom-project-form__heading h2 {
	margin: 0;
	font-size: var(--clc-heading-h2);
	letter-spacing: -0.055em;
	line-height: 0.98;
	text-wrap: balance;
}

.clc-custom-project-story__copy h2 {
	color: #fff;
}

.clc-custom-project-story .clc-custom-projects-eyebrow {
	color: var(--clc-sage);
}

.clc-custom-project-story__copy > p:not(.clc-custom-projects-eyebrow) {
	max-width: 720px;
	margin: 1.5rem 0 0;
	color: rgba(255, 255, 255, 0.76);
	font-size: clamp(0.94rem, 1.25vw, 1.06rem);
	line-height: 1.8;
}

.clc-custom-project-story__cta {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	margin-top: 2rem;
	padding: 1rem 1.5rem;
	border-radius: var(--clc-radius-pill);
	background: #fff;
	color: var(--clc-green-900);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-decoration: none;
	text-transform: uppercase;
}

.clc-custom-project-process {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.clc-custom-project-process li {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 1rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.clc-custom-project-process li > span {
	color: var(--clc-sage);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.08em;
}

.clc-custom-project-process strong {
	display: block;
	margin-bottom: 0.25rem;
	color: #fff;
	font-size: 1rem;
}

.clc-custom-project-process p {
	margin: 0;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.75rem;
	line-height: 1.6;
}

.clc-custom-project-types {
	padding: clamp(5rem, 8vw, 8rem) 0;
	scroll-margin-top: 1rem;
	background: var(--clc-cream-2);
}

.clc-custom-project-types__heading {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(260px, 0.5fr);
	gap: clamp(2rem, 6vw, 6rem);
	align-items: end;
	margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.clc-custom-project-types__heading h2 {
	max-width: 820px;
}

.clc-custom-project-types__heading > p {
	margin: 0;
	color: var(--clc-muted);
	font-size: 0.875rem;
	line-height: 1.75;
}

.clc-custom-project-mosaic {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-template-rows: repeat(4, clamp(145px, 15vw, 205px));
	gap: clamp(0.65rem, 1.2vw, 1rem);
}

.clc-custom-project-tile {
	position: relative;
	isolation: isolate;
	display: flex;
	min-width: 0;
	align-items: flex-end;
	padding: clamp(1rem, 2vw, 1.5rem);
	overflow: hidden;
	border-radius: var(--clc-radius-md);
	background: var(--clc-green-900);
	color: #fff;
	text-decoration: none;
}

.clc-custom-project-tile::after {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(0deg, rgba(7, 27, 14, 0.82) 0%, rgba(7, 27, 14, 0.08) 72%);
	content: "";
}

.clc-custom-project-tile img {
	position: absolute;
	z-index: -2;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 260ms ease;
}

.clc-custom-project-tile:hover img {
	transform: scale(1.025);
}

.clc-custom-project-tile > span {
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	color: #fff;
	font-size: clamp(1rem, 1.8vw, 1.5rem);
	font-weight: 750;
	letter-spacing: -0.035em;
	line-height: 1.05;
}

.clc-custom-project-tile small {
	color: rgba(255, 255, 255, 0.62);
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.08em;
}

.clc-custom-project-tile--doors {
	grid-column: 1 / 3;
	grid-row: 1 / 3;
}

.clc-custom-project-tile--floors {
	grid-column: 3;
	grid-row: 1 / 3;
}

.clc-custom-project-tile--floors img {
	object-position: 62% center;
}

.clc-custom-project-tile--windows {
	grid-column: 4;
	grid-row: 1 / 3;
}

.clc-custom-project-tile--cladding {
	grid-column: 1 / 3;
	grid-row: 3;
}

.clc-custom-project-tile--tables {
	grid-column: 3;
	grid-row: 3;
}

.clc-custom-project-tile--stairs {
	grid-column: 4;
	grid-row: 3;
}

.clc-custom-project-tile--stairs img {
	object-position: 88% center;
}

.clc-custom-project-tile--decks {
	grid-column: 1 / 3;
	grid-row: 4;
}

.clc-custom-project-tile--beams {
	grid-column: 3 / 5;
	grid-row: 4;
}

.clc-custom-project-form {
	box-sizing: border-box;
	padding: clamp(5rem, 9vw, 9rem) clamp(1.25rem, 4vw, 4rem);
	scroll-margin-top: 1rem;
	background: var(--clc-cream-2);
}

.clc-custom-project-form__heading {
	margin-bottom: clamp(2.8rem, 6vw, 5rem);
	text-align: center;
}

.clc-custom-project-form__heading h2 {
	font-size: var(--clc-heading-h2);
}

.clc-custom-project-form__heading > p:last-child {
	max-width: 680px;
	margin: 1.25rem auto 0;
	color: var(--clc-muted);
	font-size: 0.875rem;
	line-height: 1.7;
}

@media (max-width: 980px) {
	.clc-custom-project-story .clc-custom-projects-inner,
	.clc-custom-project-types__heading {
		grid-template-columns: 1fr;
	}

	.clc-custom-project-story .clc-custom-projects-inner {
		gap: 3rem;
	}

	.clc-custom-project-types__heading {
		gap: 1.5rem;
	}

	.clc-custom-project-types__heading > p {
		max-width: 620px;
	}
}

@media (max-width: 700px) {
	.clc-custom-projects-inner {
		width: calc(100% - 2rem);
	}

	.clc-custom-project-hero {
		min-height: 500px;
	}

	.clc-custom-project-hero .clc-catalog-hero__scrim {
		background:
			linear-gradient(0deg, rgba(8, 29, 16, 0.94) 0%, rgba(var(--clc-ink-rgb), 0.72) 65%, rgba(var(--clc-ink-rgb), 0.3) 100%);
	}

	.clc-custom-project-story {
		padding-block: 4rem;
	}

	.clc-custom-project-mosaic {
		grid-template-columns: 1fr;
		grid-template-rows: none;
	}

	.clc-custom-project-tile,
	.clc-custom-project-tile--doors,
	.clc-custom-project-tile--floors,
	.clc-custom-project-tile--windows,
	.clc-custom-project-tile--cladding,
	.clc-custom-project-tile--tables,
	.clc-custom-project-tile--stairs,
	.clc-custom-project-tile--decks,
	.clc-custom-project-tile--beams {
		grid-column: auto;
		grid-row: auto;
		min-height: 220px;
	}

	.clc-custom-project-tile--doors,
	.clc-custom-project-tile--cladding,
	.clc-custom-project-tile--decks,
	.clc-custom-project-tile--beams {
		min-height: 280px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.clc-custom-project-tile img {
		transition: none;
	}
}

/* Searchable FAQ directory. */
.clc-faq-page {
	box-sizing: border-box;
	padding-bottom: clamp(4rem, 8vw, 7rem);
	background: var(--clc-cream-2);
}

.clc-faq-hero {
	min-height: clamp(420px, 54vw, 620px);
}

.clc-faq-hero .clc-catalog-hero__image {
	object-position: center 58%;
}

.clc-faq-hero .clc-catalog-hero__scrim {
	background:
		linear-gradient(90deg, rgba(9, 31, 17, 0.93) 0%, rgba(var(--clc-ink-rgb), 0.72) 44%, rgba(var(--clc-ink-rgb), 0.12) 100%);
}

.clc-faq-hero__eyebrow,
.clc-faq-directory__eyebrow {
	margin: 0 0 0.75rem;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.clc-faq-hero__eyebrow {
	color: var(--clc-sage);
}

.clc-faq-hero__lead {
	max-width: 660px;
	margin: 1.25rem 0 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: clamp(0.95rem, 1.5vw, 1.15rem);
	line-height: 1.75;
}

.clc-faq-directory {
	width: min(1180px, calc(100% - 2.5rem));
	margin-inline: auto;
	padding: clamp(4.5rem, 8vw, 8rem) 0;
}

.clc-faq-directory__search {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(420px, 1.2fr);
	gap: clamp(2rem, 7vw, 7rem);
	align-items: end;
	margin-bottom: clamp(4rem, 8vw, 7rem);
	padding-bottom: clamp(3rem, 6vw, 5rem);
	border-bottom: 1px solid var(--clc-line);
}

.clc-faq-directory__search-copy h2 {
	max-width: 520px;
	margin: 0;
	font-size: var(--clc-heading-h2);
	font-weight: 760;
	letter-spacing: -0.05em;
	line-height: 1.02;
}

.clc-faq-directory__search-copy > p:last-child {
	max-width: 520px;
	margin: 1.25rem 0 0;
	color: var(--clc-muted);
	font-size: 0.875rem;
	line-height: 1.7;
}

.clc-faq-directory__eyebrow {
	color: var(--clc-green-700);
}

.clc-faq-search {
	max-width: none;
}

.clc-faq-search .clc-catalog-search__control {
	min-height: 64px;
	box-shadow: var(--clc-shadow-md);
}

.clc-faq-search .clc-catalog-search__input {
	height: 62px;
	font-size: 0.875rem;
}

.clc-faq-search__status {
	min-height: 1.2em;
	margin: 0.75rem 1.25rem 0;
	color: var(--clc-muted);
	font-size: 0.75rem;
}

.clc-faq-directory__groups {
	display: grid;
	gap: clamp(4.5rem, 8vw, 7.5rem);
}

.clc-faq-group__header {
	display: grid;
	grid-template-columns: minmax(260px, 0.85fr) minmax(300px, 1fr) auto;
	gap: clamp(1.5rem, 5vw, 5rem);
	align-items: end;
	margin-bottom: 1.5rem;
}

.clc-faq-group__header > div {
	display: grid;
	grid-template-columns: 34px minmax(0, 1fr);
	gap: 0.75rem;
	align-items: start;
}

.clc-faq-group__number {
	margin: 0.5rem 0 0;
	color: var(--clc-green-700);
	font-size: 0.625rem;
	font-weight: 800;
	letter-spacing: 0.08em;
}

.clc-faq-group__header h2 {
	margin: 0;
	font-size: var(--clc-heading-h2);
	font-weight: 750;
	letter-spacing: -0.04em;
	line-height: 1.08;
}

.clc-faq-group__description,
.clc-faq-group__count {
	margin: 0;
	color: var(--clc-muted);
	font-size: 0.75rem;
	line-height: 1.65;
}

.clc-faq-group__count {
	white-space: nowrap;
}

.clc-faq-group__items {
	border-top: 1px solid var(--clc-ink);
}

.clc-faq-item {
	border-bottom: 1px solid var(--clc-line);
}

.clc-faq-item[hidden],
.clc-faq-group[hidden] {
	display: none;
}

.clc-faq-item summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 32px;
	gap: 1.5rem;
	align-items: center;
	padding: clamp(1.35rem, 2.5vw, 2rem) 0;
	color: var(--clc-ink);
	cursor: pointer;
	font-size: clamp(0.95rem, 1.4vw, 1.12rem);
	font-weight: 700;
	line-height: 1.45;
	list-style: none;
}

.clc-faq-item summary::-webkit-details-marker {
	display: none;
}

.clc-faq-item summary:hover {
	color: var(--clc-green-700);
}

.clc-faq-item summary:focus-visible {
	border-radius: var(--clc-radius-sm);
	outline: 3px solid rgba(33, 114, 45, 0.24);
	outline-offset: 5px;
}

.clc-faq-item summary svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
	transition: transform 160ms ease;
}

.clc-faq-item[open] summary svg {
	transform: rotate(180deg);
}

.clc-faq-item__answer {
	max-width: 820px;
	padding: 0 0 clamp(1.6rem, 3vw, 2.4rem);
	color: var(--clc-muted);
	font-size: 0.875rem;
	line-height: 1.8;
}

.clc-faq-item__answer > :first-child {
	margin-top: 0;
}

.clc-faq-item__answer > :last-child {
	margin-bottom: 0;
}

.clc-faq-item__answer a {
	color: var(--clc-green-700);
	font-weight: 700;
}

.clc-faq-directory__empty {
	margin-top: 3rem;
	padding: clamp(2rem, 5vw, 4rem);
	border-radius: var(--clc-radius-md);
	background: var(--clc-sage);
	text-align: center;
}

.clc-faq-directory__empty h2 {
	margin: 0;
	font-size: var(--clc-heading-h2);
}

.clc-faq-directory__empty p {
	margin: 1rem auto;
	color: var(--clc-muted);
}

.clc-faq-directory__empty a,
.clc-faq-contact__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--clc-radius-pill);
	background: var(--clc-green-700);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-decoration: none;
	text-transform: uppercase;
}

.clc-faq-directory__empty a {
	padding: 0.75rem 1.5rem;
}

.clc-faq-contact {
	display: flex;
	box-sizing: border-box;
	width: min(1180px, calc(100% - 2.5rem));
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	margin: 0 auto;
	padding: clamp(2rem, 5vw, 4.5rem);
	border-radius: var(--clc-radius-lg);
	background: var(--clc-green-900);
	color: #fff;
}

.clc-faq-contact p {
	margin: 0 0 0.75rem;
	color: var(--clc-sage);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.clc-faq-contact h2 {
	max-width: 720px;
	margin: 0;
	color: #fff;
	font-size: var(--clc-heading-h2);
	letter-spacing: -0.045em;
	line-height: 1.05;
}

.clc-faq-contact__actions {
	display: flex;
	flex: 0 0 auto;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: flex-end;
}

.clc-faq-contact__button {
	gap: 0.75rem;
	padding: 1rem 1.5rem;
	background: #fff;
	color: var(--clc-green-900);
}

.clc-faq-contact__button:hover {
	background: var(--clc-sage);
}

.clc-faq-contact__button--whatsapp {
	border: 1px solid rgba(255, 255, 255, 0.58);
	background: transparent;
	color: #fff;
}

.clc-faq-contact__button--whatsapp:hover {
	border-color: var(--clc-sage);
	background: rgba(255, 255, 255, 0.08);
}

.clc-faq-contact__button svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.55;
}

.clc-faq-contact__button:focus-visible {
	outline: 3px solid var(--clc-sage);
	outline-offset: 3px;
}

@media (max-width: 860px) {
	.clc-faq-directory__search,
	.clc-faq-group__header {
		grid-template-columns: 1fr;
	}

	.clc-faq-directory__search {
		gap: 2rem;
	}

	.clc-faq-group__header {
		gap: 0.75rem;
	}

	.clc-faq-group__description {
		max-width: 620px;
	}

	.clc-faq-contact {
		align-items: flex-start;
		flex-direction: column;
	}

	.clc-faq-contact__actions {
		justify-content: flex-start;
	}
}

@media (max-width: 600px) {
	.clc-faq-directory,
	.clc-faq-contact {
		width: calc(100% - 2rem);
	}

	.clc-faq-hero {
		min-height: 480px;
	}

	.clc-faq-hero .clc-catalog-hero__scrim {
		background:
			linear-gradient(0deg, rgba(8, 29, 16, 0.95) 0%, rgba(var(--clc-ink-rgb), 0.7) 70%, rgba(var(--clc-ink-rgb), 0.28) 100%);
	}

	.clc-faq-directory__search {
		grid-template-columns: minmax(0, 1fr);
	}

	.clc-faq-contact__actions,
	.clc-faq-contact__button {
		width: 100%;
	}

	.clc-faq-search .clc-catalog-search__control {
		grid-template-columns: 42px minmax(0, 1fr);
	}

	.clc-faq-search .clc-catalog-search__submit {
		grid-column: 1 / -1;
		min-height: 44px;
	}

	.clc-faq-group__header > div {
		grid-template-columns: 28px minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.clc-faq-item summary svg {
		transition: none;
	}
}

/* Help Centre */
.clc-help-page {
	overflow: hidden;
	background: #fff;
}

#formulario-email,
#tiendas-y-horarios {
	scroll-margin-top: 10rem;
}

.clc-help-hero {
	box-sizing: border-box;
	padding: clamp(5rem, 9vw, 8.5rem) clamp(1.25rem, 4vw, 4rem) clamp(2.5rem, 5vw, 4.5rem);
	text-align: center;
}

.clc-help-hero .wp-block-post-title {
	max-width: 920px;
	margin: 0 auto;
	font-size: var(--clc-title-page);
	letter-spacing: -0.065em;
	line-height: 0.98;
}

.clc-help-eyebrow {
	margin: 0 0 1rem;
	color: var(--clc-green-700);
	font-size: 0.75rem;
	font-weight: 850;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.clc-help-back {
	margin: 0 0 1.5rem;
}

.clc-help-back a {
	color: var(--clc-green-700);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.clc-help-content-shell {
	box-sizing: border-box;
	padding: 0 clamp(1.25rem, 4vw, 4rem) clamp(5rem, 9vw, 8rem);
}

.clc-help-content-shell .wp-block-post-content > p:first-child {
	margin-top: 0;
	color: var(--clc-muted);
	font-size: clamp(1.05rem, 2vw, 1.3rem);
	line-height: 1.75;
}

.clc-help-content-shell .wp-block-post-content h2 {
	margin: clamp(3rem, 6vw, 5.25rem) 0 1rem;
	font-size: var(--clc-heading-h2);
	letter-spacing: -0.04em;
}

.clc-help-content-shell .wp-block-post-content h3 {
	margin: 2rem 0 0.75rem;
	font-size: var(--clc-heading-h3);
}

.clc-help-content-shell .wp-block-post-content p,
.clc-help-content-shell .wp-block-post-content li {
	color: #40483f;
	line-height: 1.82;
}

.clc-help-content-shell .wp-block-post-content li + li {
	margin-top: 0.5rem;
}

.clc-help-content-shell .wp-block-post-content a {
	font-weight: 750;
}

.clc-help-update,
.clc-help-callout {
	box-sizing: border-box;
	margin: 2rem 0;
	padding: 1.25rem 1.25rem;
	border-left: 4px solid var(--clc-green-700);
	border-radius: 0 var(--clc-radius-sm) var(--clc-radius-sm) 0;
	background: var(--clc-cream-2);
	color: var(--clc-muted) !important;
	font-size: 0.875rem !important;
}

.clc-help-content-shell--directory {
	padding-bottom: clamp(5rem, 9vw, 8rem);
}

.clc-help-content-shell--directory .wp-block-post-content {
	max-width: 1180px !important;
}

.clc-help-content-shell--directory .wp-block-post-content > p:first-child {
	max-width: 760px;
	margin-right: auto;
	margin-bottom: clamp(2.25rem, 5vw, 4rem);
	margin-left: auto;
	text-align: center;
}

.clc-help-topic-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.clc-help-topic-card {
	position: relative;
	display: grid;
	min-height: 210px;
	box-sizing: border-box;
	grid-template-columns: 46px minmax(0, 1fr) auto;
	align-content: space-between;
	align-items: start;
	gap: 1rem;
	padding: clamp(1.45rem, 3vw, 2.1rem);
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-lg);
	background: var(--clc-cream-2);
	color: var(--clc-ink);
	text-decoration: none;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.clc-help-topic-card:hover {
	border-color: rgba(33, 114, 45, 0.38);
	box-shadow: var(--clc-shadow);
	transform: translateY(-3px);
}

.clc-help-topic-card__icon,
.clc-help-route__icon,
.clc-help-contact-card__icon {
	display: grid;
	width: 46px;
	height: 46px;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--clc-sage);
	color: var(--clc-green-900);
}

.clc-help-topic-card__icon svg,
.clc-help-route__icon svg,
.clc-help-contact-card__icon svg {
	width: 23px;
	height: 23px;
}

.clc-help-topic-card strong {
	display: block;
	margin-top: 0.25rem;
	font-size: 1rem;
	line-height: 1.25;
}

.clc-help-topic-card small {
	display: block;
	margin-top: 0.75rem;
	color: var(--clc-muted);
	font-size: 0.75rem;
	line-height: 1.6;
}

.clc-help-topic-card > b {
	color: var(--clc-green-700);
	font-size: 1.25rem;
	font-weight: 500;
}

.clc-help-topic-card--faq {
	background: var(--clc-green-900);
	color: #fff;
}

.clc-help-topic-card--faq small {
	color: rgba(255, 255, 255, 0.7);
}

.clc-help-topic-card--faq > b {
	color: var(--clc-sage);
}

.clc-help-routes {
	box-sizing: border-box;
	padding: clamp(4.5rem, 8vw, 7.5rem) clamp(1.25rem, 4vw, 4rem);
	background: var(--clc-cream-2);
}

.clc-help-routes__inner,
.clc-help-contact__inner {
	width: min(1180px, 100%);
	margin-inline: auto;
}

.clc-help-routes h2 {
	margin: 0 0 clamp(2rem, 4vw, 3.5rem);
	font-size: var(--clc-heading-h2);
	letter-spacing: -0.045em;
}

.clc-help-routes__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--clc-line);
	border-bottom: 1px solid var(--clc-line);
}

.clc-help-route {
	display: flex;
	min-width: 0;
	box-sizing: border-box;
	flex-direction: column;
	align-items: flex-start;
	padding: clamp(1.4rem, 3vw, 2.15rem);
	border-right: 1px solid var(--clc-line);
	color: var(--clc-ink);
	text-decoration: none;
	transition: background 180ms ease;
}

.clc-help-route:last-child {
	border-right: 0;
}

.clc-help-route:hover {
	background: #fff;
}

.clc-help-route__icon {
	width: 72px;
	height: 72px;
	margin: 0 auto 2rem;
	background: var(--clc-green-900);
	color: #fff;
}

.clc-help-route__icon svg {
	width: 34px;
	height: 34px;
}

.clc-help-route strong {
	font-size: 0.875rem;
	letter-spacing: 0.055em;
	line-height: 1.3;
	text-transform: uppercase;
}

.clc-help-route > span:not(.clc-help-route__icon) {
	min-height: 3.2em;
	margin-top: 0.75rem;
	color: var(--clc-muted);
	font-size: 0.75rem;
	line-height: 1.6;
}

.clc-help-route small {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1.5rem;
	color: var(--clc-green-700);
	font-size: 0.625rem;
	font-weight: 850;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.clc-help-contact {
	box-sizing: border-box;
	padding: clamp(5rem, 9vw, 8rem) clamp(1.25rem, 4vw, 4rem);
	background: var(--clc-green-900);
	color: #fff;
}

.clc-help-contact__heading {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: 1rem 3rem;
	align-items: end;
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.clc-help-contact__heading .clc-help-eyebrow {
	grid-column: 1 / -1;
	color: var(--clc-sage);
}

.clc-help-contact__heading h2 {
	margin: 0;
	color: #fff;
	font-size: var(--clc-heading-h2);
	letter-spacing: -0.055em;
	line-height: 1;
}

.clc-help-contact__heading > p:last-child {
	max-width: 500px;
	margin: 0;
	color: rgba(255, 255, 255, 0.7);
	font-size: 1rem;
}

.clc-help-contact__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.clc-help-contact-card {
	display: grid;
	min-width: 0;
	box-sizing: border-box;
	grid-template-columns: 46px minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem;
	border: 1px solid rgba(255, 255, 255, 0.17);
	border-radius: var(--clc-radius-md);
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	text-decoration: none;
	transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.clc-help-contact-card:hover {
	border-color: rgba(255, 255, 255, 0.48);
	background: rgba(255, 255, 255, 0.11);
	transform: translateY(-2px);
}

.clc-help-contact-card__icon {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
}

.clc-help-contact-card strong,
.clc-help-contact-card small {
	display: block;
}

.clc-help-contact-card strong {
	font-size: 0.875rem;
	line-height: 1.35;
}

.clc-help-contact-card small {
	margin-top: 0.25rem;
	color: rgba(255, 255, 255, 0.64);
	font-size: 0.625rem;
	line-height: 1.45;
}

.clc-help-contact-card > b {
	color: var(--clc-sage);
	font-size: 1.25rem;
	font-weight: 500;
}

.clc-footer__inner > .wp-block-columns {
	display: grid;
	grid-template-columns: minmax(210px, 1.15fr) minmax(130px, 0.8fr) minmax(180px, 1fr) minmax(155px, 0.88fr) minmax(155px, 0.88fr);
}

.clc-footer__inner > .wp-block-columns > .wp-block-column {
	width: auto !important;
}

@media (max-width: 1050px) {
	.clc-help-topic-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.clc-help-routes__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.clc-help-route:nth-child(2) {
		border-right: 0;
	}

	.clc-help-route:nth-child(-n+2) {
		border-bottom: 1px solid var(--clc-line);
	}

	.clc-footer__inner > .wp-block-columns {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.clc-help-hero {
		padding-top: 4rem;
	}

	.clc-help-topic-grid,
	.clc-help-contact__grid,
	.clc-help-contact__heading {
		grid-template-columns: 1fr;
	}

	.clc-help-contact__heading {
		align-items: start;
	}

	.clc-footer__inner > .wp-block-columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.clc-help-topic-grid,
	.clc-footer__inner > .wp-block-columns {
		grid-template-columns: 1fr;
	}

	.clc-help-routes__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.clc-help-topic-card {
		min-height: 170px;
	}

	.clc-help-route {
		padding: 1.25rem 1rem;
		border-right: 1px solid var(--clc-line);
		border-bottom: 1px solid var(--clc-line);
	}

	.clc-help-route:nth-child(2n) {
		border-right: 0;
	}

	.clc-help-route:nth-last-child(-n + 2) {
		border-bottom: 0;
	}

	.clc-help-route__icon {
		width: 52px;
		height: 52px;
		margin-bottom: 1rem;
	}

	.clc-help-route__icon svg {
		width: 26px;
		height: 26px;
	}

	.clc-help-route strong {
		font-size: 0.625rem;
	}

	.clc-help-route > span:not(.clc-help-route__icon) {
		font-size: 0.75rem;
	}

	.clc-help-route small {
		margin-top: 1rem;
		font-size: 0.625rem;
	}

	.clc-help-contact-card {
		grid-template-columns: 42px minmax(0, 1fr) auto;
		padding: 1rem;
	}

	.clc-help-contact-card__icon {
		width: 42px;
		height: 42px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.clc-help-topic-card,
	.clc-help-route,
	.clc-help-contact-card {
		transition: none;
	}
}

/* Classic WooCommerce checkout */
body.woocommerce-checkout .clc-checkout-header {
	background: #fff;
	border-bottom: 1px solid var(--clc-line);
	padding: 1rem clamp(1.25rem, 4vw, 4rem);
}

body.woocommerce-checkout .clc-checkout-header__inner {
	width: min(1180px, 100%);
	min-height: 88px;
	margin-inline: auto;
}

body.woocommerce-checkout .clc-checkout-logo-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
}

body.woocommerce-checkout .clc-checkout-logo {
	display: block;
	width: min(180px, 42vw);
	height: auto;
}

body.woocommerce-checkout .clc-checkout-main {
	background: var(--clc-cream-2);
}

body.woocommerce-checkout .clc-checkout-intro-wrap {
	padding: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 4vw, 4rem) 0;
}

body.woocommerce-checkout .clc-checkout-intro {
	max-width: 1000px;
	margin: 0 auto;
	color: var(--clc-green-900);
	font-size: clamp(1.25rem, 2.4vw, 1.65rem);
	line-height: 1.3;
}

body.woocommerce-checkout .wp-block-post-content {
	padding: clamp(2.5rem, 5vw, 5rem) clamp(1.25rem, 4vw, 4rem);
	background: var(--clc-cream-2);
}

body.woocommerce-checkout .woocommerce {
	width: min(1180px, 100%);
	margin-inline: auto;
}

body.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: auto 1fr;
	gap: 0 2rem;
	align-items: start;
}

body.woocommerce-checkout form.checkout #customer_details {
	grid-column: 1;
	grid-row: 1 / span 2;
	min-width: 0;
}

body.woocommerce-checkout form.checkout #order_review_heading {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	padding: 1.5rem 1.5rem 0;
	border: 1px solid var(--clc-line);
	border-bottom: 0;
	border-radius: var(--clc-radius-md) var(--clc-radius-md) 0 0;
	background: #fff;
	font-size: 1.25rem;
	font-weight: 750;
}

body.woocommerce-checkout form.checkout #order_review {
	grid-column: 2;
	grid-row: 2;
	min-width: 0;
	padding: 0 1.5rem 1.5rem;
	border: 1px solid var(--clc-line);
	border-top: 0;
	border-radius: 0 0 var(--clc-radius-md) var(--clc-radius-md);
	background: #fff;
}

body.woocommerce-checkout #customer_details > div {
	margin-bottom: 1.25rem;
	padding: clamp(1.1rem, 2.2vw, 1.6rem);
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
	background: #fff;
}

/* WooCommerce's default .col-1/.col-2 widths would create a nested
 * 50%-inside-50% layout. Keep each customer-details card full width so its
 * own field grid has the full available column. */
body.woocommerce-checkout #customer_details > .col-1,
body.woocommerce-checkout #customer_details > .col-2 {
	float: none;
	width: 100%;
	box-sizing: border-box;
}

body.woocommerce-checkout #customer_details h3 {
	margin: 0 0 1.25rem;
	color: var(--clc-green-900);
	font-size: 1.25rem;
	font-weight: 750;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
}

body.woocommerce-checkout form .form-row,
body.woocommerce-checkout form .form-row-wide,
body.woocommerce-checkout form .form-row-first,
body.woocommerce-checkout form .form-row-last {
	float: none;
	width: auto;
	margin: 0 0 1rem;
}

body.woocommerce-checkout #customer_details .form-row,
body.woocommerce-checkout #customer_details .form-row-wide,
body.woocommerce-checkout #customer_details .form-row-first,
body.woocommerce-checkout #customer_details .form-row-last {
	margin-bottom: 0.75rem;
}

body.woocommerce-checkout form .form-row-wide,
body.woocommerce-checkout form .clc-document-type-field {
	grid-column: 1 / -1;
}

body.woocommerce-checkout form .form-row label {
	display: block;
	margin: 0 0 0.5rem;
	color: var(--clc-ink);
	font-size: 0.75rem;
	font-weight: 700;
}

body.woocommerce-checkout #customer_details .form-row label {
	margin-bottom: 0.25rem;
}

body.woocommerce-checkout form .form-row label .optional {
	color: var(--clc-muted);
	font-weight: 500;
}

body.woocommerce-checkout form .form-row input.input-text,
body.woocommerce-checkout form .form-row textarea,
body.woocommerce-checkout form .form-row select {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 0.75rem 1rem;
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-sm);
	background: #fff;
	color: var(--clc-ink);
	font-size: 0.875rem;
}

body.woocommerce-checkout #customer_details .form-row input.input-text,
body.woocommerce-checkout #customer_details .form-row textarea,
body.woocommerce-checkout #customer_details .form-row select {
	min-height: 44px;
	padding: 0.75rem 0.75rem;
	font-size: 0.875rem;
}

body.woocommerce-checkout form .form-row textarea {
	min-height: 110px;
}

body.woocommerce-checkout #customer_details .form-row textarea {
	min-height: 96px;
}

body.woocommerce-checkout form .form-row input:focus,
body.woocommerce-checkout form .form-row textarea:focus,
body.woocommerce-checkout form .form-row select:focus {
	border-color: var(--clc-green-700);
	box-shadow: var(--clc-focus-ring);
	outline: 0;
}

body.woocommerce-checkout .clc-factura-field--hidden {
	display: none !important;
}

body.woocommerce-checkout .woocommerce-privacy-policy-text,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	color: var(--clc-muted);
	font-size: 0.75rem;
	line-height: 1.65;
}

body.woocommerce-checkout .clc-checkout-review-order {
	display: block;
	width: 100%;
	margin: 0 0 1rem;
	font-size: 0.875rem;
}

body.woocommerce-checkout .clc-order-review__header,
body.woocommerce-checkout .clc-order-review__item {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	column-gap: 0.75rem;
	align-items: center;
}

body.woocommerce-checkout .clc-order-review__header {
	padding: 0 0 0.75rem;
	border-bottom: 1px solid var(--clc-line);
	color: var(--clc-ink);
	font-weight: 750;
	text-transform: none;
}

body.woocommerce-checkout .clc-order-review__header-product {
	grid-column: 1 / 3;
}

body.woocommerce-checkout .clc-order-review__header-price {
	grid-column: 3;
	text-align: right;
}

body.woocommerce-checkout .clc-order-review__item {
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--clc-line);
	align-items: start;
}

body.woocommerce-checkout .clc-order-review__thumbnail {
	width: 56px;
	height: 56px;
	overflow: hidden;
	border-radius: var(--clc-radius-sm);
	background: var(--clc-cream-2);
}

body.woocommerce-checkout .clc-order-review__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.woocommerce-checkout .clc-order-review__details {
	min-width: 0;
}

body.woocommerce-checkout .clc-order-review__name {
	color: var(--clc-ink);
	font-weight: 650;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

body.woocommerce-checkout .clc-order-review__name a {
	overflow-wrap: anywhere;
}

body.woocommerce-checkout .clc-order-review__quantity {
	margin-top: 0.25rem;
	color: var(--clc-muted);
}

body.woocommerce-checkout .clc-order-review__details .variation {
	margin: 0.25rem 0 0;
	font-size: 0.75rem;
}

body.woocommerce-checkout .clc-order-review__details .variation dt,
body.woocommerce-checkout .clc-order-review__details .variation dd {
	display: inline;
	margin: 0;
}

body.woocommerce-checkout .clc-order-review__details .variation dd p {
	display: inline;
	margin: 0;
}

body.woocommerce-checkout .clc-order-review__details .variation dt {
	font-weight: 650;
}

body.woocommerce-checkout .clc-order-review__details .variation dd:not(:last-child)::after {
	content: ' · ';
}

body.woocommerce-checkout .clc-order-review__price {
	min-width: max-content;
	color: var(--clc-ink);
	font-weight: 650;
	text-align: right;
	white-space: nowrap;
}

body.woocommerce-checkout .clc-order-review__summary {
	margin-top: 0.25rem;
}

body.woocommerce-checkout .clc-order-review__summary-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 1rem;
	align-items: start;
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--clc-line);
}

body.woocommerce-checkout .clc-order-review__summary-label,
body.woocommerce-checkout .clc-order-review__summary-value {
	min-width: 0;
}

body.woocommerce-checkout .clc-order-review__summary-value {
	text-align: right;
}

/*
 * El aviso de que faltan datos para calcular el despacho.
 *
 * Va apagado y en cuerpo chico a proposito: es una ayuda, no un error. Si se
 * pintara de rojo o con el peso de una alerta, alguien que recien llego al
 * checkout creeria que hizo algo mal cuando todavia no hizo nada.
 *
 * Se alinea a la izquierda aunque la columna sea de texto a la derecha: es una
 * frase, no una cifra, y a la derecha se lee peor.
 */
body.woocommerce-checkout .clc-order-review__shipping-hint {
	display: block;
	text-align: left;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--clc-muted, #6b7a6b);
	text-wrap: pretty;
}

body.woocommerce-checkout .clc-order-review__summary-value .woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: right;
}

body.woocommerce-checkout .clc-order-review__summary-value .woocommerce-shipping-methods li {
	display: flex;
	justify-content: flex-end;
	gap: 0.25rem;
	align-items: flex-start;
}

body.woocommerce-checkout .clc-order-review__summary-value .woocommerce-shipping-methods input {
	margin-top: 0.25rem;
}

/* Despacho: apilado y alineado a la izquierda.
   La fila del resumen es una grilla de dos columnas con el valor en "auto", que
   crece con su contenido. Con los nombres largos de los métodos propios el valor
   se comía el ancho completo y aplastaba la etiqueta hasta superponerla. Con
   varias opciones no hay dos columnas que valgan: la lista va debajo del título. */
body.woocommerce-checkout .clc-order-review__summary-row.woocommerce-shipping-totals {
	grid-template-columns: minmax(0, 1fr);
	row-gap: 0.5rem;
}

body.woocommerce-checkout .clc-order-review__summary-row.woocommerce-shipping-totals .clc-order-review__summary-value,
body.woocommerce-checkout .clc-order-review__summary-row.woocommerce-shipping-totals .woocommerce-shipping-methods {
	text-align: left;
}

body.woocommerce-checkout .clc-order-review__summary-row.woocommerce-shipping-totals .woocommerce-shipping-methods li {
	justify-content: flex-start;
	padding: 0.125rem 0;
}

/* El monto de cada opción va anclado a la derecha, alineado con la primera
   línea del nombre: así los precios forman una columna y se comparan de un
   vistazo, igual que el Subtotal y el Total. Los dos puntos que WooCommerce
   pone antes del monto se sacan en inc/shipping-labels.php. */
body.woocommerce-checkout .clc-order-review__summary-row.woocommerce-shipping-totals ul#shipping_method li label {
	display: flex;
	flex: 1;
	gap: 1rem;
	align-items: baseline;
	justify-content: space-between;
}

body.woocommerce-checkout .clc-order-review__summary-row.woocommerce-shipping-totals ul#shipping_method li label .woocommerce-Price-amount,
body.woocommerce-checkout .clc-order-review__summary-row.woocommerce-shipping-totals ul#shipping_method li label .clc-shipping-libre {
	margin-left: auto;
	white-space: nowrap;
	font-weight: 700;
}

body.woocommerce-checkout .clc-order-review__summary-row.woocommerce-shipping-totals ul#shipping_method li label .clc-shipping-libre {
	color: var(--clc-green-900);
}

/* Aviso de despacho a regiones. Aparece arriba del carro y bajo las opciones
   del checkout: es la única vía para quien vive fuera de la RM, así que tiene
   que verse sin gritar. */
.clc-aviso-despacho {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1rem;
	margin: 0 0 1.25rem;
	padding: 1rem 1rem;
	border: 1px solid var(--clc-line);
	border-radius: 10px;
	background: #f7f8f6;
}

.clc-aviso-despacho__texto {
	flex: 1 1 16rem;
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.45;
	text-align: left;
}

.clc-aviso-despacho__boton {
	flex: 0 0 auto;
	padding: 0.5rem 1.25rem;
	border-radius: 50px;
	background: var(--clc-green-700);
	color: #fff;
	font-size: 0.875rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.clc-aviso-despacho__boton:hover,
.clc-aviso-despacho__boton:focus {
	color: #fff;
	opacity: 0.9;
}

/* Sin botón, el texto usa todo el ancho. */
.clc-aviso-despacho--solo-texto .clc-aviso-despacho__texto {
	flex: 1 1 100%;
}

/* Dentro del resumen del pedido la fila es una grilla; el aviso ocupa todo. */
body.woocommerce-checkout .clc-order-review__summary-row .clc-aviso-despacho {
	margin: 0.75rem 0 0;
}

body.woocommerce-checkout .clc-order-review__summary-row.order-total {
	padding-top: 1rem;
	border-bottom: 0;
	color: var(--clc-green-900);
	font-size: 1rem;
	font-weight: 750;
}

body.woocommerce-checkout #payment {
	border-radius: var(--clc-radius-sm);
	background: var(--clc-cream-2);
}

body.woocommerce-checkout #payment .place-order {
  padding: 1rem 0 0;
}

body.woocommerce-checkout #payment .place-order .woocommerce-privacy-policy-text {
  margin: 0 0 1.25rem;
}

body.woocommerce-checkout #payment button#place_order {
	width: 100%;
	padding: 1rem 1.25rem;
	background: var(--clc-green-700);
	color: #fff;
}

/* El botón que reemplaza a "Realizar pedido" cuando el despacho se cotiza.
   Mismas medidas y mismo verde, porque ocupa su lugar. */
body.woocommerce-checkout #payment .clc-boton-cotizar {
	display: block;
	/* Es un enlace, no un botón: sin esto el navegador le suma el padding al
	   100% de ancho y se desborda de la caja de pago. */
	box-sizing: border-box;
	width: 100%;
	padding: 1rem 1.25rem;
	background: var(--clc-green-700);
	color: #fff;
	text-align: center;
	text-decoration: none;
}

body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-message {
	margin: 0 0 1.5rem;
	border-top-color: var(--clc-green-700);
	border-radius: var(--clc-radius-sm);
	background: #fff;
	color: var(--clc-ink);
}

@media (max-width: 860px) {
	body.woocommerce-checkout form.checkout {
		display: block;
	}

	body.woocommerce-checkout form.checkout #order_review_heading {
		margin-top: 1.5rem;
		border-bottom: 0;
	}

	body.woocommerce-checkout form.checkout #order_review {
		border-top: 0;
	}
}

@media (max-width: 560px) {
	body.woocommerce-checkout .clc-checkout-header__inner {
		min-height: 68px;
	}

	body.woocommerce-checkout .clc-checkout-logo {
		width: min(156px, 52vw);
	}

	body.woocommerce-checkout .wp-block-post-content {
		padding-inline: 1rem;
	}

	body.woocommerce-checkout #customer_details > div {
		padding: 1rem;
	}

	body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
	body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
		display: block;
	}

	body.woocommerce-checkout .clc-order-review__header,
	body.woocommerce-checkout .clc-order-review__item {
		grid-template-columns: 48px minmax(0, 1fr) auto;
		column-gap: 0.5rem;
	}

	body.woocommerce-checkout .clc-order-review__thumbnail {
		width: 48px;
		height: 48px;
	}
}

/* --------------------------------------------------------------------------
   Productos a pedido: llamado a cotizar
   --------------------------------------------------------------------------
   Reemplaza el bloque de compra en los productos sin precio, que antes dejaban
   la ficha sin ninguna acción posible. Ver inc/product-quote.php.
   -------------------------------------------------------------------------- */

.clc-product-quote {
	margin: 1.5rem 0 0;
	padding: 1.5rem 1.5rem;
	background: var(--clc-cream-2);
	border: 1px solid var(--clc-line);
	border-radius: var(--clc-radius-md);
}

.clc-product-quote__lead {
	margin: 0 0 1rem;
	color: var(--clc-ink);
	font-size: 1rem;
	line-height: 1.5;
}

.clc-product-quote__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}

.clc-product-quote__cta {
	flex: 1 1 auto;
	min-width: 15rem;
	text-align: center;
}

.clc-product-quote__whatsapp {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 1.25rem;
	border: 1px solid var(--clc-green-700);
	border-radius: var(--clc-radius-pill);
	color: var(--clc-green-800);
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.18s ease, color 0.18s ease;
}

.clc-product-quote__whatsapp:hover,
.clc-product-quote__whatsapp:focus-visible {
	background: var(--clc-green-800);
	color: #fff;
}

.clc-product-quote__note {
	margin: 1rem 0 0;
	color: var(--clc-muted);
	font-size: 0.875rem;
}

@media (max-width: 600px) {
	.clc-product-quote__actions > * {
		flex: 1 1 100%;
	}

	.clc-product-quote__whatsapp {
		justify-content: center;
	}
}

/* --------------------------------------------------------------------------
   Singular editorial system
   --------------------------------------------------------------------------
   Products, journal entries and projects share one calm reading rhythm. The
   media remains the visual anchor; commerce controls keep their native blocks
   and DOM proximity so WooCommerce and the CLC calculators continue to work.
   -------------------------------------------------------------------------- */

.clc-detail-shell {
	box-sizing: border-box;
	background: #fff;
	color: var(--clc-ink);
}

.clc-detail-shell :where(.clc-entry-header, .clc-entry-media, .clc-entry-summary) {
	animation: clc-detail-reveal 480ms ease-out both;
}

.clc-detail-shell .clc-entry-media {
	animation-delay: 70ms;
}

.clc-detail-shell .clc-entry-summary {
	animation-delay: 140ms;
}

@keyframes clc-detail-reveal {
	from {
		opacity: 0;
		transform: translateY(12px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.clc-entry-eyebrow,
.clc-entry-eyebrow a {
	color: var(--clc-green-700);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.095em;
	line-height: 1.45;
	text-decoration: none;
	text-transform: uppercase;
}

.clc-entry-eyebrow {
	margin: 0 0 1rem;
}

.clc-entry-title {
	text-wrap: balance;
}

.clc-entry-media img {
	transition: transform 320ms ease;
}

.clc-entry-media:hover img {
	transform: scale(1.012);
}

/* Product detail ---------------------------------------------------------- */

.clc-product-single {
	padding: clamp(1.5rem, 3vw, 2.75rem) clamp(1.25rem, 4vw, 4rem) clamp(5rem, 8vw, 8rem);
}

.clc-product-single > .clc-detail-breadcrumbs,
.clc-product-single > .wc-block-store-notices,
.clc-product-single > .woocommerce-notices-wrapper {
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
}

.clc-detail-breadcrumbs {
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	color: var(--clc-muted);
	font-size: 0.75rem;
	font-weight: 650;
}

.clc-product-layout {
	display: flex;
	flex-direction: column;
	gap: clamp(2.5rem, 5vw, 5.5rem);
	align-items: flex-start;
	margin-top: 0;
}

.clc-product-heading,
.clc-product-media,
.clc-product-commerce,
.clc-product-characteristics-mobile {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.clc-product-heading {
	grid-area: heading;
}

.clc-product-media {
	grid-area: media;
}

.clc-product-commerce {
	grid-area: commerce;
	/* La separacion entre el encabezado y la compra la define el row-gap de la
	 * grilla. Los margenes por defecto de los bloques se sumaban encima: 20px
	 * de la zona mas 16px del precio, 36px de aire que nadie pidio. */
	margin-top: 0;
}

.clc-product-commerce > :first-child {
	margin-top: 0;
}

/* El precio lleva sus dos unidades en la misma linea: por m2, que es como se
 * compara, y por caja, que es como se vende. El de caja vivia dentro de la
 * calculadora y obligaba a bajar la vista para saber cuanto cuesta una. */
.clc-price-unit {
	font-size: 0.625rem;
	font-weight: 700;
	opacity: 0.75;
}

/* Las dos cifras son del mismo tamano: son el mismo precio en dos unidades, y
 * achicar una la degradaba a nota al pie. La diferencia de color alcanza para
 * marcar cual es la referencia de comparacion. */
.clc-price-box {
	margin-left: 0.5rem;
	padding-left: 0.75rem;
	border-left: 1px solid rgba(var(--clc-ink-rgb), 0.2);
	color: var(--clc-muted);
	white-space: nowrap;
}

.clc-price-box small {
	font-size: 0.625rem;
	font-weight: 700;
	opacity: 0.75;
}

.clc-product-characteristics-desktop {
	display: none;
	max-width: 640px;
}

.clc-product-characteristics-mobile {
	width: 100%;
}

@media (min-width: 782px) {
	.clc-product-layout {
		display: grid;
		grid-template-areas:
			"media heading"
			"media commerce";
		grid-template-columns: minmax(0, 58fr) minmax(0, 42fr);
		grid-template-rows: auto minmax(0, 1fr);
		gap: 1rem clamp(2.5rem, 3.4vw, 3rem);
	}

	.clc-product-characteristics-desktop {
		display: block;
	}

	.clc-product-characteristics-mobile {
		display: none;
	}
}

.clc-product-media .wp-block-woocommerce-product-image-gallery {
	position: relative;
	width: 100%;
	max-width: 640px;
	overflow: hidden;
	border-radius: var(--clc-radius-lg);
	background: var(--clc-cream-2);
	box-shadow: var(--clc-shadow-md);
}

/* Keep the single-product offer badge above the zoomable gallery surface. */
.clc-product-media .wp-block-woocommerce-product-image-gallery > .onsale {
	top: 1rem !important;
	right: 1rem !important;
	left: auto !important;
	box-sizing: border-box;
	width: 4.5rem !important;
	height: 4.5rem !important;
	min-width: 4.5rem !important;
	min-height: 4.5rem !important;
	padding: 0 !important;
	background: var(--clc-ink) !important;
	color: #fff !important;
	display: grid !important;
	place-items: center;
	border-radius: 50% !important;
	text-align: center;
	z-index: 30 !important;
}

/* Woo adds a bottom margin to the classic gallery inside the block wrapper.
 * That margin created the cream strip below the image and hid the rounded
 * bottom corners on desktop. The wrapper is the complete media surface. */
.clc-product-media .wp-block-woocommerce-product-image-gallery > .woocommerce-product-gallery {
	margin-bottom: 0 !important;
	overflow: hidden;
	border-radius: inherit;
}

.clc-product-media .woocommerce-product-gallery__wrapper,
.clc-product-media .woocommerce-product-gallery__image,
.clc-product-media .woocommerce-product-gallery__image > a {
	overflow: hidden;
	border-radius: inherit;
}

.clc-product-media .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
}

.clc-mobile-quantity-stepper__button {
	display: none;
}

.clc-product-media :where(img, .woocommerce-product-gallery__image) {
	border-radius: inherit;
}

.clc-product-media img {
	height: auto;
	object-fit: contain;
}

.clc-product-characteristics-desktop .clc-product-characteristics {
	margin-top: 1.25rem;
}

.clc-product-heading,
.clc-product-summary {
	padding-top: clamp(0.125rem, 0.5vw, 0.375rem);
}

/* La columna de compra mide unos 470px. A 3,4vw el titulo llegaba a 43,5px y
 * los nombres del catalogo —que son largos y llevan medidas— se iban a cuatro
 * lineas: 181px antes de que empiece la descripcion. A 2,35vw quedan tres
 * lineas y la descripcion sube, que es lo que el cliente necesita leer. */
.clc-product-heading > .wp-block-post-title {
	margin: 0;
	font-size: clamp(1.75rem, 2.35vw, 2.25rem);
	letter-spacing: -0.03em;
	line-height: 1.08;
}

.clc-product-summary > .wp-block-woocommerce-product-rating {
	margin-top: 0;
}

.clc-product-summary > .wp-block-woocommerce-product-price {
	margin-block: 1rem 0;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--clc-line);
}

.clc-product-summary > .wp-block-woocommerce-product-price .price {
	color: var(--clc-green-900);
	font-size: clamp(1.375rem, 2vw, 1.75rem);
	font-weight: 760;
}

.clc-product-purchase-stack {
	margin-top: 0.75rem;
}

.clc-product-purchase-stack > :first-child {
	margin-top: 0;
}

.clc-product-purchase-stack > :last-child {
	margin-bottom: 0;
}

.clc-product-summary > .wp-block-woocommerce-product-meta {
	margin-top: 1rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--clc-line);
	color: var(--clc-muted);
	font-size: 0.75rem;
	line-height: 1.55;
}

.clc-product-summary > .wp-block-woocommerce-product-meta a {
	color: var(--clc-green-800);
}

.clc-product-intro {
	margin-top: 0.75rem;
	color: #3d443d;
	font-size: clamp(0.9375rem, 1.15vw, 1rem);
	line-height: 1.55;
}

.clc-product-intro :where(p, ul, ol) {
	margin-block: 0.5rem 0;
}

.clc-product-intro > :first-child,
.clc-product-intro .wc-block-components-product-summary > :first-child {
	margin-top: 0;
}

.clc-product-intro > :last-child,
.clc-product-intro .wc-block-components-product-summary > :last-child {
	margin-bottom: 0;
}

.clc-product-single > .clc-product-details,
.clc-product-single > .wp-block-woocommerce-product-details,
.clc-product-single > .wp-block-woocommerce-related-products,
.clc-product-single > .wp-block-group:has(.related) {
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
}

/* Journal detail ---------------------------------------------------------- */

.clc-post-single {
	padding-bottom: clamp(5rem, 9vw, 9rem);
}

.clc-post-single .clc-entry-header {
	box-sizing: border-box;
	padding: clamp(4.5rem, 9vw, 8.5rem) clamp(1.25rem, 4vw, 4rem) clamp(2.75rem, 5vw, 4.5rem);
	text-align: center;
}

.clc-post-single .clc-entry-title {
	max-width: 920px;
	margin: 0 auto;
	font-size: var(--clc-title-hero);
	letter-spacing: -0.055em;
	line-height: 0.98;
}

.clc-entry-date {
	margin: 1.25rem 0 0;
	color: var(--clc-muted);
	font-size: 0.75rem;
	font-weight: 650;
	letter-spacing: 0.035em;
}

.clc-entry-media-wrap {
	box-sizing: border-box;
	padding-inline: clamp(1.25rem, 4vw, 4rem);
}

.clc-post-single .clc-entry-media {
	overflow: hidden;
	margin: 0;
	border-radius: var(--clc-radius-lg);
	background: var(--clc-cream);
	box-shadow: var(--clc-shadow-card);
}

.clc-post-single .clc-entry-media img {
	width: 100%;
}

.clc-entry-body {
	box-sizing: border-box;
	padding: clamp(3.5rem, 7vw, 7rem) clamp(1.25rem, 4vw, 4rem) 0;
}

.clc-entry-body .wp-block-post-content > :where(p, li) {
	color: #343a34;
	font-size: clamp(1rem, 1.35vw, 1.16rem);
	line-height: 1.82;
}

.clc-entry-body .wp-block-post-content > p:first-of-type {
	color: var(--clc-ink);
	font-size: clamp(1.2rem, 2vw, 1.5rem);
	font-weight: 560;
	line-height: 1.65;
}

.clc-entry-body .wp-block-post-content :where(h2, h3) {
	margin-top: clamp(2.75rem, 6vw, 5rem);
	letter-spacing: -0.035em;
}

.clc-entry-body .wp-block-post-content figure.alignwide {
	position: relative;
	left: 50%;
	width: min(1180px, calc(100vw - 2.5rem));
	max-width: none;
	margin-block: clamp(2.75rem, 6vw, 5rem);
	transform: translateX(-50%);
}

.clc-entry-body .wp-block-post-content figure img {
	border-radius: var(--clc-radius-md);
}

.clc-entry-tags {
	margin-top: clamp(3rem, 6vw, 5rem);
	padding-top: 1.25rem;
	border-top: 1px solid var(--clc-line);
	color: var(--clc-green-800);
	font-size: 0.75rem;
	font-weight: 700;
}

/* Keep the established project narrative, while sharing the same media depth. */
.clc-project-single .clc-entry-header {
	animation-delay: 0ms;
}

.clc-project-single .clc-entry-media {
	box-shadow: var(--clc-shadow-card);
}

@media (max-width: 781px) {
	.clc-product-single form.cart .quantity.clc-mobile-quantity-stepper {
		display: grid !important;
		width: 142px;
		min-width: 142px;
		height: 50px;
		box-sizing: border-box;
		grid-template-columns: 44px minmax(0, 1fr) 44px;
		overflow: hidden;
		border: 1px solid var(--clc-line);
		border-radius: var(--clc-radius-sm);
		background: #fff;
	}

	.clc-product-single form.cart .quantity.clc-mobile-quantity-stepper .qty {
		width: 100% !important;
		min-width: 0;
		height: 48px;
		box-sizing: border-box;
		margin: 0;
		padding: 0.5rem;
		border: 0;
		border-inline: 1px solid var(--clc-line);
		border-radius: 0;
		background: #fff;
		font: inherit;
		font-size: 1rem;
		text-align: center;
		-moz-appearance: textfield;
	}

	.clc-product-single form.cart .quantity.clc-mobile-quantity-stepper .qty::-webkit-inner-spin-button,
	.clc-product-single form.cart .quantity.clc-mobile-quantity-stepper .qty::-webkit-outer-spin-button {
		margin: 0;
		-webkit-appearance: none;
	}

	.clc-product-single form.cart .clc-mobile-quantity-stepper__button {
		display: grid;
		width: 44px;
		height: 48px;
		box-sizing: border-box;
		margin: 0;
		padding: 0;
		place-items: center;
		border: 0;
		border-radius: 0;
		background: #fff;
		color: var(--clc-green-900);
		cursor: pointer;
		font-size: 1.125rem;
		font-weight: 800;
	}

	.clc-product-single form.cart .clc-mobile-quantity-stepper__button:disabled {
		cursor: not-allowed;
		opacity: 0.38;
	}

	.clc-product-single form.cart .clc-mobile-quantity-stepper__button:focus-visible {
		position: relative;
		z-index: 1;
		outline: 2px solid var(--clc-green-700);
		outline-offset: -2px;
	}

	.clc-product-single form.cart:has(.clc-mobile-quantity-stepper) {
		column-gap: 0.75rem;
	}

	.clc-product-single form.cart:has(.clc-mobile-quantity-stepper) .single_add_to_cart_button {
		height: 50px;
		min-width: 0;
		align-self: start;
		justify-self: center;
		padding-block: 0.5rem;
		padding-inline: 0.75rem;
		line-height: 1.15;
		white-space: nowrap;
	}

	.clc-product-single:has(.clc-flooring-calculator) form.cart {
		display: flex;
		justify-content: center;
	}

	.clc-product-single:has(.clc-flooring-calculator) form.cart .single_add_to_cart_button {
		margin-inline: auto;
	}

	.clc-product-single {
		padding-top: 1rem;
	}

	.clc-product-layout {
		gap: 1.5rem;
	}

	.clc-product-summary {
		padding-top: 0;
	}

	.clc-product-heading > .wp-block-post-title {
		font-size: clamp(1.9rem, 8vw, 2.75rem);
	}

	/* El hero debe ser consistente aunque el catálogo tenga fotos verticales u
	 * horizontales. La imagen cubre el cuadrado y el recorte conserva el foco
	 * visual del producto, sin dejar una franja vacía debajo. */
	.clc-product-media .woocommerce-product-gallery {
		aspect-ratio: 1 / 1;
		overflow: hidden;
		border-radius: inherit;
	}

	.clc-product-media .woocommerce-product-gallery__wrapper,
	.clc-product-media .woocommerce-product-gallery__image,
	.clc-product-media .woocommerce-product-gallery__image > a {
		height: 100%;
	}

	.clc-product-media .woocommerce-product-gallery__image img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	/* The block gallery owns the visible rounded surface. Its inner classic
	 * gallery must fill and clip to that same surface, otherwise a short image
	 * leaves a square-looking top edge and an empty strip below it. */
	.clc-product-media .wp-block-woocommerce-product-image-gallery,
	.clc-product-media .woocommerce-product-gallery__wrapper,
	.clc-product-media .woocommerce-product-gallery__image,
	.clc-product-media .woocommerce-product-gallery__image > a {
		overflow: hidden;
		border-radius: inherit;
	}

	.clc-product-media .wp-block-woocommerce-product-image-gallery {
		aspect-ratio: 1 / 1;
	}

	.clc-product-media .wp-block-woocommerce-product-image-gallery > .woocommerce-product-gallery,
	.clc-product-media .woocommerce-product-gallery__wrapper,
	.clc-product-media .woocommerce-product-gallery__image,
	.clc-product-media .woocommerce-product-gallery__image > a {
		width: 100%;
		height: 100%;
	}

	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wc-block-product-template {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.75rem;
	}

	/* Desktop requests eight cards for two complete rows of four. Mobile keeps
	 * the same related set but shows three complete rows of two. */
	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wc-block-product-template > li.wc-block-product:nth-child(n + 7) {
		display: none !important;
	}

	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wc-block-product-template > li.wc-block-product {
		padding-bottom: 0.75rem;
	}

	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-image {
		margin-bottom: 0.75rem;
	}

	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wp-block-post-title,
	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-price,
	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-button {
		margin-inline: 0.75rem;
	}

	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wp-block-post-title {
		font-size: 0.75rem;
		line-height: 1.35;
	}

	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-price {
		padding-top: 0.5rem;
		font-size: 0.875rem;
	}

	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-button {
		padding-top: 0.75rem;
	}

	.clc-product-single [data-collection="woocommerce/product-collection/related"] .wc-block-components-product-button__button {
		height: 50px;
		min-height: 50px;
		padding: 0.5rem 0.5rem;
		border-radius: var(--clc-radius-pill);
		font-size: 0.625rem;
		line-height: 1.15;
	}

	.clc-entry-body .wp-block-post-content figure.alignwide {
		width: calc(100vw - 2rem);
	}
}

@media (max-width: 520px) {
	.clc-product-single,
	.clc-entry-media-wrap,
	.clc-entry-body,
	.clc-post-single .clc-entry-header {
		padding-inline: 1rem;
	}

	.clc-product-media .wp-block-woocommerce-product-image-gallery,
	.clc-post-single .clc-entry-media,
	.clc-project-featured {
		border-radius: var(--clc-radius-md);
	}

	.clc-post-single .clc-entry-header {
		padding-top: 3rem;
	}

	.clc-entry-body .wp-block-post-content figure.alignwide {
		width: calc(100vw - 2rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.clc-detail-shell :where(.clc-entry-header, .clc-entry-media, .clc-entry-summary) {
		animation: none;
	}

	.clc-entry-media img {
		transition: none;
	}

	.clc-entry-media:hover img {
		transform: none;
	}
}

/* ------------------------------------------------------------------ */
/* Movil: campos que no disparen el zoom, controles que se puedan tocar */
/* ------------------------------------------------------------------ */

/*
 * EL ZOOM DE IPHONE
 * Safari en iOS agranda la pagina sola al enfocar un campo con letra menor a
 * 16px, y la deja desencuadrada hasta que el comprador pellizca para volver.
 * Los campos del checkout estaban en 0,86rem —13,8px medidos— y el de
 * cantidad del carro en 12,8px: pasaba en cada campo del paso donde se paga.
 *
 * Los 16px van en pixeles y no en rem a proposito: es el umbral exacto de
 * Safari, no una proporcion del sistema tipografico.
 *
 * CONTROLES DEL CARRO
 * Menos, cantidad y mas median 25px de alto y estaban pegados entre si, con
 * cero separacion; el de quitar el producto, 24x24 a 13px del vecino. Un dedo
 * cubre unos 45px, asi que bajar la cantidad terminaba subiendola, o peor,
 * borrando el producto.
 *
 * Solo aplica en movil: con mouse esos tamanos no molestan y el diseno de
 * escritorio queda como esta.
 */
@media (max-width: 781px) {
	body.woocommerce-checkout form .form-row input.input-text,
	body.woocommerce-checkout form .form-row textarea,
	body.woocommerce-checkout form .form-row select,
	body.woocommerce-checkout #customer_details .form-row input.input-text,
	body.woocommerce-checkout #customer_details .form-row textarea,
	body.woocommerce-checkout #customer_details .form-row select {
		font-size: 16px;
	}

	.wc-block-components-quantity-selector {
		display: flex;
		align-items: stretch;
	}

	.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
		min-width: 44px;
		min-height: 44px;
		font-size: 1rem;
	}

	/* Lleva `input` en el selector porque WooCommerce fija el tamano de letra
	   con `.wc-block-components-quantity-selector input.…__input`, y sin el
	   tipo de elemento esta regla pierde por especificidad. */
	.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
		min-height: 44px;
		font-size: 16px;
	}

	/* Quitar el producto es lo unico irreversible de esta pantalla: se separa
	   del resto y se le da area suficiente para que no se toque por error.
	   WooCommerce le fija `width: 24px` desde un selector con la tabla, asi
	   que hay que igualar ese peso para poder soltarlo. */
	table.wc-block-cart-items .wc-block-cart-item__quantity button.wc-block-cart-item__remove-link {
		display: inline-block;
		width: auto;
		min-width: 44px;
		min-height: 44px;
		padding: 0.5rem 0.5rem;
		line-height: 1.4;
	}

	/* La separacion va por el contenedor y no por un margen en el boton:
	   WooCommerce le fija `margin: 0` con mas especificidad, y ademas este
	   contenedor es flex, donde el gap es quien manda.
	   Sin esto, el boton de quitar quedaba montado sobre el de aumentar
	   cantidad: al darle 44px de ancho invadia los ultimos 10px del "+". */
	.wc-block-cart-item__quantity {
		gap: 1.25rem;
	}

	/* El recuadro de cantidad tiene que crecer con sus botones; si no, el "+"
	   se desborda por fuera del borde. */
	.wc-block-cart-item__quantity .wc-block-components-quantity-selector {
		flex: 0 0 auto;
		width: auto;
		max-width: none;
	}

	/* Los numeros de pagina de la tienda son enlaces en linea sin relleno:
	   median 8x18 y quedaban a 4px unos de otros. Pasar de la pagina 1 a la 2
	   con el dedo era cuestion de suerte. */
	.wp-block-query-pagination-numbers .page-numbers,
	.wp-block-query-pagination .wp-block-query-pagination-next,
	.wp-block-query-pagination .wp-block-query-pagination-previous {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
		padding: 0 0.25rem;
	}

	/* El desplegable de orden tambien disparaba el zoom de iOS. */
	.woocommerce-ordering select.orderby,
	select#orderby {
		font-size: 16px;
	}
}
/* ================================================================
 * Order confirmation — sober, corporate receipt after payment
 * ================================================================ */

body.woocommerce-order-received main#wp--skip-link--target {
	--clc-receipt-green: #124d30;
	--clc-receipt-green-soft: #eaf2ed;
	--clc-receipt-ink: #1f2622;
	--clc-receipt-muted: #667068;
	--clc-receipt-line: #d8ddd9;
	background: #f6f7f5;
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 1rem;
	max-width: none !important;
	margin: 0 !important;
	padding: clamp(2rem, 4vw, 4rem) max(1rem, calc((100vw - 1180px) / 2)) clamp(3.5rem, 6vw, 5.5rem) !important;
}

body.woocommerce-order-received main#wp--skip-link--target > * {
	margin-block: 0 !important;
}

body.woocommerce-order-received main#wp--skip-link--target .alignwide {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
	min-width: 0;
}

body.woocommerce-order-received .wc-block-order-confirmation-status {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 3.5rem minmax(0, 1fr) auto;
	grid-template-rows: auto auto;
	column-gap: 1.25rem;
	align-items: center;
	padding: 1.5rem 0 !important;
	border-top: 0.25rem solid var(--clc-receipt-green);
	border-bottom: 1px solid var(--clc-receipt-line);
	color: var(--clc-receipt-ink);
}

body.woocommerce-order-received .clc-order-confirmation__icon {
	grid-row: 1 / 3;
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 0.2rem;
	background: var(--clc-receipt-green);
	color: #fff;
}

body.woocommerce-order-received .clc-order-confirmation__icon svg {
	width: 1.65rem;
	height: 1.65rem;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2.2;
}

body.woocommerce-order-received .wc-block-order-confirmation-status h1 {
	grid-column: 2;
	align-self: end;
	margin: 0 !important;
	color: var(--clc-receipt-ink);
	font-size: clamp(2rem, 3.5vw, 2.75rem);
	line-height: 1.05;
	letter-spacing: -0.025em;
}

body.woocommerce-order-received .wc-block-order-confirmation-status > p {
	grid-column: 2;
	align-self: start;
	margin: 0.5rem 0 0 !important;
	color: var(--clc-receipt-muted);
	font-size: 1rem;
}

body.woocommerce-order-received .clc-order-confirmation__actions {
	grid-column: 3;
	grid-row: 1 / 3;
	display: flex;
	gap: 0.75rem;
}

body.woocommerce-order-received .clc-order-confirmation__actions a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.75rem 1rem;
	border: 1px solid var(--clc-receipt-green);
	border-radius: 0.2rem;
	color: var(--clc-receipt-green);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.025em;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 140ms ease, color 140ms ease;
}

body.woocommerce-order-received .clc-order-confirmation__primary {
	background: var(--clc-receipt-green);
	color: #fff !important;
}

body.woocommerce-order-received .clc-order-confirmation__primary:hover,
body.woocommerce-order-received .clc-order-confirmation__primary:focus-visible {
	background: #0b3d25;
}

body.woocommerce-order-received .clc-order-confirmation__secondary:hover,
body.woocommerce-order-received .clc-order-confirmation__secondary:focus-visible {
	background: var(--clc-receipt-green-soft);
}

body.woocommerce-order-received .wc-block-order-confirmation-summary {
	grid-column: 1 / -1;
	border: 1px solid var(--clc-receipt-line);
	border-radius: 0.2rem;
	background: #fff;
}

body.woocommerce-order-received .wc-block-order-confirmation-summary-list {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

body.woocommerce-order-received .wc-block-order-confirmation-summary-list-item {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 0;
	padding: 1.25rem 1.25rem;
	border-right: 1px solid var(--clc-receipt-line);
}

body.woocommerce-order-received .wc-block-order-confirmation-summary-list-item:last-child {
	border-right: 0;
}

body.woocommerce-order-received .wc-block-order-confirmation-summary-list-item__key {
	color: var(--clc-receipt-muted);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

body.woocommerce-order-received .wc-block-order-confirmation-summary-list-item__value {
	overflow-wrap: anywhere;
	color: var(--clc-receipt-ink);
	font-size: 1rem;
	font-weight: 700;
}

body.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper,
body.woocommerce-order-received .wc-block-order-confirmation-address-wrapper,
body.woocommerce-order-received .wc-block-order-confirmation-additional-information {
	border: 1px solid var(--clc-receipt-line);
	border-radius: 0.2rem;
	background: #fff;
}

body.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper {
	grid-column: 1 / span 8;
	padding: 1.5rem !important;
}

body.woocommerce-order-received .wc-block-order-confirmation-address-wrapper {
	grid-column: 9 / -1;
	display: block !important;
	padding: 1.5rem !important;
}

body.woocommerce-order-received .wc-block-order-confirmation-address-wrapper > .wp-block-column:empty,
body.woocommerce-order-received .wc-block-order-confirmation-address-wrapper > .wp-block-column:first-child:not(:has(*)) {
	display: none;
}

body.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper h2,
body.woocommerce-order-received .wc-block-order-confirmation-address-wrapper h2,
body.woocommerce-order-received .wc-block-order-confirmation-additional-information > h2 {
	margin: 0 0 1.25rem !important;
	color: var(--clc-receipt-ink);
	font-size: 1.25rem !important;
	line-height: 1.2;
}

body.woocommerce-order-received .wc-block-order-confirmation-totals {
	margin: 0 !important;
}

body.woocommerce-order-received .wc-block-order-confirmation-totals__table {
	width: 100%;
	margin: 0 !important;
	border: 1px solid var(--clc-receipt-line) !important;
	border-collapse: collapse;
	background: #fff;
}

body.woocommerce-order-received .wc-block-order-confirmation-totals__table th,
body.woocommerce-order-received .wc-block-order-confirmation-totals__table td {
	padding: 1rem 1rem !important;
	border-color: var(--clc-receipt-line) !important;
}

body.woocommerce-order-received .wc-block-order-confirmation-totals__table thead th {
	background: #f3f5f3;
	color: #566159;
	font-size: 0.75rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

body.woocommerce-order-received .wc-block-order-confirmation-totals__product a {
	color: var(--clc-receipt-green);
	font-weight: 750;
	text-underline-offset: 0.18em;
}

body.woocommerce-order-received .wc-block-order-confirmation-totals__total {
	font-variant-numeric: tabular-nums;
	font-weight: 750;
}

body.woocommerce-order-received .wc-block-order-confirmation-billing-wrapper {
	height: 100%;
	margin: 0 !important;
}

body.woocommerce-order-received .wc-block-order-confirmation-billing-address {
	margin: 0 !important;
	/* 1.1rem, no 1rem: la invariante exige este respiro dentro del borde. */
	padding: 1rem 1.1rem;
	border-top: 1px solid var(--clc-receipt-line);
}

body.woocommerce-order-received .wc-block-order-confirmation-billing-address address {
	color: #4f5952;
	font-style: normal;
	line-height: 1.7;
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-information {
	grid-column: 1 / -1;
	width: 100% !important;
	padding: 1.5rem !important;
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-information .wc-block-components-notice-banner {
	margin: 0 0 1.5rem !important;
	padding: 0.75rem 1rem !important;
	border: 1px solid #bdd2c4 !important;
	border-radius: 0.15rem !important;
	background: var(--clc-receipt-green-soft) !important;
	color: var(--clc-receipt-green) !important;
	font-weight: 800;
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-information .wc-block-components-notice-banner svg {
	background: var(--clc-receipt-green) !important;
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details {
	display: block;
	width: 100%;
	margin: 0 !important;
	border: 0 !important;
	border-top: 1px solid var(--clc-receipt-line) !important;
	border-radius: 0 !important;
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details tbody,
body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details tfoot {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details tr {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--clc-receipt-line);
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details tr:not(:nth-child(3n)) {
	border-right: 1px solid var(--clc-receipt-line);
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details th,
body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details td {
	width: auto !important;
	padding: 0 !important;
	border: 0 !important;
	text-align: left !important;
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details th {
	color: var(--clc-receipt-muted);
	font-size: 0.75rem;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details td {
	color: var(--clc-receipt-ink);
	font-size: 1rem;
	font-variant-numeric: tabular-nums;
	font-weight: 750;
}

body.woocommerce-order-received .wc-block-order-confirmation-additional-information > br {
	display: none;
}

@media (max-width: 900px) {
	body.woocommerce-order-received .wc-block-order-confirmation-status {
		grid-template-columns: 3.25rem minmax(0, 1fr);
	}

	body.woocommerce-order-received .clc-order-confirmation__icon {
		width: 3.25rem;
		height: 3.25rem;
	}

	body.woocommerce-order-received .clc-order-confirmation__actions {
		grid-column: 1 / -1;
		grid-row: 3;
		margin-top: 1.25rem;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper {
		grid-column: 1 / span 7;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-address-wrapper {
		grid-column: 8 / -1;
	}
}

@media (max-width: 700px) {
	body.woocommerce-order-received main#wp--skip-link--target {
		grid-template-columns: 1fr;
		gap: 0.75rem;
		padding: 1.25rem 1rem 3rem !important;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-status,
	body.woocommerce-order-received .wc-block-order-confirmation-summary,
	body.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper,
	body.woocommerce-order-received .wc-block-order-confirmation-address-wrapper,
	body.woocommerce-order-received .wc-block-order-confirmation-additional-information {
		grid-column: 1;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-status {
		display: grid;
		grid-template-columns: 2.8rem minmax(0, 1fr);
		padding: 1.25rem 0 !important;
	}

	body.woocommerce-order-received .clc-order-confirmation__icon {
		width: 2.8rem;
		height: 2.8rem;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-status h1 {
		font-size: 1.75rem;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-status > p {
		font-size: 0.875rem;
		line-height: 1.45;
	}

	body.woocommerce-order-received .clc-order-confirmation__actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	body.woocommerce-order-received .clc-order-confirmation__actions a {
		min-height: 2.75rem;
		padding-inline: 0.75rem;
		font-size: 0.625rem;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-summary-list {
		grid-template-columns: 1fr;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-summary-list-item {
		display: grid;
		grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.9fr);
		align-items: flex-start;
		gap: 1rem;
		width: 100%;
		box-sizing: border-box;
		padding: 1rem 1rem;
		border-right: 0;
		border-bottom: 1px solid var(--clc-receipt-line);
	}

	body.woocommerce-order-received .wc-block-order-confirmation-summary-list-item:nth-child(2n) {
		border-right: 0;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-summary-list-item:last-child {
		grid-column: auto;
		border-right: 0;
		border-bottom: 0;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-summary-list-item__value {
		min-width: 0;
		max-width: 100%;
		overflow-wrap: anywhere;
		text-align: right;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-totals-wrapper,
	body.woocommerce-order-received .wc-block-order-confirmation-address-wrapper,
	body.woocommerce-order-received .wc-block-order-confirmation-additional-information {
		padding: 1rem !important;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-totals__table th,
	body.woocommerce-order-received .wc-block-order-confirmation-totals__table td {
		padding: 0.75rem 0.75rem !important;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details tbody,
	body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details tfoot {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details tr {
		padding: 1rem 0.75rem;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details tr:not(:nth-child(3n)) {
		border-right: 0;
	}

	body.woocommerce-order-received .wc-block-order-confirmation-additional-information table.shop_table.order_details tr:nth-child(odd) {
		border-right: 1px solid var(--clc-receipt-line);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.woocommerce-order-received .clc-order-confirmation__actions a {
		transition: none;
	}
}

/* Keep the original sale price readable without changing the sale price color. */
.wc-block-product-template .wp-block-woocommerce-product-price del,
.wc-block-grid__product-price del,
.woocommerce ul.products li.product .price del,
body.single-product .wp-block-woocommerce-product-price del,
body.single-product div.product p.price del,
body.single-product div.product span.price del {
	color: var(--clc-muted);
}
