/* Fuentes usadas en las tarjetas */
    @font-face {
        font-family: 'Roboto-Black';
        src: url('../../../../uploads/2026/09/Roboto-Black.ttf') format('truetype');
        font-weight: 900;
        font-style: normal;
        font-display: swap;
    }
    
    @font-face {
        font-family: 'Roboto-Bold';
        src: url('../../../../uploads/2026/09/Roboto-Bold.ttf') format('truetype');
        font-weight: 700;
        font-style: normal;
        font-display: swap;
    }

    @font-face {
        font-family: 'Roboto-Medium';
        src: url('../../../../uploads/2026/09/Roboto-Medium.ttf') format('truetype');
        font-weight: 500;
        font-style: normal;
        font-display: swap;
    }

    @font-face {
        font-family: 'Roboto-Regular';
        src: url('../../../../uploads/2026/09/Roboto-Regular.ttf') format('truetype');
        font-weight: 400;
        font-style: normal;
        font-display: swap;
    }

/* Colores reutilizables de las tarjetas */
:root{
    --city-store-child-color-primary:#0157cf;
    --city-store-child-color-border:#e2e8f0;
    --city-store-child-color-muted:#64748b;
    --city-store-child-color-heading:#0f172a;
    --city-store-child-color-text:#333333;
    --city-store-child-color-white:#ffffff;
    --city-store-child-color-light:#E1F1FF;
    --city-store-child-color-danger:#dc2626;
    --city-store-child-color-gallery-border:#dddcdc;
}

