/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/*
    Add your custom styles here
*/
.nomargen, .nomargen p, .nomargen h2{
	margin-bottom:0;
}
.elementor-location-header{
	z-index:999;
}
.elementor-location-header .sticky{
	position: fixed;
	z-index: 99;
	top:0;
}
table td, table th{
	padding:5px;
}
body.home .cabfondo{
	background-color:white !important;
}
body.home .menuprincipal .e-n-menu-title .e-n-menu-title-text{
	color: #1D3E90 !important;
}
body.home .menuprincipal .e-n-menu-title svg{
	fill: #1D3E90 !important;
}
body.post-type-archive-proyectos .hideproyecto{
	display:none;
}
body.page-id-29 .hidecontact{
	display:none;
}
/* Franja */
@media screen and (max-width:1024px){
	.catalogo-fixed{
		display:none;
	}
}
@media screen and (min-width:1025px){
	body.single-product, body.tax-product_cat {
		display: flex !important;
		flex-direction:column;
		align-items: end;
	}
	body.single-product header, body.tax-product_cat header{
		position:relative;
	}
	body.single-product > :is(header,footer,div), body.tax-product_cat  > :is(header,footer,div){
		width: calc(100% - 65px);
	}
	.catalogo-fixed{
		width: 65px;
	  height: 100vh;
	  position: fixed;
	  top: 0;
	left:0;
	  z-index: 999;
	  border-right: 1px solid #1D3E90;
		display:flex;
		align-items:center;
		background-color:white;
	}
	.franja_catalogo .franja_txt{
		writing-mode:sideways-lr;
	}
}
/* Franja */

