.eco-bc-wrap{
    --eco-radius:12px; --eco-radius-lg:16px; --eco-gap:14px; --eco-gap-lg:20px;
    --eco-border:#d6dbe6; --eco-border-focus:#2165f1; --eco-bg:#fff;
}

/* Títulos y espaciados */
.eco-bc-toolbar{ margin-bottom: var(--eco-gap-lg); }
.eco-bc-toolbar h3, .eco-bc-variant h3, #eco-bc-cascader > h3, .eco-bc-addons > h3, .eco-bc-shipping h3{
    margin: 6px 0 10px !important; font-size: 18px; line-height: 1.25;
}
.eco-bc-variant, #eco-bc-cascader, .eco-bc-row, .eco-bc-addons, .eco-bc-shipping{ margin-top: var(--eco-gap-lg); }

/* Filas y etiquetas */
.eco-bc-row, .eco-bc-addon-row{ display:flex; align-items:center; gap: var(--eco-gap); margin-bottom: var(--eco-gap); flex-wrap: wrap; }
.eco-bc-row label, .eco-bc-addon-row label{ min-width: 180px; font-weight: 600; color:#334155; }

/* Inputs y selects */
.eco-bc-row select, .eco-bc-row input, .eco-bc-addon-row select, .eco-bc-addon-row input{
    flex: 1 0 220px; padding: 10px 12px; border-radius: var(--eco-radius); border: 1px solid var(--eco-border);
    background: var(--eco-bg); font-size: 15px; transition: border-color .15s, box-shadow .15s, background-color .15s; outline: none;
}
.eco-bc-row input[type="number"]{ max-width: 180px; }
.eco-bc-measures input[type="number"]{ max-width: 150px; }

.eco-bc-row select:focus, .eco-bc-row input:focus, .eco-bc-addon-row select:focus, .eco-bc-addon-row input:focus{
    border-color: var(--eco-border-focus); box-shadow: 0 0 0 3px rgba(33,101,241,.15);
}
.eco-bc-row select:disabled, .eco-bc-row input:disabled{ background:#f5f7fb; color:#94a3b8; cursor:not-allowed; }

/* Ayuda de adicionales */
.eco-bc-addon-help{ color:#6b7280; margin-left:6px; cursor:pointer; border-radius: 50%; border:1px solid #cbd5e1; font-size: 13px; padding: 0 7px; line-height: 22px; }

/* Bloque presupuesto */
.eco-bc-shipping{ background:#f8faff; border-radius: var(--eco-radius-lg); padding: 22px 18px; border:1px solid #e6ebf5; }
.eco-bc-ship-head{ display:flex; align-items:center; gap:14px; }
.eco-bc-ship-sub{ margin-top:6px; color:#64748b; }

.eco-bc-ship-toggle{ margin-left:auto; background:#eaf0ff; border-radius: 999px; padding: 3px; }
.eco-bc-ship-toggle button{ background:transparent; border:0; border-radius: 999px; padding:8px 18px; font-weight:600; font-size: 14px; cursor:pointer; }
.eco-bc-ship-toggle .is-active{ background:#2165f1; color:#fff; }

/* 🔥 CAMBIO: layout horizontal */
.eco-bc-ship-list{
    margin-top:14px;
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap:12px;
}

/* 🔥 tarjetas */
.ship-item{
    display:flex;
    align-items:flex-start;
    gap:10px;
    border:1px solid #e6ebf5;
    background:#fff;
    border-radius: var(--eco-radius);
    padding:14px;
    cursor:pointer;
    transition: border-color .15s, box-shadow .15s;
}

.ship-item:hover{
    border-color:#c9d6ff;
    box-shadow:0 2px 10px rgba(33,101,241,.07);
}

/* 🔥 selección */
.ship-item:has(input:checked){
    border:2px solid #2165f1;
    background:#f8fbff;
}

.ship-item input[type=radio]{
    width:20px;
    height:20px;
    accent-color:#2165f1;
}

.ship-info{ flex:1; }
.ship-title{ font-weight:700; margin-bottom:5px; color:#0f172a; }
.ship-sub{ color:#64748b; font-size:12px; margin-top: 4px; }
.ship-price{ font-size:22px; font-weight:800; color:#2165f1; }

/* Material */
.eco-bc-wrap .eco-bc-variant{ display:flex; align-items:center; gap:14px; margin-top: var(--eco-gap-lg); }
.eco-bc-wrap .eco-bc-variant label{ min-width:180px; font-weight:600; color:#334155; }
.eco-bc-wrap .eco-bc-variant select.eco-bc-select-variant{
    flex: 1 0 220px; padding: 10px 12px; border: 1px solid var(--eco-border); border-radius: var(--eco-radius) !important; background:#fff; font-size:15px; outline:none;
    -webkit-appearance:none; -moz-appearance:none; appearance:none;
}

/* Medidas en grid */
.eco-bc-wrap .eco-bc-measures{
    display: grid !important; grid-template-columns: 180px 1fr 1fr; column-gap: 14px; row-gap: 14px; align-items: center;
}
.eco-bc-wrap .eco-bc-measures > :nth-child(1){ grid-column: 1; }
.eco-bc-wrap .eco-bc-measures > :nth-child(2){ grid-column: 2; }
.eco-bc-wrap .eco-bc-measures > :nth-child(3){ grid-column: 3; }
.eco-bc-wrap .eco-bc-measures > :nth-child(4){ grid-column: 1; }
.eco-bc-wrap .eco-bc-measures > :nth-child(5){ grid-column: 2; width: 180px !important; }

#presupuesto_ancho, #presupuesto_alto{ min-width:150px; width:100%; }
#presupuesto_cantidad{ width:120px !important; min-width:120px !important; }

.eco-bc-wrap .eco-bc-measures input[type="number"]{
    padding: 10px 12px; border: 1px solid var(--eco-border, #d6dbe6); border-radius: var(--eco-radius, 12px) !important; background:#fff; font-size: 15px; min-height: 44px;
    width: 100%; max-width: none; box-sizing: border-box;
}

@media (max-width: 780px){
    .eco-bc-wrap .eco-bc-measures{ grid-template-columns: 1fr; }
    .eco-bc-wrap .eco-bc-measures > *{ grid-column: 1 !important; }
    .eco-bc-wrap .eco-bc-measures > :nth-child(5){ width: 100% !important; }
    .eco-bc-ship-head{ flex-direction: column; align-items: flex-start; gap:10px; }
    .eco-bc-ship-toggle{ margin-left:0; }

    /* 🔥 móvil vuelve a vertical */
    .eco-bc-ship-list{
        grid-template-columns: 1fr;
    }
}

/* resto igual */
.eco-bc-wrap .input-text{ border-radius: var(--eco-radius) !important; }

.eco-bc-addon-row label{ position: relative; }

.eco-bc-addon-help{
    cursor: pointer;
    user-select:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    margin-left:6px;
    border-radius:50%;
    border:1px solid #bbb;
    font-weight:700;
    font-size:12px;
    line-height:1;
    background:#fff;
}

.eco-bc-help-pop{
    position:absolute;
    bottom:calc(100% + 8px);
    left:50%;
    transform:translateX(-50%);
    z-index:20;

    padding:10px 12px;
    background:#f2f2f2;
    border:1px solid #ddd;
    border-radius:8px;
    font-size:13px;
    line-height:1.35;
    max-width:420px;
    min-width:220px;
    box-shadow:0 6px 20px rgba(0,0,0,.12);
}

.eco-bc-help-pop::after{
    content:"";
    position:absolute;
    top:100%;
    left:50%;
    transform:translateX(-50%);
    border-width:6px;
    border-style:solid;
    border-color:#f2f2f2 transparent transparent transparent;
}

body.ecoi-modal-open { overflow: hidden; }
.ecoi-modal[hidden] { display: none !important; }
.ecoi-modal.is-open { display: block; }

/* ECO: ocultar fila "Envío" en tabla detalle pedido (ultra específico) */
table.woocommerce-table.woocommerce-table--order-details.shop_table.order_details tfoot tr:nth-child(2),
table.woocommerce-table.woocommerce-table--order-details.shop_table.order_details tfoot tr:nth-child(2) * {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
}

/* ✅ Labels en negrita dentro del modal (más agresivo) */
.ecoi-modal .wc-item-meta li > strong.wc-item-meta-label{
    display: inline-block !important;
    font-weight: 800 !important;
    font-style: normal !important;
    font-family: inherit !important;

    /* si la fuente es variable (Inter, etc.) */
    font-variation-settings: "wght" 800 !important;
}

/* ✅ Si el tema “mata” el bold, esto lo hace visible sí o sí (fake bold) */
.ecoi-modal .wc-item-meta li > strong.wc-item-meta-label{
    text-shadow: 0.04em 0 0 currentColor;
}

/* ===== IVA Switch (slide) ===== */
.eco-iva-switch{
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:10px;
    padding:6px 10px;
    border-radius:999px;
    background:#eef2ff; /* base suave */
    border:1px solid #e6ebf5;
}

.eco-iva-label{
    font-weight:800;
    font-size:13px;
    line-height:1;
    transition: color .15s, opacity .15s;
    user-select:none;
}

/* Estado visual: por defecto SIN IVA (checkbox checked) */
.eco-iva-switch .eco-iva-inc{ color:#94a3b8; }   /* gris */
.eco-iva-switch .eco-iva-exc{ color:#2165f1; }   /* azul */

/* Si NO está checked => CON IVA activo */
.eco-iva-switch.is-inc .eco-iva-inc{ color:#2165f1; }
.eco-iva-switch.is-inc .eco-iva-exc{ color:#94a3b8; }

/* Switch */
.eco-switch{
    position:relative;
    width:54px;
    height:30px;
    display:inline-block;
}

.eco-switch input{
    position:absolute;
    opacity:0;
    width:0;
    height:0;
}

.eco-slider{
    position:absolute;
    inset:0;
    background:#cbd5e1;            /* gris cuando INC */
    border-radius:999px;
    transition: background .18s ease, box-shadow .18s ease;
}

.eco-slider:before{
    content:"";
    position:absolute;
    width:24px;
    height:24px;
    left:3px;
    top:3px;
    background:#fff;
    border-radius:999px;
    box-shadow:0 2px 10px rgba(0,0,0,.12);
    transition: transform .18s ease;
}

/* Checked = SIN IVA */
.eco-switch input:checked + .eco-slider{
    background:#2165f1;
}
.eco-switch input:checked + .eco-slider:before{
    transform: translateX(24px);
}

.eco-switch input:focus-visible + .eco-slider{
    box-shadow:0 0 0 3px rgba(33,101,241,.20);
}

@media (max-width: 780px){

    /* =====================================================
       🔥 GRID: 3 columnas en móvil (horizontal)
    ====================================================== */
    .eco-bc-ship-list{
        grid-template-columns: repeat(3, 1fr);
        gap:8px;
    }

    /* =====================================================
       🔥 TARJETAS: más compactas y en columna
    ====================================================== */
    .ship-item{
        flex-direction: column;
        align-items: flex-start;
        padding:10px;
        gap:6px;
    }

    /* =====================================================
       🔥 RADIO: más pequeño y arriba
    ====================================================== */
    .ship-item input[type=radio]{
        width:14px;
        height:14px;
        margin-bottom:2px;
    }

    /* =====================================================
       🔥 TEXTO: tamaños reducidos
    ====================================================== */
    .ship-title{
        font-size:13px;
        font-weight:700;
    }

    .ship-price{
        font-size:14px;
        font-weight:800;
    }

    /* =====================================================
       🔥 FABRICACIÓN: FIX (no desaparecer nunca)
    ====================================================== */
    .ship-sub{
        font-size:11px;
        color:#64748b;
        line-height:1.1;
        position:relative;
    }

    /* SOLO ocultamos si existe data-days */
    .ship-sub[data-days]{
        visibility:hidden;
    }

    /* mostramos versión limpia */
    .ship-sub[data-days]::after{
        font-size:10px;
        font-weight:600;
        visibility:visible;
        position:absolute;
        left:0;
        top:0;
        content: "(Fabricación: " attr(data-days) ")";
    }

    /* =====================================================
       🔥 IVA: centrado y más pequeño
    ====================================================== */
    .eco-bc-ship-head{
        display:flex;
        flex-direction:column;
        align-items:center;
        gap:10px;
    }

    .eco-iva-switch{
        margin:0;
        transform: scale(0.9);
    }

    .eco-iva-label{
        font-size:11px;
    }

    /* =====================================================
       🔥 BLOQUE GENERAL: más compacto
    ====================================================== */
    .eco-bc-shipping{
        padding:16px 12px;
    }

    .eco-bc-ship-sub{
        font-size:13px;
        text-align:center;
    }
}

.eco-cart-popup{
    position:absolute;
    z-index:99999;
    display:none;
}

.eco-cart-popup-content{
    background:#fff;
    border-radius:16px;
    padding:14px 16px;
    width:260px;
    box-shadow:0 12px 30px rgba(0,0,0,0.12);
    border:1px solid #eee;
    animation: ecoFadeDown .25s ease;
}

@keyframes ecoFadeDown{
    from{ opacity:0; transform:translateY(-10px); }
    to{ opacity:1; transform:translateY(0); }
}

.eco-popup-close{
    position:absolute;
    top:8px;
    right:10px;
    cursor:pointer;
    font-size:14px;
    color:#999;
}

.eco-cart-popup-icon{
    font-size:18px;
    margin-bottom:4px;
}

.eco-cart-popup-text strong{
    font-size:14px;
    color:#111;
}

.eco-cart-popup-text p{
    font-size:12px;
    color:#666;
    margin:2px 0 10px;
}

.eco-popup-checkout{
    display:block;
    text-align:center;
    background-color: var(--e-global-color-primary) !important;
    border: 1px solid var(--e-global-color-primary) !important;
    color:#fff !important;
    padding:8px;
    border-radius:999px !important;
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    transition: all .25s ease !important;
}

.eco-popup-checkout:hover{
    filter: brightness(0.9);
}

.eco-bc-wrap {
    position: relative;
}

.eco-loader {
    position: absolute;
    inset: 0;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.eco-loader img {
    width: 320px;
    max-width: 70%;
    height: auto;
}