/* ==========================================================================
   GLOBAL
   ========================================================================== */
body, p, span, a, li, h1, h2, h3, h4, h5, h6, input, select, textarea {
   font-size: var(--font-size-base);
   color: var(--tpd-color-black);
   font-family: var(--tpd-font-family);
}

body, 
button, 
input, 
optgroup, 
select, 
textarea,
h1, h2, h3, h4, h5, h6 {
    font-family: var(--tpd-font-family);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
h1, .h1 {
   font-size: var(--font-size-lg);
   font-weight: 600;
}
h2, .h2 {
   font-size: var(--font-size-md);
   font-weight: 600;
}
h3, .h3 {
   font-size: 18px;
   font-weight: 600;
}
h4, .h4 {
   font-size: var(--font-size-base);
   font-weight: 600;
}
h5, .h5 {
   font-size: var(--font-size-base);
   font-weight: 600;
}
h6, .h6 {
   font-size: var(--font-size-base);
   font-weight: 600;
}

.form-control {
   border-color: var(--tpd-color-border);
   min-height: 40px;
   background: #f1f1f1;
   color: #7a7a7a;
   border: 1px solid rgba(0, 0, 0, .25);
   padding: .5rem 1rem;
}

.form-check-input:checked {
   background-color: var(--tpd-color-secondary);
   border-color: var(--tpd-color-secondary);
}

.form-control:focus {
   box-shadow: none;
}

.btn.btn-primary {
   background-color: var(--tpd-color-primary);
   color: var(--tpd-color-white);
}

.btn.btn-tertiary {
   background-color: var(--tpd-color-border);
   border: 1px solid var(--tpd-color-border);
   color: var(--tpd-color-black);
}

.btn i {
   width: 20px;
   height: 20px;
}

.form-label {
   font-size: var(--font-size-base);
}

.form-text {
   color: var(--bs-secondary-color);
   margin-top: .5rem;
   font-size: 12px !important;
   opacity: 0.75;
}

.buttons-wrapper {
   margin-top: var(--tpd-spacing-lg);
}

.buttons-wrapper .btn {
   min-width: 250px;
}

#password .buttons-wrapper .btn {
   min-width: 100%;
}

#wrapper {
   min-height: 50vh;
   padding-bottom: 2.5rem;
}

body:not(#index):not(#product) #wrapper {
  padding-top: 1.563rem;
}

.breadcrumb__wrapper {
  background: #ffffff;
}

.breadcrumb {
   flex-wrap: wrap;
}

.breadcrumb .breadcrumb-item,
.breadcrumb .breadcrumb-item a { 
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.breadcrumb-item+.breadcrumb-item:before  {
  padding-right: 0;
}

.breadcrumb .breadcrumb-item span {
  font-size: 11px;
}

.row>* {
   padding-left: var(--tpd-spacing-sm);
   padding-right: var(--tpd-spacing-sm);
}

.container,
.container-md {
   max-width: calc(1920px - 128px);
}

a, .elementor a {
  text-decoration: none;
}

/* ==========================================================================
   HEADER
   ========================================================================== */

.header-bottom {
   background-color: var(--tpd-color-primary);
   padding: var(--tpd-spacing-xs) 0;
   border-bottom: none;
}

.header-bottom .header-bottom__row {
   flex-wrap: nowrap;
}

.header-bottom .mainmenu__desktop {
   width: fit-content;
   margin-left: auto;
}

.header-bottom .mainmenu__desktop .container {
  padding-left: 0;
  padding-right:0;
}

/*========================================
 Global
========================================*/
#tpd-reassurance .container {
   width: 1440px;
   max-width: 100%;
}
#tpd-reassurance .tpd-reassurance-suptitle {
   font-weight: 600;
   color: var(--tpd-color-secondary);
   font-size: var(--font-size-sm);
}
#tpd-reassurance .tpd-reassurance-title {
   font-size: var(--font-size-base);
   font-weight: 600;
}

@media (max-width: 1024px) {
   #search_filters_wrapper { display: none !important; }
   #_mobile_faceted { display: block !important; }
}

@media (max-width: 767px) {
   .breadcrumb__wrapper .container {
      padding-left: 0;
      padding-right: 0;
   }
}

#cms #wrapper .elementor .elementor-heading-title {
   color: var(--tpd-color-secondary);
}

#cms  #wrapper .elementor-section.elementor-section-boxed>.elementor-container {
   max-width: calc(1920px - 128px);
}

#cms #wrapper .elementor-column-gap-default>.elementor-row>.elementor-column>.elementor-element-populated {
   padding-left: 0;
   padding-right: 0;
}

#cms #wrapper  a, #cms #wrapper .elementor a {
   color: var(--tpd-color-secondary);
   text-decoration: underline;
}

/* ==========================================================================
   Magic Zoom Plus + galería Splide (override: sin reemplazo HTML del módulo)
   ========================================================================== */

