/* Estilos generales */
.mw-672 {
    max-width: 672px;
}

.mw-478 {
    max-width: 478px;
}

.fit-content {
    width: fit-content;
}

/* Switzer */
@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-Thin.otf') format('opentype');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-ThinItalic.otf') format('opentype');
    font-weight: 100;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-Extralight.otf') format('opentype');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-ExtralightItalic.otf') format('opentype');
    font-weight: 200;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-Light.otf') format('opentype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-LightItalic.otf') format('opentype');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-Regular.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-Italic.otf') format('opentype');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-Medium.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-MediumItalic.otf') format('opentype');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-Semibold.otf') format('opentype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-SemiboldItalic.otf') format('opentype');
    font-weight: 600;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-Bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-BoldItalic.otf') format('opentype');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-Extrabold.otf') format('opentype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-ExtraboldItalic.otf') format('opentype');
    font-weight: 800;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-Black.otf') format('opentype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Switzer';
    src: url('fonts/switzer-font-family/Switzer-BlackItalic.otf') format('opentype');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}

/* Header */
.left-nav i {
    color: #5BC401;
    font-size: 14px;
}

.header-nav span {
    font-weight: 500;
    margin-right: 24px;
    font-size: 14px;
}

.header-nav a {
    margin-left: 15px;
    font-size: 14px;
}

.cbp-hrmenu-tab .cbp-tab-title {
    font-weight: 500;
}

.cbp-hrmenu-tab .cbp-tab-title i {
    opacity: .5;
    font-size: 14px;
    margin-left: 0px;
}

/* Font weight cat outlet */
#cbp-hrmenu-tab-9>a span {
    font-weight: 700;
}

.col-header-right>.row {
    align-items: center;
}

#header .header-btn-w {
    padding: 0 14px;
    padding-right: 32px;
}

#header .cart-products-count-btn {
    font-weight: 700;
    font-size: 10px;
    top: -9px;
    right: -7px;
}

#header .language-selector a {
    text-transform: uppercase;
    font-size: 18px;
}

/* Breadcrumb */
#wrapper .breadcrumb {
    margin-bottom: inherit;
}

/* Según Figma: enlaces 12px #71717B, separador chevron 9px #D4D4D8 y página actual en #18181B */
#wrapper .breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

#wrapper .breadcrumb li,
#wrapper .breadcrumb li a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 400;
    line-height: 16px;
    color: #71717B;
}

#wrapper .breadcrumb li:last-child,
#wrapper .breadcrumb li:last-child span {
    font-weight: 500;
    color: #18181B;
}

#wrapper .breadcrumb li a:hover {
    color: #18181B;
}

#wrapper .breadcrumb li::after {
    content: '\f054';
    margin: 0;
    font-family: 'Font Awesome 7 Sharp';
    font-size: 9px;
    font-weight: 300;
    line-height: 9px;
    color: #D4D4D8;
}

#wrapper .breadcrumb li:last-child::after {
    display: none;
}

/* Search widget */
#search_widget .form-search-control {
    background:
        linear-gradient(90deg, #242424 0%, #3B3B3B 100%) padding-box,
        linear-gradient(90deg, #5BC401 0%, #878787 100%) border-box;
    border: 1px solid transparent;
    border-radius: 10px;
    width: 448px;
    padding: 11px 16px;
    color: #9F9FA9;
}

#search_widget i {
    font-size: 18px;
    color: white;
}

/* Home */
.slider-home * {
    font-family: 'Switzer' !important;
}

.slider-home rs-sbg-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #00000071 0%, rgba(0, 0, 0, 0) 100%);
    pointer-events: none;
}

.slider-home .tp-bullet {
    width: 16px !important;
    height: 6px !important;
    border-radius: 33px;
}

.slider-home .tp-bullet.selected {
    /* width: 32px !important;
    height: 6px !important; */
}

#rev_slider_1_1_wrapper .hesperiden.tparrows:before {
    font-family: 'Font Awesome 7 Pro' !important;
}

.tabs-productos-home .nav-tabs {
    margin-bottom: 40px;
}

.tabs-productos-home .nav-tabs .nav-link {
    font-weight: 700;
    font-weight: 700;
    font-size: 36px;
    text-transform: uppercase;
}

.tabs-productos-home .nav-tabs .nav-link.active {
    text-decoration: underline;
}

.tabs-productos-home .card-header-tabs,
.tabs-productos-home .nav-tabs {
    border-bottom: none;
}

.categorias-home .elementor-iqit-banner-overlay {
    opacity: 1;
    background: linear-gradient(to top, #000000b0 0%, rgba(0, 0, 0, 0) 100%);
}

.categorias-home .elementor-iqit-banner-img {
    border-radius: 6px;
}

/* Miniaturas de producto */
.product-miniature-default .product-flags {
    top: 16px;
    left: 16px;
}

.product-miniature .thumbnail-container {
    background-color: #FAFAFA;
}

.product-miniature img {
    padding-top: 71px;
    padding-bottom: 59px;
    mix-blend-mode: multiply;
}

.product-miniature a.h3.product-title {
    color: #18181B;
    margin-bottom: 8px;
}

.product-miniature .product-description {
    padding: 0px !important;
}

.product-miniature .product-brand {
    margin-top: 10px !important;
}

.product-miniature .product-brand a {
    font-size: 12px;
    font-weight: 700;
    color: #9F9FA9 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.product-miniature .product-price {
    line-height: 32px;
}

@media(max-width: 991px) {
    .product-miniature img {
        padding-top: 33px;
        padding-bottom: 33px;
    }

    .products.row>.col,
    .products.row>[class*=col-] {
        padding: 4px;
    }

    .product-miniature a.h3.product-title {
        font-size: 12px;
        line-height: 13.7px;
    }

    .product-miniature-grid .product-price {
        font-size: 12px;
    }
}

/* Breadcrumb */


/* Footer */
#footer #iqithtmlandbanners-block-4 .block-content {
    max-width: 384px;
}

#footer .block-iqitlinksmanager .block-title {
    color: #5BC401;
    font-weight: 700;
    font-size: 16px;
    border-bottom: none;
    padding-bottom: 0px;
    margin-bottom: 24px;
    text-transform: uppercase;
}

#footer .block-links ul>li a::before {
    display: none;
}

#footer-container-main a {
    padding-left: 0px;
    color: #9F9FA9;
}

#footer #p-redes-sociales {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    margin-top: 32px;
}

#footer .red-social {
    display: block;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    align-content: center;
    text-align: center;
    background-color: #18181B;
}

#footer .red-social i::before {
    font-size: 18px;
    display: block;
    margin-top: 4px;
    margin-left: -1px;
}

#footer-container-main .row:last-of-type {
    margin-top: 85px;
}

#footer-container-main .row:last-of-type a:hover {
    color: white;
}

#footer-container-main .row:last-of-type a,
#footer-container-main .row:last-of-type p {
    color: #71717B;
}

/* Categoria */
@media (max-width: 991px) {
    #category #inner-wrapper>.row {
        margin-left: 0px;
        margin-right: 0px;
    }
}

/* Barra superior del listado (catalog/_partials/products-top.tpl) - según Figma "Parrilla de producto" */
#js-product-list-top.products-selection {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 21px;
    height: 41px;
    margin: 0 0 32px;
    padding: 0;
    border: 0;
}

#js-product-list-top .facated-toggler {
    margin-right: auto;
}

/* Botón "Filtros" de Amazzing Filter (solo móvil, btn.tpl del tema hijo): mismo estilo que "Ordenar por".
   El display va solo dentro del breakpoint compacto del módulo (767px, "Screen width for compact layout"): fuera de
   él, el módulo lo oculta con "body .compact-toggle {display:none}" y una regla con id lo volvía a mostrar en escritorio. */
#js-product-list-top .btn.compact-toggle.external {
    align-items: center;
    gap: 6px;
    margin: 0 auto 0 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    font-size: 16px;
    font-weight: 700;
    line-height: 16.5px;
    letter-spacing: 0.55px;
    color: #18181B;
    text-transform: uppercase;
}

@media (max-width: 767px) {
    #js-product-list-top .btn.compact-toggle.external {
        display: inline-flex;
    }
}

#js-product-list-top .btn.compact-toggle.external .compact-toggle-icon {
    margin: 0;
    font-size: 16px;
    line-height: 10px;
}

#js-product-list-top .btn.compact-toggle.external:hover,
#js-product-list-top .btn.compact-toggle.external:focus-visible {
    color: #5BC401;
}

/* El desplegable es un bloque con line-height heredado (22.75px): el enlace inline quedaba sobre la línea base,
   ~1px más arriba que "Ocultar filtros". Como flex, el enlace se centra igual que el resto de la barra. */
#js-product-list-top .products-sort-order {
    display: flex;
    align-items: center;
}

#js-product-list-top .products-sort-order .select-title {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    border: 0;
    background: none;
    font-size: 16px;
    font-weight: 700;
    line-height: 16.5px;
    letter-spacing: 0.55px;
    color: #18181B;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
}

#js-product-list-top .products-sort-order .select-title i {
    font-size: 16px;
    line-height: 10px;
    transition: transform 0.2s ease;
}

#js-product-list-top .products-sort-order .select-title:hover,
#js-product-list-top .products-sort-order .select-title:focus-visible {
    color: #5BC401;
}

#js-product-list-top .products-sort-order .select-title[aria-expanded="true"] i {
    transform: rotate(180deg);
}

#js-product-list-top .products-sort-order .dropdown-menu {
    right: 0;
    left: auto;
    min-width: 240px;
    margin-top: 12px;
    padding: 8px 0;
    border: 1px solid #E4E4E7;
    border-radius: 0;
    box-shadow: 0 8px 24px rgba(24, 24, 27, 0.08);
}

#js-product-list-top .products-sort-order .dropdown-item {
    padding: 8px 16px;
    border: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    color: #3F3F47;
}

#js-product-list-top .products-sort-order .dropdown-item:hover,
#js-product-list-top .products-sort-order .dropdown-item:focus {
    background: #F4F4F5;
    color: #18181B;
}

#js-product-list-top .products-sort-order .dropdown-item.current {
    font-weight: 700;
    color: #18181B;
}

/* Filtros (Amazzing Filter) - según Figma "Parrilla de producto" */
@media (min-width: 768px) {

    /* La barra va dentro de la columna de productos: bajamos los filtros para que empiecen a la altura del grid
       (41px de barra + 32px de separación + 4px de margen superior del sidebar en Figma) */
    :where(#category) #left-column {
        padding-top: 77px;
    }
}

@media (min-width: 992px) {

    /* Sidebar de 328px + 32px de separación con el listado */
    :where(#category) #left-column {
        flex: 0 0 360px;
        max-width: 360px;
        padding-right: 70px;
    }

    :where(#category) #content-wrapper {
        flex: 1 1 0;
        max-width: none;
    }
}

#amazzing_filter.block .title_block {
    display: none;
}

#amazzing_filter .af-form {
    padding-top: 0;
}

#amazzing_filter .af_filter {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid #E4E4E7;
}

#amazzing_filter .af_subtitle {
    padding: 16px 24px 16px 0;
    font-size: 15px;
    font-weight: 900;
    line-height: 22px;
    letter-spacing: 1.8px;
    color: #18181B;
    text-transform: uppercase;
}

/* Icono +/- dibujado con dos líneas: la vertical desaparece al abrir */
#amazzing_filter .af_subtitle.toggle-content::before,
#amazzing_filter .af_subtitle.toggle-content::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    width: 12px;
    height: 1px;
    margin: 0;
    border: 0;
    background: #52525C;
    transform: none;
    transition: transform 0.2s ease;
}

#amazzing_filter .af_subtitle.toggle-content::after {
    transform: rotate(90deg) scaleX(0);
}

#amazzing_filter .closed .af_subtitle.toggle-content::before {
    margin: 0;
    border: 0;
}

#amazzing_filter .closed .af_subtitle.toggle-content::after {
    transform: rotate(90deg) scaleX(1);
}

#amazzing_filter .af_filter_content {
    padding-bottom: 28px;
}

/* Listas de checkbox / radio */
#amazzing_filter .af_filter ul {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
}

#amazzing_filter .af_filter li {
    padding: 0;
}

#amazzing_filter .af_filter label {
    align-items: center;
    gap: 12px;
    padding: 0;
    font-size: 15px;
    font-weight: 500;
    line-height: 22px;
    color: #3F3F47;
}

#amazzing_filter .af_filter .name {
    padding-left: 0;
}

#amazzing_filter .af_filter .count {
    padding-left: 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 16px;
    color: #9F9FA9;
}

#amazzing_filter .af_filter .af-checkbox-label,
#amazzing_filter .af_filter .af-radio-label {
    padding-left: 28px;
}

#amazzing_filter .af-checkbox-label::after,
#amazzing_filter .af-radio-label::after {
    left: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border: 1px solid #9F9FA9;
    border-radius: 0;
    box-shadow: none;
    background: #FFFFFF;
    transition: border-color 0.2s, background-color 0.2s;
}

#amazzing_filter .af-radio-label::after {
    border-radius: 100%;
}

#amazzing_filter label:hover::after {
    border-color: #18181B;
}

#amazzing_filter .active>.af-checkbox-label::after,
#amazzing_filter .active>.af-radio-label::after {
    border-color: #18181B;
    background: #18181B;
}

#amazzing_filter .active>.af-checkbox-label::before {
    content: '';
    left: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") center / 16px no-repeat;
    font-size: 0;
}

#amazzing_filter .active>.af-radio-label::before {
    top: 8px;
    left: 5px;
    width: 6px;
    height: 6px;
    background: #FFFFFF;
}

#amazzing_filter .toggle-cut-off {
    display: inline-block;
    margin-top: 12px;
    font-size: 12px;
    font-weight: 700;
    color: #18181B;
    text-decoration: underline;
}

/* Desplegables y campos de texto: mismo estilo que los inputs de "Rango personalizado" */
#amazzing_filter .af_filter select,
#amazzing_filter .af-quick-search .qsInput {
    width: 100%;
    height: 38px;
    padding: 8px 12px;
    border: 1px solid #D4D4D8;
    border-radius: 0;
    background-color: #FFFFFF;
    font-size: 14px;
    font-weight: 500;
    color: #18181B;
}

#amazzing_filter .af-quick-search {
    margin-bottom: 12px;
}

/* Slider de precio */
#amazzing_filter .af-slider {
    margin-bottom: 0;
}

#amazzing_filter .af-slider .slider-bar {
    height: 2px;
    margin: 8px 8px 20px;
    border-radius: 0;
    background: #E4E4E7;
}

#amazzing_filter .af-slider .selected-bar {
    background: #18181B;
}

#amazzing_filter .af-slider .pointer {
    top: -7px;
    width: 16px;
    height: 16px;
    border: 2px solid #18181B;
    background: #FFFFFF;
}

#amazzing_filter .af-slider .slider-values {
    display: flex;
    align-items: center;
    gap: 8px;
}

#amazzing_filter .af-slider .slider-values::before {
    content: '–';
    order: 1;
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    color: #9F9FA9;
}

#amazzing_filter .af-slider .slider_value {
    float: none;
    flex: 1 1 0;
    margin: 0;
    padding: 8px 12px;
    border: 1px solid #D4D4D8;
    background: #FFFFFF;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    color: #18181B;
    text-align: right;
}

#amazzing_filter .af-slider .slider_value.to_display {
    order: 2;
}

#amazzing_filter .af_filter:hover .slider_value,
#amazzing_filter .af-slider .slider_value.edit {
    border-color: #18181B;
}

#amazzing_filter .af-slider .slider_value.edit .input-text {
    max-width: 100%;
    width: 100%;
    font-weight: 700;
    text-align: right;
}

/* Filtros activos (encima de la barra del listado): pastillas como las de subcategorías y "Limpiar" como enlace al final */
.selectedFilters.inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 24px 0 8px;
    line-height: normal;
}

.selectedFilters.inline.hidden {
    display: none;
}

.selectedFilters.inline::before,
.selectedFilters.inline::after {
    display: none;
}

.selectedFilters .selected-filters-label {
    margin: 0 4px 0 0;
    font-size: 11px;
    font-weight: 700;
    line-height: 16.5px;
    letter-spacing: 1.32px;
    color: #18181B;
    text-transform: uppercase;
}

.selectedFilters.inline .cf {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 30px;
    margin: 0;
    padding: 0 12px 0 16px;
    border: 1px solid #18181B;
    border-radius: 999px;
    background: #FFFFFF;
    font-size: 10px;
    font-weight: 700;
    line-height: 10px;
    letter-spacing: 0.5px;
    color: #18181B;
    text-transform: uppercase;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.selectedFilters.inline .cf:hover {
    background: #18181B;
    color: #FFFFFF;
}

.selectedFilters.inline .cf a {
    display: inline-flex;
    position: static;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    margin: 0;
    color: inherit;
    opacity: 1;
    text-decoration: none;
}

/* Toda la pastilla quita el filtro al pulsarla, no solo la "×" */
.selectedFilters.inline .cf a::after {
    content: '';
    position: absolute;
    inset: 0;
}

.selectedFilters.inline .cf {
    position: relative;
    cursor: pointer;
}

/* La "×" tipográfica del módulo cae por debajo del centro del texto: se dibuja con dos líneas, centrada en el aspa;
   -1px para alinearla con el centro de las mayúsculas, que queda algo por encima del de la línea */
.selectedFilters.inline .cf .u-times::before {
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    margin-top: -1px;
    background:
        linear-gradient(45deg, transparent calc(50% - 0.75px), currentColor calc(50% - 0.75px), currentColor calc(50% + 0.75px), transparent calc(50% + 0.75px)),
        linear-gradient(-45deg, transparent calc(50% - 0.75px), currentColor calc(50% - 0.75px), currentColor calc(50% + 0.75px), transparent calc(50% + 0.75px));
}

.selectedFilters.inline .clearAll {
    order: 1;
    float: none;
    margin: 0 0 0 8px;
    padding: 0;
    background: none;
}

.selectedFilters.inline .clearAll a {
    display: inline;
    color: #71717B;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.selectedFilters.inline .clearAll a:hover {
    color: #18181B;
}

.selectedFilters.inline .clearAll .txt {
    display: inline;
    margin: 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 16px;
    text-transform: none;
}


/* ==========================================================================
   Ficha de producto - según Figma "Ficha de producto"
   (no incluye las tabs ni los bloques de módulos: seQura, Amazon Pay, entrega y MotoCoins)
   ========================================================================== */

/* Contenido a 1400px como en el diseño (el breadcrumb mantiene el ancho del container como en el resto de páginas) */
body#product #inner-wrapper {
    max-width: 1421px;
}