/* Tipografias y transicion propias de las tarjetas */
.custom-card-product-wrap,.custom-card-inner.terminado{--font-base:'Roboto-Regular',sans-serif;--font-regular:'Roboto-Regular',sans-serif;--font-medium:'Roboto-Medium',sans-serif;--font-bold:'Roboto-Bold',sans-serif;--font-black:'Roboto-Black',sans-serif;--transition:0.3s ease;}
/* Contenedor principal y estructura Flexbox de la tarjeta */
.custom-card-inner.terminado{box-sizing:border-box;background:var(--city-store-child-color-white);border:1px solid var(--city-store-child-color-border);border-radius:16px;padding:15px;display:flex;flex-direction:column;height:100%;min-height:100%;transition:all var(--transition);font-family:var(--font-regular);}
.custom-card-inner.terminado:hover{border-color:var(--city-store-child-color-primary);}
/* Area de imagen y zoom al pasar el cursor por la tarjeta */
.custom-card-inner .card-image-wrap{text-align:center;display:flex;align-items:center;justify-content:center;flex:0 0 210px;height:210px;width:100%;overflow:visible;}
.custom-card-inner .card-image-wrap img{max-height:180px !important;max-width:100% !important;width:auto !important;height:auto !important;object-fit:contain;margin-bottom:0px !important;transition:transform 0.45s ease-out;}
.custom-card-inner.terminado:hover .card-image-wrap img{transform:scale(1.05);}
/* Banda de marca */
.custom-card-inner .card-brand{font-family:var(--font-bold);background-color:#D4E8F2;color:#000000;font-size:13px;font-weight:700;letter-spacing:0.5px;padding:6px 22px;border-radius:0 1px 22px 0;margin-bottom:10px;display:flex;align-items:center;box-sizing:border-box;width:calc(100% + 30px);height:35px;min-height:35px;margin-left:-15px;text-align:left;}
/* Contenido, titulo y alineacion vertical */
.custom-card-inner .card-content-padded{display:flex;flex:1;flex-direction:column;align-items:stretch;min-width:0;text-align:left;}
.custom-card-inner .card-title{font-family:var(--font-regular);font-size:12px;font-weight:400;line-height:1.35;min-height:4.05em;margin:0 0 10px;padding:0 !important;text-transform:uppercase;overflow-wrap:break-word;text-align:left;}
.custom-card-inner .card-title a{display:block;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;color:var(--city-store-child-color-heading);text-decoration:none;text-transform:inherit;text-align:left;transition:color 0.2s ease;}
.custom-card-inner .card-title a:hover{color:var(--city-store-child-color-primary);}
/* Precios e impuestos */
.custom-card-inner .card-price-section{margin-top:auto;margin-bottom:14px;text-align:left;}
.custom-card-inner .card-tax-label{font-family:var(--font-medium);font-size:10px;color:var(--city-store-child-color-muted);display:block;}
.custom-card-inner .card-price-main{font-family:var(--font-bold);font-size:18px;color:var(--city-store-child-color-primary);font-weight:600;margin-bottom:0;text-align:left;line-height:1.2;}
/* Boton de compra */
.custom-card-inner .card-action{text-align:center;width:90%;margin:0 auto;}
.custom-card-inner .card-btn-primary{font-family:var(--font-bold);background-color:var(--city-store-child-color-primary) !important;color:var(--city-store-child-color-white) !important;padding:10px 20px !important;border-radius:24px !important;text-decoration:none !important;display:block !important;font-size:14px !important;text-align:center;box-shadow:none !important;transition:background-color 0.2s ease,transform 0.1s ease;}
.custom-card-inner .card-btn-primary:hover{background-color:var(--city-store-child-color-primary) !important;transform:translateY(-1px);}
/* Rejilla de productos y precio en dolares */
.woocommerce ul.products,
.woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    column-gap: 16px;
    row-gap: 16px;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after,
.woocommerce ul.products > .row::before,
.woocommerce ul.products > .row::after,
.woocommerce-page ul.products > .row::before,
.woocommerce-page ul.products > .row::after {
    content: none;
    display: none;
}
.woocommerce ul.products > .row,
.woocommerce-page ul.products > .row {
    box-sizing: border-box;
    display: grid !important;
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    width: 100%;
    margin: 0 !important;
    padding: 0;
}
.woocommerce ul.products > li.product,
.woocommerce-page ul.products > li.product,
.woocommerce ul.products > .row > li.product,
.woocommerce-page ul.products > .row > li.product {
    box-sizing: border-box;
    width: auto !important;
    max-width: none !important;
    min-width: 0;
    flex: initial !important;
    float: none !important;
    margin: 0 !important;
    min-height: 0;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.woocommerce ul.products > .row > li.product:hover,
.woocommerce-page ul.products > .row > li.product:hover,
.woocommerce ul.products > li.product:hover,
.woocommerce-page ul.products > li.product:hover {
    transform: none !important;
    box-shadow: none !important;
}
.woocommerce ul.products > li.city-store-child-product-card,
.woocommerce-page ul.products > li.city-store-child-product-card,
.woocommerce ul.products > .row > li.city-store-child-product-card,
.woocommerce-page ul.products > .row > li.city-store-child-product-card {
    display: flex;
}
.city-store-child-product-card > .custom-card-inner {
    flex: 1 1 auto;
}
.woocommerce ul.products .custom-card-inner .card-image-wrap img {
    opacity: 1 !important;
}
.woocommerce ul.products li.product:hover .custom-card-inner.terminado img,
.woocommerce-page ul.products li.product:hover .custom-card-inner.terminado img {
    opacity: 1 !important;
}
.woocommerce ul.products li .add_to_cart_button,
.woocommerce-page ul.products li .add_to_cart_button {
    margin-top: 10px !important;
}
.woocommerce ul.products .custom-card-inner .card-action > a {
    border-radius: 24px !important;
}
body.tax-product_cat.woocommerce-page #primary {
    box-sizing: border-box;
    display: flex;
    float: left !important;
    width: 100% !important;
    max-width: 100% !important;
}
body.tax-product_cat.woocommerce-page #primary > .filters {
    box-sizing: border-box;
    flex: 0 0 25%;
    width: 25%;
    min-width: 0;
    margin-right: 24px;
}
body.tax-product_cat.woocommerce-page #primary > #main {
    box-sizing: border-box;
    flex: 1 1 0%;
    width: auto;
    min-width: 0;
}
@media (max-width: 921px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .woocommerce ul.products > .row,
    .woocommerce-page ul.products > .row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    body.tax-product_cat.woocommerce-page #primary > .filters {
        flex-basis: 28%;
        width: 28%;
        margin-right: 16px;
    }
}
@media (max-width: 544px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: 1fr !important;
    }
    .woocommerce ul.products > .row,
    .woocommerce-page ul.products > .row {
        grid-template-columns: 1fr;
    }
    body.tax-product_cat.woocommerce-page #primary {
        display: block;
    }
    body.tax-product_cat.woocommerce-page #primary > .filters,
    body.tax-product_cat.woocommerce-page #primary > #main {
        width: 100%;
        max-width: 100%;
        margin-right: 0;
    }
}
.card-price-usd{margin-top:4px;font-size:15px;font-weight:600;color:#666666;line-height:1.25;}
.custom-card-inner .card-price-section + .card-action{margin-top:0;}
.admin-product-sku{box-sizing:border-box;min-height:14px;margin-top:4px;color:#d9534f;font-family:var(--font-bold);font-size:11px;font-weight:700;line-height:14px;text-align:center;overflow-wrap:anywhere;}
.admin-product-sku-public-hidden{display:none;}
.card-title .cp-brand{font-weight:700;color:var(--city-store-child-color-text);}
/* Posicionamiento vertical de las flechas del carrusel */
.custom-swiper-container,.swiper,.swiper-container{position:relative;}
.custom-swiper-prev,.custom-swiper-next{position:absolute;top:50%;transform:translateY(-50%);z-index:10;}

/* Estados y comportamiento de las tarjetas de producto */
.custom-card-inner.terminado {
    position: relative;
    box-shadow: none !important;
}
.woocommerce ul.products > li.product,
.woocommerce-page ul.products > li.product,
.custom-card-inner.terminado * {
    box-shadow: none !important;
}
.custom-card-inner.card-clickable .card-title a::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
}
.custom-card-inner.product-out-of-stock .card-brand {
    background-color: #D9D9D9;
}
.custom-card-inner.product-armados .armados-config-badge {
    position: absolute;
    top: 7px;
    left: 7px;
    z-index: 5;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    width: 30px;
    max-width: calc(100% - 20px);
    height: 30px;
    min-height: 30px;
    padding: 0 7px;
    overflow: hidden;
    border-radius: 10px;
    background-color: #D4E8F2;
    box-shadow: none !important;
    pointer-events: none;
    transition: width 0.3s ease;
}
.custom-card-inner.product-armados:hover .armados-config-badge,
.custom-card-inner.product-armados:focus-within .armados-config-badge {
    width: min(270px, calc(100% - 20px));
}
.armados-config-badge-icon {
    display: block;
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    object-fit: contain;
    animation: armados-config-gear-spin 4s linear infinite;
}
.armados-config-badge-label {
    display: flex;
    flex: 1;
    align-items: center;
    gap: 6px;
    min-width: 0;
    margin-left: 7px;
    opacity: 0;
    visibility: hidden;
    color: #111827;
    font-family: var(--font-regular);
    font-size: 9px;
    line-height: 1.25;
    transition: opacity 0.2s ease;
}
.custom-card-inner.product-armados:hover .armados-config-badge-label,
.custom-card-inner.product-armados:focus-within .armados-config-badge-label {
    opacity: 1;
    visibility: visible;
    transition-delay: 0.1s;
}
.armados-config-badge-label strong {
    flex: 0 0 auto;
    color: var(--city-store-child-color-primary);
    font-family: var(--font-bold);
    font-size: 10px;
    white-space: nowrap;
}
.armados-config-badge-divider {
    align-self: stretch;
    flex: 0 0 1px;
    background-color: rgba(15, 23, 42, 0.55);
}
.armados-config-badge-label > span:last-child {
    flex: 1;
    min-width: 0;
    text-align: left;
}
.custom-card-inner.product-armados .card-image-wrap {
    box-sizing: border-box;
    padding-top: 25px;
}
.custom-card-inner .card-action {
    position: relative;
    z-index: 2;
    width: 100%;
    margin: auto 0 0;
    text-align: center;
}
.custom-card-inner .card-action > a {
    font-family: var(--font-regular);
    position: relative !important;
    inset: auto !important;
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
}
.woocommerce ul.products li.product .custom-card-inner .card-action > a.add_to_cart_button {
    margin-top: 0 !important;
}
.custom-card-inner .card-action > .card-btn-primary {
    display: block !important;
    min-height: 35px !important;
    padding: 10px 12px !important;
    overflow: visible !important;
    line-height: 1.2 !important;
    text-indent: 0 !important;
    white-space: normal;
    box-shadow: none !important;
    font-family: var(--font-regular) !important;
}
.custom-card-inner .card-action > .card-btn-primary::before {
    content: none !important;
    display: none !important;
}
.custom-card-inner .card-btn-primary.card-btn-armados {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.custom-card-inner.product-armados .card-btn-primary.card-btn-armados,
.custom-card-inner.product-armados .card-btn-primary.card-btn-armados:hover,
.custom-card-inner.product-armados .card-btn-primary.card-btn-armados:focus {
    background-color: #001E4B !important;
}
.custom-card-inner .card-btn-primary .armados-config-icon {
    display: block;
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    max-height: 18px !important;
    flex: 0 0 18px;
    object-fit: contain;
    margin: 0 !important;
    animation: armados-config-gear-spin 4s linear infinite;
}
@media (max-width: 768px) {
    .custom-card-inner .card-action > .card-btn-primary {
        display: block !important;
        min-height: 30px !important;
        padding: 8px !important;
    }
    .custom-card-inner .card-btn-primary.card-btn-armados {
        display: flex !important;
        flex-wrap: nowrap;
        gap: 3px;
        white-space: nowrap;
        font-size: 10px !important;
    }
    .custom-card-inner .card-btn-primary .armados-config-icon {
        display: block;
        width: 15px !important;
        height: 15px !important;
        max-width: 15px !important;
        max-height: 15px !important;
        flex: 0 0 15px;
        object-fit: contain;
        margin: 0 !important;
        animation: armados-config-gear-spin 4s linear infinite;
    }
}
@media (min-width: 768px) and (max-width: 768.99px) {
    #seccion-catalogo-servidores .woocommerce ul.products,
    #seccion-catalogo-servidores .woocommerce-page ul.products,
    #seccion-catalogo-servidores .woocommerce ul.products > .row,
    #seccion-catalogo-servidores .woocommerce-page ul.products > .row {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        margin-bottom: 60px;
        gap: 5px;
    }
    #seccion-catalogo-servidores .custom-card-inner .card-title {
        min-height: 60px !important;
        font-size: 10px;
    }
}
@media (min-width: 441px) and (max-width: 1032px) {
    .product-filter-show .woocommerce ul.products,
    .product-filter-show .woocommerce-page ul.products,
    .product-filter-show .woocommerce ul.products > .row,
    .product-filter-show .woocommerce-page ul.products > .row,
    #seccion-catalogo-servidores .woocommerce ul.products,
    #seccion-catalogo-servidores .woocommerce-page ul.products,
    #seccion-catalogo-servidores .woocommerce ul.products > .row,
    #seccion-catalogo-servidores .woocommerce-page ul.products > .row {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 5px;
        width: 100%;
    }
}

