/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
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: 2.0.0
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 */



/* global */
p:last-child {
    margin-bottom:0 !important;
}

.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol {
    margin-block-end: .9rem;
}

.grecaptcha-badge {
    display: none !important;
}


@media (min-width:1025px) {
    .remove-br-desktop br {
        display: none !important;
    }
}


.elementor-heading-title,
h1,
h2,
h3,
h4,
h5,
h6 {
	line-height:1.2;
}



/* content edge */
@media (min-width:1025px) {
    .content-edge-right {
        padding-left:calc((100vw - var(--container-max-width))/2);
    }

    .content-edge-left {
        padding-right:calc((100vw - var(--container-max-width))/2);
    }
}





/* cms */
.cms * + h2,
.cms * + h3,
.cms * + h4,
.cms * + h5 {
    margin-top:40px !important;
}




/* full box link */
.full-box-link {
    cursor: pointer;
}


/* btn reservar */
.btn-reservar a {
	border:0 !important;
    display: block;
}

.btn-reservar .elementor-button-content-wrapper {
	display:flex;
	gap:16px;
	align-items:center;
}

.btn-reservar .elementor-button-text {
	color: var(--e-global-color-975e2fd);
	max-width:96px;
	text-align:left;
    font-size: 16px;
    line-height: 1.3;
}
.btn-reservar .elementor-button-icon {
	font-size:42px;
}

@media (max-width:1024px) {
    .btn-reservar .elementor-button-icon {
        font-size:30px;
    }

    .btn-reservar .elementor-button-text {
        font-size: 14px;
    }
}




/* btn underline */
.btn-underline a {
    display: inline-block;
    position: relative;
    padding-right: 6px;
    padding-left:6px;
}

.btn-underline a:after {
    content:' ';
    display: block;
    height: 2px;
    background-color: currentColor;
    width: 100%;
    margin:4px auto 0 auto;
    position: absolute;
    left:0;
    right:0;
    transition: all 0.15s ease-in-out;
}

.btn-underline a:hover:after {
    width: calc(100% - 12px);
}




/* btn arrow prev */
.btn-arrow-prev a {
    display: flex;
    gap:6px;
    align-items: center;
    line-height: 1;
}
.btn-arrow-prev a:before {
    content:' ';
    display: inline-block;
    width:20px;
    height: 20px;;
    background-image:url('assets/img/icon-arrow-prev.svg');
    background-repeat: no-repeat;
    background-size: 100% 100%;
}


/* video carousel */
.ue-hover-image-video .ue-overlay-icon {
	transition:all 0.2s;
}

.ue-hover-image-video:hover .ue-overlay-icon {
	transform:scale(1.1);
}





/* header */

.header-bottom {
    transition: min-height 0.15s ease-in-out;
}
.header-bottom:not(.os, .bg-white) {
    top: -180px !important;
    transition: top 0.4s ease-in-out, opacity 0.3s;
    opacity: 0;
}

.header-bottom:not(.os).is-visible {
    top: 0 !important;
    opacity: 1;
    background-color: rgba(255, 255, 255, 0.7) !important;
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
}

@media (min-width:768px) {
    .header-bottom.is-visible {
        --min-height: 140px !important;
    }

    .header-bottom.is-visible .logo img {
        width: 160px;
    }
}

header .elementor-button-icon svg {
    height: 1em;
} 



header .elementor-nav-menu > li > a { 
    font-family: var(--e-global-typography-primary-font-family) !important;
    font-size: 20px !important;
    margin-bottom:10px;
    text-transform: uppercase;
}

header .elementor-nav-menu .sub-arrow {
    display: none !important;
}

@media (max-width:1024px) {
    header .elementor-nav-menu a { 
        justify-content: center;
    }

    header .elementor-nav-menu ul {
        margin-bottom:20px;
    }

    header .btn-reservar .elementor-button-text {
        max-width: 84px;
    }
}