/* Franja gris #FAFAFA de extremo a extremo detrás de galería + columna de compra */
body#product .product-info-row {
    margin: 0;
    padding: 23px 0;
    background: #FAFAFA;
    box-shadow: 0 0 0 100vmax #FAFAFA;
    clip-path: inset(0 -100vmax);
}

@media (min-width: 992px) {
    body#product .product-info-row {
        flex-wrap: nowrap;
        gap: 40px;
    }

    body#product .product-info-row>.col-product-image {
        flex: 1 1 0;
        min-width: 0;
        max-width: none;
        padding: 0;
    }

    body#product .product-info-row>.col-product-info {
        flex: 0 0 473px;
        max-width: 473px;
        padding: 0;
    }
}

/* Galería: imágenes apiladas, caja #FAFAFA con 56px de aire y 12px entre ellas */
body#product .col-product-image .product-flags {
    display: none;
}

@media (min-width: 768px) {
    body#product .column-images .product-lmage-large {
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0 0 12px;
        padding: 56px;
        background: #FAFAFA;
    }

    body#product .column-images .product-lmage-large:last-child {
        margin-bottom: 0;
    }
}

body#product .column-images .product-lmage-large img {
    width: auto;
    max-width: 100%;
    max-height: 560px;
    object-fit: contain;
    mix-blend-mode: multiply;
}

/* El icono de ampliar solo aparece al pasar por la imagen (el diseño no lo muestra) */
body#product .column-images .expander {
    opacity: 0;
    transition: opacity 0.2s ease;
}

body#product .column-images .product-lmage-large:hover .expander {
    opacity: 1;
}

/* Columna de compra: tarjeta blanca (el tema ya la hace sticky) */
body#product #col-product-info {
    padding: 18px 23px;
    border-radius: 8px;
    background: #FFFFFF;
}

body#product .product_header_container {
    margin: 0;
    padding: 0;
    border: 0;
}

body#product .product-additional-info {
    margin: 0;
    padding: 0;
    border: 0;
}

body#product .product-brand-name {
    display: block;
    font-size: 14px;
    font-weight: 700;
    line-height: 18px;
    letter-spacing: 2.4px;
    color: #9F9FA9;
    text-transform: uppercase;
}

body#product .product-brand-name:hover {
    color: #18181B;
}

body#product .product_header_container .page-title {
    margin: 0;
    padding-top: 8px;
    font-size: 24px;
    font-weight: 600;
    line-height: 30px;
    letter-spacing: -0.9px;
    color: #18181B;
    text-transform: none;
}

body#product .product-prices {
    margin: 0;
    padding: 0;
}

body#product .product-reference {
    margin: 0;
    padding-top: 12px;
    font-size: 14px;
    font-weight: 400;
    line-height: 16px;
    color: #9F9FA9;
}

body#product .product-reference .label {
    font-weight: 400;
    color: inherit;
}

body#product .product-price-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 11px;
    padding-top: 20px;
}

body#product .product-price-row .current-price-value {
    font-size: 30px;
    font-weight: 700;
    line-height: 36px;
    color: #18181B;
}

body#product .product-price-row .product-discount,
body#product .product-price-row .regular-price {
    margin: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 28px;
    color: #9F9FA9;
    text-decoration: line-through;
}

body#product .product-price-row .badge-discount {
    margin: 0;
    padding: 2px 8px;
    border-radius: 0;
    background: #5BC401;
    font-size: 14px;
    font-weight: 700;
    line-height: 16.5px;
    letter-spacing: 0.28px;
    color: #000000;
    text-transform: uppercase;
}

body#product #product-availability {
    display: block;
    margin-top: 8px;
    font-size: 14px;
    font-weight: 500;
    line-height: 16px;
}

body#product #product-availability.product-available {
    color: #4A9E01;
}

body#product #product-availability.product-last-items,
body#product #product-availability.product-unavailable-allow-oosp {
    color: #E17100;
}

body#product #product-availability.product-unavailable {
    color: #E7000B;
}

/* El Figma no muestra "Impuestos incluidos" (los hooks de precio que van en este bloque se mantienen) */
body#product .tax-shipping-delivery-label .tax-label {
    display: none;
}

body#product .tax-shipping-delivery-label {
    margin: 0;
}

body#product .product-cheaper-link {
    display: inline-block;
    margin-top: 6px;
    font-size: 14px;
    font-weight: 500;
    line-height: 16px;
    color: #71717B;
    text-decoration: underline;
}

body#product .product-cheaper-link:hover {
    color: #18181B;
}

/* Talla: rejilla de 7 columnas, botones de 44px */
body#product .product-variants-wrapper {
    position: relative;
}

body#product .product-variants {
    margin: 0;
}

body#product .product-variants-item {
    float: none;
    width: 100%;
    margin: 0;
    padding-top: 24px;
}

body#product .product-variants-item .form-control-label {
    display: block;
    margin: 0 0 12px;
    padding: 0;
    font-size: 11px;
    font-weight: 700;
    line-height: 16.5px;
    letter-spacing: 1.32px;
    color: #18181B;
    text-transform: uppercase;
}

body#product .product-variants-item ul:has(.input-radio) {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
    margin: 0;
    padding: 0;
}

body#product .product-variants-item ul:has(.input-radio) .input-container {
    float: none;
    position: relative;
    margin: 0;
}

body#product .product-variants-item .input-radio {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
    z-index: 1;
}

body#product .product-variants-item .radio-label {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    margin: 0;
    padding: 0 4px;
    border: 1px solid #D4D4D8;
    border-radius: 0;
    background: #FFFFFF;
    box-shadow: none;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    color: #27272A;
    transition: border-color 0.2s, background-color 0.2s, color 0.2s;
}

body#product .product-variants-item .input-container:hover .radio-label {
    border-color: #18181B;
}

body#product .product-variants-item .attribute-not-in-stock .radio-label {
    border-color: #E4E4E7;
    background: linear-gradient(to top right, transparent calc(50% - 0.5px), #E4E4E7 calc(50% - 0.5px), #E4E4E7 calc(50% + 0.5px), transparent calc(50% + 0.5px)) #FAFAFA;
    color: #D4D4D8;
}

body#product .product-variants-item .input-radio:checked+.radio-label {
    border-color: #18181B;
    background: #18181B;
    color: #FFFFFF;
}

/* "Guía de tallas" (iqitsizecharts) a la altura del título "Talla" */
body#product .product-variants-wrapper>.iqitsizecharts-link {
    position: absolute;
    top: 24px;
    right: 0;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    border: 0;
    background: none;
    font-size: 14px;
    font-weight: 500;
    line-height: 16px;
    color: #5BC401;
    cursor: pointer;
}

body#product .product-variants-wrapper>.iqitsizecharts-link i {
    font-size: 11px;
}

body#product .product-variants-wrapper>.iqitsizecharts-link:hover {
    text-decoration: underline;
}

/* Cantidad: "Cantidad  [ - 1 + ]" */
body#product .product-add-to-cart {
    padding: 0;
}

body#product .product-quantity-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-top: 20px;
}

body#product .product-quantity-label {
    flex: 0 0 80px;
    font-size: 11px;
    font-weight: 700;
    line-height: 16.5px;
    letter-spacing: 1.32px;
    color: #52525C;
    text-transform: uppercase;
}

body#product .product-quantity-row .qty {
    width: auto;
}

body#product .product-quantity-row .bootstrap-touchspin {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: auto;
    height: 42px;
    border: 1px solid #D4D4D8;
    background: #FFFFFF;
}

body#product .product-quantity-row .bootstrap-touchspin .input-group-addon {
    display: none !important;
}

body#product .product-quantity-row .bootstrap-touchspin .input-group-btn-vertical {
    display: contents;
}

body#product .product-quantity-row #quantity_wanted {
    order: 1;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    background: none;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    color: #18181B;
    text-align: center;
    -moz-appearance: textfield;
}

body#product .product-quantity-row #quantity_wanted::-webkit-inner-spin-button,
body#product .product-quantity-row #quantity_wanted::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

body#product .product-quantity-row .btn-touchspin {
    position: static;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    font-size: 18px;
    font-weight: 500;
    line-height: 28px;
    color: #3F3F47;
}

body#product .product-quantity-row .btn-touchspin:hover {
    color: #18181B;
}

body#product .product-quantity-row .btn-touchspin i {
    display: none;
}

body#product .product-quantity-row .bootstrap-touchspin-down {
    order: 0;
}

body#product .product-quantity-row .bootstrap-touchspin-down::before {
    content: '\2212';
}

body#product .product-quantity-row .bootstrap-touchspin-up {
    order: 2;
}

body#product .product-quantity-row .bootstrap-touchspin-up::before {
    content: '+';
}

/* Añadir al carrito: verde a todo el ancho */
body#product .product-add-to-cart .add {
    padding-top: 16px;
}

body#product .product-add-to-cart .add-to-cart {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    height: 56px;
    padding: 0 24px;
    border: 0;
    border-radius: 0;
    background: #5BC401;
    font-size: 15px;
    font-weight: 700;
    line-height: 22.5px;
    letter-spacing: 0.75px;
    color: #000000;
    text-transform: uppercase;
}

body#product .product-add-to-cart .add-to-cart:hover,
body#product .product-add-to-cart .add-to-cart:focus-visible {
    background: #4FA901;
    color: #000000;
}

body#product .product-add-to-cart .add-to-cart:disabled {
    background: #E4E4E7;
    color: #9F9FA9;
}

body#product .product-add-to-cart .add-to-cart .bag-icon {
    margin: 0;
    font-size: 19px;
    line-height: 19px;
}

/* Elementos que el diseño no contempla en la columna de compra */
body#product .product-add-to-cart .col-add-compare,
body#product .product-additional-info .social-sharing {
    display: none;
}

@media (max-width: 991px) {
    body#product .col-product-info {
        margin-top: 23px;
    }
}

/* --------------------------------------------------------------------------
   Ficha de producto - parte inferior: barra de anclas + Descripción + Ficha técnica
   (product-tabs-sections.tpl / product-details.tpl del tema hijo, comportamiento en assets/js/custom.js)
   -------------------------------------------------------------------------- */
body#product .product-sections {
    margin: 0;
    padding: 0;
}

/* Barra de anclas: blanca de extremo a extremo y fija bajo la cabecera mientras se recorren las secciones */
body#product .product-anchors {
    position: sticky;
    top: var(--product-anchors-top, 0px);
    z-index: 99;
    margin-inline: calc(50% - 50vw);
    padding-inline: calc(50vw - 50%);
    border-top: 1px solid #E4E4E7;
    border-bottom: 1px solid transparent;
    background: #FFFFFF;
    transition: border-color 0.2s ease;
}

body#product .product-anchors.is-stuck {
    border-bottom-color: #E4E4E7;
}

body#product .product-anchors-list {
    display: flex;
    margin: 0;
    padding: 0 24px;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: none;
}

body#product .product-anchors-list::-webkit-scrollbar {
    display: none;
}

body#product .product-anchors-list li {
    flex: 0 0 auto;
}

body#product .product-anchor {
    display: block;
    padding: 16px 20px;
    border-bottom: 2px solid transparent;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    color: #71717B;
    white-space: nowrap;
    transition: color 0.2s ease, border-color 0.2s ease;
}

body#product .product-anchor:hover {
    color: #18181B;
}

body#product .product-anchor.active {
    border-bottom-color: #5BC401;
    color: #18181B;
}

body#product .product-anchor.active:focus {
    text-decoration: none;
}

/* Secciones: columna de 768px alineada con la primera pestaña */
body#product .product-sections-content {
    padding: 0 24px 24px;
}

body#product .product-sections-content>.block-section {
    max-width: 768px;
    margin: 0;
    padding: 64px 0 0;
    border: 0;
    scroll-margin-top: var(--product-anchors-offset, 150px);
}

body#product .product-sections-content>.block-section>.section-title {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 20px;
    font-weight: 700;
    line-height: 28px;
    color: #18181B;
    text-transform: none;
}

body#product .product-sections-content>.block-section>.section-title span {
    padding: 0;
    border: 0;
}

body#product .product-sections-content>.block-section>.section-title::before,
body#product .product-sections-content>.block-section>.section-title::after,
body#product .product-sections-content>.block-section>.section-title span::before,
body#product .product-sections-content>.block-section>.section-title span::after {
    display: none;
}

body#product .product-sections-content>.block-section>.section-content {
    padding: 20px 0 0;
}

/* Descripción */
body#product .product-description .rte-content,
body#product .product-description .rte-content p,
body#product .product-description .rte-content li {
    font-size: 16px;
    font-weight: 400;
    line-height: 26px;
    color: #52525C;
}

body#product .product-description .rte-content p {
    margin: 0 0 16px;
}

body#product .product-description .rte-content p:empty {
    display: none;
}

body#product .product-description .rte-content> :last-child {
    margin-bottom: 0;
}

body#product .product-description .rte-content strong,
body#product .product-description .rte-content b {
    font-weight: 600;
    color: #18181B;
}

body#product .product-description .rte-content ul {
    margin: 0 0 16px;
    padding-left: 20px;
}

/* Ficha técnica: etiqueta a la izquierda, valor a partir de la mitad */
body#product .product-data-sheet {
    width: 100%;
    margin: 4px 0 0;
    border-collapse: collapse;
}

body#product .product-data-sheet th,
body#product .product-data-sheet td {
    padding: 12px 0;
    border: 0;
    border-bottom: 1px solid #F4F4F5;
    font-size: 14px;
    line-height: 20px;
    vertical-align: top;
    text-align: left;
}

body#product .product-data-sheet th {
    width: 50%;
    padding-right: 16px;
    font-weight: 500;
    color: #71717B;
}

body#product .product-data-sheet td {
    font-weight: 600;
    color: #18181B;
}

body#product .product-details-section .product-quantities,
body#product .product-details-section .product-availability-date {
    margin-top: 16px;
    font-size: 14px;
    color: #71717B;
}

@media (max-width: 767px) {

    body#product .product-anchors-list,
    body#product .product-sections-content {
        padding-left: 0;
        padding-right: 0;
    }

    body#product .product-sections-content>.block-section {
        padding-top: 40px;
    }
}

/* --------------------------------------------------------------------------
   Ficha de producto - sección "Packs" (pm_advancedpack, plantilla en themes/motopasion/modules/pm_advancedpack)
   -------------------------------------------------------------------------- */
body#product .product-packs {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* .product-pack también lo usa el tema padre para los packs nativos: se anulan su margen y relleno */
body#product .product-packs .product-pack {
    margin: 0;
    padding: 0;
    border: 1px solid #E4E4E7;
    background: #FFFFFF;
}

body#product .product-pack-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px 24px;
    padding: 20px;
    border-bottom: 1px solid #F4F4F5;
}

body#product .product-pack-name {
    display: block;
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    color: #18181B;
}

body#product .product-pack-name:hover {
    color: #5BC401;
}

body#product .product-pack-count {
    margin: 2px 0 0;
    font-size: 14px;
    line-height: 20px;
    color: #71717B;
}

body#product .product-pack-prices {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 11px;
}

body#product .product-pack-price {
    font-size: 24px;
    font-weight: 700;
    line-height: 32px;
    color: #18181B;
}

body#product .product-pack-regular-price {
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    color: #9F9FA9;
    text-decoration: line-through;
}

body#product .product-pack .badge-discount {
    margin: 0;
    padding: 2px 8px;
    border-radius: 0;
    background: #5BC401;
    font-size: 14px;
    font-weight: 700;
    line-height: 16.5px;
    letter-spacing: 0.28px;
    color: #000000;
    text-transform: uppercase;
}

body#product .product-pack-tax-excl {
    flex-basis: 100%;
    font-size: 12px;
    color: #71717B;
}

/* Productos del pack: tarjetas como "También te puede interesar", con un "+" entre ellas */
body#product .product-pack-items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 32px;
    margin: 0;
    padding: 20px;
    list-style: none;
}

body#product .product-pack-item {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid #E4E4E7;
    transition: border-color 0.2s ease;
}

body#product .product-pack-item:hover {
    border-color: #D4D4D8;
}

body#product .product-pack-item + .product-pack-item::before {
    content: '+';
    position: absolute;
    top: 50%;
    left: -17px;
    z-index: 1;
    width: 24px;
    height: 24px;
    margin: -12px 0 0 -12px;
    border-radius: 50%;
    background: #18181B;
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    color: #FFFFFF;
    text-align: center;
}

body#product .product-pack-item-image {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    padding: 16px;
    background: #FAFAFA;
    overflow: hidden;
}

body#product .product-pack-item-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
    transition: transform 0.3s ease;
}

body#product .product-pack-item:hover .product-pack-item-image img {
    transform: scale(1.03);
}

body#product .product-pack-item-qty {
    position: absolute;
    top: 8px;
    left: 8px;
    padding: 2px 8px;
    background: #18181B;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px;
    color: #FFFFFF;
}

body#product .product-pack-item-info {
    flex: 1 1 auto;
    padding: 12px 16px 16px;
    border-top: 1px solid #F4F4F5;
}

body#product .product-pack-item-name {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 19.25px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

body#product .product-pack-item-name a {
    color: #18181B;
}

body#product .product-pack-item-name a:hover {
    color: #5BC401;
}

body#product .product-pack-item-prices {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 8px;
    margin-top: 8px;
}

body#product .product-pack-item-price {
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    color: #18181B;
}

body#product .product-pack-item-regular-price {
    font-size: 12px;
    font-weight: 400;
    line-height: 16px;
    color: #9F9FA9;
    text-decoration: line-through;
}

/* Botones: "Comprar" como el de añadir al carrito, "Ver" en contorno */
body#product .product-pack-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 0 20px 20px;
}

body#product .product-pack-actions form {
    margin: 0;
}

body#product .product-pack-buy,
body#product .product-pack-view {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 48px;
    padding: 0 24px;
    border-radius: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    letter-spacing: 0.7px;
    text-transform: uppercase;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

body#product .product-pack-buy {
    border: 0;
    background: #5BC401;
    color: #000000;
}

body#product .product-pack-buy:hover,
body#product .product-pack-buy:focus-visible {
    background: #4FA901;
    color: #000000;
}

body#product .product-pack-buy:disabled {
    background: #E4E4E7;
    color: #9F9FA9;
}

body#product .product-pack-view {
    border: 1px solid #18181B;
    background: transparent;
    color: #18181B;
}

body#product .product-pack-view:hover,
body#product .product-pack-view:focus-visible {
    background: #18181B;
    color: #FFFFFF;
}