@keyframes armados-config-gear-spin {
    to {
        transform: rotate(360deg);
    }
}
.card-consult-availability-box {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 8px;
    margin-top: -8px;
    margin-bottom: 8px;
    border-radius: 8px;
    background-color: var(--city-store-child-color-light);
}
.card-consult-alert-icon {
    display: block;
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    margin-top: 6px;
    object-fit: contain;
}
.card-consult-availability-content,
.oos-content {
    flex: 1;
    min-width: 0;
}
.card-consult-availability-title,
.oos-title {
    margin-bottom: 3px;
    color: var(--city-store-child-color-text);
    font-family: var(--font-bold);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}
.card-consult-availability-text,
.oos-desc {
    margin: 0 !important;
    color: var(--city-store-child-color-text);
    font-family: var(--font-regular) !important;
    font-weight: 300 !important;
    font-size: 10px;
    line-height: 1.25;
    text-align: left;
}
.custom-card-inner .card-btn-availability,
.custom-card-inner .card-btn-consult {
    min-height: 36px;
    padding: 8px 16px !important;
    border-radius: 24px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: var(--font-bold);
    font-size: 14px !important;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: background-color 0.2s ease, transform 0.1s ease;
}
.custom-card-inner .card-btn-availability {
    background-color: var(--city-store-child-color-primary) !important;
    color: var(--city-store-child-color-white) !important;
}
.custom-card-inner .card-btn-availability:hover {
    background-color: var(--city-store-child-color-primary) !important;
    color: var(--city-store-child-color-white) !important;
    transform: translateY(-1px);
}
.custom-card-inner .card-btn-consult {
    background-color: #D9D9D9 !important;
    color: #333 !important;
}
.custom-card-inner .card-btn-consult:hover {
    background-color: #c9c8c8 !important;
    color: #333 !important;
    transform: translateY(-1px);
}
.custom-card-inner .card-btn-availability .card-consult-button-icon,
.custom-card-inner .card-btn-consult .consult-icon {
    display: block;
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    max-height: 18px !important;
    flex: 0 0 18px;
    margin: 0 !important;
    object-fit: contain;
}
@media (max-width: 440px) {
    .armados-config-badge-label {
        gap: 3px;
        margin-left: 3px;
        font-size: 8px;
    }
    .armados-config-badge-label strong {
        flex: 0 0 auto;
        color: var(--city-store-child-color-primary);
        font-family: var(--font-bold);
        font-size: 9px;
        white-space: nowrap;
    }
    .armados-config-badge-icon {
        display: block;
        width: 10px;
        height: 10px;
        flex: 0 0 10px;
        object-fit: contain;
        animation: armados-config-gear-spin 4s linear infinite;
    }
}
.card-out-of-stock-box {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 5px 12px;
    margin-top: -5px;
    margin-bottom: 5px;
    border-radius: 8px;
    background-color: #FFEAE9;
}
.oos-header {
    display: flex;
    align-items: center;
    margin: 0 0 3px;
}
.oos-icon {
    display: block;
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    margin-top: 6px;
    object-fit: contain;
}

