:root {
	--cc-primary: #0069b4;
	--cc-secondary: #e8f6fe;
	--cc-accent: #93dd00;
	--cc-border: #c9e8f7;
	--cc-surface: #f4f4f4;
}

/* Tarjeta de catálogo Elementor (plantilla 191): iguala la altura de cada fila. */
.e-loop-item.elementor-191 {
	display: flex;
	flex-direction: column;
}
.e-loop-item.elementor-191 > .cc-native-card {
	flex: 1;
	height: auto;
}
.e-loop-item.elementor-191 .elementor-element-cccctaco {
	margin-top: auto;
}

.single-producto .elementor,
.single-elementor_library.postid-35 .elementor,
.single-producto .elementor-widget-container,
.single-elementor_library.postid-35 .elementor-widget-container,
.single-producto .cc-summary,
.single-elementor_library.postid-35 .cc-summary,
.single-producto .cc-breadcrumbs,
.single-elementor_library.postid-35 .cc-breadcrumbs,
.single-producto .cc-features,
.single-elementor_library.postid-35 .cc-features,
.single-producto .cc-specs,
.single-elementor_library.postid-35 .cc-specs,
.single-producto .cc-icons,
.single-elementor_library.postid-35 .cc-icons,
.single-producto .cc-documents,
.single-elementor_library.postid-35 .cc-documents {
	font-family: "Valley Sans", Arial, sans-serif;
}

/* Elementor 4 no aplica el control de ancho heredado de esta plantilla. */
.single-producto .elementor-element-ccsng03 > .e-con-inner,
.single-elementor_library.postid-35 .elementor-element-ccsng03 > .e-con-inner {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 48px;
}

.single-producto .elementor-element-ccsng04,
.single-elementor_library.postid-35 .elementor-element-ccsng04 {
	flex: 0 0 calc(58% - 24px);
	width: calc(58% - 24px);
	max-width: calc(58% - 24px);
}

.single-producto .elementor-element-ccsng08,
.single-elementor_library.postid-35 .elementor-element-ccsng08 {
	flex: 0 0 calc(42% - 24px);
	width: calc(42% - 24px);
	max-width: calc(42% - 24px);
}

.cc-placeholder {
	display: grid;
	min-height: 110px;
	place-items: center;
	padding: 24px;
	border: 1px dashed var(--cc-primary);
	background: #f7fbfd;
	color: var(--cc-primary);
	text-align: center;
}

.cc-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	color: var(--cc-primary);
	font-size: 18px;
	line-height: 1.25;
}

.cc-breadcrumbs a { color: inherit; text-decoration: none; }

.cc-gallery {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 96px;
	gap: 26px;
}

.cc-gallery__main {
	display: grid;
	min-height: 610px;
	place-items: center;
	padding: 34px;
	background: var(--cc-surface);
}

.cc-gallery__main img {
	display: block;
	width: 100%;
	max-height: 545px;
	object-fit: contain;
}

.cc-gallery__thumbs {
	display: flex;
	grid-column: 2;
	grid-row: 1;
	flex-direction: column;
	gap: 12px;
	margin: 0;
}

.cc-gallery__thumb {
	width: 96px;
	height: 96px;
	padding: 8px;
	border: 1px solid transparent;
	background: #f5f5f5;
	cursor: pointer;
	overflow: hidden;
}