@media (max-width: 767px) {
    body#product .product-pack-header,
    body#product .product-pack-items {
        padding: 16px;
    }

    body#product .product-pack-items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }

    body#product .product-pack-item + .product-pack-item::before {
        left: -13px;
    }

    /* En la rejilla de 2 columnas el "+" solo va entre tarjetas de la misma fila */
    body#product .product-pack-item:nth-child(odd)::before {
        display: none;
    }

    body#product .product-pack-actions {
        padding: 0 16px 16px;
    }

    body#product .product-pack-actions form,
    body#product .product-pack-buy,
    body#product .product-pack-view {
        width: 100%;
    }
}

/* --------------------------------------------------------------------------
   Ficha de un pack (pm_advancedpack): lista de productos del pack en la columna de compra
   Sustituye el aspecto del módulo (pack-17.css / module-hummingbird.css) por el de la ficha.
   -------------------------------------------------------------------------- */
body#product #ap5-product-list.ap5-on-product-page {
    margin: 24px 0 0;
}

body#product #ap5-product-list .ap5-pack-product {
    padding: 20px 0;
    border-bottom: 1px solid #F4F4F5;
}

body#product #ap5-product-list .ap5-pack-product:first-child {
    padding-top: 0;
}

body#product #ap5-product-list .ap5-pack-product > .row {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 16px;
    margin: 0;
}

body#product #ap5-product-list .ap5-pack-product > .row > [class*="col-"] {
    width: auto;
    max-width: none;
    padding: 0;
}

/* Imagen: cuadrada sobre gris, como las tarjetas de producto */
body#product #ap5-product-list .ap5-pack-product-image {
    flex: 0 0 80px;
    aspect-ratio: 1 / 1;
    padding: 8px;
    background: #FAFAFA;
}

body#product #ap5-product-list .ap5-pack-product-image a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

body#product #ap5-product-list .ap5-pack-product-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
}

body#product #ap5-product-list .ap5-pack-product-content {
    flex: 1 1 auto;
    min-width: 0;
    height: auto;
}

body#product #ap5-product-list .ap5-pack-product-title {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 21px;
}

body#product #ap5-product-list .ap5-pack-product-title a {
    color: #18181B;
}

body#product #ap5-product-list .ap5-pack-product-title a:hover {
    color: #5BC401;
}

/* Cantidad a la izquierda y precio a la derecha, en una sola línea y sin la raya punteada */
body#product #ap5-product-list .ap5-pack-product-infos {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 4px 16px;
    margin: 8px 0 0;
    padding: 0;
    border: 0;
}

body#product #ap5-product-list .ap5-pack-product-infos::before,
body#product #ap5-product-list .ap5-pack-product-infos::after {
    display: none;
}

body#product #ap5-product-list .ap5-pack-product-quantity,
body#product #ap5-product-list .ap5-pack-product-price {
    float: none !important;
    font-size: 13px;
    line-height: 20px;
    color: #71717B;
}

body#product #ap5-product-list .ap5-pack-product-quantity .label {
    display: inline;
    margin: 0 4px 0 0;
    font-weight: 500;
    color: #71717B;
}

body#product #ap5-product-list .ap5-pack-product-quantity .label::after {
    content: ':';
}

body#product #ap5-product-list .ap5-pack-product-price {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

/* "Precio del producto :" sobra: el precio ya se entiende */
body#product #ap5-product-list .ap5-pack-product-price .label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

body#product #ap5-product-list .ap5-pack-product-current-price {
    order: 1;
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    color: #18181B;
}

body#product #ap5-product-list .ap5-pack-product-original-price-value {
    order: 2;
    font-size: 12px;
    font-weight: 400;
    line-height: 16px;
    color: #9F9FA9;
    text-decoration: line-through;
}

/* Talla: mismo título que los atributos del producto y sin el hueco de 24px */
body#product #ap5-product-list .ap5-attributes .product-variants-item {
    margin: 0;
    padding-top: 16px;
}

body#product #ap5-product-list .ap5-attributes .control-label {
    display: block;
    margin: 0 0 10px;
    font-size: 11px;
    font-weight: 700;
    line-height: 16.5px;
    letter-spacing: 1.32px;
    color: #18181B;
    text-transform: uppercase;
}

/* Combinación sin stock: sin el parpadeo naranja del módulo; la talla marcada en rojo y aviso en línea */
body#product #ap5-product-list .ap5-product-pack-row-has-errors div.ap5-attributes {
    border-radius: 0;
    animation: none;
}

body#product #ap5-product-list .ap5-product-pack-row-has-errors .input-radio:checked + .radio-label {
    border-color: #E7000B;
    background: #FFFFFF;
    color: #E7000B;
}

body#product #ap5-product-list .ap5-pack-product-content .alert {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 12px 0 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    animation: none;
    font-size: 13px;
    font-weight: 500;
    line-height: 18px;
    color: #E7000B;
    text-align: left;
}

body#product #ap5-product-list .ap5-pack-product-content .alert::before {
    content: '\f06a';
    font-family: 'FontAwesome';
    font-size: 14px;
    line-height: 18px;
}

body#product #ap5-product-list .ap5-pack-product-content .alert ol {
    margin: 0;
    padding: 0;
    font-weight: inherit;
    list-style: none;
}

/* Aviso junto al botón cuando el pack no se puede comprar con la selección actual */
body#product #ap5-buy-container p.ap5-pack-unavailable,
body#product #ap5-buy-container p.ap5-combination-unavailable {
    margin: 0;
    padding: 12px 16px;
    border-left: 3px solid #E7000B;
    background: #FEF2F2;
    font-size: 13px;
    font-weight: 500;
    line-height: 19px;
    color: #18181B;
}

body#product #ap5-buy-container p.ap5-combination-unavailable a {
    color: inherit;
    text-decoration: none;
}

body#product #ap5-buy-container p.ap5-combination-unavailable a:hover {
    text-decoration: underline;
}

@media (max-width: 767px) {
    body#product #ap5-product-list .ap5-pack-product-image {
        flex-basis: 64px;
    }
}

/* --------------------------------------------------------------------------
   Ficha de producto - entrega estimada (estimateddelivery, plantilla en themes/motopasion/modules/estimateddelivery)
   Figma: icono de camión + "Entrega el ..." / "Pedidos antes de las ... · Envío gratis", entre líneas finas
   -------------------------------------------------------------------------- */
body#product #estimateddelivery {
    margin: 20px 0 0;
}

body#product #estimateddelivery > .ed-delivery {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
    padding: 14px 10px;
    border: 0;
    border-top: 1px solid #F4F4F5;
    border-bottom: 1px solid #F4F4F5;
    background: transparent;
}

body#product #estimateddelivery > .ed-delivery.hideMe {
    display: none;
}

body#product #estimateddelivery .ed-delivery div {
    background: transparent;
}

body#product .ed-delivery-icon {
    flex: 0 0 21px;
    margin-top: 1px;
    font-size: 18px;
    line-height: 18px;
    color: #5BC401;
    text-align: center;
}

body#product .ed-delivery-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

body#product .ed-delivery-info p {
    margin: 0;
    font-size: 14px;
    line-height: 16px;
}

body#product .ed-delivery-date {
    font-weight: 600;
    color: #18181B;
}

body#product .ed-delivery-meta {
    font-weight: 400;
    color: #71717B;
}

body#product .ed-delivery-shipping {
    font-weight: 600;
    color: #18181B;
}

/* Mensajes especiales del módulo (disponible el..., preventa...): ya llevan el icono propio del bloque */
body#product .ed-delivery .ed_orderbefore {
    font-weight: 600;
    color: #18181B;
}

body#product .ed-delivery .ed_orderbefore::before {
    content: none;
}

/* --------------------------------------------------------------------------
   Ficha de producto - "También te puede interesar" (ps_categoryproducts, plantilla en el tema hijo)
   -------------------------------------------------------------------------- */
body#product .product-related {
    margin: 0;
    margin-inline: calc(50% - 50vw);
    padding: 64px calc(50vw - 50% + 24px);
    border-top: 1px solid #E4E4E7;
    background: #FAFAFA;
}

/* La sección va pegada al footer, como en el diseño */
body#product #wrapper:has(.product-related) {
    padding-bottom: 0;
}

body#product .product-related-title {
    margin: 0;
    padding: 0;
    font-size: 20px;
    font-weight: 700;
    line-height: 28px;
    color: #18181B;
    text-transform: none;
}

/* 4 tarjetas por fila; si hay más, se desplazan en horizontal */
body#product .product-related-list {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 3 * 16px) / 4);
    gap: 16px;
    margin-top: 32px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
}

body#product .product-related-card {
    display: flex;
    flex-direction: column;
    border: 1px solid #E4E4E7;
    background: #FFFFFF;
    scroll-snap-align: start;
    transition: border-color 0.2s ease;
}

body#product .product-related-card:hover {
    border-color: #D4D4D8;
}

body#product .product-related-image {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    padding: 16px;
    background: #FAFAFA;
}

body#product .product-related-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
    transition: transform 0.3s ease;
}

body#product .product-related-card:hover .product-related-image img {
    transform: scale(1.03);
}

body#product .product-related-info {
    flex: 1 1 auto;
    padding: 16px;
    border-top: 1px solid #F4F4F5;
}

body#product .product-related-brand {
    margin: 0;
    font-size: 10px;
    font-weight: 700;
    line-height: 15px;
    letter-spacing: 1px;
    color: #9F9FA9;
    text-transform: uppercase;
}

body#product .product-related-name {
    margin: 4px 0 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 19.25px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body#product .product-related-name a {
    color: #18181B;
}

body#product .product-related-name a:hover {
    color: #5BC401;
}

body#product .product-related-prices {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-top: 12px;
}

body#product .product-related-price {
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    color: #18181B;
}

body#product .product-related-regular-price {
    font-size: 12px;
    font-weight: 400;
    line-height: 16px;
    color: #9F9FA9;
    text-decoration: line-through;
}

@media (max-width: 991px) {
    body#product .product-related-list {
        grid-auto-columns: calc((100% - 16px) / 2.3);
    }
}

@media (max-width: 767px) {
    body#product .product-related {
        padding: 40px calc(50vw - 50%);
    }

    /* En móvil se desliza con el dedo: sin barra de scroll encima de las tarjetas */
    body#product .product-related-list {
        grid-auto-columns: 70%;
        margin-top: 24px;
        scrollbar-width: none;
    }

    body#product .product-related-list::-webkit-scrollbar {
        display: none;
    }
}

/* ==========================================================================
   Página CMS "Contacto" (id 6) - según Figma (última pantalla de Web Desktop)
   Colores, tipografías, fondos, bordes, espaciados y anchos se gestionan en Elementor.
   Aquí solo queda lo que Elementor no permite: el formulario del módulo (ETS Contact Form 7),
   la maquetación interna de algunos textos y el acordeón.
   ========================================================================== */
/* Comunes a las páginas CMS maquetadas con Elementor: Contacto (6) y Nuestras tiendas (7) */
body.cms-id-5 #main>.page-header,
body.cms-id-4 #main>.page-header {
    display: none;
}

/* Las franjas grises llegan hasta el footer */
body.cms-id-5 #wrapper,
body.cms-id-4 #wrapper {
    padding-bottom: 0;
}

body.cms-id-5 #content.page-content,
body.cms-id-4 #content.page-content {
    margin-bottom: 0;
}

/* Sin la separación automática de 20px entre widgets ni margen tras el último párrafo:
   los espacios se definen en cada widget desde Elementor */
body.cms-id-5 .elementor-widget:not(:last-child),
body.cms-id-4 .elementor-widget:not(:last-child) {
    margin-bottom: 0;
}

body.cms-id-5 .elementor-text-editor p:last-child,
body.cms-id-4 .elementor-text-editor p:last-child {
    margin-bottom: 0;
}

/* --- Formulario (lo pinta el módulo: no se puede estilar desde Elementor) --- */
.mp-contact-form form {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.mp-contact-form form>h3,
.mp-contact-form form>br,
.mp-contact-form form br {
    display: none;
}

.mp-contact-form form>label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 0.6px;
    color: #52525C;
    text-transform: uppercase;
}

/* Nombre / email y teléfono / tienda en dos columnas */
.mp-contact-form form>label:nth-of-type(-n+4) {
    width: calc(50% - 10px);
}

.mp-contact-form .wpcf7-form-control-wrap {
    display: block;
    position: relative;
    margin: 0;
    text-transform: none;
    letter-spacing: 0;
}

.mp-contact-form .form-control {
    width: 100%;
    height: 42px;
    padding: 10px 14px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FAFAFA;
    box-shadow: none;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    color: #18181B;
    margin: 0;
    transition: border-color 0.2s, background-color 0.2s;
}

.mp-contact-form .form-control:focus {
    border-color: #18181B;
    background: #FFFFFF;
    outline: none;
}

.mp-contact-form textarea.form-control {
    height: 120px;
    line-height: 20px;
    resize: vertical;
}

.mp-contact-form select.form-control {
    padding-right: 36px;
    appearance: none;
    background: #FAFAFA url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%2371717B' stroke-width='1.5'/%3E%3C/svg%3E") right 14px center / 12px no-repeat;
    cursor: pointer;
}

.mp-contact-form .wpcf7-form-control-wrap select.form-control:not([size]):not([multiple]) {
    height: 42px;
}

.mp-contact-form .select_arrow {
    display: none;
}

/* Spinner de envío del módulo: fuera del flujo para no separar el botón de la nota */
.mp-contact-form form {
    position: relative;
}

.mp-contact-form .ajax-loader {
    position: absolute;
    right: 0;
    bottom: 14px;
    margin: 0;
}

/* Aceptación de la política de privacidad */
.mp-contact-form .checkbox-919 {
    display: block;
    width: 100%;
    margin: 0;
}

.mp-contact-form .wpcf7-checkbox .wpcf7-list-item {
    display: block;
    margin: 0;
}

.mp-contact-form .wpcf7-checkbox label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
    padding: 16px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FAFAFA;
    cursor: pointer;
}

.mp-contact-form .wpcf7-checkbox input[type="checkbox"] {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    margin: 2px 0 0;
    accent-color: #5BC401;
}

.mp-contact-form .wpcf7-list-item-label {
    font-size: 12px;
    font-weight: 500;
    line-height: 19.5px;
    color: #52525C;
}

/* Botón: gris como en el diseño hasta aceptar la privacidad, verde después */
.mp-contact-form .wpcf7-submit {
    height: 44px;
    padding: 12px 28px;
    border: 0;
    border-radius: 4px;
    background: #E4E4E7;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    letter-spacing: 0.35px;
    color: #9F9FA9;
    text-transform: uppercase;
    margin: 0;
    cursor: pointer;
    transition: background-color 0.2s, color 0.2s;
}

.mp-contact-form form:has(.wpcf7-checkbox input:checked) .wpcf7-submit {
    background: #5BC401;
    color: #000000;
}

.mp-contact-form form:has(.wpcf7-checkbox input:checked) .wpcf7-submit:hover {
    background: #4FA901;
}

/* Nota junto al botón (va en CSS para no tocar el formulario del módulo) */
.mp-contact-form form::after {
    content: 'Respuesta en 24–48 h laborables';
    align-self: center;
    order: 1;
    margin-left: -4px;
    font-size: 14px;
    line-height: 20px;
    color: #9F9FA9;
}

.mp-contact-form .wpcf7-response-output {
    order: 2;
    width: 100%;
    margin: 0;
}