#main .product__images.js-images-container.hidden-important,
#main .tpd-product-gallery.hidden-important {
   display: block !important;
   visibility: visible !important;
   height: auto !important;
   overflow: visible !important;
}

#main .hidden-important > .product__images.js-images-container.tpd-product-gallery,
#main .hidden-important > .tpd-product-gallery {
   display: block !important;
}

/*========================================
 Product reviews
========================================*/
.skeepers_product__stars .stars__item,
.review__stars .stars__item,
#skeepers_product_widget .stars__item .star-svg, 
#skeepers_modal .stars__item .star-svg,
.skeepers_carousel_container .stars__item {
  background: transparent!important;
  width: var(--font-size-md)!important;
  height: var(--font-size-md)!important;
}

.skeepers_carousel_container .stars__item::after {
   filter: opacity(0)!important;
}

.skeepers_product__stars .stars__item .star-svg path,
.review__stars .stars__item path, 
.skeepers_carousel_container .stars__item path {
   fill: #f4cd44;
}

.tpd-product__reviews-block .review__header {
   align-items: center;
}

.tpd-product__reviews-block .text__rating {
   margin-bottom: 0!important;
}

.tpd-product__reviews-block .rate-aggregate,
.tpd-product__reviews-block  .rate-aggregate__separator, 
.tpd-product__reviews-block  .rate-aggregate__max {
   display: none!important;
}

.skeepers_carousel_container .skeepers-reviewer-wide .skp-darker {
   font-size: var(--font-size-sm);
    color: #706d6d;
}

.skeepers_carousel_container .skp-carousel-container .skp-slide-arrow:before {
   font-weight: 400;
}