.btgrad .elementor-button {
    background-image: linear-gradient(#1D3E90, #1D3E90), linear-gradient(to right, #ffffff, #9C8BD9) !important;
    background-origin: border-box;
    background-clip: padding-box, border-box;
    border: 1px solid transparent;
    border-radius: 50px;
}
.btgrad.alt .elementor-button{
	background-image: linear-gradient(#fff, #fff), linear-gradient(to right, #9C8BD9, #1D3E90) !important;
    background-origin: border-box;
    background-clip: padding-box, border-box;
    border: 1px solid transparent;
    border-radius: 50px;
}
.btgrad.alt:hover .elementor-button{
	background-image: linear-gradient(to right, #9C8BD9, #ffffff), linear-gradient(to right, #ffffff, #9C8BD9) !important;
}
.btgrad:hover .elementor-button{
	background-image: linear-gradient(to right, #9C8BD9, #ffffff), linear-gradient(to right, #ffffff, #9C8BD9) !important;
}
.mainheader .megawidth{
	max-width: 1634px !important;
  left: 50%;
  transform: translateX(-50%);
	width:95% !important;
}
body.single-product .mainheader .megawidth, body.tax-product_cat  .mainheader .megawidth{
	left: calc(50% + 32.5px);
}
.modmaincat .catbox .elementor-icon-box-description{
	padding-top:20px;
	border-top:1px solid #E0E0E0;
}
.modmaincat:hover .catbox .elementor-icon-box-title,.modmaincat:hover .catbox .elementor-icon-box-description{
	color:white;
}
.modmaincat:hover .catbox .elementor-icon-box-description{
	border-color:white;
}
.modmaincat:hover .catbtn svg circle{
	fill:white;
}
.modmaincat:hover .catbtn svg g path{
	fill:#1D3E90;
}
/* Megamenu */
.megacontainer{
	display: flex;
	flex-direction: row;
}
.megacontainer > .catcol{
	flex:1;
	display:flex;
	flex-direction:column;
	padding:0px 12px;
}
.megacontainer > .catcol:first-child{
	padding-left:0;
}
.megacontainer > .catcol:last-child{
	padding-right:0;
}
.megacontainer > .catcol:not(:last-child){
	border-right:1px solid #9C8BD9;
}
.megacontainer > .catcol a{
	transition:300ms;
}
.megacontainer > .catcol a:hover{
	transform:scale(1.05);
}
.megacontainer > .catcol .parentlink{
	font-weight:700;
	text-transform:uppercase;
}
.megacontainer > .catcol .childlink{
	color:#4B4B4B;
}
@media screen and (max-width:1024px){
	.megacontainer > .catcol .parentlink{
		font-size:14px;
	}
	.megacontainer > .catcol .childlink{
		font-size:12px;
	}
}
@media screen and (max-width:767px){
	.megacontainer{
		flex-direction:column;
		align-items:center;
	}
	.megacontainer > .catcol{
		padding:5px 0px;
		border:none !important;
	}
	.megacontainer > .catcol .childlink{
		display:none;
	}
}
/* Megamenu */
/* Listado productos */
.catcontainer{
	display: flex;
  flex-direction: column;
	padding-bottom:200px;
}
.catcontainer .matcontainer{
	display: flex;
  flex-direction: row;
  flex-wrap: wrap;
	gap:28px;
	margin-top:70px;
	-justify-content:space-between;
}
.catcontainer .matcontainer .product{
	border:1px solid #E0E0E0;
	border-radius:25px;
	overflow:hidden;
	text-align:center;
	background-color:white;
	padding:5px;
}
.catcontainer .matcontainer .product.colfalso{
	padding:0;
}
.catcontainer .matcontainer .product > img{
	height:100%;
	object-fit:cover;
}
.catcontainer .matcontainer .product > p{
	color:#1D3E90;
	margin:0;
}
.catcontainer .matcontainer .product .product_title{
	font-size:16px;
	font-weight:700;
	line-height:16px;
}
.catcontainer .matcontainer .product .product_sku{
	font-size:16px;
	margin-bottom:25px;
	line-height:16px;
}
.catcontainer .matcontainer .product .princlusivo{
	width: 40px;
  height: 40px;
	position:absolute;
	left:15px;
	top:15px;
	background-color:white;
	border-radius:100%;
}
.catcontainer .matcontainer .product .taglateral{
	font-weight: bold;
  transform: rotate(45deg);
  position: absolute;
  padding: 5px;
  right: -80px;
  top: 27px;
  width: 250px;
  background-color: #1D3E90;
  color: #fff;
  display: block;
}
/*
.catcontainer .matcontainer .product.col-3{
	width:31%;
}
*/
.catcontainer .matcontainer .matdata{
	width: 100%;
  text-align: center;
  padding: 24px 0px;
  border-radius: 25px;
}
.catcontainer .matcontainer .matdata .mattitulo{
	font-weight: 700;
  font-size: 36px;
}
.catcontainer .matcontainer .matdata .matdescripcion{
	font-size:20px;
}
.catcontainer .matcontainer .matdata > p{
	max-width: 1100px;
  margin: 0 auto;
}
@media screen and (max-width:767px){
	.catcontainer .matcontainer .product{
		width:47% !important;
	}
	.catcontainer .matcontainer{
		gap:15px;
		justify-content:space-between;
	}
	.catcontainer .matcontainer .product .product_title{
		-font-size:18px;
		-line-height:21px;
	}
}
@media screen and (max-width:1024px){
	.catcontainer .matcontainer .matdata .mattitulo{
		font-size:27px;
	}
	.catcontainer .matcontainer .matdata .matdescripcion{
		font-size:16px;
	}
}
@media screen and (max-width:1366px){
	.catcontainer .matcontainer .matdata{
		padding:24px 10px;
	}
}
/* Listado productos */
/* Slider lineas */
/* Aseguramos que el contenedor ocupe el 100% y esconda el sobrante */
.custom-slider.swiper {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    overflow: hidden !important;
    position: relative;
}

/* El wrapper debe ser una fila flexible infinita */
.custom-slider .swiper-wrapper {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 0 !important; /* IMPORTANTE: Quitamos el gap de Elementor */
}

/* Los slides NO deben tener un ancho fijo en CSS, el JS lo pondrá */
.custom-slider .swiper-slide {
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
}

/* Limpieza de contenedores internos de Elementor */
.custom-slider > .e-con-inner {
    gap: 0 !important;
    padding: 0 !important;
}
.custom-slider .swiper-pagination {
    position: absolute !important;
    bottom: -50px !important; /* Ahora están dentro del padding, no se cortarán */
    left: 50% !important;
    transform: translateX(-50%);
    width: auto !important;
    z-index: 10 !important;
    line-height: 1 !important;
}

/* Color de los puntos (puedes cambiarlos a tu gusto) */
.custom-slider .swiper-pagination-bullet {
    background: #21409a !important; /* Color de tus tarjetas */
    width: 15px;
    height: 15px;
    opacity: 0.3;
	display: inline-block;
	margin:3px;
	cursor:pointer;
}
.custom-slider .swiper-pagination-bullet-active {
    background: #21409a; /* Color del punto activo (azul de tus tarjetas) */
    opacity: 1;
}
/* Slider lineas */
.certificaciones{
	display:flex;
	gap:10px;
}
.certificaciones img{
	height:50px;
	width:auto;
}
.praddcart table.variations th, .praddcart table.variations td{
	background-color:unset;
	padding:5px 0px;
}
.praddcart table.variations .cfvsw-swatches-container .cfvsw-label-option.cfvsw-selected-swatch{
	background-color:#1D3E90;
	color:white;
	border-color:#1D3E90;
}
.praddcart table.variations .cfvsw-swatches-container .cfvsw-swatches-option {
	min-height:30px !important;
	min-width:30px !important;
}
.reverseicon svg circle{
	fill: white;
}
.reverseicon svg g path{
	fill: #1D3E90;
}
.modmedidas{
	overflow:hidden;
}
.modmedidas table{
	overflow:auto;
	display:block;
}
.modmedidas table td{
	vertical-align:middle;
}
.modmedidas table p{
	margin-bottom:0;
}
.modmedidas table img{
	padding-top:10px;
}
.imgobjetivo, .imgobjetivo a, .imgobjetivo img{
	height:100%;
}
.imgobjetivo img{
	object-fit:cover;
}
.sidemenu{
	list-style:none;
	padding:0;
}
.gridslider .jet-listing-grid__slider-icon{
	border-radius:10px;
}
.popupmenu svg g{
	mask:unset;
}
.imgproducto .woocommerce-product-gallery{
	margin-bottom:0 !important;
}
.imgproducto div.images .flex-control-thumbs li{
	padding-bottom:0 !important;
}
@media screen and (max-width:767px){
	.mainheader{
		position:relative !important;
		top:0 !important;
	}
	#elementor-popup-modal-766{
		position:absolute;
	}
}
@media screen and (min-width:768px){
	.sliderhome .elementor-slide-heading{
		transform:translatey(50px);
	}
}