/* --- Horario: cada párrafo es una fila "día ......... hora (en negrita)" --- */
.mp-contact-hours .elementor-text-editor {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.mp-contact-hours p {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin: 0;
    padding: 6px 0;
    border-bottom: 1px solid #F4F4F5;
}

.mp-contact-hours p:last-child {
    border-bottom: 0;
}

.mp-contact-hours strong {
    font-weight: 700;
    color: #18181B;
}

/* --- Sede central: separación entre líneas y enlaces con el color del texto --- */
.mp-contact-hq .elementor-text-editor {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.mp-contact-hq p {
    margin: 0;
}

.mp-contact-hq .elementor-text-editor a,
.mp-contact-hq .elementor-text-editor a:link,
.mp-contact-hq .elementor-text-editor a:visited {
    color: inherit;
}

.mp-contact-hq .elementor-text-editor a:hover {
    color: #5BC401;
}

/* --- Tarjetas de contacto (caja de icono): lo que va en negrita en la descripción es el dato principal --- */
.mp-contact-channel .elementor-icon-box-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    text-align: left;
}

.mp-contact-channel .elementor-icon-box-icon {
    flex: 0 0 auto;
}

.mp-contact-channel .elementor-icon-box-content {
    min-width: 0;
}

.mp-contact-channel .elementor-icon-box-title a,
.mp-contact-channel .elementor-icon-box-title a:link,
.mp-contact-channel .elementor-icon-box-title a:visited,
.mp-contact-channel a.elementor-icon:link,
.mp-contact-channel a.elementor-icon:visited {
    color: inherit;
}

.mp-contact-channel .elementor-icon-box-description p {
    margin: 0;
}

.mp-contact-channel .elementor-icon-box-description strong {
    display: block;
    font-size: 15px;
    font-weight: 700;
    line-height: 20px;
    color: #18181B;
    overflow-wrap: anywhere;
}

.mp-contact-channel .elementor-icon-box-description br {
    display: none;
}

/* Toda la tarjeta es clicable: el enlace del título se estira sobre la caja */
.mp-contact-channel .elementor-widget-container {
    position: relative;
    height: 100%;
}

.mp-contact-channel .elementor-icon-box-title a::after {
    content: '';
    position: absolute;
    inset: 0;
}

/* --- Preguntas frecuentes: solo líneas horizontales, chevron y espaciados del diseño --- */
.mp-contact-faq .elementor-accordion .elementor-accordion-item {
    border-right: 0;
    border-left: 0;
}

.mp-contact-faq .elementor-accordion .elementor-accordion-item+.elementor-accordion-item {
    border-top: 0;
}

.mp-contact-faq .elementor-accordion .elementor-accordion-title {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 20px 0;
    border: 0;
}

.mp-contact-faq .elementor-accordion .elementor-accordion-title:hover {
    color: #5BC401;
}

.mp-contact-faq .elementor-accordion .elementor-accordion-icon {
    float: none;
    width: auto;
    margin: 0;
}

.mp-contact-faq .elementor-accordion .elementor-accordion-icon .fa::before,
.mp-contact-faq .elementor-accordion .elementor-accordion-title.active .elementor-accordion-icon .fa::before {
    content: '\f078';
    display: inline-block;
    font-family: 'Font Awesome 7 Sharp';
    font-size: 14px;
    font-weight: 300;
    color: #71717B;
    transition: transform 0.2s;
}

.mp-contact-faq .elementor-accordion .elementor-accordion-title.active .elementor-accordion-icon .fa::before {
    transform: rotate(180deg);
    color: #5BC401;
}

.mp-contact-faq .elementor-accordion .elementor-accordion-content {
    max-width: 896px;
    padding: 0 40px 20px 0;
    border: 0;
}

.mp-contact-faq .elementor-accordion .elementor-accordion-content p {
    margin: 0;
}

@media (max-width: 767px) {
    .mp-contact-form form>label:nth-of-type(-n+4) {
        width: 100%;
    }

    /* Elementor centra el icono en móvil: mantenemos icono a la izquierda como en escritorio */
    .mp-contact-channel .elementor-icon-box-wrapper {
        text-align: left;
    }

    .mp-contact-channel.elementor-widget-icon-box .elementor-icon-box-icon {
        margin: 0 16px 0 0 !important;
    }
}

/* ==========================================================================
   Página CMS "Nuestras tiendas" (id 7) - según Figma (Web Desktop > Nuestras tiendas)
   Colores, tipografías, fondos, bordes, espaciados, anchos e imágenes se gestionan en Elementor.
   Aquí solo queda lo que Elementor no permite.
   ========================================================================== */

/* Servicios en formato "píldora": lista con viñetas del editor de texto */
.mp-pills ul {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.mp-pills li {
    margin: 0;
    border-radius: 4px;
}

.mp-pills-soft li {
    padding: 2px 8px;
    background: #F4F4F5;
}

.mp-pills-outline li {
    padding: 4px 12px;
    border: 1px solid #9F9FA9;
    border-radius: 50px;
}

/* Tarjetas del listado: "Ver tienda" a la izquierda y "Cómo llegar" a la derecha */
.mp-store-card-links p {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

.mp-store-card-links a:first-child,
.mp-store-card-links a:first-child:link,
.mp-store-card-links a:first-child:visited {
    font-size: 16px;
    font-weight: 500;
    line-height: 24px;
    color: #18181B;
}

.mp-store-card-links a:first-child::after {
    content: '\f078';
    margin-left: 6px;
    font-family: 'Font Awesome 7 Sharp';
    font-size: 11px;
    font-weight: 400;
}

.mp-store-card-links a:last-child,
.mp-store-card-links a:last-child:link,
.mp-store-card-links a:last-child:visited {
    font-size: 12px;
    font-weight: 600;
    line-height: 16px;
    color: #5BC401;
}

.mp-store-card-links a:last-child::after {
    content: '\f08e';
    margin-left: 4px;
    font-family: 'Font Awesome 7 Sharp';
    font-size: 10px;
    font-weight: 400;
}

.mp-store-card-links a:hover {
    text-decoration: underline;
}

/* Mapa con esquinas redondeadas */
.mp-store-map .elementor-widget-container {
    overflow: hidden;
}

.mp-store-map iframe {
    display: block;
}

/* Foto de cada tienda: alto fijo de 420 px recortando la imagen, con etiqueta y pie encima */
.mp-store-image .elementor-widget-container {
    overflow: hidden;
}

.mp-store-image img {
    display: block;
    width: 100%;
    height: 420px;
    object-fit: cover;
}

.mp-store-badge,
.mp-store-caption {
    position: absolute;
    z-index: 2;
}

.mp-store-badge {
    top: 16px;
    left: 16px;
}

.mp-store-caption {
    right: 16px;
    bottom: 16px;
    left: 16px;
}

.elementor-column:has(.mp-store-image)>.elementor-element-populated {
    position: relative;
}

/* Horarios: departamentos en dos columnas */
.mp-store-hours .elementor-text-editor {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 24px;
}

.mp-store-hours p {
    margin: 0;
}

.mp-store-hours strong {
    font-weight: 700;
    color: #18181B;
}

/* Botones "Cómo llegar" y "Llamar" en la misma fila */
.mp-inline-button {
    display: inline-block;
    margin: 24px 8px 0 0;
    vertical-align: top;
}

/* "Contactos de la tienda": desplegable compacto con icono de sobre y chevron */
.mp-store-contacts .elementor-toggle {
    display: inline-block;
    min-width: 247px;
}

.mp-store-contacts .elementor-toggle .elementor-toggle-title {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 16px;
    border-radius: 4px;
}

.mp-store-contacts .elementor-toggle .elementor-toggle-title::before {
    content: '\f0e0';
    font-family: 'Font Awesome 7 Sharp';
    font-size: 16px;
    font-weight: 400;
}

.mp-store-contacts .elementor-toggle .elementor-toggle-title.active {
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
}

.mp-store-contacts .elementor-toggle .elementor-toggle-icon {
    order: 2;
    float: none;
    width: auto;
    margin: 0;
}

.mp-store-contacts .elementor-toggle .elementor-toggle-icon .fa::before {
    content: '\f078';
    display: inline-block;
    font-family: 'Font Awesome 7 Sharp';
    font-size: 12px;
    font-weight: 400;
    transition: transform 0.2s;
}

.mp-store-contacts .elementor-toggle .elementor-toggle-title.active .elementor-toggle-icon .fa::before {
    content: '\f078';
    font-family: 'Font Awesome 7 Sharp';
    transform: rotate(180deg);
}

.mp-store-contacts .elementor-toggle .elementor-toggle-content {
    padding: 12px 16px;
    border-radius: 0 0 4px 4px;
}

/* Tarjetas de servicios: misma altura e icono alineado a la izquierda; el último párrafo es la nota */
.mp-service-card,
.mp-service-card>.elementor-widget-container {
    height: 100%;
}

.mp-service-card .elementor-icon-box-wrapper {
    text-align: left;
}

.mp-service-card .elementor-icon-box-icon {
    display: inline-block;
}

.mp-service-card .elementor-icon-box-description p {
    margin: 0;
}

.mp-service-card .elementor-icon-box-description p:last-child:not(:first-child) {
    margin-top: 12px;
    padding-top: 8px;
    border-top: 1px solid #F4F4F5;
    font-size: 12px;
    font-weight: 500;
    line-height: 15px;
    color: #9F9FA9;
}

/* Listas con icono (dirección, horarios...): si el texto ocupa dos líneas no baja por debajo del icono */
body.cms-id-4 .elementor-icon-list-item {
    display: flex;
    align-items: baseline;
}

@media (max-width: 767px) {
    .mp-store-image img {
        height: 260px;
    }

    .mp-inline-button {
        margin-top: 12px;
    }

    .mp-store-hours .elementor-text-editor {
        grid-template-columns: 1fr;
    }
}

/* Listado de tiendas seleccionable (custom.js): la tarjeta cuya dirección muestra el mapa va en verde */
.elementor-section.mp-store-card {
    cursor: pointer;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.elementor-section.mp-store-card:hover {
    border-color: #D4D4D8;
}

.elementor-section.mp-store-card.is-active {
    border-color: #5BC401;
    box-shadow: 0 2px 4px -2px rgba(0, 0, 0, 0.1), 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.elementor-section.mp-store-card.is-active .elementor-icon-list-icon i {
    color: #5BC401;
}

.elementor-section.mp-store-card:focus-visible {
    outline: 2px solid #5BC401;
    outline-offset: 2px;
}

/* "Ver tienda" baja a la ficha sin que la cabecera fija tape el título */
body.cms-id-4 [id^="tienda-"] {
    scroll-margin-top: 120px;
}

/* --------------------------------------------------------------------------
   Megamenú (iqitmegamenu, submenú tipo "Tabs"): columna de subcategorías a la izquierda
   y, a la derecha, la categoría activa con sus hijas en 3 columnas. Figma "Mega Menu Header".
   -------------------------------------------------------------------------- */
#iqitmegamenu-horizontal .cbp-hrsub-inner {
    padding: 0;
    background: #09090B;
    border: 0;
    border-bottom: 1px solid #27272A;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);
}

#iqitmegamenu-horizontal .cbp-hrsub .iqitmegamenu-submenu-container {
    max-width: 1280px;
    padding: 0;
}

#iqitmegamenu-horizontal .cbp-tabs-container {
    margin: 0;
}

#iqitmegamenu-horizontal .cbp-tabs-container>.row {
    flex-wrap: nowrap;
    margin: 0;
    min-height: 450px;
}

/* Columna izquierda. Fondos y colores (normal / hover / activa) en Theme Editor > Menú > Submenú: pestañas */
#iqitmegamenu-horizontal .cbp-tabs-container .tabs-links {
    flex: 0 0 320px;
    max-width: 320px;
    padding: 24px 0;
    border-right: 1px solid #27272A;
}

#iqitmegamenu-horizontal .cbp-hrsub-tabs-names li {
    border: 0;
}

#iqitmegamenu-horizontal .cbp-hrsub-tabs-names li .cbp-inner-border-hider {
    display: none;
}

#iqitmegamenu-horizontal .cbp-hrsub-tabs-names li a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding: 14px 32px;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    letter-spacing: .7px;
    text-transform: uppercase;
    transition: color .15s ease-out, background-color .15s ease-out;
}

/* Sin hover ni activa, transparente sobre el fondo de la columna (el hover/activa lo pinta el Theme Editor) */
#iqitmegamenu-horizontal .cbp-hrsub-tabs-names li a:not(:hover):not(.active) {
    background: transparent;
}

#iqitmegamenu-horizontal .cbp-hrsub-tabs-names .cbp-submenu-it-indicator {
    position: static;
    height: auto;
    margin: 0 0 0 12px;
    font-size: 16px;
    opacity: 0;
    transition: opacity .15s ease-out;
}

#iqitmegamenu-horizontal .cbp-hrsub-tabs-names li a:hover .cbp-submenu-it-indicator,
#iqitmegamenu-horizontal .cbp-hrsub-tabs-names li a.active .cbp-submenu-it-indicator {
    opacity: 1;
}

/* Outlet: la subcategoría activa va en rojo */
#cbp-hrmenu-tab-9 .cbp-hrsub-tabs-names li a:hover,
#cbp-hrmenu-tab-9 .cbp-hrsub-tabs-names li a.active {
    color: #FB2C36 !important;
}

/* Panel derecho */
#iqitmegamenu-horizontal .cbp-tabs-container .tab-content {
    flex: 0 0 960px;
    max-width: 960px;
    padding: 40px;
}

#iqitmegamenu-horizontal .cbp-tab-pane .menu_row {
    margin: 0;
}

#iqitmegamenu-horizontal .cbp-tab-pane .cbp-menu-column {
    margin: 0;
    padding: 0;
}

#iqitmegamenu-horizontal .cbp-tab-pane .cbp-categories-row {
    margin: 0;
}

#iqitmegamenu-horizontal .cbp-tab-pane .cbp-categories-row>[class*="col-"] {
    margin: 0;
    padding: 0;
}

#iqitmegamenu-horizontal .cbp-tab-pane .cbp-category-title {
    display: block;
    margin: 0 0 24px;
    padding: 0 0 16px;
    border-bottom: 1px solid #27272A;
    color: #FFFFFF;
    font-size: 20px;
    font-weight: 700;
    line-height: 28px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

#iqitmegamenu-horizontal .cbp-tab-pane .cbp-category-tree {
    display: block;
    column-count: 3;
    column-gap: 24px;
}

#iqitmegamenu-horizontal .cbp-tab-pane .cbp-category-tree li {
    margin: 0 0 16px;
    padding: 0;
    line-height: 20px;
    break-inside: avoid;
}

#iqitmegamenu-horizontal .cbp-tab-pane .cbp-category-tree li a {
    position: relative;
    padding-left: 12px;
    color: #9F9FA9;
    font-size: 14px;
    line-height: 20px;
    transition: color .15s ease-out;
}

#iqitmegamenu-horizontal .cbp-tab-pane .cbp-category-tree li a:hover {
    color: #FFFFFF;
}

#iqitmegamenu-horizontal .cbp-tab-pane .cbp-category-tree li a:before {
    content: "";
    top: 8px;
    left: 0;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #27272A;
    transition: background-color .15s ease-out;
}

#iqitmegamenu-horizontal .cbp-tab-pane .cbp-category-tree li a:hover:before {
    left: 0;
    background: #5BC401;
}

/* Pantallas por debajo de 1280px: el panel derecho ocupa el hueco que queda */
@media (max-width: 1299px) {
    #iqitmegamenu-horizontal .cbp-tabs-container .tab-content {
        flex: 1 1 auto;
        max-width: none;
    }
}
/* Móvil: barra "Filtros / Ordenar por" fija bajo la cabecera al hacer scroll, a todo el ancho y con línea arriba y abajo
   (Figma "Parrilla de producto", Web Mobile). Se fija el div que la envuelve en product-list.tpl porque ese div solo
   mide lo que la barra y el sticky no tendría recorrido; así el recorrido es todo #products. */
@media (max-width: 767px) {
    #products > div:has(> #js-product-list-top) {
        position: sticky;
        top: 64px; /* alto de #mobile-header-sticky (cabecera móvil) */
        z-index: 10;
        margin: -1px calc(50% - 50vw) 32px; /* -1px: la línea superior se monta sobre la inferior de la cabecera de categoría */
        padding: 0 16px;
        background: #FFFFFF;
        border-top: 1px solid #E4E4E7;
        border-bottom: 1px solid #E4E4E7;
    }

    #products > div:has(> #js-product-list-top) #js-product-list-top {
        height: 40px;
        margin: 0;
    }
}

/* --------------------------------------------------------------------------
   Barra de textos sobre la cabecera (iqithtmlandbanners 2 y 3) en tablet y móvil.
   Tablet ancha (860-991px): una sola fila, avisos a la izquierda y enlaces a la derecha.
   Por debajo de 860px no caben en una fila: dos filas centradas.
   -------------------------------------------------------------------------- */
@media (max-width: 991px) {
    .header-nav {
        padding: 8px 0;
    }

    .header-nav .container > .row {
        flex-wrap: nowrap;
        align-items: center;
        margin: 0;
    }

    .header-nav .center-nav {
        display: none;
    }

    .header-nav .left-nav,
    .header-nav .right-nav {
        padding: 0;
    }

    .header-nav .rte-content p {
        display: flex;
        align-items: center;
        gap: 4px 16px;
        margin: 0;
    }

    .header-nav .right-nav .rte-content p {
        justify-content: flex-end;
    }

    .header-nav span,
    .header-nav a {
        margin: 0;
        font-size: 12px;
        line-height: 16px;
        white-space: nowrap;
    }

    .header-nav span i {
        margin-right: 4px !important;
        font-size: 12px;
    }
}

@media (max-width: 859px) {
    .header-nav {
        padding: 0;
        display: none;
    }

    .header-nav .container > .row {
        flex-direction: column;
    }

    .header-nav .left-nav,
    .header-nav .right-nav {
        flex: 0 0 auto;
        width: 100%;
        max-width: none;
        padding: 8px 0;
        text-align: center;
    }

    .header-nav .right-nav {
        border-top: 1px solid #27272A;
    }

    .header-nav .left-nav > div,
    .header-nav .right-nav > div,
    .header-nav .rte-content {
        display: block !important;
    }

    .header-nav .rte-content p,
    .header-nav .right-nav .rte-content p {
        flex-wrap: wrap;
        justify-content: center;
    }
}

/* --------------------------------------------------------------------------
   Cabecera móvil (templates/_partials/_variants/mobile-header-1.tpl) según Figma "Parrilla de producto", Web Mobile:
   barra de 64px, iconos Font Awesome Sharp Light, logo centrado.
   Colores de fondo, iconos, contador del carrito y padding de la barra en Theme Editor (Cabecera móvil / Carrito).
   -------------------------------------------------------------------------- */
#mobile-header #mobile-header-sticky {
    border-bottom: 1px solid #27272A;
}

#mobile-header #mobile-header-sticky .container {
    padding: 0 16px;
}

#mobile-header .row-mobile-header {
    height: 63px;
    flex-wrap: nowrap;
    margin: 0;
}

/* Menú y acciones con el mismo ancho para que el logo quede en el centro exacto */
#mobile-header .col-mobile-btn-menu,
#mobile-header .col-mobile-actions {
    flex: 1 1 0;
    min-width: 0;
    padding: 0;
}

#mobile-header .col-mobile-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
}

#mobile-header .col-mobile-logo {
    flex: 0 0 auto;
    padding: 0 12px;
}

#mobile-header .col-mobile-logo img {
    width: auto;
    height: 31px;
}

#mobile-header .m-nav-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
}

#mobile-header .m-nav-btn i {
    width: auto;
    font-size: 22px;
    line-height: 22px;
}

#mobile-header .col-mobile-btn-menu .m-nav-btn {
    justify-content: flex-start;
}

#mobile-header .col-mobile-btn-menu .m-nav-btn i {
    font-size: 24px;
    line-height: 24px;
}

#mobile-header #mobile-cart-products-count {
    top: -8px;
    right: -9px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 8px;
    font-family: 'Switzer', sans-serif;
    font-size: 10px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
}

/* --------------------------------------------------------------------------
   Footer móvil según Figma "Parrilla de producto", Web Mobile: una sola columna con logo, texto y redes,
   los tres bloques de enlaces siempre abiertos, línea separadora y copyright + enlaces legales centrados.
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    #footer-container-main {
        padding: 64px 0 32px;
        border-top: 1px solid #27272A;
    }

    #footer-container-main > .container {
        padding: 0 24px;
    }

    #footer-container-main .row {
        flex-direction: column;
        margin: 0;
    }

    #footer-container-main .row > .block {
        flex: 0 0 auto;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
    }

    #footer #iqithtmlandbanners-block-4 .block-content {
        max-width: none;
    }

    #footer #iqithtmlandbanners-block-4 img {
        width: 146px;
        height: auto;
        margin-bottom: 8px !important;
    }

    #footer #iqithtmlandbanners-block-4 p {
        margin: 0 0 24px;
        font-size: 16px;
        font-weight: 500;
        line-height: 24px;
        color: #9F9FA9;
    }

    #footer #p-redes-sociales {
        gap: 16px;
        margin: 8px 0 40px !important;
    }

    #footer #p-redes-sociales .red-social {
        margin: 0 !important;
    }

    /* Bloques de enlaces: sin acordeón en móvil, como en el diseño */
    #footer .block-iqitlinksmanager {
        margin-bottom: 40px !important;
    }

    #footer .block-iqitlinksmanager .block-title {
        margin: 0 0 24px;
        padding: 0;
        font-size: 16px;
        line-height: 24px;
        letter-spacing: -0.4px;
        pointer-events: none;
    }

    #footer .block-iqitlinksmanager .block-title::after,
    #footer .block-iqitlinksmanager .block-title i {
        display: none;
    }

    #footer .block-iqitlinksmanager .block-content {
        display: block !important;
        height: auto !important;
        padding: 0;
    }

    #footer .block-iqitlinksmanager ul {
        display: flex;
        flex-direction: column;
        gap: 12px;
        margin: 0;
    }

    #footer .block-iqitlinksmanager ul > li {
        margin: 0;
        padding: 0;
    }

    #footer .block-iqitlinksmanager ul > li a {
        font-size: 14px;
        font-weight: 500;
        line-height: 20px;
        color: #9F9FA9;
    }

    /* Copyright y enlaces legales */
    #footer-container-main .row:last-of-type {
        margin-top: 24px;
        padding-top: 32px;
        border-top: 1px solid #18181B;
        gap: 16px;
        text-align: center;
    }

    #footer-container-main .row:last-of-type p {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 4px 16px;
        margin: 0;
        font-size: 12px;
        font-weight: 500;
        line-height: 16px;
        text-align: center !important;
    }

    #footer-container-main .row:last-of-type a {
        margin: 0 !important;
        font-size: 12px;
        line-height: 16px;
    }
}