@media (min-width:1025px) {
    header .elementor-nav-menu {
        width: 100%;
        justify-content: space-evenly;
        display: flex;
    }

    header .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li ul {
        top:0 !important;
    }

    header .elementor-nav-menu ul {
        position: relative !important;
        display: block !important;
        width: auto !important;
    }

    header .elementor-nav-menu li {
        flex-direction: column;
        align-items: flex-start;
    }

    header .elementor-nav-menu li a{
        align-items: flex-start;
        flex-grow: initial !important;
    }

    header .elementor-nav-menu li a{
        border-inline-start:0 !important;
    }

   

}



/* offcanvas overlay */
.e-off-canvas__overlay {
     background-color: rgba(255, 255, 255, 0.6) !important;
    backdrop-filter: saturate(180%) blur(10px);
    -webkit-backdrop-filter: saturate(180%) blur(10px);
}




/* colecciones */
.e-filter .e-filter-item[data-filter="grandes-complicaciones"] {
    order:1;
}

.e-filter .e-filter-item[data-filter="complicaciones"] {
    order:2;
}

.e-filter .e-filter-item[data-filter="calatrava"] {
    order:3;
}

.e-filter .e-filter-item[data-filter="gondolo"] {
    order:4;
}

.e-filter .e-filter-item[data-filter="golden-ellipse"] {
    order:5;
}

.e-filter .e-filter-item[data-filter="cubitus"] {
    order:6;
}

.e-filter .e-filter-item[data-filter="nautilus"] {
    order:7;
}

.e-filter .e-filter-item[data-filter="aquanaut"] {
    order:8;
}

.e-filter .e-filter-item[data-filter="twenty-4"] {
    order:9;
}




/* lightbox */
.elementor-lightbox {
    --lightbox-ui-color: var(--e-global-color-primary) !important;
    --lightbox-ui-color-hover: var(--e-global-color-text) !important;
}

.elementor-lightbox .swiper .swiper-pagination-fraction {
    color: var(--e-global-color-primary) !important;
}

.elementor-lightbox .elementor-swiper-button-next, 
.elementor-lightbox .elementor-swiper-button-prev {
    position: absolute;
    bottom: 0;
    z-index: 1;
    width: 50px !important;
    height: 50px !important;
    border-radius: 50%;
    top:calc(100% - 70px);
    background-color:var(--e-global-color-3787ee5);
    cursor: pointer;
    justify-content: center !important;
}

.elementor-lightbox .elementor-swiper-button-prev {
    right: 90px !important;
    left:auto !important;
}

.elementor-lightbox .elementor-swiper-button-next {
    right: 20px !important;
}

.elementor-lightbox .dialog-lightbox-close-button svg, 
.elementor-lightbox .elementor-swiper-button svg,
.elementor-lightbox .dialog-close-button svg {
    fill: #000 !important;
    width:18px;
    opacity: 0.5 !important;
    transition:all 0.2s !important;
}

.elementor-lightbox .elementor-swiper-button-next:hover svg, 
.elementor-lightbox .elementor-swiper-button-prev:hover svg,
.elementor-lightbox .dialog-close-button:hover svg{
    opacity: 1 !important;
}

.elementor-lightbox .elementor-lightbox-image {
    box-shadow:none !important;
    border-radius: 0 !important;
}




/* ficha de producto */
 .reloj-gallery-wrapper { 
    width: 100%; 
    max-width: 1000px; 
    margin: 0 auto; 
}
.main-reloj-swiper { 
    /*height: 550px;*/ 
    margin-bottom: 20px; 
    border-radius: 4px; 
    background: #fff; 
    position: relative; 
}

/* Estilo del enlace de zoom */
.reloj-zoom-link { 
    display: flex; 
    width: 100%; 
    height: 100%; 
    cursor: zoom-in; 
    align-items: center; 
    justify-content: center; 
}

.main-reloj-swiper .swiper-slide img { 
    max-width: 100%; 
    max-height: 100%; 
    object-fit: contain; 
    padding: 0px;
    transition: transform 0.5s ease;
}

/* Hover sutil para indicar click */
.reloj-zoom-link:hover img { 
    transform: scale(1.02); 
}