/* ═══════════════════════════════════════════════════════
   Custom product form  (Producto a medida)
   ═══════════════════════════════════════════════════════ */
   .tpd-custom-form {
      margin-bottom: 0;
      scroll-margin-top: 5rem;
    }
    
    @keyframes tpd-custom-form-highlight-pulse {
      0% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.45);
      }
      35% {
        box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.12);
      }
      100% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
      }
    }
    
    .tpd-custom-form.tpd-custom-form--highlight .container {
      animation: tpd-custom-form-highlight-pulse 1.35s ease-out 1;
    }

    .tpd-custom-form {
      background: var(--tpd-color-primary);
      width: 100vw !important;
      position: relative;
      left: 50% !important;
      right: 50% !important;
      margin-left: -50vw !important;
      margin-right: -50vw !important;
      padding-left: calc((100vw - 1440px) / 2) !important;
      padding-right: calc((100vw - 1440px) / 2) !important;
      }
    
    .tpd-custom-form .container {
      margin-top: var(--tpd-spacing-md);
      padding: var(--tpd-spacing-lg) 0;
      border-radius: var(--tpd-radius-default, 8px);
      color: var(--tpd-color-white);
      width: 1440px;
      max-width: 100%;
    }
    
    .tpd-custom-form__inner {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: var(--tpd-spacing-md);
      margin-bottom: var(--tpd-spacing-md);
    }
    
    .tpd-custom-form__intro {
      flex: 1 1 auto;
    }

    .tpd-custom-form__intro * {
      margin-bottom: 20px!important;
    }
    
    .tpd-custom-form__label {
      display: inline-block;
      margin-bottom: 4px;
      font-size: var(--font-size-sm, .8125rem);
      font-weight: 600;
      color: var(--tpd-color-secondary);
      letter-spacing: .5px;
    }
    
    .tpd-custom-form__title {
      margin: 0 0 10px;
      font-size: 16px;
      font-weight: 600;
      color: var(--tpd-color-white);
    }
    
    .tpd-custom-form__desc {
      margin: 0 0 4px;
      color: var(--tpd-color-white);
    }
    
    .tpd-custom-form__image {
      flex: 0 0 auto;
      width: 150px;
      height: 150px;
      border-radius: 50%;
      overflow: hidden;
    }
    
    .tpd-custom-form__image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    
    .tpd-custom-form__required-note {
      color: inherit;
      font: inherit;
      line-height: inherit;
      letter-spacing: inherit;
      margin-bottom: 0;
    }
    
    .tpd-custom-form__row--half {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 30px;
    }
    
    .tpd-custom-form__field {
      margin-bottom: 16px;
    }

    .tpd-custom-form .form-group {
      position: relative;
    }

    .tpd-custom-form .form-group .form-control-floating {
      display: block;
      width: 100%;
      padding: 1.25rem 14px .5rem;
      border: var(--tpd-input-border);
      border-radius: var(--tpd-radius-default);
      background: var(--tpd-color-white);
      color: var(--tpd-color-black);
      transition: border-color .15s ease, background-color .15s ease;
    }

    .tpd-custom-form .form-group .form-control-floating:focus {
      outline: none;
      border-color: var(--tpd-color-primary);
      background: var(--tpd-color-white);
      box-shadow: none;
    }

    .tpd-custom-form .form-group .form-control-floating:focus + .form-label-floating,
    .tpd-custom-form .form-group .form-control-floating:valid + .form-label-floating {
      top: -.75rem;
      font-size: 12px;
      opacity: 0.75;
    }

    .tpd-custom-form .form-group .form-control-floating + .form-label-floating {
      text-align: left;
      position: absolute;
      left: 0;
      top: 0;
      padding: 1rem 14px;
      pointer-events: none;
      transition: 0.2s;
      font-weight: 400;
      line-height: 1.25;
      margin-bottom: 0;
      width: 100%;
      font-size: 1rem;
      color: #7a7a7a;
      z-index: 3;
    }
    
    .tpd-custom-form__input {
      display: block;
      width: 100%;
      padding: 12px 14px;
      border: var(--tpd-input-border);
      border-radius: var(--tpd-radius-default);
      background: var(--tpd-color-white);
      color: var(--tpd-color-black);
      transition: border-color .15s ease, background-color .15s ease;
    }
    
    .tpd-custom-form__input::placeholder {
      color: var(--tpd-color-dark);
    }
    
    .tpd-custom-form__input:focus {
      outline: none;
      border-color: var(--tpd-color-primary);
      background: var(--tpd-color-white);
    }
    
    .tpd-custom-form__textarea {
      resize: vertical;
      min-height: 90px;
    }
    
    .tpd-custom-form__gdpr {
      margin-bottom: 16px;
      font-size: .75rem;
      line-height: 1.4;
    }
    
    .tpd-custom-form__check-label {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      cursor: pointer;
    }
    
    .tpd-custom-form__check-label span {
      color: var(--tpd-color-white);
    }
    
    .tpd-custom-form__checkbox {
      flex: 0 0 auto;
      margin-top: 2px;
      /*accent-color: var(--tpd-color-white);*/
    }
    
    .tpd-custom-form__gdpr a {
      color: var(--tpd-color-white);
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    
    .tpd-custom-form__gdpr a:hover {
      opacity: .8;
    }
    
    .tpd-custom-form__submit {
      font-size: 1rem;
      display: inline-block;
      border: 1px solid var(--tpd-color-white);
      border-radius: 3px;
      background: transparent;
      color: var(--tpd-color-white);
      font-weight: 700;
      letter-spacing: .5px;
      cursor: pointer;
      margin-top: var(--tpd-spacing-md);
      transition: background-color .15s ease, color .15s ease;
      box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, .2);
      text-transform: uppercase;
      font-weight: 600;
      padding: .5rem 1.25rem;
    }
    
    .tpd-custom-form__submit:hover,
    .tpd-custom-form__submit:focus-visible {
      background: var(--tpd-color-white);
      color: var(--tpd-color-primary);
    }
    
    .tpd-custom-form__submit:disabled {
      opacity: .5;
      cursor: not-allowed;
    }
    
    .tpd-custom-form__feedback {
      margin-top: 12px;
      font-size: var(--font-size-sm, .8125rem);
      line-height: 1.4;
    }
    
    .tpd-custom-form__feedback--success {
      color: #2ecc71;
    }
    
    .tpd-custom-form__feedback--error {
      color: #e74c3c;
    }

    #tpd-block-reassurance {
      width: 1440px;
      max-width: 100%;
      margin-left: auto;
      margin-right: auto;
    }

    #tpd-block-reassurance .h6 {
      font-weight: 400;
    }

    #tpd-block-reassurance .tpd-icons {
      width: 20px;
      height: 20px;
    }

    @media (max-width: 1920px) {
      .container, .container-md {
        max-width: 100%;
        padding-left: 80px;
        padding-right: 80px;
      }
    }

    @media (max-width: 1440px) {
      .container, .container-md {
        padding-left: 0px;
        padding-right: 0px;
      }

      .footer .ps-emailsubscription .container > .row {
        padding-left: 15px;
        padding-right: 15px;
      }

      .footer .footer__main .container {
        padding-left: 15px;
        padding-right: 15px;
      }

      .footer__main-bottom {
        padding-left: 15px!important;
        padding-right: 15px!important;
      }
    }

    @media (max-width: 1200px) {
      .tpd-custom-form {
        padding-left: 0!important;
        padding-right: 0!important;
      }
    }
    
    @media (max-width: 575.98px) {
      .tpd-custom-form {
        padding: var(--tpd-spacing-md) var(--tpd-spacing-sm);
      }
    
      .tpd-custom-form__row--half {
        grid-template-columns: 1fr;
      }
    
      .tpd-custom-form__image {
        width: 72px;
        height: 72px;
      }
    }

    .skeepers_carousel_container .stars__item {
      background-color: transparent !important;
    }

    .skeepers_carousel_container .skp-carousel-container .skp-slide-arrow:before{
      font-weight: 400!important;
    }

    @media (max-width: 991px) {
      .container, .container-md {
        max-width: 100%;
        padding-left: 40px;
        padding-right: 40px;
      }
    }

    @media (max-width: 767px) {
      .container, .container-md {
        max-width: 100%;
        padding-left: 15px;
        padding-right: 15px;
      }
    }