/* --------------------------------------------------------------------------
   Menú móvil (iqitmegamenu). Colores, tipografías, bordes y espaciados en Theme Editor > Menú móvil;
   aquí solo lo que no tiene opción: título del panel en una línea, iconos y estado pulsado.
   -------------------------------------------------------------------------- */
#iqitmegamenu-mobile .mobile-menu__header-wrapper {
    min-height: 64px;
    align-items: center;
}

#iqitmegamenu-mobile .mobile-menu__header {
    min-width: 0;
}

#iqitmegamenu-mobile .mobile-menu__back-btn {
    display: flex;
    align-items: center;
    max-width: 100%;
    color: inherit;
}

#iqitmegamenu-mobile .mobile-menu__back-btn .fa-chevron-left {
    margin-right: 12px !important;
    font-size: 16px;
}

#iqitmegamenu-mobile .mobile-menu__title {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

#iqitmegamenu-mobile .mobile-menu__close {
    color: inherit;
    font-size: 22px;
}

#iqitmegamenu-mobile .mobile-menu__link:active,
#iqitmegamenu-mobile .mobile-menu__links-list-li a:active,
#iqitmegamenu-mobile .mobile-menu__column-title:active {
    color: #5BC401 !important;
}

/* --------------------------------------------------------------------------
   Ficha de producto en móvil - según Figma "Ficha de producto" (Web Mobile).
   Solo los elementos que ya existen en la ficha (sin seQura, entrega, Amazon Pay, MotoCoins, "Por qué comprarlo
   aquí", opiniones ni barra fija inferior). La galería asoma la imagen siguiente (custom.js).
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {

    /* Breadcrumb con línea inferior de extremo a extremo */
    body#product #wrapper .breadcrumb {
        margin-inline: calc(50% - 50vw);
        padding-inline: calc(50vw - 50%);
        border-bottom: 1px solid #E4E4E7;
    }

    /* Márgenes laterales de 16px como en el diseño */
    body#product #inner-wrapper {
        padding-left: 16px;
        padding-right: 16px;
    }

    body#product .product-info-row > [class*="col-"] {
        padding-left: 0;
        padding-right: 0;
    }

    body#product .product-info-row > [class*="col-"] #product-images-large {
        overflow: visible;
    }

    /* Sin franja gris ni tarjeta blanca: todo sobre blanco */
    body#product .product-info-row {
        padding: 32px 0 0;
        background: none;
        box-shadow: none;
        clip-path: none;
    }

    /* 52px entre la galería y la marca: 24px los pone el hueco de hooks bajo la galería (.after-cover-tumbnails2) */
    body#product .col-product-info {
        margin-top: 0;
    }

    body#product #col-product-info {
        margin-top: 28px;
        padding: 0;
        border-radius: 0;
        background: none;
    }

    /* Galería: cajas cuadradas #FAFAFA de ~90% del ancho, 12px entre ellas y sin puntos */
    body#product .column-images .product-lmage-large {
        display: flex;
        align-items: center;
        justify-content: center;
        width: calc(100% - 37px);
        aspect-ratio: 1 / 1;
        padding: 40px;
        border: 1px solid #F4F4F5;
        background: #FAFAFA;
    }

    body#product .column-images .product-lmage-large picture {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 100%;
    }

    body#product .column-images .product-lmage-large img {
        max-width: 100%;
        max-height: 100%;
    }

    body#product .col-product-image .swiper-pagination-product,
    body#product .col-product-image .swiper-button-arrow,
    body#product .column-images .expander {
        display: none;
    }

    /* Cabecera de producto */
    body#product .product_header_container .page-title {
        font-size: 32px;
        line-height: 37px;
        letter-spacing: -1px;
    }

    body#product .product-reference {
        font-size: 13px;
    }

    body#product .product-price-row {
        padding-top: 24px;
    }

    body#product .product-price-row .current-price-value {
        font-size: 36px;
        line-height: 40px;
    }

    body#product .product-cheaper-link {
        font-size: 13px;
    }

    /* Secciones inferiores */
    body#product .product-sections-content > .block-section {
        padding-top: 56px;
    }

    /* "También te puede interesar": rejilla de 2 columnas, nombres en dos líneas */
    body#product .product-related {
        padding: 40px calc(50vw - 50%);
    }

    body#product .product-related-list {
        grid-auto-flow: row;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-columns: auto;
        overflow: visible;
    }

    body#product .product-related-name {
        display: -webkit-box;
        font-size: 13px;
        line-height: 19px;
        white-space: normal;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    body#product .product-related-price {
        font-size: 14px;
        line-height: 20px;
    }

    body#product .product-related-regular-price {
        font-size: 10px;
    }
}

/* --------------------------------------------------------------------------
   Home (iqitelementor). Tamaños, márgenes, columnas por dispositivo y alineaciones se gestionan en Elementor
   (pestañas Tablet / Móvil de cada elemento). Aquí solo lo que Elementor no permite.
   -------------------------------------------------------------------------- */

/* Cajas con icono a la izquierda (ventajas, Visítanos): Elementor las apila en móvil; se mantiene icono + texto */
@media (max-width: 767px) {
    .elementor-widget-image-box.elementor-position-left .elementor-image-box-wrapper {
        display: flex;
        align-items: center;
        text-align: left;
    }

    .elementor-widget-image-box.elementor-position-left .elementor-image-box-img {
        flex: 0 0 auto;
        width: 28px !important;
        margin: 0 12px 0 0 !important;
    }

    .elementor-widget-image-box.elementor-position-left .elementor-image-box-content {
        flex: 1 1 auto;
        min-width: 0;
    }

    /* El título es un <span>: en bloque para que su interlineado no herede el del párrafo al partirse */
    .elementor-widget-image-box.elementor-position-left .elementor-image-box-title {
        display: block;
    }
}

/* Pestañas de productos (ProductsListTabs): en una línea con desplazamiento horizontal y tamaño menor */
@media (max-width: 991px) {
    .tabs-productos-home .nav-tabs {
        flex-wrap: nowrap;
        gap: 24px;
        margin-bottom: 32px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .tabs-productos-home .nav-tabs::-webkit-scrollbar {
        display: none;
    }

    .tabs-productos-home .nav-tabs .nav-item {
        flex: 0 0 auto;
    }

    .tabs-productos-home .nav-tabs .nav-link {
        padding: 0;
        font-size: 28px;
        line-height: 34px;
        white-space: nowrap;
    }

    .tabs-productos-home .products-grid {
        margin: 0px;
    }
}

@media (max-width: 767px) {
    .tabs-productos-home .nav-tabs {
        gap: 20px;
        margin-bottom: 24px;
    }

    .tabs-productos-home .nav-tabs .nav-link {
        font-size: 20px;
        line-height: 26px;
    }
}

/* ==========================================================================
   Blog (ph_simpleblog) - post individual
   El contenido de cada post es Elementor y sus estilos (tipografías, colores, márgenes, ancho de 860px de la
   sección) se gestionan desde el propio editor. Aquí solo lo que Elementor no alcanza:
   - la cabecera del post (título y datos), que es plantilla del módulo, alineada con la sección de 860px;
   - lo que va dentro del HTML del "Editor de texto": separación entre párrafos, negritas y enlaces.
   ========================================================================== */
body#module-ph_simpleblog-single .page-header,
body#module-ph_simpleblog-single .simpleblog__postInfo {
    max-width: 860px;
    margin-inline: auto;
}

body#module-ph_simpleblog-single .page-header .page-title {
    margin: 8px 0 12px;
    font-size: 32px;
    font-weight: 700;
    line-height: 38px;
    color: #18181B;
    text-transform: none;
}

body#module-ph_simpleblog-single .simpleblog__postInfo {
    margin-bottom: 24px;
    font-size: 13px;
    color: #71717B;
}

body#module-ph_simpleblog-single .simpleblog__post__content {
    padding: 0;
}

body#module-ph_simpleblog-single .elementor-text-editor p {
    margin: 0 0 16px;
}

body#module-ph_simpleblog-single .elementor-text-editor strong,
body#module-ph_simpleblog-single .elementor-text-editor b {
    font-weight: 600;
    color: #18181B;
}

body#module-ph_simpleblog-single .elementor-text-editor a {
    color: #18181B;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body#module-ph_simpleblog-single .elementor-text-editor a:hover {
    color: #5BC401;
}

@media (max-width: 767px) {
    body#module-ph_simpleblog-single .page-header .page-title {
        font-size: 26px;
        line-height: 32px;
    }
}

/* Tablas de los posts (comparativas y tablas de tallas): van dentro del "Editor de texto", que no tiene ajustes de tabla */
body#module-ph_simpleblog-single .blog-table-wrap {
    overflow-x: auto;
}

body#module-ph_simpleblog-single .blog-table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    font-size: 14px;
    line-height: 20px;
}

body#module-ph_simpleblog-single .blog-table th,
body#module-ph_simpleblog-single .blog-table td {
    padding: 12px;
    border: 1px solid #E4E4E7;
    vertical-align: middle;
    text-align: center;
}

body#module-ph_simpleblog-single .blog-table th {
    background: #18181B;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.6px;
    color: #FFFFFF;
    text-transform: uppercase;
}

body#module-ph_simpleblog-single .blog-table tbody tr:nth-child(even) td {
    background: #FAFAFA;
}

body#module-ph_simpleblog-single .blog-table-compare td:first-child {
    width: 96px;
}

body#module-ph_simpleblog-single .blog-table-compare img {
    display: block;
    width: 72px;
    height: 72px;
    margin: 0 auto;
    object-fit: contain;
    mix-blend-mode: multiply;
}

body#module-ph_simpleblog-single .elementor-text-editor .blog-table-button {
    display: inline-block;
    padding: 8px 16px;
    background: #5BC401;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 0.6px;
    color: #000000;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}

body#module-ph_simpleblog-single .elementor-text-editor .blog-table-button:hover {
    background: #4FA901;
    color: #000000;
}

/* ==========================================================================
   Blog (ph_simpleblog) - listado: miniaturas de post como las tarjetas de producto
   (plantilla en themes/motopasion/modules/ph_simpleblog/.../_partials/post-miniature.tpl)
   ========================================================================== */
/* Cabecera del listado (list.tpl del tema hijo): misma franja que la cabecera de los listados de producto
   (sdiextras): de extremo a extremo con líneas arriba y abajo, título en mayúsculas, descripción y pastillas */
.blog-list-header {
    margin-inline: calc(50% - 50vw);
    padding: 32px calc(50vw - 50%) 24px;
    border-top: 1px solid #E4E4E7;
    border-bottom: 1px solid #E4E4E7;
}

body[id^="module-ph_simpleblog"] #wrapper {
    overflow-x: clip;
}

.blog-list-title {
    margin: 0 0 16px;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.1;
    color: #18181B;
    text-transform: uppercase;
}

.blog-list-description {
    max-width: 672px;
    margin-bottom: 24px;
    font-size: 14px;
    line-height: 1.7;
    color: #71717B;
}

.blog-list-description p:last-child {
    margin-bottom: 0;
}

body[id^="module-ph_simpleblog"] .simpleblog__listing {
    margin-top: 32px;
}

.simpleblog__listing > .row > .simpleblog__listing__post {
    display: flex;
    margin-bottom: 24px;
}

.blog-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    border: 1px solid #E4E4E7;
    background: #FFFFFF;
    transition: border-color 0.2s ease;
}

.blog-card:hover {
    border-color: #D4D4D8;
}

.blog-card-image {
    display: block;
    aspect-ratio: 423 / 349;
    overflow: hidden;
    background: #FAFAFA;
}

.blog-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.blog-card:hover .blog-card-image img {
    transform: scale(1.03);
}

.blog-card-info {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 16px 16px 20px;
    border-top: 1px solid #F4F4F5;
}

.blog-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    margin: 0;
    font-size: 10px;
    font-weight: 700;
    line-height: 15px;
    letter-spacing: 1px;
    color: #9F9FA9;
    text-transform: uppercase;
}

#main .blog-card-meta a {
    color: inherit;
}

.blog-card-title {
    margin: 6px 0 0;
    padding: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 22px;
    text-transform: none;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

#main .blog-card-title a {
    color: #18181B;
}

#main .blog-card-title a:hover {
    color: #5BC401;
}

.blog-card-excerpt {
    margin: 8px 0 0;
    font-size: 14px;
    line-height: 20px;
    color: #71717B;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

#main .blog-card-more {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 8px;
    margin-top: auto;
    padding-top: 16px;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 0.6px;
    color: #18181B;
    text-transform: uppercase;
    transition: color 0.2s ease;
}

.blog-card-more i {
    transition: transform 0.2s ease;
}

#main .blog-card-more:hover {
    color: #5BC401;
}

.blog-card-more:hover i {
    transform: translateX(3px);
}

/* Pastillas de categorías encima del listado (list.tpl del tema hijo): mismo aspecto que las de subcategorías
   de los listados de producto (sdiextras) */
.blog-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

#main .blog-category-pill {
    display: inline-block;
    padding: 9px 16px;
    border: 1px solid #E4E4E7;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.5px;
    color: #777777;
    text-transform: uppercase;
    white-space: nowrap;
    transition: border-color 0.2s, background-color 0.2s, color 0.2s;
}

#main .blog-category-pill:hover,
#main .blog-category-pill:focus {
    border-color: #18181B;
    color: #18181B;
    text-decoration: none;
}

#main .blog-category-pill.active {
    border-color: #18181B;
    background-color: #18181B;
    color: #FFFFFF;
}

@media (max-width: 767px) {
    .blog-list-header {
        padding-top: 24px;
        padding-bottom: 16px;
    }

    .blog-list-title {
        font-size: 26px;
    }

    .simpleblog__listing > .row > .simpleblog__listing__post {
        margin-bottom: 16px;
    }

    .blog-categories {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
        -webkit-overflow-scrolling: touch;
    }
}

/* ==========================================================================
   Páginas CMS migradas de la tienda antigua: el contenido es Elementor (estilos en los widgets); aquí solo la
   cabecera de la página (plantilla del tema), con la misma franja que los listados de producto y el blog.
   Contacto (5) y Nuestras tiendas (4) llevan su propia cabecera en Elementor y la ocultan (ver arriba).
   ========================================================================== */
body#cms #wrapper {
    overflow-x: clip;
}

body#cms:not(.cms-id-4):not(.cms-id-5) #main > .page-header {
    margin: 0 calc(50% - 50vw) 32px;
    padding: 32px calc(50vw - 50%) 24px;
    border-top: 1px solid #E4E4E7;
    border-bottom: 1px solid #E4E4E7;
}

body#cms:not(.cms-id-4):not(.cms-id-5) #main > .page-header .page-title {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.1;
    color: #18181B;
    text-transform: uppercase;
}

@media (max-width: 767px) {
    body#cms:not(.cms-id-4):not(.cms-id-5) #main > .page-header {
        padding-top: 24px;
        padding-bottom: 16px;
    }

    body#cms:not(.cms-id-4):not(.cms-id-5) #main > .page-header .page-title {
        font-size: 26px;
    }
}

/* Títulos y enlaces escritos dentro del HTML de los "Editor de texto" migrados (Elementor no tiene ajustes para ellos) */
body#cms .elementor-text-editor :is(h1, h2, h3, h4, h5, h6) {
    color: #18181B;
}

body#cms .elementor-text-editor strong,
body#cms .elementor-text-editor b {
    color: #18181B;
}

body#cms .elementor-text-editor a:not(.elementor-button) {
    color: #18181B;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body#cms .elementor-text-editor a:not(.elementor-button):hover {
    color: #5BC401;
}

/* Listado de cookies de CookiesPlus en la Política de cookies (lo inserta cms/page.tpl en el widget HTML de Elementor).
   Es HTML del módulo, sin ajustes en Elementor: mismo aspecto que los textos y las tablas del resto de páginas. */
body#cms .cookiesplus-finalities-cms {
    color: #52525C;
}

body#cms .cookieplus-finality-container {
    padding: 32px 0 0;
    border-top: 1px solid #E4E4E7;
}

body#cms .cookieplus-finality-container + .cookieplus-finality-container {
    margin-top: 32px;
}

body#cms .cookiesplus-finality-title-cms {
    margin: 0 0 12px;
    font-size: 20px;
    font-weight: 700;
    line-height: 26px;
    color: #18181B;
}

body#cms .cookiesplus-finality-title-cms strong {
    font-weight: inherit;
}

body#cms .cookiesplus-finality-body-cms > p {
    margin: 0 0 20px;
    font-size: 16px;
    line-height: 26px;
    color: #52525C;
}

body#cms .cookies-detail-list-cms {
    width: 100%;
    margin: 0;
    border: 0;
    border-collapse: collapse;
    font-size: 14px;
    line-height: 20px;
    color: #52525C;
}

body#cms .cookies-detail-list-cms th,
body#cms .cookies-detail-list-cms td {
    --bs-table-accent-bg: transparent;
    --bs-table-bg-type: transparent;
    padding: 12px;
    border: 1px solid #E4E4E7;
    background: #FFFFFF;
    box-shadow: none;
    vertical-align: top;
    text-align: left;
}

body#cms .cookies-detail-list-cms thead th {
    border-color: #18181B;
    background: #18181B;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 0.6px;
    color: #FFFFFF;
    text-transform: uppercase;
    white-space: nowrap;
}

body#cms .cookies-detail-list-cms tbody tr:nth-child(even) td {
    background: #FAFAFA;
}