@media (max-width: 768px) {
    #seccion-catalogo-servidores .custom-card-inner .card-action {
        box-sizing: border-box;
        min-height: 30px !important;
    }

    #seccion-catalogo-servidores .custom-card-inner .card-action > .card-btn-primary {
        min-height: 30px !important;
        padding: 5px !important;
    }
}

@media (min-width: 768px) and (max-width: 768.99px) {
    #seccion-catalogo-servidores .woocommerce ul.products > li.product .custom-card-inner .card-title {
        min-height: 40px !important;
        font-size: 11px !important;
    }
}

@media (min-width: 441px) and (max-width: 1032px) {
    .custom-card-inner .card-consult-availability-box {
        gap: 3px;
        padding: 5px;
    }

    .custom-card-inner .card-consult-alert-icon {
        width: 21px;
        height: 21px;
        flex: 0 0 21px;
    }

    .custom-card-inner .card-consult-availability-title,
    .custom-card-inner .oos-title {
        font-size: 9px;
    }

    .custom-card-inner .card-consult-availability-text,
    .custom-card-inner .oos-desc {
        font-size: 8px;
    }

    .custom-card-inner .card-btn-availability,
    .custom-card-inner .card-btn-consult {
        min-height: 30px;
        padding: 6px 12px !important;
        gap: 4px;
        font-size: 12px !important;
    }
}

@media (max-width: 440px) {
    #seccion-catalogo-servidores .custom-card-inner .card-price-section {
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        min-height: 58px;
        margin-top: auto !important;
        margin-bottom: 10px;
    }

    #seccion-catalogo-servidores .custom-card-inner .card-action {
        box-sizing: border-box;
        min-height: 36px !important;
    }

    #seccion-catalogo-servidores .custom-card-inner .card-action > a {
        box-sizing: border-box;
        display: flex !important;
        align-items: center;
        justify-content: center;
        gap: 4px;
        height: 36px !important;
        min-height: 36px !important;
        padding: 4px 5px !important;
        font-size: 13px !important;
        line-height: 1.1 !important;
        white-space: normal;
    }

    #seccion-catalogo-servidores .custom-card-inner .card-action > .card-btn-armados {
        flex-wrap: nowrap;
        gap: 3px;
        font-size: 13px !important;
        white-space: nowrap;
    }

    #seccion-catalogo-servidores .custom-card-inner .card-action > a img {
        flex: 0 0 14px;
        width: 14px !important;
        height: 14px !important;
        max-width: 14px !important;
        max-height: 14px !important;
        margin: 0 !important;
        object-fit: contain;
    }
}