/*
.product-features {
    display: flex;
    gap:40px !important;
    flex-wrap: wrap !important;
    flex-direction: row !important;
}

.product-features > div {
    max-width: calc(50% - 20px);
    min-width: calc(50% - 20px);
}
*/

.product-features > div {
    gap:10px !important;
}

.product-features > div p {
    margin:0;
}

.product-features > div:not(:has(.elementor-widget-text-editor)) {
    display: none !important;
}


/* Grid */
.reloj-thumbs-grid { 
    display: grid; 
    grid-template-columns: repeat(4, 1fr); 
    gap: 12px; 
}
.reloj-grid-item { 

    cursor: pointer; 
    transition: 0.3s; 
    border: 1px solid #C6BA82; 
    padding:4px;

}
.reloj-grid-item img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 

}
.reloj-grid-item.is-active { 
    opacity: 1; 
    border-color: var(--e-global-color-primary); 
}

@media (max-width: 768px) { 
    .main-reloj-swiper { 
        /*height: 400px;*/ 
    } 
    
    .reloj-thumbs-grid { 
        grid-template-columns: repeat(3, 1fr); 
    } 
}






/* mapa contacto */
#map-container {
    --map-height:500px;
    width: 100%;
    position: relative;
    overflow: hidden;
    background-color: #EBE7DB; /* Tu color base */
}



/* El mapa se adapta al 100% de #map-container */
#map {
    width: 100%;
    height: 100%;
}

#map-container {
    height: var(--map-height);
}

.leaflet-popup-content-wrapper {
    background: #ededed !important;
}

.leaflet-popup-content {
    margin-top:30px !important;
    font-size: 14px !important;
}

.leaflet-popup-content * {
    color:var(--e-global-color-text);
    font-family: var(--e-global-typography-text-font-family), Sans-serif;
}



.leaflet-container a.leaflet-popup-close-button {
    font: 24px/24px Tahoma, Verdana, sans-serif !important;
    width: 36px !important;
    height: 36px !important;
    top: 4px !important;
}


.leaflet-popup-content-wrapper, 
.leaflet-popup-tip {
    box-shadow: none !important;
    border-radius: 0 !important;
}

.leaflet-left {
    top:20px !important;
    left: auto !important;
    right: 20px;
}

@media (max-width: 768px) { 
    .leaflet-left {
        top:10px !important;
    }
}

.leaflet-touch .leaflet-control-layers, 
.leaflet-touch .leaflet-bar {
    border:0 !important;
}

.leaflet-touch .leaflet-bar {
    display: flex;
    gap: 10px;
}

@media (max-width: 768px) { 
    .leaflet-touch .leaflet-bar {
        flex-direction: column;
    }
}

.leaflet-touch .leaflet-bar a {
    border:0 !important;
    border-radius: 50% !important;
    width:40px !important;
    height: 40px !important;
    background-color:#b2ad9a !important; 
    color:white !important;
    line-height: 36px !important;
}

.leaflet-control,
.leaflet-pane {
    z-index: 5 !important;
}

.leaflet-map-pane {
    position: absolute;
    width: 100%;
}

.leaflet-popup-pane {

    width: 100%;
    height: 100%;
    position: absolute;
}

/*
.leaflet-popup {
    left: auto !important;
    right: 0;
    transform: none !important;
    bottom: 0 !important;
    top: 0 !important;  
}
    */

.leaflet-popup-title {
    font-size: 24px;
    font-weight: 300;
    text-transform: uppercase;
    margin-bottom:30px;
    color:var(--e-global-color-text);
}


@media (max-width: 768px) { 
    .leaflet-popup-title {
        font-size: 20px;
        margin-bottom:20px;
    }
}

.leaflet-popup-widget-title {
    text-transform: uppercase;
    font-size: 18px;
    margin-bottom: 10px;
}

@media (max-width: 768px) {
    .leaflet-popup-widget-title {
         font-size: 17px;
    }
}

.leaflet-popup-address,
.leaflet-popup-hours {
    margin-bottom:30px;
}