body#cms .cookies-detail-list-cms td:first-child {
    font-weight: 600;
    color: #18181B;
    white-space: nowrap;
}

body#cms .cookies-detail-list-cms a {
    color: #18181B;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body#cms .cookies-detail-list-cms a:hover {
    color: #5BC401;
}

/* En móvil la tabla se apila: cada fila es una tarjeta con la etiqueta de cada dato (data-label del módulo) */
@media (max-width: 767px) {
    body#cms .cookies-detail-list-cms thead {
        display: none;
    }

    body#cms .cookies-detail-list-cms,
    body#cms .cookies-detail-list-cms tbody,
    body#cms .cookies-detail-list-cms tr,
    body#cms .cookies-detail-list-cms td {
        display: block;
        width: 100%;
    }

    body#cms .cookies-detail-list-cms tr {
        margin-bottom: 12px;
        border: 1px solid #E4E4E7;
    }

    body#cms .cookies-detail-list-cms td,
    body#cms .cookies-detail-list-cms tbody tr:nth-child(even) td {
        border: 0;
        border-bottom: 1px solid #F4F4F5;
        background: #FFFFFF;
        white-space: normal;
    }

    body#cms .cookies-detail-list-cms td:last-child {
        border-bottom: 0;
    }

    body#cms .cookies-detail-list-cms td::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 2px;
        font-size: 11px;
        font-weight: 700;
        line-height: 16px;
        letter-spacing: 0.6px;
        color: #9F9FA9;
        text-transform: uppercase;
    }
}

/* Títulos y tablas escritos dentro del HTML de los "Editor de texto" de las páginas CMS: mismos tamaños que los
   widgets de título (24/30 y 20/26) y mismo estilo de tabla que el blog y la Política de cookies */
body#cms .elementor-text-editor :is(h1, h2) {
    margin: 24px 0 12px;
    font-size: 24px;
    font-weight: 700;
    line-height: 30px;
}

body#cms .elementor-text-editor h3 {
    margin: 20px 0 10px;
    font-size: 20px;
    font-weight: 700;
    line-height: 26px;
}

body#cms .elementor-text-editor :is(h4, h5, h6) {
    margin: 16px 0 8px;
    font-size: 17px;
    font-weight: 700;
    line-height: 24px;
}

body#cms .elementor-text-editor p {
    margin: 0 0 16px;
}

body#cms .elementor-text-editor .cms-table {
    width: 100%;
    max-width: 100%;
    margin: 8px 0 24px;
    border-collapse: collapse;
    font-size: 14px;
    line-height: 20px;
}

body#cms .elementor-text-editor .cms-table td,
body#cms .elementor-text-editor .cms-table th {
    padding: 12px;
    border: 1px solid #E4E4E7;
    vertical-align: top;
}

body#cms .elementor-text-editor .cms-table tr:nth-child(even) td {
    background: #FAFAFA;
}

body#cms .elementor-text-editor .cms-table th,
body#cms .elementor-text-editor .cms-table tr:first-child td:only-child {
    background: #18181B;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 0.6px;
    color: #FFFFFF;
    text-transform: uppercase;
}

body#cms .elementor-text-editor .cms-table tr:first-child td:only-child strong {
    color: inherit;
}

body#cms .elementor-text-editor .cms-table p:last-child {
    margin-bottom: 0;
}

/* ==========================================================================
   Páginas estándar de PrestaShop: acceso, registro, contraseña, cuenta del cliente, carrito y checkout.
   Colores de botones, campos, casillas, enlaces, textos, títulos de página y avisos van en el Theme Editor
   (Botones, Formularios, Contenido, Etiquetas y avisos). Aquí solo la maquetación que el Theme Editor no cubre,
   con las mismas medidas que el formulario de Contacto del diseño.
   ========================================================================== */

/* Cabecera: misma franja que los listados, el blog y las páginas CMS */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) #wrapper,
body#cart #wrapper,
body#checkout #wrapper,
body#order-confirmation #wrapper {
    overflow-x: clip;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) #main > .page-header,
body#order-confirmation #main > .page-header,
body#cart #main > .page-title,
body#checkout #main > .page-title {
    margin: 0 calc(50% - 50vw) 40px;
    padding: 32px calc(50vw - 50%) 24px;
    border-top: 1px solid #E4E4E7;
    border-bottom: 1px solid #E4E4E7;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) #main > .page-header .page-title,
body#order-confirmation #main > .page-header .page-title {
    margin: 0;
    padding: 0;
    border: 0;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) #content-wrapper .page-title,
body#order-confirmation #content-wrapper .page-title,
body#cart #content-wrapper .page-title,
body#checkout #content-wrapper .page-title {
    line-height: 1.1;
}

@media (max-width: 767px) {
    :is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) #main > .page-header,
    body#order-confirmation #main > .page-header,
    body#cart #main > .page-title,
    body#checkout #main > .page-title {
        margin-bottom: 24px;
        padding-top: 24px;
        padding-bottom: 16px;
    }

    :is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) #content-wrapper .page-title,
    body#order-confirmation #content-wrapper .page-title,
    body#cart #content-wrapper .page-title,
    body#checkout #content-wrapper .page-title {
        font-size: 26px;
    }
}

/* --- Formularios: etiqueta en mayúsculas encima del campo, como en Contacto --- */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group.row {
    margin: 0 0 20px;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group.row > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
    padding: 0;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group.row > .col-form-label {
    margin: 0 0 6px;
    padding: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 0.6px;
    color: #52525C;
    text-align: left;
    text-transform: uppercase;
}

/* Las casillas no llevan etiqueta arriba: la columna vacía no debe dejar hueco */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group.row > .col-form-label:empty {
    display: none;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group.row > .col-form-label.required::after {
    content: ' *';
    color: #52525C;
}

/* "Opcional": a la derecha de la etiqueta */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group.row {
    position: relative;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group.row > .form-control-comment {
    position: absolute;
    top: 0;
    right: 0;
    width: auto;
    max-width: none;
    font-size: 12px;
    line-height: 16px;
    color: #9F9FA9;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-control {
    height: 42px;
    padding: 10px 14px;
    border-radius: 4px;
    font-size: 14px;
    line-height: 20px;
    box-shadow: none;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout, body#cart) #content-wrapper .form-control::placeholder {
    color: #9F9FA9;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper select.form-control:not([size]):not([multiple]) {
    height: 42px;
}

/* Contraseña: el botón del ojo dentro del mismo campo */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .input-group:has(> .form-control) {
    flex-wrap: nowrap;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .input-group > .form-control:not(:last-child) {
    border-right: 0;
    border-radius: 4px 0 0 4px;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .input-group :is(.input-group-btn, .input-group-append) > .btn {
    height: 42px;
    padding: 0 14px;
    border: 1px solid #E4E4E7;
    border-left: 0;
    border-radius: 0 4px 4px 0;
    background: #FAFAFA;
    color: #71717B;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .input-group :is(.input-group-btn, .input-group-append) > .btn:hover {
    color: #18181B;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .input-group:focus-within .form-control,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .input-group:focus-within :is(.input-group-btn, .input-group-append) > .btn {
    border-color: #18181B;
    background: #FFFFFF;
}

/* Textos de ayuda bajo los campos */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group .form-text,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group small,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group .help-block {
    margin-top: 6px;
    font-size: 12px;
    line-height: 18px;
    color: #71717B;
}

/* Tratamiento (Sr. / Sra.) */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-control-valign {
    display: flex;
    gap: 24px;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .radio-inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 14px;
    color: #18181B;
    cursor: pointer;
}

/* Casillas (condiciones, boletín, privacidad...) */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .custom-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .custom-checkbox input[type="checkbox"] + span {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
    border-radius: 4px;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .custom-checkbox > label {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    color: #18181B;
    text-align: left;
    cursor: pointer;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .custom-checkbox > label em,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .custom-checkbox > label i:not(.fa) {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 18px;
    color: #71717B;
}

/* --- Botones: medidas del botón de Contacto (los colores, del Theme Editor) --- */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#cart, body#checkout, body#order-confirmation) #content-wrapper .btn:not(.btn-link):not(.input-group-btn > .btn):not(.input-group-append > .btn):not(.bootstrap-touchspin .btn) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 12px 28px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    letter-spacing: 0.35px;
    text-transform: uppercase;
    transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

/* --- Formularios cortos (acceso, registro, contraseña, seguimiento de invitado): tarjeta centrada --- */
:is(body#authentication, body#registration, body#password, body#guest-tracking) #content.page-content {
    max-width: 560px;
    margin: 0 auto;
    padding: 40px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FFFFFF;
    box-shadow: none;
}

:is(body#authentication, body#registration, body#password, body#guest-tracking) #content .form-footer {
    margin: 8px 0 0;
}

:is(body#authentication, body#registration, body#password, body#guest-tracking) #content .form-footer .btn,
:is(body#authentication, body#password) #content .form-control-submit {
    width: 100%;
}

:is(body#authentication, body#registration, body#password, body#guest-tracking) #content hr {
    margin: 32px 0;
    border-color: #E4E4E7;
    opacity: 1;
}

@media (max-width: 575px) {
    :is(body#authentication, body#registration, body#password, body#guest-tracking) #content.page-content {
        padding: 24px 16px;
    }
}

/* Acceso */
body#authentication .forgot-password {
    margin: -8px 0 24px;
    text-align: right;
}

body#authentication .forgot-password a,
body#registration .register-form > p a,
body#password .page-content a {
    font-size: 14px;
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body#authentication .no-account {
    margin: 0;
    text-align: center;
}

body#authentication .no-account a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.35px;
    text-transform: uppercase;
}

/* --- Cuenta del cliente: menú lateral y contenido --- */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) #content.my-account-page-content-wrapper {
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content-wrapper > .row {
    row-gap: 32px;
    margin: 0;
}

@media (min-width: 576px) {
    :is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content-wrapper > .row > .my-account-side-links {
        flex: 0 0 280px;
        max-width: 280px;
    }

    :is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content-wrapper > .row > .my-account-page-content {
        flex: 1 1 0;
        max-width: none;
        min-width: 0;
        padding-right: 0;
    }
}

/* Formularios de la cuenta (datos personales, dirección...): ancho de lectura cómodo */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content form {
    max-width: 720px;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-side-links {
    display: flex;
    flex-direction: column;
    align-self: flex-start;
    padding: 8px 0;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FAFAFA;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-side-links > a,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-side-links > .list-group-item {
    display: block;
    flex: none;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-side-links .link-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    border: 0;
    border-left: 3px solid transparent;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    color: #52525C;
    transition: color 0.2s, background-color 0.2s;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-side-links .link-item i {
    width: 18px;
    margin: 0;
    font-size: 15px;
    color: #71717B;
    text-align: center;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-side-links a:hover .link-item {
    color: #18181B;
    background: #F4F4F5;
}

/* Sección actual (el tema no la marca): por el id de la página */
body#identity #identity-link .link-item,
:is(body#addresses, body#address) :is(#addresses-link, #address-link) .link-item,
:is(body#history, body#order-detail) #history-link .link-item,
body#order-slip #order-slips-link .link-item,
body#discount #discounts-link .link-item,
:is(body#order-follow, body#order-return) #returns-link .link-item,
body#module-psgdpr-gdpr #psgdpr-link .link-item,
body#module-ps_emailalerts-account #emailsalerts .link-item {
    border-left-color: #5BC401;
    background: #FFFFFF;
    font-weight: 700;
    color: #18181B;
}

body#identity #identity-link .link-item i,
:is(body#addresses, body#address) :is(#addresses-link, #address-link) .link-item i,
:is(body#history, body#order-detail) #history-link .link-item i,
body#order-slip #order-slips-link .link-item i,
body#discount #discounts-link .link-item i,
:is(body#order-follow, body#order-return) #returns-link .link-item i,
body#module-psgdpr-gdpr #psgdpr-link .link-item i,
body#module-ps_emailalerts-account #emailsalerts .link-item i {
    color: #18181B;
}

/* "Cerrar sesión" separado del resto */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-side-links > a:last-child {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #E4E4E7;
}

@media (min-width: 576px) {
    :is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content {
        padding-left: 40px;
    }
}

/* Título de cada sección dentro de la cuenta */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content > h2,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content h1:not(.page-title),
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content > h3 {
    margin: 0 0 24px;
    font-size: 24px;
    font-weight: 700;
    line-height: 30px;
    color: #18181B;
    text-transform: uppercase;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content p,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content li {
    font-size: 14px;
    line-height: 22px;
}

/* Panel: tarjetas por sección (customer/my-account.tpl del tema hijo) */
.mp-account-intro {
    margin: 0 0 24px;
}

.mp-account-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}

#wrapper .mp-account-cards .mp-account-card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 24px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FFFFFF;
    color: #52525C;
    transition: border-color 0.2s;
}

#wrapper .mp-account-cards .mp-account-card:hover {
    border-color: #18181B;
}

.mp-account-card > i {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0 0 10px;
    border-radius: 4px;
    background: #F4F4F5;
    font-size: 17px;
    color: #18181B;
}

.mp-account-card:hover > i {
    background: #5BC401;
    color: #000000;
}

.mp-account-card-title {
    font-size: 15px;
    font-weight: 700;
    line-height: 20px;
    color: #18181B;
    text-transform: uppercase;
}

.mp-account-card-text {
    font-size: 13px;
    line-height: 19px;
    color: #71717B;
}

/* Direcciones */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .addresses-page-content-wrapper,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .row:has(> [class*="col"] > .address) {
    row-gap: 16px;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .address {
    height: 100%;
    margin: 0;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FFFFFF;
    box-shadow: none;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .address .address-body {
    padding: 24px 24px 16px;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .address .address-body h4 {
    margin: 0 0 12px;
    font-size: 16px;
    font-weight: 700;
    line-height: 20px;
    color: #18181B;
    text-transform: uppercase;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .address address {
    margin: 0;
    font-size: 14px;
    line-height: 22px;
    color: #52525C;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .address .address-footer {
    display: flex;
    gap: 20px;
    padding: 14px 24px;
    border-top: 1px solid #E4E4E7;
    text-align: left;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .address .address-footer a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.35px;
    color: #18181B;
    text-transform: uppercase;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .address .address-footer a:hover {
    color: #5BC401;
}

/* "Crear nueva dirección" / "Añadir nueva dirección" */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .addresses-footer a,
body#checkout .add-address a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.35px;
    color: #18181B;
    text-transform: uppercase;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .addresses-footer {
    margin-top: 24px;
}

/* Tablas: historial de pedidos, facturas por abono, vales, devoluciones, detalle de pedido */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .table,
body#order-confirmation .table,
body#checkout .table {
    margin: 0 0 32px;
    border: 1px solid #E4E4E7;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 4px;
    overflow: hidden;
    --bs-table-bg-type: transparent;
    --bs-table-accent-bg: transparent;
    --bs-table-striped-bg: transparent;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .table > :not(caption) > * > *,
body#order-confirmation .table > :not(caption) > * > * {
    padding: 14px 16px;
    border: 0;
    border-bottom: 1px solid #E4E4E7;
    background: none;
    box-shadow: none;
    font-size: 14px;
    line-height: 20px;
    color: #52525C;
    vertical-align: middle;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .table > tbody > tr:last-child > *,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .table > tfoot > tr:last-child > *,
body#order-confirmation .table > tbody > tr:last-child > * {
    border-bottom: 0;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .table thead th,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .table .thead-default th,
body#order-confirmation .table thead th {
    background: #FAFAFA;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.6px;
    color: #18181B;
    text-transform: uppercase;
    white-space: nowrap;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .table th[scope="row"],
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .table tbody th {
    font-weight: 700;
    color: #18181B;
}

/* Estado del pedido: pastilla con el color del estado (lo pone PrestaShop en línea) */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .label-pill,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 0.3px;
}

/* Mensajes "No tiene ningún..." */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .alert,
body#cart .alert,
body#checkout .alert {
    padding: 16px 20px;
    border: 0;
    border-radius: 4px;
    font-size: 14px;
    line-height: 22px;
}

/* Bloques de la cuenta que el tema pinta como tarjetas (detalle de pedido, datos personales RGPD, alertas...) */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .box,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .card {
    margin: 0 0 24px;
    padding: 24px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FFFFFF;
    box-shadow: none;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .card > .card-block,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .card > .card-body {
    padding: 0;
}

/* --- Carrito --- */
body#cart .cart-grid {
    row-gap: 32px;
}

body#cart .cart-container {
    margin: 0;
    padding: 0;
    border: 0;
    border-top: 1px solid #E4E4E7;
    background: none;
    box-shadow: none;
}

body#cart .cart-items {
    margin: 0;
}

body#cart .cart-item {
    padding: 24px 0;
    border-bottom: 1px solid #E4E4E7;
}

body#cart .product-line-grid .product-image {
    flex: 0 0 104px;
    max-width: 104px;
}

body#cart .product-line-grid .product-image a {
    display: block;
    padding: 8px;
    background: #FAFAFA;
}

body#cart .product-line-grid .product-image img {
    mix-blend-mode: multiply;
}

body#cart .product-line-info a.label {
    font-size: 16px;
    font-weight: 700;
    line-height: 22px;
    color: #18181B;
}

body#cart .product-line-info a.label:hover {
    color: #5BC401;
}

body#cart .product-line-info-secondary {
    margin-top: 4px;
    font-size: 13px;
    line-height: 18px;
    color: #71717B;
}

body#cart .product-line-info-secondary .label {
    color: #71717B;
}

body#cart .product-line-info-secondary .value {
    font-weight: 600;
    color: #18181B;
}

/* Precio unitario: tachado y descuento como en las tarjetas de producto */
body#cart .product-line-actions .unit-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    font-size: 14px;
    line-height: 20px;
    color: #52525C;
}

body#cart .product-line-actions .regular-price {
    font-size: 12px;
    color: #9F9FA9;
    text-decoration: line-through;
}

body#cart .product-line-actions .discount {
    display: none;
}

body#cart .product-line-actions .price .product-price {
    font-size: 16px;
    font-weight: 700;
    line-height: 22px;
    color: #18181B;
}

/* Cantidad: mismo selector "[ - 1 + ]" que la ficha de producto */
:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: stretch;
    width: auto;
    height: 40px;
    border: 1px solid #D4D4D8;
    background: #FFFFFF;
}

:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .input-group-addon {
    display: none !important;
}

:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .input-group-btn-vertical {
    display: contents;
}

:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .form-control {
    order: 1;
    width: 36px;
    height: 38px;
    padding: 0;
    border: 0;
    background: none;
    font-size: 14px;
    font-weight: 700;
    color: #18181B;
    text-align: center;
    -moz-appearance: textfield;
}

:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .form-control::-webkit-inner-spin-button,
:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .form-control::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .btn-touchspin {
    position: static;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    color: #3F3F47;
}

:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .btn-touchspin:hover {
    color: #18181B;
}

:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .btn-touchspin i {
    display: none;
}

:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .bootstrap-touchspin-down {
    order: 0;
}

:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .bootstrap-touchspin-down::before {
    content: '\2212';
}

:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .bootstrap-touchspin-up {
    order: 2;
}

:is(body#cart, .cart-preview, .blockcart) .bootstrap-touchspin .bootstrap-touchspin-up::before {
    content: '+';
}

/* Quitar producto */
body#cart .cart-line-product-actions .remove-from-cart {
    display: inline-flex;
    padding: 6px;
    font-size: 16px;
    color: #9F9FA9;
}

body#cart .cart-line-product-actions .remove-from-cart:hover {
    color: #18181B;
}

/* Resumen: caja gris como la columna de compra de la ficha */
body#cart .cart-summary,
body#checkout .cart-summary {
    margin: 0 0 24px;
    padding: 24px;
    border: 0;
    border-radius: 4px;
    background: #FAFAFA;
    box-shadow: none;
}

:is(body#cart, body#checkout) .cart-summary .card-body {
    padding: 0;
}

:is(body#cart, body#checkout) .cart-summary hr {
    margin: 16px 0;
    border-color: #E4E4E7;
    opacity: 1;
}

:is(body#cart, body#checkout) .cart-summary hr + hr,
:is(body#cart, body#checkout) .cart-summary-totals + hr {
    display: none;
}

/* El clearfix del tema contaba como tercer elemento y dejaba el importe en el centro */
:is(body#cart, body#checkout) .cart-summary-line::before,
:is(body#cart, body#checkout) .cart-summary-line::after {
    display: none;
}

:is(body#cart, body#checkout) .cart-summary-line > div {
    flex: 0 0 100%;
}

:is(body#cart, body#checkout) .cart-summary-line > div:not(:has(:not(:empty))) {
    display: none;
}

:is(body#cart, body#checkout) .cart-summary-line {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 4px 16px;
    margin: 0 0 8px;
    font-size: 14px;
    line-height: 20px;
}

:is(body#cart, body#checkout) .cart-summary-line .label {
    color: #52525C;
}

:is(body#cart, body#checkout) .cart-summary-line .value {
    font-weight: 600;
    color: #18181B;
}

:is(body#cart, body#checkout) .cart-summary-line.cart-total {
    align-items: baseline;
    margin: 0;
}

:is(body#cart, body#checkout) .cart-summary-line.cart-total .label {
    font-size: 15px;
    font-weight: 700;
    color: #18181B;
    text-transform: uppercase;
}

:is(body#cart, body#checkout) .cart-summary-line.cart-total .value {
    font-size: 22px;
    font-weight: 700;
    line-height: 28px;
}

:is(body#cart, body#checkout) .cart-summary-line small {
    font-size: 12px;
    color: #71717B;
}

/* Finalizar compra: como "Añadir al carrito" */
body#cart .cart-detailed-actions {
    margin-top: 24px;
}

body#cart #content-wrapper .cart-detailed-actions .btn-primary {
    width: 100%;
    height: 56px;
    font-size: 15px;
    letter-spacing: 0.75px;
}

body#cart #content-wrapper .cart-detailed-actions .btn-primary.disabled {
    background: #E4E4E7;
    color: #9F9FA9;
    opacity: 1;
}

/* Código de descuento */
:is(body#cart, body#checkout) .block-promo {
    font-size: 14px;
}

:is(body#cart, body#checkout) .block-promo .promo-code-button,
:is(body#cart, body#checkout) .block-promo .collapse-button {
    font-weight: 700;
    color: #18181B;
    text-decoration: underline;
    text-underline-offset: 2px;
}

:is(body#cart, body#checkout) .block-promo .promo-input {
    height: 42px;
    border-radius: 4px 0 0 4px;
}

:is(body#cart, body#checkout) .block-promo .promo-code form {
    display: flex;
}

:is(body#cart, body#checkout) #content-wrapper .block-promo .promo-code .btn {
    min-height: 42px;
    padding: 0 18px;
    border-radius: 0 4px 4px 0;
}

/* Entrega estimada en el carrito: una caja como el resto de bloques, sin los iconos por línea del módulo */
body#cart #ed_shopping_footer {
    margin-top: 24px;
    padding: 0;
}

body#cart #ed_shopping_footer .estimateddelivery {
    margin: 0;
    padding: 0;
    border: 0;
}

body#cart #ed_shopping_footer .estimateddelivery > div {
    padding: 16px 20px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FFFFFF;
}

body#cart #ed_shopping_footer .ed_orderbefore::before {
    display: none;
}

body#cart #ed_shopping_footer p {
    margin: 0;
    padding: 0;
    font-size: 14px !important;
    line-height: 22px;
    color: #52525C;
}

body#cart #ed_shopping_footer .ed_header {
    margin: 0 0 6px;
}

body#cart #ed_shopping_footer .ed_summary_title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.6px;
    color: #18181B;
    text-transform: uppercase;
}

body#cart #ed_shopping_footer .ed_carrier_name strong {
    font-weight: 600;
    color: #18181B;
}

body#cart #ed_shopping_footer .date_green {
    font-weight: 700;
    color: #18181B;
}

body#cart .cart-grid-body > a.btn-secondary {
    margin: 24px 0 0 !important;
}

/* Carrito vacío */
body#cart.cart-empty .cart-container {
    border-top: 0;
}

/* --- Checkout: pasos como tarjetas con número en círculo --- */
body#checkout #main > .row {
    row-gap: 32px;
}

body#checkout section.checkout-step {
    margin: 0 0 16px;
    padding: 0;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FFFFFF;
    box-shadow: none;
}

body#checkout section.checkout-step.-current {
    border-color: #18181B;
}

body#checkout #content-wrapper section.checkout-step .step-title {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
    padding: 20px 24px;
    border: 0;
    border-radius: 4px 4px 0 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 22px;
    letter-spacing: 0.4px;
    color: #18181B;
    text-transform: uppercase;
}

body#checkout section.checkout-step.-unreachable .step-title {
    color: #9F9FA9;
}

body#checkout section.checkout-step .step-number {
    display: inline-flex;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin: 0;
    border-radius: 50%;
    background: #F4F4F5;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    color: #71717B;
}

body#checkout section.checkout-step.-current .step-number {
    background: #18181B;
    color: #FFFFFF;
}

body#checkout section.checkout-step.-complete:not(.-current) .step-number {
    background: #5BC401;
    color: #000000;
}

/* El check del tema sobra: el círculo verde ya indica que el paso está hecho */
body#checkout section.checkout-step .step-title .done {
    display: none !important;
}

body#checkout section.checkout-step .step-edit {
    margin-left: auto;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.35px;
    color: #18181B !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body#checkout section.checkout-step .step-edit i {
    display: none;
}

body#checkout section.checkout-step .content {
    padding: 0 24px 24px;
}

body#checkout section.checkout-step .content > p,
body#checkout section.checkout-step .content form > p:not(.add-address),
body#checkout section.checkout-step .content .js-address-form > p {
    font-size: 14px;
    line-height: 22px;
    color: #52525C;
}

/* Sesión iniciada: "Conectado como..." */
body#checkout #checkout-personal-information-step .identity {
    font-size: 14px;
}

/* Direcciones: tarjetas seleccionables; el texto alineado con el alias, a la derecha del radio */
body#checkout .address-selector {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
    margin: 0 0 20px;
}

body#checkout .address-selector > p {
    display: contents;
}

body#checkout section.checkout-step .address-item {
    display: flex;
    flex-direction: column;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FFFFFF;
    cursor: pointer;
    transition: border-color 0.2s, box-shadow 0.2s;
}

body#checkout section.checkout-step .address-item:hover {
    border-color: #A1A1AA;
}

body#checkout section.checkout-step .address-item.selected {
    border-color: #18181B;
    box-shadow: inset 0 0 0 1px #18181B;
}

body#checkout section.checkout-step .address-item header {
    padding: 18px 20px 0;
}

body#checkout section.checkout-step .address-item .radio-block {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 0;
    cursor: pointer;
}

body#checkout section.checkout-step .address-item .custom-radio {
    flex: 0 0 18px;
    margin: 0;
}

body#checkout section.checkout-step .address-item .address-alias {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    letter-spacing: 0.4px;
    color: #18181B;
    text-transform: uppercase;
}

body#checkout section.checkout-step .address-item hr {
    display: none;
}

body#checkout section.checkout-step .address-item .address {
    flex: 1;
    margin: 0;
    padding: 8px 20px 18px 50px;
    font-size: 14px;
    line-height: 22px;
    color: #52525C;
}

body#checkout section.checkout-step .address-item .address-footer {
    display: flex;
    gap: 20px;
    margin: 0;
    padding: 12px 20px 12px 50px;
    border-top: 1px solid #F4F4F5;
    text-align: left;
}

body#checkout section.checkout-step .address-item .address-footer a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.35px;
    color: #18181B !important;
    text-transform: uppercase;
}

body#checkout section.checkout-step .address-item .address-footer a i {
    font-size: 12px;
    color: #71717B;
}

body#checkout section.checkout-step .address-item .address-footer a:hover,
body#checkout section.checkout-step .address-item .address-footer a:hover i {
    color: #5BC401 !important;
}

/* Eliminar en gris hasta pasar por encima, para que la acción principal sea Modificar */
body#checkout section.checkout-step .address-item .address-footer .delete-address {
    color: #71717B !important;
}

body#checkout .add-address {
    margin: 0 0 16px;
}

body#checkout .js-address-form a[data-link-action="different-invoice-address"],
body#checkout .js-address-form p > a:not([data-link-action]) {
    font-size: 14px;
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Botón "Continuar" de cada paso */
body#checkout #content-wrapper .checkout-step .continue,
body#checkout #content-wrapper #payment-confirmation .btn {
    width: 100%;
    min-height: 52px;
    margin-top: 16px;
    font-size: 15px;
    letter-spacing: 0.75px;
}

body#checkout #content-wrapper #payment-confirmation .btn.disabled,
body#checkout #content-wrapper #payment-confirmation .btn:disabled {
    background: #E4E4E7;
    color: #9F9FA9;
    opacity: 1;
}

/* Transportistas y formas de pago: una tarjeta por opción */
body#checkout .delivery-options {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

body#checkout .delivery-option,
body#checkout .payment-option {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 16px 20px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FFFFFF;
    transition: border-color 0.2s;
}

body#checkout .delivery-option:has(input:checked),
body#checkout .payment-option:has(input:checked) {
    border-color: #18181B;
    box-shadow: inset 0 0 0 1px #18181B;
}

body#checkout .delivery-option > label {
    flex: 1;
    margin: 0;
    cursor: pointer;
}

body#checkout .delivery-option .carrier-name,
body#checkout .payment-option label span {
    font-size: 14px;
    font-weight: 700;
    color: #18181B;
}

body#checkout .delivery-option .carrier-delay {
    font-size: 13px;
    color: #71717B;
}

body#checkout .delivery-option .carrier-price {
    font-size: 14px;
    font-weight: 700;
    color: #18181B;
}

body#checkout .delivery-option img {
    max-height: 36px;
    width: auto;
}

body#checkout .payment-options > div {
    margin: 0 0 12px;
}

body#checkout .payment-option label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    cursor: pointer;
}

body#checkout .payment-option img {
    max-height: 28px;
    width: auto;
}

body#checkout .additional-information {
    margin: -4px 0 12px;
    padding: 16px 20px;
    border: 1px solid #E4E4E7;
    border-top: 0;
    border-radius: 0 0 4px 4px;
    background: #FAFAFA;
    font-size: 14px;
    line-height: 22px;
    color: #52525C;
}

body#checkout .order-options textarea {
    height: auto;
    min-height: 96px;
}

/* Aceptación de condiciones: caja como la de privacidad del formulario de Contacto */
body#checkout #conditions-to-approve ul {
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

body#checkout #conditions-to-approve li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FAFAFA;
}

body#checkout #conditions-to-approve .condition-label label {
    margin: 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 20px;
    color: #52525C;
    text-align: left;
}

body#checkout #conditions-to-approve .condition-label a {
    font-weight: 700;
    color: #18181B;
    text-decoration: underline;
}

/* Resumen lateral */
body#checkout .cart-summary .card-block {
    padding: 0;
}

body#checkout .cart-summary-products > p,
body#checkout .cart-summary-products > div:first-child {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: #18181B;
}

body#checkout .cart-summary-products a {
    font-size: 12px;
    font-weight: 700;
    color: #18181B;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body#checkout #cart-summary-product-list .media,
body#checkout #cart-summary-product-list .cart-summary-product {
    display: flex;
    gap: 12px;
    margin: 16px 0 0;
    font-size: 13px;
    line-height: 18px;
}

body#checkout #cart-summary-product-list img {
    width: 64px;
    background: #FFFFFF;
}

body#checkout #cart-summary-product-list .product-name {
    font-weight: 700;
    color: #18181B;
}

/* El tema atenúa los pasos que no son el actual: aquí ya se distinguen por el color del número y del título */
body#checkout section.checkout-step:not(.-current) {
    opacity: 1;
}

/* --- Confirmación de pedido --- */
body#order-confirmation #content-hook_order_confirmation {
    margin: 0 0 40px;
    padding: 0;
    border: 0;
    box-shadow: none;
}

body#order-confirmation #content-hook_order_confirmation > .row {
    row-gap: 32px;
}

body#order-confirmation .order-confirmation-title-payment .page-title {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 0 24px;
    padding: 0;
    border: 0;
    line-height: 1.1;
}

body#order-confirmation .order-confirmation-title-payment .page-title i {
    display: inline-flex;
    flex: 0 0 48px;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #5BC401;
    font-size: 22px;
    color: #000000;
}

body#order-confirmation .mail-sent-info {
    margin: 0 0 24px;
    padding: 16px 20px;
    border-radius: 4px;
    background: #FAFAFA;
    font-size: 14px;
    line-height: 22px;
    color: #52525C;
}

body#order-confirmation .order-confirmation-title-payment {
    font-size: 14px;
    line-height: 22px;
}

@media (min-width: 768px) {
    body#order-confirmation .order-confirmation-title-payment {
        padding-right: 40px;
    }
}

/* Entrega estimada (módulo): caja como el resto de bloques, fechas en negrita */
:is(body#order-confirmation, body#order-detail) .estimateddelivery-order.box {
    margin: 0 0 24px;
    padding: 24px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FFFFFF;
    box-shadow: none;
}

:is(body#order-confirmation, body#order-detail) .estimateddelivery-order .page-subheading {
    margin: 0 0 16px;
    padding: 0;
    border: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 24px;
    color: #18181B;
    text-transform: uppercase;
}

:is(body#order-confirmation, body#order-detail) .estimateddelivery-order p,
:is(body#order-confirmation, body#order-detail) .estimateddelivery-order h5 {
    margin: 0 0 8px;
    font-size: 14px;
    line-height: 22px;
    color: #52525C;
}

:is(body#order-confirmation, body#order-detail) .estimateddelivery-order h5 strong,
:is(body#order-confirmation, body#order-detail) .estimateddelivery-order strong.dark {
    font-weight: 700;
    color: #18181B;
}

:is(body#order-confirmation, body#order-detail) .estimateddelivery-order .date_green {
    color: #52525C;
}

:is(body#order-confirmation, body#order-detail) .estimateddelivery-order p > .date_green:not(:only-child),
:is(body#order-confirmation, body#order-detail) .estimateddelivery-order strong.dark + .date_green {
    font-weight: 700;
    color: #18181B;
}

:is(body#order-confirmation, body#order-detail) .estimateddelivery-order hr {
    margin: 16px 0;
    border-color: #E4E4E7;
    opacity: 1;
}

/* Instrucciones del pago (transferencia, cheque...): lista de datos como tabla */
body#order-confirmation #content-hook_payment_return {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 14px;
    line-height: 22px;
}

body#order-confirmation #content-hook_payment_return dl {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    margin: 16px 0;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    overflow: hidden;
}

body#order-confirmation #content-hook_payment_return dt,
body#order-confirmation #content-hook_payment_return dd {
    margin: 0;
    padding: 12px 16px;
    border-bottom: 1px solid #E4E4E7;
    background: none;
    font-size: 14px;
}

body#order-confirmation #content-hook_payment_return dt {
    background: #FAFAFA;
    font-weight: 600;
    color: #18181B;
}

body#order-confirmation #content-hook_payment_return dd {
    color: #52525C;
}

body#order-confirmation #content-hook_payment_return dt:nth-last-of-type(1),
body#order-confirmation #content-hook_payment_return dd:last-child {
    border-bottom: 0;
}

body#order-confirmation #content-hook_payment_return strong {
    color: #18181B;
}

body#order-confirmation #content-hook_payment_return a {
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Columna derecha: detalles y artículos en la caja gris del resumen del carrito */
body#order-confirmation .order-confirmation-details {
    align-self: flex-start;
    padding: 24px;
    border-left: 0;
    border-radius: 4px;
    background: #FAFAFA;
}

body#order-confirmation .order-confirmation-details .card-title {
    margin: 0 0 12px;
    padding: 0;
    border: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 22px;
    color: #18181B;
    text-transform: uppercase;
}

body#order-confirmation #order-details {
    margin: 0 0 24px;
    padding: 0 0 24px;
    border-bottom: 1px solid #E4E4E7;
}

body#order-confirmation #order-details ul {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 14px;
    line-height: 24px;
    color: #52525C;
}

body#order-confirmation #order-details em {
    font-style: normal;
    color: #71717B;
}

body#order-confirmation .order-confirmation-table .order-line {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 20px;
    color: #52525C;
}

body#order-confirmation .order-confirmation-table .order-line .image img {
    background: #FFFFFF;
}

body#order-confirmation .order-confirmation-table .details {
    font-weight: 600;
    color: #18181B;
}

body#order-confirmation .order-confirmation-table .bold {
    font-weight: 700;
    color: #18181B;
}

body#order-confirmation .order-confirmation-table hr {
    margin: 16px 0;
    border-color: #E4E4E7;
    opacity: 1;
}

body#order-confirmation .order-confirmation-table table {
    width: 100%;
    margin: 0;
    border: 0;
}

body#order-confirmation .order-confirmation-table table td {
    padding: 4px 0;
    border: 0;
    background: none;
    font-size: 14px;
    line-height: 20px;
    color: #52525C;
}