.cc-gallery__thumb { border-color: transparent !important; background: #f5f5f5 !important; }
.cc-gallery__thumb:hover,
.cc-gallery__thumb:focus-visible { border-color: var(--cc-secondary) !important; background: var(--cc-secondary) !important; color: var(--cc-primary) !important; box-shadow: none !important; outline: none; }
.cc-gallery__thumb[aria-pressed="true"] { border-color: var(--cc-primary) !important; }
.cc-gallery__thumb img { display: block; width: 100%; max-width: 100%; height: 100% !important; object-fit: contain; }

.cc-summary__title,
.cc-summary__subtitle { color: var(--cc-primary); }

.cc-summary__title { margin: 26px 0 0; font-size: clamp(28px, 2.2vw, 36px); font-weight: 700; line-height: 1; }
.cc-summary__subtitle { margin-top: 5px; font-size: clamp(25px, 2vw, 32px); line-height: 1.08; }
.cc-summary__subtitle p { margin: 0 0 8px; }
.cc-summary__intro { margin-top: 36px; color: var(--cc-primary); font-size: 16px; line-height: 1.5; }
.cc-summary__intro p { margin: 0 0 18px; }

.cc-badge,
.cc-card__badge {
	display: inline-block;
	padding: 7px 14px;
	background: var(--cc-accent);
	color: #fff;
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
}

.cc-energy-icon {
	display: block;
	width: 109px;
	height: 60px;
	margin-top: 32px;
}

.cc-energy-icon--small {
	width: 82px;
	height: auto;
	margin: 12px 0;
}

.cc-documents { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 22px; }
.cc-document { padding: 15px; background: var(--cc-primary); color: #fff !important; text-align: center; text-decoration: none; }
.cc-document:nth-child(even) { background: var(--cc-secondary); color: var(--cc-primary) !important; }
.cc-document--disabled { cursor: default; opacity: 1; }
.cc-document-single { display: block; width: 100%; padding: 15px; background: var(--cc-primary); color: #fff; text-align: center; text-decoration: none; }
.cc-document-single--disabled { cursor: default; }

body:not(.elementor-editor-active) .cc-related-native:not(:has(.e-loop-item)) { display: none; }

.cc-native-badge:has(.elementor-heading-title:empty) { display: none; }
.cc-native-card { height: 100%; }

/* Prestaciones: altura común, ancho proporcional y sin ampliar por cantidad. */
.elementor-element-ccicons1 { --cc-prestation-height: 112px; flex: 1; min-width: 0; }
.elementor-element-ccicons1 .gallery {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 16px;
	margin: 0 !important;
}
.elementor-element-ccicons1 .gallery-item {
	flex: 0 0 auto;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.elementor-element-ccicons1 .gallery-icon { margin: 0; line-height: 0; }
.elementor-element-ccicons1 .gallery-icon img {
	display: block;
	height: var(--cc-prestation-height) !important;
	width: auto !important;
	max-width: none !important;
	aspect-ratio: auto;
	object-fit: contain;
}

/* ACF devuelve un enlace sin href cuando no hay documento asignado. */
body:not(.elementor-editor-active) .elementor-element-cccatb1:not(:has(.elementor-button[href]:not([href=""]):not([href="#"]))),
body:not(.elementor-editor-active) .elementor-element-ccmanb1:not(:has(.elementor-button[href]:not([href=""]):not([href="#"]))),
body:not(.elementor-editor-active) .elementor-element-ccsng06:not(:has(.elementor-button[href]:not([href=""]):not([href="#"]))) { display: none; }
.elementor-element-ccsng06:not(:has(.elementor-element-ccmanb1 .elementor-button[href])) .elementor-element-cccatb1,
.elementor-element-ccsng06:not(:has(.elementor-element-cccatb1 .elementor-button[href])) .elementor-element-ccmanb1 { width: 100% !important; }

@media (max-width: 600px) {
	.elementor-element-ccicons1 { --cc-prestation-height: 82px; }
	.elementor-element-ccicons1 .gallery { gap: 14px; }
}

/* Native Elementor "Nuevo" labels: paint the label itself, not the full widget. */
.cc-native-badge .elementor-heading-title,
.elementor-element-ccbadge1 .elementor-heading-title,
.elementor-element-ccnbadg .elementor-heading-title {
	display: inline-block;
	padding: 7px 14px;
	background: var(--cc-accent) !important;
	color: #fff !important;
	line-height: 1;
}

.elementor-element-ccbadge1:has(.elementor-heading-title:empty),
.elementor-element-ccnbadg:has(.elementor-heading-title:empty) { display: none; }

/* The loop badge overlays the image and therefore never changes card height. */
.elementor-37 .elementor-element-ccncard { position: relative; }
.elementor-37 .elementor-element-ccnbadg {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 3;
	width: auto;
	margin: 0;
}

.elementor-widget-image-gallery .gallery-item a:hover,
.elementor-widget-image-gallery .gallery-item a:focus-visible { background: #e8f6fe; }

.cc-icons { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; min-height: 118px; margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--cc-primary); }
.cc-icons__standard { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; }
.cc-icon { display: grid; width: 102px; min-height: 92px; place-items: center; color: var(--cc-primary); text-align: center; }
.cc-icon img { display: block; width: 100%; height: 92px; margin: auto; object-fit: contain; }
.cc-icon--ce { width: 52px; min-height: 46px; margin: 0 18px 8px 0; align-self: end; }
.cc-icon--ce img { width: 52px; height: 46px; }

.cc-features { columns: 2; column-gap: 76px; margin: 0; padding: 28px 34px 0; color: var(--cc-primary); font-size: 16px; }
.cc-features li { break-inside: avoid; margin-bottom: 14px; padding-left: 4px; }

.cc-specs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 74px; margin: 0; padding: 34px 34px 0; color: var(--cc-primary); }
.cc-specs__column { margin: 0; }
.cc-specs__item { margin: 0 0 27px; }
.cc-specs dt { color: var(--cc-primary); font-weight: 700; }
.cc-specs dd { margin: 3px 0 0; line-height: 1.3; }

.cc-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.cc-card { position: relative; display: flex; min-width: 0; flex-direction: column; background: #f4f4f4; }
.cc-card__badge { position: absolute; top: 0; left: 0; z-index: 1; }
.cc-card__image { display: grid; min-height: 330px; place-items: center; padding: 24px; }
.cc-card__image img { width: 100%; height: 290px; object-fit: contain; }
.cc-card__image .cc-placeholder { width: 100%; }
.cc-card__body { flex: 1; padding: 22px; }
.cc-card__body h3 { margin: 0; font-size: 26px; }
.cc-card__body h3 a,
.cc-card__subtitle { color: var(--cc-primary); }
.cc-card__subtitle p { margin: 0 0 5px; }
.cc-card__features { padding-left: 18px; font-size: 14px; }
.cc-card__button { display: block; padding: 15px; background: var(--cc-primary); color: #fff !important; text-align: center; }

.cc-product-grid--related { gap: 30px; }
.cc-product-grid--related .cc-card { background: var(--cc-surface); }
.cc-product-grid--related .cc-card__image { min-height: 430px; padding: 38px; }
.cc-product-grid--related .cc-card__image img { height: 350px; }
.cc-product-grid--related .cc-card__body { padding: 24px 36px 38px; }
.cc-product-grid--related .cc-card__body h3 { font-size: 24px; line-height: 1; }
.cc-product-grid--related .cc-card__subtitle { margin-top: 4px; font-size: 22px; line-height: 1.05; }

.cc-related-section {
	padding-top: 34px;
	border-top: 1px solid var(--cc-primary);
}

.cc-related-section h2 {
	margin: 0 0 52px;
	color: var(--cc-primary);
	font-size: clamp(34px, 3vw, 48px);
	font-weight: 400;
	text-align: center;
}

.cc-guarantee-band {
	max-width: 1100px;
	margin: 0 auto;
	padding: 72px 110px 0;
	background: var(--cc-secondary);
	color: var(--cc-primary);
	text-align: center;
}

.cc-guarantee-band h2 {
	margin: 0 0 40px;
	font-size: clamp(34px, 3vw, 46px);
	font-weight: 400;
	line-height: .95;
}

.cc-guarantee-band p {
	max-width: 780px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.35;
}

.cc-guarantee-band .cc-guarantee-band__promise {
	margin-top: 48px;
	font-size: 24px;
}

.cc-guarantee-band img {
	display: block;
	width: 76px;
	height: auto;
	margin: 42px auto -18px;
}

.cc-product-grid--accessories { grid-template-columns: 1fr; gap: 14px; }

.cc-accessory {
	display: grid;
	grid-template-columns: minmax(0, 58%) minmax(0, 42%);
	background: #f3f3f3;
	scroll-margin-top: 30px;
}

.cc-accessory__gallery,
.cc-accessory__content { min-width: 0; padding: 42px; }
.cc-accessory__gallery { background: #f7f7f7; }
.cc-accessory__content { display: flex; flex-direction: column; justify-content: center; }
.cc-accessory__content h2 { margin: 0 0 26px; color: var(--cc-primary); font-size: clamp(26px, 3vw, 40px); line-height: 1.05; }
.cc-accessory__price { font-weight: 400; }
.cc-accessory__description { margin-bottom: 28px; }
.cc-accessory__content h3 { margin: 0 0 18px; padding-bottom: 10px; border-bottom: 1px solid var(--cc-primary); color: var(--cc-primary); }
.cc-accessory .cc-gallery__main { min-height: 430px; }
.cc-accessory .cc-gallery__main img { max-height: 430px; }
.cc-accessory .cc-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 32px; }

.cc-archive-heading { max-width: 760px; margin: auto; color: var(--cc-primary); text-align: center; }
.cc-archive-heading h1 { font-size: clamp(38px, 5vw, 64px); }

@media (max-width: 900px) {
	.single-producto .elementor-element-ccsng03 > .e-con-inner,
	.single-elementor_library.postid-35 .elementor-element-ccsng03 > .e-con-inner { flex-direction: column; gap: 38px; }
	.single-producto .elementor-element-ccsng04,
	.single-producto .elementor-element-ccsng08,
	.single-elementor_library.postid-35 .elementor-element-ccsng04,
	.single-elementor_library.postid-35 .elementor-element-ccsng08 { flex: 0 0 100%; width: 100%; max-width: 100%; }
	.cc-product-grid,
	.cc-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cc-gallery { grid-template-columns: minmax(0, 1fr) 82px; gap: 16px; }
	.cc-gallery__thumb { width: 82px; height: 82px; }
	.cc-icons,
	.cc-icons__standard { gap: 16px; }
	.cc-product-grid--accessories { grid-template-columns: 1fr; }
	.cc-accessory { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
	.cc-breadcrumbs { font-size: 15px; }
	.cc-gallery { display: block; }
	.cc-gallery__main { min-height: 360px; padding: 20px; }
	.cc-gallery__thumbs { flex-direction: row; flex-wrap: wrap; margin-top: 12px; }
	.cc-product-grid,
	.cc-specs { grid-template-columns: 1fr; }
	.cc-product-grid--accessories { grid-template-columns: 1fr; }
	.cc-features { columns: 1; padding: 22px 8px 0 20px; }
	.cc-specs { gap: 0; padding: 26px 12px 0; }
	.cc-icons { min-height: 0; }
	.cc-icon { width: 82px; }
	.cc-icon--ce { width: 50px; min-height: 38px; margin: 0 0 5px; }
	.cc-icon--ce img { width: 50px; height: 38px; }
	.cc-product-grid--related .cc-card__image { min-height: 330px; }
	.cc-product-grid--related .cc-card__image img { height: 280px; }
	.cc-related-section h2 { margin-bottom: 32px; }
	.cc-guarantee-band { padding: 48px 24px 0; }
	.cc-guarantee-band h2 { margin-bottom: 28px; }
	.cc-guarantee-band .cc-guarantee-band__promise { margin-top: 32px; font-size: 20px; }
	.cc-accessory__gallery,
	.cc-accessory__content { padding: 24px; }
	.cc-accessory .cc-specs { grid-template-columns: 1fr; }
}

/* Ficha de producto: enlaces azules y bloques alineados con la imagen principal. */
.elementor-35 .elementor-element-ccsng02 a,
.elementor-35 .elementor-element-ccsng02 a:visited,
.elementor-35 .elementor-element-ccsng02 a:hover,
.elementor-35 .elementor-element-ccsng02 a:focus {
	color: var(--cc-primary);
}
.elementor-35 .elementor-element-ccsng06,
.elementor-35 .elementor-element-ccsng07 {
	width: calc(100% - 96px - 26px);
	max-width: calc(100% - 96px - 26px);
	align-self: flex-start;
}
.elementor-35 .elementor-element-ccsng06 {
	padding: 0;
}
.elementor-35 .elementor-element-ccsng06 > .e-con-inner {
	width: 100%;
	padding: 0;
	gap: 0;
	flex-direction: row;
	flex-wrap: nowrap;
}
.elementor-35 .elementor-element-ccsng06 .elementor-widget-button {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
}
.elementor-35 .elementor-element-ccsng06 .elementor-button {
	display: flex;
	justify-content: center;
	width: 100%;
	height: 100%;
}
.elementor-35 .elementor-element-ccsng07 > .e-con-inner {
	width: 100%;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-end;
}
.elementor-35 .elementor-element-ccce0001 {
	flex: 0 0 52px;
	width: 52px;
	align-self: flex-end;
}
@media (max-width: 767px) {
	.elementor-35 .elementor-element-ccsng06,
	.elementor-35 .elementor-element-ccsng07 {
		width: 100%;
		max-width: 100%;
	}
}

/* Catálogo: viñetas alineadas con el borde del título y la clase energética. */
.elementor-191 .elementor-element-cccfeat1 ul {
	list-style: none;
	padding-inline-start: 0;
	margin-inline: 0;
}
.elementor-191 .elementor-element-cccfeat1 li {
	list-style: none;
	position: relative;
	margin-inline: 0;
	padding-inline-start: 1em;
}
.elementor-191 .elementor-element-cccfeat1 li::marker {
	content: "";
}
.elementor-191 .elementor-element-cccfeat1 li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: .6em;
	width: .3em;
	height: .3em;
	border-radius: 50%;
	background: currentColor;
}

/* Accesorios: fondo blanco constante en las miniaturas. */
.elementor.elementor-187 .elementor-element.elementor-element-ccaccgal .cc-gallery__thumb,
.elementor.elementor-187 .elementor-element.elementor-element-ccaccgal .cc-gallery__thumb:hover,
.elementor.elementor-187 .elementor-element.elementor-element-ccaccgal .cc-gallery__thumb:focus-visible,
.elementor.elementor-187 .elementor-element.elementor-element-ccaccgal .cc-gallery__thumb[aria-pressed="true"],
.cc-accessory .cc-gallery__thumb {
	background: #fff !important;
}