@media (max-width: 768px) { 
   .leaflet-popup-address,
    .leaflet-popup-hours {
        margin-bottom:20px;
    }
}

.leaflet-popup-google-maps a {
    font-family: var(--e-global-typography-bcfcbda-font-family), Sans-serif;
    font-size: var(--e-global-typography-bcfcbda-font-size);
    font-weight: var(--e-global-typography-bcfcbda-font-weight);
    text-transform: var(--e-global-typography-bcfcbda-text-transform);
    letter-spacing: var(--e-global-typography-bcfcbda-letter-spacing);
    fill: var(--e-global-color-primary);
    color: var(--e-global-color-primary) !important;
    display: inline-block;
    border-style: solid;
    border-width: 1px 1px 1px 1px;
    border-color: var(--e-global-color-secondary);
    border-radius: 50px 50px 50px 50px;
    padding: 14px 40px 14px 40px;
}

.leaflet-popup-google-maps a:hover {
    background-color: var(--e-global-color-primary) !important;
    color: var(--e-global-color-975e2fd) !important;
}






/* experiencia mask */
.mask-boutique img {
    mask:url('assets/img/img-mask-black.svg');
    mask-size: auto 100%;
    mask-position: center center;
    transition:  mask-size 0.5s ease-in-out;
}

.mask-boutique img:hover {
    mask-size: auto 3000px;
}




/* forms */

.elementor-field-type-acceptance > label {
    display: none !important;
}

.elementor-field-type-acceptance .elementor-field-option {
    font-size: 16px;
    display: flex;
    gap:10px;
    align-items: flex-start;
    justify-content: center;
}

.elementor-field-type-acceptance .elementor-field-option label{
    padding-top:4px;
}

.elementor-field-type-acceptance .elementor-field-option input {
    margin-top:0px;
}

.elementor-field-type-acceptance a {
    color: inherit;
    text-decoration: underline;
}

.elementor-field-type-acceptance a:hover {
    text-decoration: none;
}


textarea {
    border-width:1px !important;
}


input[type="checkbox"] {
    border-width: 1px !important;
    padding:10px !important;
}

input[type="checkbox"]::before {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    right: 2px;
    bottom: 2px;
    background-color: var(--e-global-color-primary);
    border: 1px solid #ffffff;
    opacity: 0; 
    transition: opacity 0.1s;
}


input[type="checkbox"]:checked::before {
    opacity: 1;
}



.floating-form .elementor-field-group {
    position: relative;
    padding-top: 15px;
}

.floating-form .elementor-field-label {
    position: absolute;
    top: 36px;
    left: 88px;
    transition: all 0.2s ease-in-out;
    pointer-events: none;
    background: white;
    padding-left:8px;
    padding-right: 8px;
    z-index: 2;
}

.floating-form .elementor-field-group:has(input:focus, textarea:focus, select:focus) .elementor-field-label,
.floating-form .elementor-field-group:has(input:not(:placeholder-shown)) .elementor-field-label,
.floating-form .elementor-field-group:has(textarea:not(:placeholder-shown)) .elementor-field-label,
.floating-form .elementor-field-group:has(select:not(:placeholder-shown)) .elementor-field-label {
    top: 10px;
    font-size: 12px;
}


/* 1. Ocultamos el check original pero mantenemos su posición */
.floating-form input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    cursor: pointer;
    position: relative;
    display: inline-block;
    vertical-align: middle;
    
    /* Estado Sin Marcar */
    border: 2px solid var(--e-global-color-primary);
    border-radius: 0;
    background-color: transparent;
    transition: all 0.2s ease;
}




.myAnim1 {
	animation-name: myAnim;
}


@keyframes myAnim {
	0% {
		opacity: 0;
		transform: rotateX(-70deg);
		transform-origin: bottom;
	}

	100% {
		opacity: 1;
		transform: rotateX(0);
		transform-origin: bottom;
	}
}




/* image height 100% */
.image-h-100 {
    height: 100% !important;
}