body#order-confirmation .order-confirmation-table table td:last-child {
    font-weight: 600;
    color: #18181B;
    text-align: right;
}

body#order-confirmation .order-confirmation-table table tr.totals td {
    padding-top: 12px;
    font-size: 15px;
    font-weight: 700;
    color: #18181B;
}

body#order-confirmation .order-confirmation-table table tr.totals td:last-child {
    font-size: 22px;
    line-height: 28px;
}

body#order-confirmation .order-confirmation-title-payment {
    border-right: 0;
}

:is(body#order-confirmation, body#order-detail) .estimateddelivery-order.box > div {
    padding: 0;
    border: 0;
}

/* Frase introductoria de algunas secciones (el tema la pone como h6) */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content > h6 {
    margin: -8px 0 24px;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    color: #52525C;
    text-transform: none;
}

/* Tablas: sin filas rayadas del tema */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .table > tbody > tr {
    background: none;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .table.table-responsive {
    display: table;
}

/* Acciones de cada pedido: enlaces en línea */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .order-actions {
    white-space: nowrap;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .order-actions hr {
    display: none;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .order-actions a {
    display: block;
    font-size: 12px;
    font-weight: 700;
    line-height: 22px;
    letter-spacing: 0.35px;
    color: #18181B;
    text-transform: uppercase;
    text-decoration: underline;
    text-underline-offset: 2px;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .order-actions a:hover {
    color: #5BC401;
}

/* Historial en móvil: una tarjeta por pedido */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .orders .order {
    margin: 0 0 12px;
    padding: 16px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    font-size: 14px;
    line-height: 22px;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .orders .order h3 {
    margin: 0 0 4px;
    font-size: 15px;
    font-weight: 700;
    color: #18181B;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .orders .order .date,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .orders .order .total {
    color: #52525C;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .orders .order-actions a {
    display: inline-block;
    margin-left: 12px;
}

/* Detalle del pedido: las tablas van dentro de cajas, sin segundo borde */
body#order-detail .my-account-page-content .box .table {
    margin: 0;
    border: 0;
    border-radius: 0;
}

body#order-detail .my-account-page-content .box .table > tbody > tr:last-child > *,
body#order-detail .my-account-page-content .box .table > tfoot > tr:last-child > * {
    border-bottom: 0;
}

body#order-detail .my-account-page-content .box .table tfoot td,
body#order-detail .my-account-page-content .box .table tfoot th {
    font-weight: 600;
    color: #18181B;
}

body#order-detail .my-account-page-content .box .table .line-total td,
body#order-detail .my-account-page-content .box .table tr:last-child td {
    font-weight: 700;
}

body#order-detail #order-infos .box > .row {
    align-items: center;
}

body#order-detail #order-infos strong,
body#order-detail #order-history strong {
    color: #18181B;
}

body#order-detail .addresses {
    row-gap: 24px;
}

body#order-detail .addresses .box {
    height: 100%;
}

body#order-detail .addresses h4 {
    margin: 0 0 12px;
    font-size: 15px;
    font-weight: 700;
    line-height: 20px;
    color: #18181B;
    text-transform: uppercase;
}

body#order-detail address {
    margin: 0;
    font-size: 14px;
    line-height: 22px;
}

/* Añadir un mensaje */
body#order-detail .order-message-form header strong {
    display: block;
    margin: 0 0 4px;
    font-size: 16px;
    font-weight: 700;
    color: #18181B;
    text-transform: uppercase;
}

body#order-detail .order-message-form .form-group {
    margin: 0 0 16px;
}

body#order-detail .order-message-form .form-control-label,
body#order-detail .order-message-form label {
    margin: 0 0 6px;
    font-size: 14px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 0.6px;
    color: #52525C;
    text-align: left;
    text-transform: uppercase;
}

body#order-detail .order-message-form .form-group > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 720px;
    padding: 0;
}

body#order-detail .order-message-form textarea.form-control {
    height: auto;
    min-height: 120px;
}

body#order-detail .order-message-form .form-footer {
    text-align: left !important;
}
body#order-detail .order-message-form .form-control-label:empty { display: none; }

/* Botón de guardar de los formularios de la cuenta: alineado con los campos */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .my-account-page-content .form-footer {
    text-align: left !important;
}

/* Datos personales (RGPD): cada apartado en una caja */
body#module-psgdpr-gdpr .my-account-page-content > .container {
    max-width: none;
    padding: 0;
}

body#module-psgdpr-gdpr .page_content {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
}

body#module-psgdpr-gdpr .psgdprinfo17 {
    margin: 0;
    padding: 24px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FFFFFF;
}

body#module-psgdpr-gdpr .psgdprinfo17 h2 {
    margin: 0 0 8px;
    font-size: 16px;
    font-weight: 700;
    line-height: 22px;
    color: #18181B;
    text-transform: uppercase;
}

body#module-psgdpr-gdpr .psgdprinfo17 p {
    margin: 0;
}

body#module-psgdpr-gdpr .psgdprinfo17 .clearfix {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 16px;
}

body#module-psgdpr-gdpr #content-wrapper .psgdprinfo17 .btn {
    float: none;
    margin: 0 !important;
}

body#module-psgdpr-gdpr .psgdprinfo17 p a {
    font-weight: 600;
    color: #18181B;
}

/* --- Ventana "Producto añadido al carrito" (ps_shoppingcart) --- */
#blockcart-modal .modal-content {
    border: 0;
    border-radius: 4px;
    box-shadow: 0 24px 48px rgba(24, 24, 27, 0.18);
}

#blockcart-modal .modal-header {
    align-items: center;
    padding: 20px 24px;
    border-bottom: 1px solid #E4E4E7;
}

#blockcart-modal .modal-title {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 16px;
    font-weight: 700;
    line-height: 22px;
    letter-spacing: 0.4px;
    color: #18181B;
    text-transform: uppercase;
}

#blockcart-modal .modal-title i {
    display: inline-flex;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin: 0;
    border-radius: 50%;
    background: #5BC401;
    font-size: 13px;
    color: #000000;
}

#blockcart-modal .modal-header .close {
    font-size: 26px;
    font-weight: 300;
    color: #71717B;
    opacity: 1;
}

#blockcart-modal .modal-body {
    padding: 24px;
}

#blockcart-modal .divide-right {
    border-right-color: #E4E4E7;
}

#blockcart-modal .modal-body .col-6 a {
    display: block;
    padding: 8px;
    background: #FAFAFA;
}

#blockcart-modal .modal-body .col-6 img {
    mix-blend-mode: multiply;
}

#blockcart-modal .product-name,
#blockcart-modal .product-name a {
    font-size: 15px;
    font-weight: 700;
    line-height: 21px;
    color: #18181B;
}

#blockcart-modal .col-info {
    padding-left: 16px;
    font-size: 14px;
    color: #52525C;
}

#blockcart-modal .col-info .product-attributes,
#blockcart-modal .col-info .text-muted {
    font-size: 13px;
    color: #71717B !important;
}

#blockcart-modal .cart-content {
    font-size: 14px;
    line-height: 22px;
    color: #52525C;
}

#blockcart-modal .cart-products-count {
    margin: 0 0 12px;
    font-weight: 600;
    color: #18181B;
}

#blockcart-modal .cart-subtotals > div,
#blockcart-modal .cart-content > .clearfix {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0 0 6px;
}

#blockcart-modal .cart-subtotals > div > div {
    flex: 0 0 100%;
}

#blockcart-modal .cart-subtotals strong {
    font-weight: 400;
    color: #52525C;
}

#blockcart-modal .cart-subtotals .value {
    font-weight: 600;
    color: #18181B;
}

#blockcart-modal .cart-content > .clearfix {
    align-items: baseline;
    margin: 12px 0 20px !important;
    padding-top: 12px;
    border-top: 1px solid #E4E4E7;
}

#blockcart-modal .cart-content > .clearfix strong {
    font-size: 14px;
    font-weight: 700;
    color: #18181B;
    text-transform: uppercase;
}

#blockcart-modal .cart-content > .clearfix .value {
    font-size: 20px;
    font-weight: 700;
    color: #18181B;
}

#blockcart-modal .cart-content-btn {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#blockcart-modal .cart-content-btn .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin: 0 !important;
    padding: 12px 24px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    letter-spacing: 0.35px;
    text-transform: uppercase;
}

#blockcart-modal .cart-content > .clearfix::before,
#blockcart-modal .cart-content > .clearfix::after {
    display: none;
}

/* --- Desplegable del carrito en la cabecera (ps_shoppingcart, estilo "flotante" del Theme Editor) --- */
#blockcart-content {
    min-width: 360px;
    padding: 20px;
    font-size: 14px;
    line-height: 20px;
    color: #52525C;
}

#blockcart-content .cart-products li {
    padding: 0 0 16px;
    margin: 0 0 16px;
    border-bottom: 1px solid #E4E4E7;
}

#blockcart-content .product-image a {
    display: block;
    padding: 4px;
    background: #FAFAFA;
}

#blockcart-content .product-image img {
    mix-blend-mode: multiply;
}

#blockcart-content .col-info {
    padding-left: 12px;
}

#header #blockcart-content .col-info .pb-1 a,
#blockcart-content .col-info .pb-1 a {
    font-size: 14px;
    font-weight: 700;
    line-height: 19px;
    color: #18181B;
}

#header #blockcart-content .col-info .pb-1 a:hover {
    color: #5BC401;
}

#blockcart-content .col-info .text-right > span {
    font-weight: 700;
    color: #18181B;
}

#header #blockcart-content .remove-from-cart {
    margin-left: 8px;
    color: #9F9FA9;
}

#header #blockcart-content .remove-from-cart:hover {
    color: #18181B;
}

#blockcart-content .cart-summary-line,
#blockcart-content .cart-totals .clearfix {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0 0 6px;
}

#blockcart-content .cart-summary-line::before,
#blockcart-content .cart-summary-line::after,
#blockcart-content .cart-totals .clearfix::before,
#blockcart-content .cart-totals .clearfix::after {
    display: none;
}

#blockcart-content .cart-summary-line > div {
    flex: 0 0 100%;
}

#blockcart-content .cart-summary-line .value {
    font-weight: 600;
    color: #18181B;
}

#blockcart-content .cart-totals {
    margin: 12px 0 16px;
    padding-top: 12px;
    border-top: 1px solid #E4E4E7;
}

#blockcart-content .cart-totals .clearfix {
    align-items: baseline;
    margin: 0;
}

#blockcart-content .cart-totals .label {
    font-size: 14px;
    font-weight: 700;
    color: #18181B;
    text-transform: uppercase;
}

#blockcart-content .cart-totals .value {
    float: none !important;
    font-size: 20px;
    font-weight: 700;
    color: #18181B;
}

#blockcart-content .cart-buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#header #blockcart-content .cart-buttons .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    margin: 0 !important;
    padding: 12px 24px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    letter-spacing: 0.35px;
    text-transform: uppercase;
}

#header #blockcart-content .cart-buttons .btn-primary {
    color: #000000;
}

#header #blockcart-content .cart-buttons .btn-secondary {
    color: #18181B;
}

#header #blockcart-content .cart-buttons .btn-secondary:hover {
    color: #FFFFFF;
}

body#authentication #content .forgot-password {
    margin: -8px 0 24px;
    text-align: right;
}

body#authentication #content .login-form section {
    margin: 0;
    padding: 0;
}

/* Acceso con Amazon (amazonpay): título como el resto de apartados */
body#authentication .amzbuttoncontainer {
    margin: 0 0 32px;
}

body#authentication .amzbuttoncontainer .page-subheading {
    margin: 0 0 8px;
    padding: 0;
    border: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 22px;
    color: #18181B;
    text-transform: uppercase;
}

body#authentication .amzbuttoncontainer p {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 22px;
}

body#authentication .amzbuttoncontainer .amazonPayButton {
    max-width: 100%;
}

/* Casillas obligatorias: el tema deja la etiqueta vacía con el asterisco encima; el texto ya va junto a la casilla */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group.row > .col-form-label:has(+ .js-input-column .custom-checkbox) {
    display: none;
}

body#registration .register-form > p:first-child {
    margin: 0 0 24px;
    font-size: 14px;
}

/* Etiquetas de los formularios con otro marcado (seguimiento de invitado, restablecer contraseña) */
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper), body#checkout) #content-wrapper .form-group.row > .form-control-label,
body#password .form-inline > label {
    flex: 0 0 100%;
    max-width: 100%;
    margin: 0 0 6px;
    padding: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 16px;
    letter-spacing: 0.6px;
    color: #52525C;
    text-align: left;
    text-transform: uppercase;
}

:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) .js-input-column .form-control-comment,
:is(body.page-customer-account, body:has(.my-account-page-content-wrapper)) [class*="col-"] > .form-control-comment {
    margin-top: 6px;
    font-size: 12px;
    line-height: 18px;
    color: #71717B;
}

body#guest-tracking #guestOrderTrackingForm header p,
body#password .send-renew-password-link {
    margin: 0 0 24px;
    font-size: 14px;
    line-height: 22px;
}

/* Restablecer contraseña: campo y botón uno debajo del otro */
body#password .form-inline {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
}

body#password .form-inline .form-control {
    width: 100%;
    margin: 0 0 16px !important;
}

body#password #back-to-login {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.35px;
    text-transform: uppercase;
    text-decoration: none;
}

/* --- Página no encontrada (404) --- */
body#pagenotfound #content.page-content {
    max-width: 640px;
    margin: 0 auto;
    padding: 24px 0 40px;
    border: 0;
    text-align: center;
}

body#pagenotfound #main > .page-header {
    text-align: center;
}

body#pagenotfound #content h4 {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 700;
    color: #18181B;
}

body#pagenotfound #content p {
    margin: 0 0 24px;
    font-size: 14px;
    line-height: 22px;
}

/* El buscador del contenido no es el de la cabecera: campo claro como el resto de formularios */
body#pagenotfound #content #search_widget .form-search-control {
    width: 100%;
    height: 48px;
    padding: 12px 48px 12px 16px;
    border: 1px solid #E4E4E7;
    border-radius: 4px;
    background: #FAFAFA;
    font-size: 14px;
    color: #18181B;
}

body#pagenotfound #content #search_widget .form-search-control:focus {
    border-color: #18181B;
    background: #FFFFFF;
}

body#pagenotfound #content #search_widget i {
    color: #18181B;
}
body#pagenotfound #content #search_widget .form-search-control::placeholder { color: #9F9FA9; }

/* Los botones de Elementor de tipo "secondary" ya tienen su estilo en el widget: sin el borde que el Theme Editor
   pone ahora a .btn-secondary (especificidad baja para que mande lo que se configure en Elementor) */
:where(.elementor-button).btn-secondary {
    border-style: none;
}

/* Al volver a un paso ya completado el tema le pone display:inline-block al número (con más especificidad)
   y se perdía el centrado del círculo */
body#checkout section.checkout-step.-current.-reachable.-complete .step-number {
    display: inline-flex;
}

/* ==========================================================================
   Cabecera de escritorio en portátiles (992-1799px): menú, buscador e iconos comparten fila y el menú
   se partía en 2-3 líneas. Por tramos:
   - hasta 1799px: enlaces del menú más juntos y algo más pequeños, buscador flexible e iconos más juntos;
   - hasta 1439px: el buscador queda en la lupa y se despliega al pulsarla (custom.js, clase .mp-search-open);
   - hasta 1199px y hasta 1099px: menú y logo un poco más compactos todavía.
   Por debajo de 992px el tema ya usa la cabecera móvil.
   ========================================================================== */
@media (min-width: 992px) and (max-width: 1799.98px) {
    #desktop-header #iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a.nav-link {
        padding: 0 10px;
    }

    #desktop-header #iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a.nav-link .cbp-tab-title {
        font-size: 14px;
    }

    #desktop-header .col-search {
        padding: 0 16px 0 12px;
    }

    #desktop-header #search_widget .form-search-control {
        width: clamp(240px, 20vw, 448px);
        padding-right: 44px;
        text-overflow: ellipsis;
    }

    #desktop-header .col-header-right .header-btn-w:not(.col-search),
    #desktop-header .col-header-right #ps-shoppingcart-wrapper {
        padding-left: 8px;
        padding-right: 8px;
    }
}

@media (min-width: 992px) and (max-width: 1439.98px) {
    #desktop-header .col-search {
        position: static;
        padding: 0 8px;
    }

    #desktop-header #search_widget,
    #desktop-header #search_widget form {
        position: static;
    }

    #desktop-header #search_widget .input-group {
        position: static;
        width: 44px;
        height: 44px;
    }

    #desktop-header #search_widget .search-btn {
        position: relative;
        width: 44px;
        height: 44px;
    }

    /* El campo se despliega bajo la cabecera, alineado a la derecha */
    #desktop-header-container {
        position: relative;
    }

    #desktop-header #search_widget .form-search-control {
        position: absolute;
        top: calc(100% + 8px);
        right: 12px;
        z-index: 30;
        width: min(448px, calc(100vw - 48px));
        opacity: 0;
        visibility: hidden;
        transform: translateY(-4px);
        transition: opacity 0.15s, transform 0.15s, visibility 0s 0.15s;
    }

    #desktop-header #search_widget.mp-search-open .form-search-control {
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: opacity 0.15s, transform 0.15s;
    }

    #desktop-header #search_widget.mp-search-open .search-btn i {
        color: #5BC401;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    #desktop-header #iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a.nav-link {
        padding: 0 7px;
    }

    #desktop-header #iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a.nav-link .cbp-tab-title {
        font-size: 13px;
    }

    #desktop-header #desktop_logo img {
        width: auto;
        max-height: 34px;
    }
}

@media (min-width: 992px) and (max-width: 1099.98px) {
    #desktop-header #iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a.nav-link {
        padding: 0 5px;
    }

    #desktop-header #iqitmegamenu-horizontal .cbp-hrmenu > ul > li > a.nav-link .cbp-tab-title {
        font-size: 12px;
    }

    #desktop-header #desktop_logo img {
        max-height: 28px;
    }

    #desktop-header .col-header-right .header-btn-w:not(.col-search),
    #desktop-header .col-header-right #ps-shoppingcart-wrapper {
        padding-left: 5px;
        padding-right: 5px;
    }
}

/* Barra superior: en una sola línea también en portátiles pequeños */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .header-nav span {
        margin-right: 16px;
        font-size: 13px;
        white-space: nowrap;
    }

    .header-nav a {
        margin-left: 12px;
        font-size: 13px;
        white-space: nowrap;
    }

    .header-nav .rte-content p {
        white-space: nowrap;
    }
}
