.capf-product-box,
.capf-product-box * {
    box-sizing: border-box;
}

.capf-product-box {
    --capf-primary: var(--ca-primary, #1B9C85);
    --capf-primary-dark: var(--ca-primary-dark, #147A69);
    --capf-primary-hover: var(--ca-primary-hover, #0F5F53);
    --capf-card: var(--ca-card, #FFFFFF);
    --capf-text: var(--ca-text, #111827);
    --capf-muted: var(--ca-muted, #6B7280);
    --capf-border: var(--ca-border, #E5E7EB);
    --capf-soft: #F9FCFA;
    --capf-soft-green: rgba(27, 156, 133, .08);
    --capf-shadow: 0 14px 34px rgba(15, 23, 42, .08);

    clear: both;
    width: 100%;
    max-width: 100%;
    margin: 22px 0;
    padding: 18px;
    border: 1px solid var(--capf-border);
    border-radius: 24px;
    background: #FFFFFF;
    color: var(--capf-text);
    box-shadow: var(--capf-shadow);
}

.capf-product-box__head {
    margin: 0 0 14px;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--capf-border);
}

.capf-product-box h3,
.capf-product-group h4 {
    margin: 0;
    color: var(--capf-text);
    line-height: 1.2;
    letter-spacing: -.025em;
}

.capf-product-box h3 {
    font-size: clamp(1.05rem, 1.8vw, 1.28rem);
    font-weight: 850;
}

.capf-product-group h4 {
    margin-bottom: 12px;
    font-size: 1rem;
    font-weight: 850;
}

.capf-product-intro {
    margin: 6px 0 0;
    color: var(--capf-muted);
    line-height: 1.5;
    font-size: .95rem;
}

.capf-product-group {
    padding: 16px;
    border-radius: 18px;
    background: var(--capf-soft);
    border: 1px solid var(--capf-border);
    margin-top: 12px;
}

.capf-front-field {
    margin: 14px 0 0;
    transition: opacity .18s ease, transform .18s ease;
}

.capf-front-field.capf-is-hidden {
    display: none;
}

.capf-front-field > label:not(.capf-checkbox),
.capf-front-field legend {
    display: block;
    font-weight: 800;
    color: var(--capf-text);
    margin: 0 0 7px;
    line-height: 1.35;
}

.capf-front-field input[type="text"],
.capf-front-field input[type="number"],
.capf-front-field input[type="email"],
.capf-front-field input[type="url"],
.capf-front-field input[type="date"],
.capf-front-field input[type="time"],
.capf-front-field textarea,
.capf-front-field select {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 46px;
    border: 1px solid var(--capf-border);
    border-radius: 16px;
    padding: 11px 13px;
    background: #FFFFFF;
    color: var(--capf-text);
    font: inherit;
    box-shadow: none;
}

.capf-front-field textarea {
    min-height: 104px;
    resize: vertical;
}

.capf-front-field input[type="text"]:focus,
.capf-front-field input[type="number"]:focus,
.capf-front-field input[type="email"]:focus,
.capf-front-field input[type="url"]:focus,
.capf-front-field input[type="date"]:focus,
.capf-front-field input[type="time"]:focus,
.capf-front-field textarea:focus,
.capf-front-field select:focus {
    border-color: var(--capf-primary);
    outline: none;
    box-shadow: 0 0 0 4px rgba(27, 156, 133, .13);
}

.capf-front-field small {
    display: block;
    margin-top: 6px;
    color: var(--capf-muted);
    line-height: 1.45;
    font-size: .88rem;
}

.capf-checkbox,
.capf-radio-list label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    margin: 0;
    padding: 12px 14px;
    border-radius: 18px;
    border: 1px solid var(--capf-border);
    background: #FFFFFF;
    color: var(--capf-text);
    line-height: 1.4;
}

.capf-checkbox:hover,
.capf-radio-list label:hover {
    border-color: rgba(27, 156, 133, .45);
    background: var(--capf-soft-green);
}

.capf-checkbox input,
.capf-radio-list input {
    width: auto;
    min-width: 16px;
    margin: 2px 0 0;
    accent-color: var(--capf-primary);
}

.capf-radio-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}

.capf-price-note {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    margin-left: 5px;
    padding: 3px 9px;
    border-radius: 999px;
    background: rgba(27, 156, 133, .10);
    color: var(--capf-primary-dark);
    font-size: .82em;
    font-weight: 900;
    white-space: nowrap;
}

.capf-product-box .required {
    color: #DC2626;
    text-decoration: none;
}

.woocommerce div.product form.cart .capf-product-box input,
.woocommerce div.product form.cart .capf-product-box select,
.woocommerce div.product form.cart .capf-product-box textarea {
    float: none;
}

.woocommerce div.product form.cart .capf-product-box .button {
    float: none;
}

@media (min-width: 768px) {
    .capf-radio-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 544px) {
    .capf-product-box {
        margin: 18px 0;
        padding: 14px;
        border-radius: 20px;
    }

    .capf-product-group {
        padding: 13px;
        border-radius: 16px;
    }
}


/* v0.2.1 - Product page layout guard
   Evita que el panel quede comprimido al lado de la cantidad/botón cuando el child theme
   convierte el formulario del producto en flex o grid. Solo afecta páginas de producto
   con CraftArt Product Fields activo. */
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart:has(.capf-product-box) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    width: 100%;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-layout-parent,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .woocommerce-variation-add-to-cart.capf-layout-parent,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .woocommerce-variation-add-to-cart:has(.capf-product-box) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    width: 100%;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-product-box,
body.single-product .woocommerce div.product form.cart.capf-cart-has-fields .capf-product-box,
.woocommerce div.product form.cart .capf-layout-parent > .capf-product-box {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-column: 1 / -1 !important;
    align-self: stretch;
    order: 10;
    display: block !important;
    float: none !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-layout-parent > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .woocommerce-variation-add-to-cart.capf-layout-parent > .quantity {
    order: 20;
    flex: 0 0 auto;
    margin: 0;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-layout-parent > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .woocommerce-variation-add-to-cart.capf-layout-parent > .single_add_to_cart_button {
    order: 21;
    flex: 1 1 220px;
    margin: 0;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields .variations,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields .single_variation_wrap {
    width: 100%;
    flex: 0 0 100%;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-product-box h3,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-product-group h4,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-front-field label,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-front-field small {
    word-break: normal;
    overflow-wrap: anywhere;
}

/* v0.2.2 - Product page placement + live total */
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields .capf-product-box,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-layout-parent > .capf-product-box,
body.single-product .woocommerce div.product form.cart .capf-product-box {
    order: -50 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    grid-column: 1 / -1 !important;
    display: block !important;
    float: none !important;
    clear: both !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-layout-parent > .quantity {
    order: 10 !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-layout-parent > .single_add_to_cart_button {
    order: 11 !important;
}

.capf-live-summary {
    margin-top: 14px;
    padding: 14px;
    border: 1px solid rgba(27, 156, 133, .22);
    border-radius: 18px;
    background: linear-gradient(180deg, #FFFFFF 0%, rgba(27, 156, 133, .045) 100%);
}

.capf-live-summary__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    color: var(--capf-muted);
    font-size: .94rem;
    padding: 4px 0;
}

.capf-live-summary__row strong {
    color: var(--capf-text);
    font-weight: 900;
    white-space: nowrap;
}

.capf-live-summary__row-total {
    margin-top: 7px;
    padding-top: 11px;
    border-top: 1px dashed rgba(27, 156, 133, .28);
    color: var(--capf-text);
    font-weight: 850;
}

.capf-live-summary__row-total strong {
    color: var(--capf-primary-dark);
    font-size: 1.08rem;
}

.capf-price-updated-note {
    display: inline-flex;
    margin-left: 8px;
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(27, 156, 133, .10);
    color: var(--capf-primary-dark, #147A69);
    font-size: .72rem;
    font-weight: 850;
    vertical-align: middle;
}

.capf-price-is-updated {
    color: var(--capf-primary-dark, #147A69) !important;
}

.capf-price-is-updated .woocommerce-Price-amount {
    color: inherit;
}

@media (max-width: 544px) {
    .capf-live-summary__row {
        font-size: .9rem;
    }

    .capf-price-updated-note {
        margin-left: 0;
        margin-top: 6px;
    }
}

/* v0.2.3 - Variable product placement fix
   En productos variables, el panel queda debajo de las opciones/variaciones y arriba de cantidad + botón. */
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .single_variation_wrap,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .single_variation_wrap.capf-variation-wrap-has-fields {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .single_variation_wrap.capf-variation-wrap-has-fields {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;
    gap: 14px;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .single_variation_wrap.capf-variation-wrap-has-fields > .capf-product-box {
    order: 5 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 16px;
    margin-bottom: 14px;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .single_variation_wrap.capf-variation-wrap-has-fields > .single_variation {
    order: 10 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .single_variation_wrap.capf-variation-wrap-has-fields > .woocommerce-variation-add-to-cart {
    order: 20 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;
    gap: 14px;
    width: 100% !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .single_variation_wrap.capf-variation-wrap-has-fields > .woocommerce-variation-add-to-cart > .quantity {
    flex: 0 0 auto;
    margin: 0 !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .single_variation_wrap.capf-variation-wrap-has-fields > .woocommerce-variation-add-to-cart > .single_add_to_cart_button {
    flex: 1 1 220px;
    margin: 0 !important;
}

/* v0.2.4 - Placement override for CraftArt Storefront Child
   El panel debe quedar después de variaciones/swatches y antes de cantidad + botón. */
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;
    gap: 14px;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .variations,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > table.variations,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .variable-items-wrapper,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > *:has(.variations),
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > *:has(.variable-items-wrapper) {
    order: 10 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .capf-product-box,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields .single_variation_wrap > .capf-product-box {
    order: 20 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    margin-top: 16px !important;
    margin-bottom: 14px !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .single_variation_wrap,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .woocommerce-variation-add-to-cart,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-cart-has-fields > *:has(.single_add_to_cart_button) {
    order: 30 !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .single_variation_wrap.capf-variation-wrap-has-fields > .capf-product-box {
    order: 10 !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .single_variation_wrap.capf-variation-wrap-has-fields > .woocommerce-variation-add-to-cart,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .single_variation_wrap.capf-variation-wrap-has-fields > *:has(.single_add_to_cart_button) {
    order: 20 !important;
}


/* v0.2.5 - Simple product layout hard fix
   En productos simples del CraftArt Storefront Child, el formulario puede quedar en grilla/flex
   y comprimir el panel de personalización. Estas reglas fuerzan una estructura segura:
   panel a ancho completo y cantidad + botón en una fila propia. */
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-layout-parent,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart:has(.capf-product-box[data-capf-product-type="simple"]) {
    display: grid !important;
    grid-template-columns: minmax(92px, 126px) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .capf-product-box,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-layout-parent > .capf-product-box,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart:has(.capf-product-box[data-capf-product-type="simple"]) > .capf-product-box {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
    align-self: stretch !important;
    order: initial !important;
    margin: 16px 0 0 !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-layout-parent > .quantity {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 126px !important;
    margin: 0 !important;
    justify-self: stretch !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-layout-parent > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > button[name="add-to-cart"],
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-layout-parent > button[name="add-to-cart"] {
    grid-column: 2 !important;
    width: 100% !important;
    min-width: 180px !important;
    margin: 0 !important;
    justify-self: stretch !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-simple-purchase-row {
    grid-column: 1 / -1 !important;
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-simple-purchase-row > .quantity {
    flex: 0 0 126px !important;
    width: 126px !important;
    max-width: 126px !important;
    margin: 0 !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-simple-purchase-row > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-simple-purchase-row > button[name="add-to-cart"] {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 180px !important;
    margin: 0 !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-simple-purchase-row + .capf-product-box,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart .single_add_to_cart_button + .capf-product-box {
    margin-top: 16px !important;
}

@media (max-width: 544px) {
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-layout-parent,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart:has(.capf-product-box[data-capf-product-type="simple"]) {
        grid-template-columns: 1fr !important;
    }

    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .quantity,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-layout-parent > .quantity,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .single_add_to_cart_button,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-layout-parent > .single_add_to_cart_button,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-simple-purchase-row > .quantity,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-simple-purchase-row > .single_add_to_cart_button {
        grid-column: 1 / -1 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex: 1 1 100% !important;
    }

    body.single-product.capf-has-product-fields .woocommerce div.product form.cart .capf-simple-purchase-row {
        flex-wrap: wrap !important;
    }
}

/* Compatibilidad con temas que mueven cantidad y botón de compra. */
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields .capf-simple-layout-parent:not(form),
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .ca-product-add-to-cart,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .ca-product-cart-actions,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .ca-cart-actions,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .product-cart-actions,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .summary-add-to-cart,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .cart-actions,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .add-to-cart-wrap,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .single_add_to_cart_wrap {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: minmax(92px, 126px) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields .capf-simple-layout-parent:not(form) > .capf-product-box {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 16px 0 0 !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields .capf-simple-layout-parent:not(form) > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .ca-product-add-to-cart > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .ca-product-cart-actions > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .ca-cart-actions > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .product-cart-actions > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .summary-add-to-cart > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .cart-actions > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .add-to-cart-wrap > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .single_add_to_cart_wrap > .quantity {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 126px !important;
    margin: 0 !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields .capf-simple-layout-parent:not(form) > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields .capf-simple-layout-parent:not(form) > button[name="add-to-cart"],
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .ca-product-add-to-cart > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .ca-product-cart-actions > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .ca-cart-actions > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .product-cart-actions > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .summary-add-to-cart > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .cart-actions > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .add-to-cart-wrap > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-cart-has-fields > .single_add_to_cart_wrap > .single_add_to_cart_button {
    grid-column: 2 !important;
    width: 100% !important;
    min-width: 180px !important;
    margin: 0 !important;
}


/* v0.2.6 - Simple product final normalization
   En productos simples, el panel se separa como bloque completo antes de cantidad/botón.
   Esto evita que el child theme lo meta en la misma grilla/flex del bloque de compra. */
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    clear: both !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-product-box,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-product-box {
    display: block !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    flex: none !important;
    grid-column: 1 / -1 !important;
    align-self: stretch !important;
    order: initial !important;
    margin: 0 0 16px !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row-normalized {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: stretch !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    grid-column: 1 / -1 !important;
    float: none !important;
    clear: both !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row > .quantity,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row .quantity {
    flex: 0 0 126px !important;
    width: 126px !important;
    max-width: 126px !important;
    min-width: 92px !important;
    margin: 0 !important;
}

body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row > .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row > button[name="add-to-cart"],
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row .single_add_to_cart_button,
body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row button[name="add-to-cart"] {
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 190px !important;
    margin: 0 !important;
    white-space: normal !important;
}

@media (max-width: 544px) {
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row-normalized {
        flex-wrap: wrap !important;
    }

    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row > .quantity,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row .quantity,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row > .single_add_to_cart_button,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row > button[name="add-to-cart"],
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row .single_add_to_cart_button,
    body.single-product.capf-has-product-fields .woocommerce div.product form.cart.capf-simple-normalized > .capf-simple-purchase-row button[name="add-to-cart"] {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
}

/* v0.2.7 - Simple products: external panel bridge
   El panel de productos simples se imprime antes del formulario de compra para no quedar
   atrapado en la grilla/flex del child theme. */
body.single-product.capf-has-product-fields .capf-product-box.capf-product-box--outside-form {
    display: block !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: 0 0 100% !important;
    grid-column: 1 / -1 !important;
    align-self: stretch !important;
    margin: 18px 0 16px !important;
}

body.single-product.capf-has-product-fields .capf-external-layout-parent-has-cart {
    display: block !important;
    grid-template-columns: none !important;
    grid-auto-columns: auto !important;
    gap: initial !important;
}

body.single-product.capf-has-product-fields .capf-product-box.capf-product-box--outside-form + form.cart,
body.single-product.capf-has-product-fields form.cart.capf-simple-external-cart-has-fields {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
    clear: both !important;
}

body.single-product.capf-has-product-fields form.cart.capf-simple-external-cart-has-fields > .quantity {
    flex: 0 0 126px !important;
    width: 126px !important;
    max-width: 126px !important;
    min-width: 92px !important;
    margin: 0 !important;
}

body.single-product.capf-has-product-fields form.cart.capf-simple-external-cart-has-fields > .single_add_to_cart_button,
body.single-product.capf-has-product-fields form.cart.capf-simple-external-cart-has-fields > button[name="add-to-cart"] {
    flex: 1 1 220px !important;
    width: auto !important;
    max-width: none !important;
    min-width: 190px !important;
    margin: 0 !important;
    white-space: normal !important;
}

@media (max-width: 544px) {
    body.single-product.capf-has-product-fields .capf-product-box.capf-product-box--outside-form + form.cart,
    body.single-product.capf-has-product-fields form.cart.capf-simple-external-cart-has-fields {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    body.single-product.capf-has-product-fields form.cart.capf-simple-external-cart-has-fields > .quantity,
    body.single-product.capf-has-product-fields form.cart.capf-simple-external-cart-has-fields > .single_add_to_cart_button,
    body.single-product.capf-has-product-fields form.cart.capf-simple-external-cart-has-fields > button[name="add-to-cart"] {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex: 1 1 100% !important;
    }
}

/* v0.3.0 - Frontend premium polish */
.capf-product-box--premium {
    border-color: rgba(27, 156, 133, .22);
    background:
        linear-gradient(180deg, rgba(27, 156, 133, .035), rgba(255, 255, 255, 0) 46%),
        #fff;
}

.capf-product-box--compact {
    padding: 14px;
    border-radius: 18px;
    box-shadow: none;
}

.capf-product-box--compact .capf-product-group,
.capf-product-box--compact .capf-live-summary {
    border-radius: 16px;
    padding: 13px;
}

.capf-radio-list {
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

.capf-choice-card {
    position: relative;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.capf-choice-card:hover {
    transform: translateY(-1px);
}

.capf-choice-card--selected,
.capf-choice-card:has(input:checked) {
    border-color: rgba(27, 156, 133, .75) !important;
    background: rgba(27, 156, 133, .08) !important;
    box-shadow: 0 0 0 4px rgba(27, 156, 133, .08);
}

.capf-choice-label {
    font-weight: 800;
    color: var(--capf-text);
}

.capf-option-price {
    display: inline-flex;
    align-items: center;
    margin-left: auto;
    padding: 3px 9px;
    border-radius: 999px;
    background: rgba(27, 156, 133, .12);
    color: var(--capf-primary-dark);
    font-weight: 900;
    font-size: .82rem;
    white-space: nowrap;
}

.capf-live-summary {
    margin-top: 14px;
}

.capf-product-box--no-summary .capf-live-summary {
    display: none !important;
}

.capf-price-updated-note {
    display: inline-flex;
    align-items: center;
    margin-left: 8px;
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(27, 156, 133, .10);
    color: var(--capf-primary-dark, #147A69);
    font-size: .72rem;
    font-weight: 900;
    vertical-align: middle;
}

@media (max-width: 544px) {
    .capf-radio-list {
        grid-template-columns: 1fr;
    }
    .capf-option-price {
        margin-left: 0;
    }
}

/* v0.4.0 swatches and image choices */
.capf-swatch-list,
.capf-image-choice-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
    gap: 10px;
}
.capf-swatch-card,
.capf-image-choice-card {
    min-height: 76px;
    justify-content: center;
    text-align: center;
}
.capf-swatch-dot {
    width: 30px;
    height: 30px;
    border-radius: 999px;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px var(--capf-border), 0 8px 18px rgba(15, 23, 42, .10);
    flex: 0 0 auto;
}
.capf-image-choice-card {
    padding: 10px;
}
.capf-image-choice-thumb {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 14px;
    overflow: hidden;
    background: var(--capf-soft);
    border: 1px solid var(--capf-border);
    display: block;
    margin-bottom: 8px;
}
.capf-image-choice-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.capf-choice-card--selected .capf-swatch-dot {
    box-shadow: 0 0 0 2px var(--capf-primary), 0 12px 24px rgba(27, 156, 133, .18);
}
.capf-front-field-image_choice .capf-choice-card--selected .capf-image-choice-thumb {
    border-color: var(--capf-primary);
    box-shadow: 0 0 0 3px rgba(27, 156, 133, .12);
}

.capf-front-field-file_upload input[type="file"] {
    width: 100%;
    padding: 12px;
    border: 1px dashed var(--capf-primary);
    border-radius: 16px;
    background: var(--capf-soft-green);
    color: var(--capf-text);
}

.capf-file-hint {
    display: block;
    margin-top: 8px;
    color: var(--capf-muted);
    font-size: .86rem;
    line-height: 1.4;
}


/* v0.6.0 formula pricing */
.capf-price-note {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}


/* v0.7.0 - Multi-choice, date/time/email/url */
.capf-front-field select[multiple],
.capf-multi-select {
    min-height: 118px;
    padding: 9px;
}

.capf-checkbox-group-list {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.capf-front-field-email input,
.capf-front-field-url input,
.capf-front-field-date input,
.capf-front-field-time input {
    background: #fff;
}

.capf-front-field-checkbox_group.capf-required-missing .capf-checkbox-group-list {
    box-shadow: 0 0 0 4px rgba(220, 38, 38, .10);
    border-radius: 18px;
}

.capf-file-status {
    display: block;
    margin-top: 8px;
    font-size: 13px;
    font-weight: 750;
    color: #6b7280;
}
.capf-file-status.is-loading { color: #92400e; }
.capf-file-status.is-success { color: #147A69; }
.capf-file-status.is-error { color: #dc2626; }

/* v0.9.2: layouts configurables para opciones */
.capf-front-field-layout-buttons .capf-radio-list,
.capf-front-field-layout-cards .capf-radio-list,
.capf-front-field-layout-images .capf-radio-list,
.capf-front-field-layout-swatches .capf-radio-list {
    display: grid;
    gap: 10px;
}
.capf-front-field-cols-1 .capf-radio-list { grid-template-columns: 1fr; }
.capf-front-field-cols-2 .capf-radio-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.capf-front-field-cols-3 .capf-radio-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.capf-front-field-cols-4 .capf-radio-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.capf-front-field-layout-buttons .capf-choice-card {
    justify-content: center;
    text-align: center;
    border-radius: 999px;
}
.capf-front-field-layout-images .capf-image-choice-list,
.capf-front-field-image_choice .capf-image-choice-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.capf-front-field-layout-images .capf-image-choice-card,
.capf-front-field-image_choice .capf-image-choice-card {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
}
.capf-front-field-layout-swatches .capf-swatch-list .capf-choice-card {
    min-height: 54px;
}
@media (max-width: 720px) {
    .capf-front-field-cols-2 .capf-radio-list,
    .capf-front-field-cols-3 .capf-radio-list,
    .capf-front-field-cols-4 .capf-radio-list,
    .capf-front-field-layout-images .capf-image-choice-list,
    .capf-front-field-image_choice .capf-image-choice-list {
        grid-template-columns: 1fr;
    }
}

/* v0.9.8 - Pulido frontend: experiencia de compra más clara para el cliente */
.capf-product-box {
    overflow: hidden;
}

.capf-product-box__head {
    position: relative;
}

.capf-product-box__head:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 64px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--capf-primary), var(--capf-primary-dark));
}

.capf-product-group:only-of-type h4 {
    margin-bottom: 10px;
}

.capf-front-field {
    padding: 12px;
    border: 1px solid rgba(229, 231, 235, .86);
    border-radius: 18px;
    background: #fff;
}

.capf-front-field + .capf-front-field {
    margin-top: 12px;
}

.capf-front-field.capf-has-value {
    border-color: rgba(27, 156, 133, .30);
    background: linear-gradient(180deg, #fff 0%, rgba(27, 156, 133, .025) 100%);
}

.capf-choice-card {
    min-height: 52px;
}

.capf-choice-card input[type="radio"],
.capf-choice-card input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.capf-choice-card:before {
    content: "";
    width: 18px;
    height: 18px;
    border-radius: 999px;
    border: 2px solid #CBD5E1;
    background: #fff;
    flex: 0 0 auto;
    margin-top: 1px;
    transition: .16s ease;
}

.capf-choice-card--selected:before,
.capf-choice-card:has(input:checked):before {
    border-color: var(--capf-primary);
    background: radial-gradient(circle, var(--capf-primary) 0 42%, #fff 45% 100%);
    box-shadow: 0 0 0 4px rgba(27, 156, 133, .12);
}

.capf-front-field-checkbox .capf-choice-card:before,
.capf-checkbox.capf-choice-card:before,
.capf-checkbox-group-list .capf-choice-card:before {
    border-radius: 7px;
}

.capf-front-field-checkbox .capf-choice-card--selected:before,
.capf-checkbox.capf-choice-card:has(input:checked):before,
.capf-checkbox-group-list .capf-choice-card:has(input:checked):before {
    background: var(--capf-primary);
    border-color: var(--capf-primary);
    box-shadow: 0 0 0 4px rgba(27, 156, 133, .12);
}

.capf-front-field-checkbox .capf-choice-card--selected:after,
.capf-checkbox.capf-choice-card:has(input:checked):after,
.capf-checkbox-group-list .capf-choice-card:has(input:checked):after {
    content: "✓";
    position: absolute;
    left: 18px;
    top: 15px;
    color: #fff;
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
}

.capf-image-choice-card:before,
.capf-swatch-card:before {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
}

.capf-image-choice-card .capf-choice-label,
.capf-swatch-card .capf-choice-label {
    width: 100%;
}

.capf-image-choice-thumb {
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.capf-image-choice-card:hover .capf-image-choice-thumb {
    transform: translateY(-1px);
    box-shadow: 0 12px 26px rgba(15, 23, 42, .10);
}

.capf-front-field-file_upload input[type="file"] {
    min-height: 54px;
    cursor: pointer;
}

.capf-file-status.is-loading:before,
.capf-file-status.is-success:before,
.capf-file-status.is-error:before {
    display: inline-block;
    margin-right: 6px;
}
.capf-file-status.is-loading:before { content: "⏳"; }
.capf-file-status.is-success:before { content: "✓"; }
.capf-file-status.is-error:before { content: "⚠"; }

.capf-live-summary__selection {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed rgba(27, 156, 133, .24);
}

.capf-live-summary__selection[hidden],
.capf-product-box--no-selection-summary .capf-live-summary__selection {
    display: none !important;
}

.capf-live-summary__selection-title {
    margin-bottom: 8px;
    color: var(--capf-text);
    font-size: .9rem;
    font-weight: 900;
}

.capf-live-summary__selection-row {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 10px;
    align-items: start;
    padding: 7px 0;
    border-top: 1px solid rgba(229, 231, 235, .72);
    font-size: .9rem;
}

.capf-live-summary__selection-row:first-of-type {
    border-top: 0;
}

.capf-live-summary__selection-label {
    color: var(--capf-muted);
    font-weight: 750;
}

.capf-live-summary__selection-value {
    color: var(--capf-text);
    font-weight: 900;
    text-align: right;
    overflow-wrap: anywhere;
}

@media (max-width: 720px) {
    .capf-front-field {
        padding: 10px;
        border-radius: 16px;
    }

    .capf-live-summary__selection-row {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .capf-live-summary__selection-value {
        text-align: left;
    }
}

/* v0.9.9: detalle visible en opciones */
.capf-option-desc {
    display: block;
    width: 100%;
    margin-top: 3px;
    color: #6b7280;
    font-size: 12px;
    line-height: 1.35;
    font-weight: 600;
}
.capf-choice-card .capf-option-desc {
    grid-column: 1 / -1;
}

/* v1.0.4: grupos aplicados a variaciones específicas */
.capf-product-group.capf-is-hidden {
    display: none !important;
}

/* v1.0.5: cuando ninguna variación activa usa campos, se oculta el panel completo */
.capf-product-box.capf-product-box--no-active-groups {
    display: none !important;
}


/* v1.0.6: corrección de muestras de color en columnas angostas.
   Evita que el texto, precio y selector se monten cuando el bloque del producto es estrecho. */
.capf-front-field-color_swatch .capf-swatch-list,
.capf-front-field-layout-swatches .capf-swatch-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)) !important;
    gap: 10px !important;
    align-items: stretch;
}

.capf-front-field-color_swatch.capf-front-field-cols-1 .capf-swatch-list,
.capf-front-field-color_swatch.capf-front-field-cols-2 .capf-swatch-list,
.capf-front-field-color_swatch.capf-front-field-cols-3 .capf-swatch-list,
.capf-front-field-color_swatch.capf-front-field-cols-4 .capf-swatch-list,
.capf-front-field-layout-swatches.capf-front-field-cols-1 .capf-swatch-list,
.capf-front-field-layout-swatches.capf-front-field-cols-2 .capf-swatch-list,
.capf-front-field-layout-swatches.capf-front-field-cols-3 .capf-swatch-list,
.capf-front-field-layout-swatches.capf-front-field-cols-4 .capf-swatch-list {
    grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)) !important;
}

.capf-swatch-card.capf-choice-card,
.capf-front-field-color_swatch .capf-choice-card {
    min-height: 86px !important;
    padding: 12px 10px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    text-align: center !important;
    overflow: visible !important;
}

.capf-swatch-card input[type="radio"] {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.capf-swatch-card:before,
.capf-front-field-color_swatch .capf-choice-card:before {
    position: absolute !important;
    top: 8px !important;
    left: 8px !important;
    width: 15px !important;
    height: 15px !important;
    margin: 0 !important;
    z-index: 2 !important;
}

.capf-swatch-card .capf-swatch-dot {
    width: 34px !important;
    height: 34px !important;
    margin: 0 auto !important;
    flex: 0 0 auto !important;
}

.capf-swatch-card .capf-choice-label {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    font-size: 12px !important;
    line-height: 1.18 !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

.capf-swatch-card .capf-option-desc {
    display: none !important;
}

.capf-swatch-card .capf-option-price {
    margin: 0 !important;
    padding: 2px 7px !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
}

@media (max-width: 720px) {
    .capf-front-field-color_swatch .capf-swatch-list,
    .capf-front-field-layout-swatches .capf-swatch-list {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 390px) {
    .capf-front-field-color_swatch .capf-swatch-list,
    .capf-front-field-layout-swatches .capf-swatch-list {
        grid-template-columns: 1fr !important;
    }
}


/* v1.0.7: estabilidad de interacción en producto.
   Evita parpadeos visuales y asegura que las opciones/campos reciban clicks y escritura sin interferencias. */
.capf-product-box,
.capf-product-box * {
    animation: none !important;
}

.capf-choice-card {
    cursor: pointer !important;
    user-select: none;
    -webkit-tap-highlight-color: rgba(27, 156, 133, .12);
}

.capf-choice-card:before,
.capf-choice-card:after {
    pointer-events: none !important;
}

.capf-front-field input:not([type="radio"]):not([type="checkbox"]),
.capf-front-field textarea,
.capf-front-field select {
    pointer-events: auto !important;
    user-select: auto !important;
    position: relative;
    z-index: 3;
}

.capf-product-box .capf-live-summary,
.capf-product-box .capf-live-summary * {
    pointer-events: none;
}

.capf-front-field.capf-is-hidden,
.capf-product-group.capf-is-hidden {
    display: none !important;
}

/* v1.0.8: pulido de opciones tipo botón.
   Evita que etiqueta, detalle y precio se monten cuando hay 2-3 opciones en espacios angostos. */
.capf-front-field-layout-buttons .capf-radio-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
    gap: 10px !important;
    align-items: stretch !important;
}

.capf-front-field-layout-buttons.capf-front-field-cols-1 .capf-radio-list,
.capf-front-field-layout-buttons.capf-front-field-cols-2 .capf-radio-list,
.capf-front-field-layout-buttons.capf-front-field-cols-3 .capf-radio-list,
.capf-front-field-layout-buttons.capf-front-field-cols-4 .capf-radio-list {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
}

.capf-front-field-layout-buttons .capf-choice-card {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    min-height: 78px !important;
    padding: 13px 13px 13px 44px !important;
    border-radius: 18px !important;
    text-align: left !important;
    gap: 3px !important;
    overflow: hidden !important;
}

.capf-front-field-layout-buttons .capf-choice-card:before {
    position: absolute !important;
    left: 14px !important;
    top: 18px !important;
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
}

.capf-front-field-layout-buttons .capf-choice-card .capf-choice-label {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1.22 !important;
    font-weight: 900 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

.capf-front-field-layout-buttons .capf-choice-card .capf-option-desc {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    color: var(--capf-muted) !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    font-weight: 650 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

.capf-front-field-layout-buttons .capf-choice-card .capf-option-price {
    margin: 6px 0 0 !important;
    align-self: flex-start !important;
    padding: 2px 7px !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
}

@media (max-width: 720px) {
    .capf-front-field-layout-buttons .capf-radio-list,
    .capf-front-field-layout-buttons.capf-front-field-cols-1 .capf-radio-list,
    .capf-front-field-layout-buttons.capf-front-field-cols-2 .capf-radio-list,
    .capf-front-field-layout-buttons.capf-front-field-cols-3 .capf-radio-list,
    .capf-front-field-layout-buttons.capf-front-field-cols-4 .capf-radio-list {
        grid-template-columns: 1fr !important;
    }
}


/* v1.0.9: opciones tipo botón / radio más limpias.
   En algunos themes el layout por defecto de radio seguía dejando el detalle al costado.
   Este bloque fuerza una estructura real de card: selector + contenido vertical. */
.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice).capf-front-field-cols-1 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice).capf-front-field-cols-2 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice).capf-front-field-cols-3 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice).capf-front-field-cols-4 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-layout-buttons.capf-front-field-cols-1 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-layout-buttons.capf-front-field-cols-2 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-layout-buttons.capf-front-field-cols-3 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-layout-buttons.capf-front-field-cols-4 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card,
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) !important;
    grid-template-areas:
        "control title"
        "control desc"
        "control price" !important;
    column-gap: 11px !important;
    row-gap: 4px !important;
    align-items: start !important;
    justify-content: initial !important;
    min-height: 86px !important;
    padding: 14px 15px !important;
    overflow: visible !important;
    text-align: left !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card:before,
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card:before {
    grid-area: control !important;
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: 18px !important;
    height: 18px !important;
    margin: 1px 0 0 !important;
    flex: 0 0 auto !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-choice-label,
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-choice-label {
    grid-area: title !important;
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 950 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-option-desc,
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-option-desc {
    grid-area: desc !important;
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--capf-muted) !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
    font-weight: 650 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-option-price,
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-option-price {
    grid-area: price !important;
    justify-self: start !important;
    align-self: start !important;
    margin: 4px 0 0 !important;
    padding: 3px 8px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}

@media (max-width: 820px) {
    .capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice).capf-front-field-cols-1 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice).capf-front-field-cols-2 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice).capf-front-field-cols-3 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice).capf-front-field-cols-4 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-layout-buttons.capf-front-field-cols-1 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-layout-buttons.capf-front-field-cols-2 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-layout-buttons.capf-front-field-cols-3 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-layout-buttons.capf-front-field-cols-4 .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) {
        grid-template-columns: 1fr !important;
    }
}


/* v1.0.10: pulido checkbox group / extras sumables.
   Evita que las opciones con precio se aprieten en 3 columnas y que el badge quede cortado. */
.capf-front-field-checkbox_group .capf-checkbox-group-list,
.capf-front-field-checkbox_group.capf-front-field-cols-1 .capf-checkbox-group-list,
.capf-front-field-checkbox_group.capf-front-field-cols-2 .capf-checkbox-group-list,
.capf-front-field-checkbox_group.capf-front-field-cols-3 .capf-checkbox-group-list,
.capf-front-field-checkbox_group.capf-front-field-cols-4 .capf-checkbox-group-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
}

.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) !important;
    grid-template-areas:
        "control title"
        "control desc"
        "control price" !important;
    column-gap: 11px !important;
    row-gap: 4px !important;
    align-items: start !important;
    justify-content: initial !important;
    min-height: 82px !important;
    padding: 14px 15px !important;
    border-radius: 18px !important;
    overflow: visible !important;
    text-align: left !important;
}

.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card:before {
    grid-area: control !important;
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: 18px !important;
    height: 18px !important;
    margin: 1px 0 0 !important;
    flex: 0 0 auto !important;
}

.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card:has(input:checked):after {
    left: 18px !important;
    top: 17px !important;
}

.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card .capf-choice-label {
    grid-area: title !important;
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 950 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card .capf-option-desc {
    grid-area: desc !important;
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--capf-muted) !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
    font-weight: 650 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card .capf-option-price {
    grid-area: price !important;
    justify-self: start !important;
    align-self: start !important;
    max-width: 100% !important;
    margin: 4px 0 0 !important;
    padding: 3px 8px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}

@media (max-width: 560px) {
    .capf-front-field-checkbox_group .capf-checkbox-group-list,
    .capf-front-field-checkbox_group.capf-front-field-cols-1 .capf-checkbox-group-list,
    .capf-front-field-checkbox_group.capf-front-field-cols-2 .capf-checkbox-group-list,
    .capf-front-field-checkbox_group.capf-front-field-cols-3 .capf-checkbox-group-list,
    .capf-front-field-checkbox_group.capf-front-field-cols-4 .capf-checkbox-group-list {
        grid-template-columns: 1fr !important;
    }
}

/* v1.0.11: pulido general de opciones seleccionables.
   Ordena radios, botones, checkboxes, swatches e imágenes para que se vean como cards limpias,
   con estados seleccionados más claros y mejor comportamiento responsive. */
.capf-product-box .capf-radio-list,
.capf-front-field-layout-cards .capf-radio-list,
.capf-front-field-layout-buttons .capf-radio-list,
.capf-front-field-checkbox_group .capf-checkbox-group-list {
    gap: 12px !important;
    align-items: stretch !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-checkbox_group .capf-checkbox-group-list,
.capf-front-field-checkbox_group.capf-front-field-cols-1 .capf-checkbox-group-list,
.capf-front-field-checkbox_group.capf-front-field-cols-2 .capf-checkbox-group-list,
.capf-front-field-checkbox_group.capf-front-field-cols-3 .capf-checkbox-group-list,
.capf-front-field-checkbox_group.capf-front-field-cols-4 .capf-checkbox-group-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)) !important;
}

.capf-product-box .capf-choice-card {
    min-width: 0 !important;
    height: 100% !important;
    cursor: pointer !important;
    user-select: none !important;
    border-color: rgba(229, 231, 235, .95) !important;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%) !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .035) !important;
    transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease !important;
}

.capf-product-box .capf-choice-card:hover {
    transform: translateY(-1px) !important;
    border-color: rgba(27, 156, 133, .42) !important;
    background: linear-gradient(180deg, #ffffff 0%, rgba(27, 156, 133, .045) 100%) !important;
    box-shadow: 0 12px 26px rgba(15, 23, 42, .07) !important;
}

.capf-product-box .capf-choice-card:focus-within {
    border-color: rgba(27, 156, 133, .72) !important;
    box-shadow: 0 0 0 4px rgba(27, 156, 133, .12), 0 12px 26px rgba(15, 23, 42, .08) !important;
}

.capf-product-box .capf-choice-card--selected,
.capf-product-box .capf-choice-card:has(input:checked) {
    border-color: rgba(27, 156, 133, .82) !important;
    background: linear-gradient(180deg, rgba(27, 156, 133, .13) 0%, rgba(27, 156, 133, .055) 100%) !important;
    box-shadow: 0 0 0 4px rgba(27, 156, 133, .08), 0 14px 30px rgba(15, 23, 42, .075) !important;
}

.capf-product-box .capf-choice-card:before {
    box-sizing: border-box !important;
    display: block !important;
    flex: 0 0 auto !important;
    border-color: #CBD5E1 !important;
    background: #fff !important;
}

.capf-product-box .capf-choice-card--selected:before,
.capf-product-box .capf-choice-card:has(input:checked):before {
    border-color: var(--capf-primary) !important;
    box-shadow: 0 0 0 4px rgba(27, 156, 133, .12) !important;
}

.capf-product-box .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card--selected:before,
.capf-product-box .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card:has(input[type="radio"]:checked):before {
    background: radial-gradient(circle, var(--capf-primary) 0 42%, #fff 45% 100%) !important;
}

.capf-checkbox-group-list .capf-choice-card--selected:before,
.capf-checkbox-group-list .capf-choice-card:has(input[type="checkbox"]:checked):before,
.capf-checkbox.capf-choice-card--selected:before,
.capf-checkbox.capf-choice-card:has(input[type="checkbox"]:checked):before {
    background: var(--capf-primary) !important;
    border-color: var(--capf-primary) !important;
}

.capf-checkbox-group-list .capf-choice-card--selected:after,
.capf-checkbox-group-list .capf-choice-card:has(input[type="checkbox"]:checked):after {
    content: "✓" !important;
    position: absolute !important;
    left: 18px !important;
    top: 17px !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    z-index: 2 !important;
}

.capf-product-box .capf-choice-card .capf-choice-label {
    color: var(--capf-text) !important;
    letter-spacing: -.012em !important;
}

.capf-product-box .capf-choice-card .capf-option-desc {
    color: var(--capf-muted) !important;
    opacity: .92 !important;
}

.capf-product-box .capf-choice-card .capf-option-price {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: fit-content !important;
    max-width: 100% !important;
    border: 1px solid rgba(27, 156, 133, .16) !important;
    background: rgba(27, 156, 133, .12) !important;
    color: var(--capf-primary-dark) !important;
    font-weight: 950 !important;
    letter-spacing: -.01em !important;
    white-space: nowrap !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card,
.capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card,
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card,
.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) !important;
    grid-template-areas:
        "control title"
        "control desc"
        "control price" !important;
    column-gap: 11px !important;
    row-gap: 4px !important;
    align-items: start !important;
    min-height: 88px !important;
    padding: 14px 15px !important;
    border-radius: 18px !important;
    text-align: left !important;
    overflow: visible !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card:before,
.capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card:before,
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card:before,
.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card:before {
    grid-area: control !important;
    position: static !important;
    width: 18px !important;
    height: 18px !important;
    margin: 1px 0 0 !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-choice-label,
.capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-choice-label,
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-choice-label,
.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card .capf-choice-label {
    grid-area: title !important;
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.22 !important;
    font-weight: 950 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-option-desc,
.capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-option-desc,
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-option-desc,
.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card .capf-option-desc {
    grid-area: desc !important;
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1.34 !important;
    font-weight: 650 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-option-price,
.capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-option-price,
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card .capf-option-price,
.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card .capf-option-price {
    grid-area: price !important;
    justify-self: start !important;
    align-self: start !important;
    margin: 5px 0 0 !important;
    padding: 3px 8px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    line-height: 1.18 !important;
}

.capf-front-field-color_swatch .capf-swatch-list,
.capf-front-field-layout-swatches .capf-swatch-list {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 106px), 1fr)) !important;
    gap: 12px !important;
}

.capf-front-field-color_swatch .capf-swatch-card,
.capf-front-field-layout-swatches .capf-swatch-card {
    min-height: 92px !important;
    padding: 13px 10px !important;
    border-radius: 18px !important;
}

.capf-front-field-color_swatch .capf-swatch-dot,
.capf-front-field-layout-swatches .capf-swatch-dot {
    width: 36px !important;
    height: 36px !important;
    box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(203, 213, 225, .95), 0 10px 20px rgba(15, 23, 42, .10) !important;
}

.capf-front-field-color_swatch .capf-choice-card--selected .capf-swatch-dot,
.capf-front-field-color_swatch .capf-choice-card:has(input:checked) .capf-swatch-dot,
.capf-front-field-layout-swatches .capf-choice-card--selected .capf-swatch-dot,
.capf-front-field-layout-swatches .capf-choice-card:has(input:checked) .capf-swatch-dot {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(27, 156, 133, .92), 0 12px 24px rgba(27, 156, 133, .20) !important;
}

.capf-front-field-image_choice .capf-image-choice-list,
.capf-front-field-layout-images .capf-image-choice-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)) !important;
    gap: 12px !important;
}

.capf-front-field-image_choice .capf-image-choice-card,
.capf-front-field-layout-images .capf-image-choice-card {
    min-height: 100% !important;
    border-radius: 20px !important;
    padding: 10px !important;
}

.capf-front-field-image_choice .capf-image-choice-thumb,
.capf-front-field-layout-images .capf-image-choice-thumb {
    border-radius: 16px !important;
    background: #f8fafc !important;
}

@media (max-width: 720px) {
    .capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-checkbox_group .capf-checkbox-group-list,
    .capf-front-field-checkbox_group.capf-front-field-cols-1 .capf-checkbox-group-list,
    .capf-front-field-checkbox_group.capf-front-field-cols-2 .capf-checkbox-group-list,
    .capf-front-field-checkbox_group.capf-front-field-cols-3 .capf-checkbox-group-list,
    .capf-front-field-checkbox_group.capf-front-field-cols-4 .capf-checkbox-group-list,
    .capf-front-field-color_swatch .capf-swatch-list,
    .capf-front-field-layout-swatches .capf-swatch-list,
    .capf-front-field-image_choice .capf-image-choice-list,
    .capf-front-field-layout-images .capf-image-choice-list {
        grid-template-columns: 1fr !important;
    }
}


/* v1.0.12: columnas reales por campo (escritorio + móvil)
   Este bloque va al final porque versiones previas usaban auto-fit para evitar cortes,
   pero eso hacía que la opción "Columnas" no siempre se respetara en la ficha. */
.capf-front-field {
    --capf-option-columns-desktop: 3;
    --capf-option-columns-mobile: 1;
}
.capf-front-field-cols-1 { --capf-option-columns-desktop: 1; }
.capf-front-field-cols-2 { --capf-option-columns-desktop: 2; }
.capf-front-field-cols-3 { --capf-option-columns-desktop: 3; }
.capf-front-field-cols-4 { --capf-option-columns-desktop: 4; }
.capf-front-field-mobile-cols-1 { --capf-option-columns-mobile: 1; }
.capf-front-field-mobile-cols-2 { --capf-option-columns-mobile: 2; }
.capf-front-field-mobile-cols-3 { --capf-option-columns-mobile: 3; }
.capf-front-field-mobile-cols-4 { --capf-option-columns-mobile: 4; }

.capf-front-field .capf-radio-list,
.capf-front-field .capf-checkbox-group-list,
.capf-front-field .capf-swatch-list,
.capf-front-field .capf-image-choice-list,
.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-front-field-checkbox_group .capf-checkbox-group-list,
.capf-front-field-color_swatch .capf-swatch-list,
.capf-front-field-layout-swatches .capf-swatch-list,
.capf-front-field-image_choice .capf-image-choice-list,
.capf-front-field-layout-images .capf-image-choice-list {
    display: grid !important;
    grid-template-columns: repeat(var(--capf-option-columns-desktop), minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
}

@media (max-width: 820px) {
    .capf-front-field .capf-radio-list,
    .capf-front-field .capf-checkbox-group-list,
    .capf-front-field .capf-swatch-list,
    .capf-front-field .capf-image-choice-list,
    .capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-front-field-checkbox_group .capf-checkbox-group-list,
    .capf-front-field-color_swatch .capf-swatch-list,
    .capf-front-field-layout-swatches .capf-swatch-list,
    .capf-front-field-image_choice .capf-image-choice-list,
    .capf-front-field-layout-images .capf-image-choice-list {
        grid-template-columns: repeat(var(--capf-option-columns-mobile), minmax(0, 1fr)) !important;
    }
}

/* v1.0.13: columnas configuradas con prioridad real.
   Las versiones anteriores tenían reglas auto-fit con !important y mayor especificidad.
   Este bloque usa una clase dedicada + variables + selectores más fuertes para respetar escritorio y móvil. */
.capf-front-field .capf-options-grid {
    display: grid !important;
    grid-template-columns: repeat(var(--capf-option-columns-desktop, 3), minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
}

body.single-product.capf-has-product-fields .capf-product-box .capf-front-field.capf-front-field-cols-1 .capf-options-grid,
.capf-product-box .capf-front-field.capf-front-field-cols-1 .capf-options-grid {
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
}
body.single-product.capf-has-product-fields .capf-product-box .capf-front-field.capf-front-field-cols-2 .capf-options-grid,
.capf-product-box .capf-front-field.capf-front-field-cols-2 .capf-options-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
body.single-product.capf-has-product-fields .capf-product-box .capf-front-field.capf-front-field-cols-3 .capf-options-grid,
.capf-product-box .capf-front-field.capf-front-field-cols-3 .capf-options-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
body.single-product.capf-has-product-fields .capf-product-box .capf-front-field.capf-front-field-cols-4 .capf-options-grid,
.capf-product-box .capf-front-field.capf-front-field-cols-4 .capf-options-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

@media (max-width: 820px) {
    body.single-product.capf-has-product-fields .capf-product-box .capf-front-field.capf-front-field-mobile-cols-1 .capf-options-grid,
    .capf-product-box .capf-front-field.capf-front-field-mobile-cols-1 .capf-options-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
    }
    body.single-product.capf-has-product-fields .capf-product-box .capf-front-field.capf-front-field-mobile-cols-2 .capf-options-grid,
    .capf-product-box .capf-front-field.capf-front-field-mobile-cols-2 .capf-options-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    body.single-product.capf-has-product-fields .capf-product-box .capf-front-field.capf-front-field-mobile-cols-3 .capf-options-grid,
    .capf-product-box .capf-front-field.capf-front-field-mobile-cols-3 .capf-options-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
    body.single-product.capf-has-product-fields .capf-product-box .capf-front-field.capf-front-field-mobile-cols-4 .capf-options-grid,
    .capf-product-box .capf-front-field.capf-front-field-mobile-cols-4 .capf-options-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

/* v1.0.14: resumen de personalización / total final más claro y comercial. */
.capf-product-box .capf-live-summary--pro {
    position: relative !important;
    margin-top: 16px !important;
    padding: 16px !important;
    border: 1px solid rgba(27, 156, 133, .24) !important;
    border-radius: 22px !important;
    background:
        radial-gradient(circle at top right, rgba(27, 156, 133, .12), transparent 34%),
        linear-gradient(180deg, #FFFFFF 0%, rgba(249, 252, 250, .96) 100%) !important;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .07) !important;
    overflow: hidden !important;
}

.capf-product-box .capf-live-summary--pro:before {
    content: "" !important;
    position: absolute !important;
    inset: 0 auto 0 0 !important;
    width: 4px !important;
    background: linear-gradient(180deg, var(--capf-primary), var(--capf-primary-dark)) !important;
    opacity: .9 !important;
}

.capf-live-summary__head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin: 0 0 12px !important;
    padding-left: 2px !important;
}

.capf-live-summary__head strong {
    color: var(--capf-text) !important;
    font-size: 1rem !important;
    font-weight: 950 !important;
    line-height: 1.2 !important;
    letter-spacing: -.02em !important;
}

.capf-live-summary__eyebrow {
    display: inline-flex !important;
    align-items: center !important;
    padding: 4px 9px !important;
    border-radius: 999px !important;
    background: rgba(27, 156, 133, .10) !important;
    color: var(--capf-primary-dark) !important;
    font-size: .72rem !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
    letter-spacing: .055em !important;
    white-space: nowrap !important;
}

.capf-live-summary__totals {
    display: grid !important;
    gap: 6px !important;
}

.capf-live-summary--pro .capf-live-summary__row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    min-height: 38px !important;
    padding: 7px 0 !important;
    color: var(--capf-muted) !important;
    font-size: .92rem !important;
    border: 0 !important;
}

.capf-live-summary--pro .capf-live-summary__row strong {
    color: var(--capf-text) !important;
    font-size: .96rem !important;
    font-weight: 950 !important;
    white-space: nowrap !important;
}

.capf-live-summary--pro .capf-live-summary__row-base {
    border-bottom: 1px solid rgba(229, 231, 235, .82) !important;
}

.capf-live-summary--pro .capf-live-summary__row-total {
    margin: 7px 0 0 !important;
    padding: 12px 13px !important;
    border: 1px solid rgba(27, 156, 133, .18) !important;
    border-radius: 17px !important;
    background: rgba(27, 156, 133, .08) !important;
    color: var(--capf-text) !important;
}

.capf-live-summary--pro .capf-live-summary__row-total span {
    font-weight: 950 !important;
}

.capf-live-summary--pro .capf-live-summary__row-total strong {
    color: var(--capf-primary-dark) !important;
    font-size: 1.16rem !important;
}

.capf-live-summary--pro.capf-has-extra .capf-live-summary__row:not(.capf-live-summary__row-base):not(.capf-live-summary__row-total) strong {
    color: var(--capf-primary-dark) !important;
}

.capf-live-summary--pro .capf-live-summary__selection {
    margin-top: 13px !important;
    padding-top: 13px !important;
    border-top: 1px dashed rgba(27, 156, 133, .26) !important;
}

.capf-live-summary--pro .capf-live-summary__selection-title {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin: 0 0 8px !important;
    color: var(--capf-text) !important;
    font-size: .91rem !important;
    font-weight: 950 !important;
}

.capf-live-summary__selection-count {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 24px !important;
    height: 24px !important;
    padding: 0 8px !important;
    border-radius: 999px !important;
    background: rgba(27, 156, 133, .12) !important;
    color: var(--capf-primary-dark) !important;
    font-style: normal !important;
    font-size: .78rem !important;
    font-weight: 950 !important;
}

.capf-live-summary--pro .capf-live-summary__selection-row {
    display: grid !important;
    grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr) !important;
    align-items: start !important;
    gap: 12px !important;
    padding: 9px 0 !important;
    border-top: 1px solid rgba(229, 231, 235, .78) !important;
    font-size: .9rem !important;
}

.capf-live-summary--pro .capf-live-summary__selection-row:first-of-type {
    border-top: 0 !important;
}

.capf-live-summary--pro .capf-live-summary__selection-label {
    color: var(--capf-muted) !important;
    font-weight: 750 !important;
    line-height: 1.35 !important;
}

.capf-live-summary--pro .capf-live-summary__selection-value {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: flex-end !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    min-width: 0 !important;
    color: var(--capf-text) !important;
    font-weight: 900 !important;
    text-align: right !important;
    line-height: 1.35 !important;
    overflow-wrap: anywhere !important;
}

.capf-live-summary__selection-text {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
}

.capf-live-summary__selection-price {
    display: inline-flex !important;
    align-items: center !important;
    width: fit-content !important;
    padding: 3px 8px !important;
    border-radius: 999px !important;
    background: rgba(27, 156, 133, .12) !important;
    color: var(--capf-primary-dark) !important;
    border: 1px solid rgba(27, 156, 133, .14) !important;
    font-size: .78rem !important;
    font-weight: 950 !important;
    white-space: nowrap !important;
}

.capf-live-summary__hint {
    display: block !important;
    margin-top: 12px !important;
    color: var(--capf-muted) !important;
    font-size: .82rem !important;
    line-height: 1.35 !important;
}

.capf-live-summary--pro:not(.capf-has-extra) .capf-live-summary__hint {
    opacity: .78 !important;
}

@media (max-width: 720px) {
    .capf-product-box .capf-live-summary--pro {
        padding: 14px !important;
        border-radius: 20px !important;
    }

    .capf-live-summary__head {
        flex-direction: column-reverse !important;
        align-items: flex-start !important;
        gap: 8px !important;
    }

    .capf-live-summary--pro .capf-live-summary__row {
        gap: 10px !important;
    }

    .capf-live-summary--pro .capf-live-summary__row-total {
        align-items: flex-start !important;
    }

    .capf-live-summary--pro .capf-live-summary__selection-row {
        grid-template-columns: 1fr !important;
        gap: 4px !important;
        padding: 10px 0 !important;
    }

    .capf-live-summary--pro .capf-live-summary__selection-value {
        justify-content: flex-start !important;
        text-align: left !important;
    }
}

/* v1.0.16 - Errores amigables en la ficha del producto */
.capf-front-field.capf-field-has-error,
.capf-front-field.capf-required-missing {
    border-color: rgba(220, 38, 38, .46) !important;
    background: linear-gradient(180deg, #fff 0%, rgba(220, 38, 38, .035) 100%) !important;
    box-shadow: 0 14px 32px rgba(220, 38, 38, .08), 0 0 0 4px rgba(220, 38, 38, .075) !important;
}

.capf-front-field.capf-field-has-error > label,
.capf-front-field.capf-required-missing > label,
.capf-front-field.capf-field-has-error .capf-choice-label,
.capf-front-field.capf-required-missing .capf-choice-label {
    color: #991B1B !important;
}

.capf-field-error {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
    width: 100% !important;
    margin-top: 10px !important;
    padding: 10px 12px !important;
    border: 1px solid rgba(220, 38, 38, .18) !important;
    border-radius: 14px !important;
    background: rgba(254, 242, 242, .92) !important;
    color: #991B1B !important;
    font-size: .88rem !important;
    font-weight: 750 !important;
    line-height: 1.35 !important;
}

.capf-field-error:before {
    content: "!";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    margin-top: 1px;
    border-radius: 999px;
    background: #DC2626;
    color: #fff;
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
}

.capf-field-error[hidden] {
    display: none !important;
}

.capf-front-field [aria-invalid="true"]:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]) {
    border-color: rgba(220, 38, 38, .58) !important;
    box-shadow: 0 0 0 4px rgba(220, 38, 38, .10) !important;
    outline: none !important;
}

.capf-front-field.capf-field-has-error .capf-choice-card,
.capf-front-field.capf-required-missing .capf-choice-card {
    border-color: rgba(220, 38, 38, .30) !important;
}

.capf-front-field.capf-field-has-error .capf-choice-card:hover,
.capf-front-field.capf-required-missing .capf-choice-card:hover {
    border-color: rgba(220, 38, 38, .50) !important;
}

.capf-front-field.capf-field-has-error .capf-checkbox-group-list,
.capf-front-field.capf-required-missing .capf-checkbox-group-list,
.capf-front-field.capf-field-has-error .capf-radio-list,
.capf-front-field.capf-required-missing .capf-radio-list {
    border-radius: 18px !important;
}

@media (max-width: 720px) {
    .capf-field-error {
        padding: 9px 10px !important;
        border-radius: 12px !important;
        font-size: .84rem !important;
    }
}

/* Cart, checkout, order and email personalization summary */
.woocommerce .capf-cart-summary,
.capf-cart-summary {
    width: 100%;
    max-width: 520px;
    margin: 8px 0 0;
    padding: 10px 12px;
    border: 1px solid rgba(27, 156, 133, .16);
    border-radius: 16px;
    background: linear-gradient(180deg, #FFFFFF 0%, rgba(249, 252, 250, .96) 100%);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .045);
    color: #111827;
    font-size: .9rem;
    line-height: 1.42;
}

.woocommerce .capf-cart-summary__list,
.capf-cart-summary__list {
    display: grid;
    gap: 7px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.woocommerce .capf-cart-summary__list li,
.capf-cart-summary__list li {
    display: grid;
    grid-template-columns: minmax(92px, .42fr) minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin: 0 !important;
    padding: 0 0 7px !important;
    border-bottom: 1px dashed rgba(17, 24, 39, .10);
}

.woocommerce .capf-cart-summary__list li:last-child,
.capf-cart-summary__list li:last-child {
    padding-bottom: 0 !important;
    border-bottom: 0;
}

.woocommerce .capf-cart-summary__label,
.capf-cart-summary__label {
    color: #6B7280;
    font-size: .82rem;
    font-weight: 800;
}

.woocommerce .capf-cart-summary__value,
.capf-cart-summary__value {
    min-width: 0;
    color: #111827;
    font-weight: 760;
    word-break: break-word;
}

.woocommerce .capf-cart-summary__choice,
.capf-cart-summary__choice {
    display: inline;
}

.woocommerce .capf-cart-summary__separator,
.capf-cart-summary__separator {
    color: rgba(107, 114, 128, .70);
    font-weight: 700;
}

.woocommerce .capf-cart-summary__price,
.capf-cart-summary__price {
    display: inline-flex;
    align-items: center;
    margin-left: 4px;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(27, 156, 133, .10);
    color: #147A69;
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
}

.woocommerce .capf-cart-summary__price .amount,
.capf-cart-summary__price .amount,
.woocommerce .capf-cart-summary__total .amount,
.capf-cart-summary__total .amount {
    color: inherit;
    font-weight: inherit;
}

.woocommerce .capf-cart-summary__total,
.capf-cart-summary__total {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(27, 156, 133, .16);
    color: #147A69;
    font-size: .86rem;
    font-weight: 900;
}

.woocommerce .capf-cart-summary a,
.capf-cart-summary a {
    color: #147A69;
    font-weight: 850;
    text-decoration: none;
}

.woocommerce .capf-cart-summary a:hover,
.capf-cart-summary a:hover {
    text-decoration: underline;
}

.woocommerce table.shop_table .product-name .variation .capf-cart-summary,
.woocommerce table.shop_table .product-name dl.variation .capf-cart-summary,
.woocommerce-checkout-review-order .capf-cart-summary {
    max-width: 100%;
    margin-top: 8px;
}

.woocommerce table.shop_table .product-name .variation dt:has(+ dd .capf-cart-summary),
.woocommerce table.shop_table .product-name dl.variation dt:has(+ dd .capf-cart-summary) {
    color: #111827;
    font-weight: 900;
}

@media (max-width: 720px) {
    .woocommerce .capf-cart-summary,
    .capf-cart-summary {
        padding: 10px;
        border-radius: 14px;
        font-size: .86rem;
    }

    .woocommerce .capf-cart-summary__list li,
    .capf-cart-summary__list li {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .woocommerce .capf-cart-summary__total,
    .capf-cart-summary__total {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }
}

/* v1.0.19 · Campos de contenido / secciones */
.capf-front-field-content{
    margin: 18px 0;
    padding: 0;
    border: 0;
    background: transparent;
}
.capf-content-block{
    border: 1px solid rgba(229,231,235,.95);
    border-radius: 18px;
    background: #fff;
    padding: 18px;
    box-shadow: 0 12px 26px rgba(15,23,42,.06);
    display: grid;
    gap: 14px;
}
.capf-content-block--accent{
    border-color: rgba(27,156,133,.24);
    background: linear-gradient(135deg, rgba(27,156,133,.08), rgba(255,255,255,.96));
}
.capf-content-block--muted{
    background: #F9FCFA;
    box-shadow: none;
}
.capf-content-block--warning{
    border-color: rgba(245,158,11,.28);
    background: linear-gradient(135deg, rgba(245,158,11,.10), rgba(255,255,255,.96));
}
.capf-content-title{
    display:block;
    margin:0 0 6px;
    color:#111827;
    font-size: 16px;
    line-height:1.25;
    font-weight:800;
}
.capf-front-field-section_heading .capf-content-title{
    font-size: 20px;
    letter-spacing:-.02em;
}
.capf-content-body{
    color:#374151;
    font-size:14px;
    line-height:1.65;
}
.capf-content-body > :first-child{ margin-top:0; }
.capf-content-body > :last-child{ margin-bottom:0; }
.capf-content-copy small{
    display:block;
    margin-top:8px;
    color:#6B7280;
    font-size:13px;
}
.capf-content-image-wrap{
    overflow:hidden;
    border-radius:16px;
    background:#F6FAF7;
    border:1px solid #E5E7EB;
}
.capf-content-image-wrap img{
    display:block;
    width:100%;
    height:auto;
}
.capf-front-field-content_image .capf-content-block{
    padding:14px;
}
.capf-content-separator{
    display:flex;
    align-items:center;
    gap:12px;
    color:#6B7280;
    font-size:13px;
    font-weight:700;
    letter-spacing:.02em;
    text-transform:uppercase;
}
.capf-content-separator:before,
.capf-content-separator:after{
    content:"";
    height:1px;
    background:#E5E7EB;
    flex:1;
}
.capf-content-separator span{
    white-space:nowrap;
}
@media (max-width: 640px){
    .capf-content-block{ padding:16px; border-radius:16px; }
    .capf-front-field-section_heading .capf-content-title{ font-size:18px; }
}

/* v1.0.20 · Condiciones por opción */
.capf-option-is-hidden{
    display:none !important;
}
.capf-front-field select option.capf-option-is-hidden{
    display:none;
}

/* v1.0.21 · Cantidades por opción */
.capf-option-qty{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:10px;
    padding:8px 10px;
    border:1px solid rgba(27,156,133,.18);
    border-radius:14px;
    background:#f6faf7;
    color:#111827;
    font-size:13px;
    font-weight:700;
}
.capf-option-qty[hidden],
.capf-select-option-qty-row[hidden]{
    display:none !important;
}
.capf-option-qty__label{
    color:#6b7280;
    font-size:12px;
    font-weight:800;
}
.capf-option-qty input[type="number"]{
    width:78px;
    min-height:34px;
    padding:6px 8px;
    border:1px solid #d1d5db;
    border-radius:10px;
    background:#fff;
    font-weight:800;
    text-align:center;
}
.capf-option-qty input[type="number"]:focus{
    border-color:#1b9c85;
    box-shadow:0 0 0 3px rgba(27,156,133,.12);
    outline:none;
}
.capf-select-option-qty-panel{
    display:grid;
    gap:8px;
    margin-top:10px;
}
.capf-select-option-qty-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 12px;
    border:1px solid #e5e7eb;
    border-radius:16px;
    background:#f9fcfa;
}
.capf-select-option-qty-row__name{
    font-weight:800;
    color:#111827;
}
.capf-cart-summary__qty{
    display:inline-flex;
    align-items:center;
    margin-left:4px;
    padding:1px 7px;
    border-radius:999px;
    background:#ecfdf5;
    color:#147a69;
    font-style:normal;
    font-size:11px;
    font-weight:900;
}
@media (max-width: 640px){
    .capf-select-option-qty-row{
        align-items:flex-start;
        flex-direction:column;
    }
    .capf-option-qty{
        width:100%;
        justify-content:space-between;
    }
}

/* v1.0.24 · Performance, assets condicionales y endurecimiento comercial */
.capf-product-box[data-capf-frontend-ready="1"]{
    scroll-margin-top: 96px;
}

/* v1.0.27 · Inicio/fin de sección */
.capf-front-field-section_start .capf-content-block,
.capf-front-field-section_heading .capf-content-block{
    border-left:4px solid #1B9C85;
}
.capf-content-section-end{
    opacity:.85;
}
.capf-content-section-end span{
    background:#fff;
    color:#6B7280;
}


/* v1.0.32 · Ocultar realmente opciones condicionadas */
.capf-product-box [data-capf-hidden-by-condition="1"],
.capf-product-box .capf-choice-card.capf-option-is-hidden,
.capf-product-box .capf-select-option-qty-row.capf-option-is-hidden,
.capf-product-box [data-capf-option-condition-enabled="1"][hidden]{
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
}
.capf-product-box select option[data-capf-hidden-by-condition="1"],
.capf-product-box select option.capf-option-is-hidden{
    display:none !important;
}

/* v1.0.33 · Columnas inteligentes como máximo y cards sin cortes raros */
.capf-product-box .capf-options-grid,
.capf-product-box .capf-radio-list,
.capf-product-box .capf-checkbox-group-list,
.capf-product-box .capf-swatch-list,
.capf-product-box .capf-image-choice-list{
    grid-template-columns: repeat(var(--capf-option-columns-active, var(--capf-option-columns-desktop, 3)), minmax(0, 1fr)) !important;
}

.capf-product-box .capf-choice-card,
.capf-product-box .capf-choice-card *{
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
}

.capf-product-box .capf-choice-card .capf-choice-label,
.capf-product-box .capf-choice-card .capf-option-desc{
    text-wrap: pretty;
}

.capf-front-field-radio:not(.capf-front-field-color_swatch):not(.capf-front-field-image_choice) .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card,
.capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card,
.capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list) .capf-choice-card,
.capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card{
    min-height: 82px !important;
}

.capf-front-field-color_swatch .capf-swatch-card,
.capf-front-field-layout-swatches .capf-swatch-card{
    align-content: center !important;
    justify-items: center !important;
    min-height: 98px !important;
}

.capf-front-field-color_swatch .capf-swatch-card .capf-option-desc,
.capf-front-field-layout-swatches .capf-swatch-card .capf-option-desc{
    display: none !important;
}

.capf-front-field-image_choice .capf-image-choice-card,
.capf-front-field-layout-images .capf-image-choice-card{
    align-content: start !important;
    min-height: 100% !important;
}

.capf-front-field-image_choice .capf-image-choice-thumb,
.capf-front-field-layout-images .capf-image-choice-thumb{
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
    max-width: 180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.capf-front-field-image_choice .capf-image-choice-card .capf-choice-label,
.capf-front-field-layout-images .capf-image-choice-card .capf-choice-label{
    margin-top: 8px !important;
    line-height: 1.22 !important;
}

@media (max-width: 820px){
    .capf-product-box .capf-options-grid,
    .capf-product-box .capf-radio-list,
    .capf-product-box .capf-checkbox-group-list,
    .capf-product-box .capf-swatch-list,
    .capf-product-box .capf-image-choice-list{
        grid-template-columns: repeat(var(--capf-option-columns-active, var(--capf-option-columns-mobile, 1)), minmax(0, 1fr)) !important;
    }
}


/* v1.0.34 · Alineación superior de muestras de color
   Evita que el círculo se mueva hacia abajo cuando una opción tiene nombre/precio más largo. */
.capf-product-box .capf-front-field-color_swatch .capf-swatch-card,
.capf-product-box .capf-front-field-layout-swatches .capf-swatch-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    align-content: flex-start !important;
    text-align: center !important;
    padding-top: 14px !important;
    padding-bottom: 12px !important;
    gap: 7px !important;
}

.capf-product-box .capf-front-field-color_swatch .capf-swatch-card .capf-swatch-dot,
.capf-product-box .capf-front-field-layout-swatches .capf-swatch-card .capf-swatch-dot {
    order: 1 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.capf-product-box .capf-front-field-color_swatch .capf-swatch-card .capf-choice-label,
.capf-product-box .capf-front-field-layout-swatches .capf-swatch-card .capf-choice-label {
    order: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 2.35em !important;
    margin: 0 !important;
}

.capf-product-box .capf-front-field-color_swatch .capf-swatch-card .capf-option-price,
.capf-product-box .capf-front-field-layout-swatches .capf-swatch-card .capf-option-price {
    order: 3 !important;
    margin-top: auto !important;
}

/* v1.0.35 - Resumen itemizado para opciones con cantidades */
.capf-live-summary--pro .capf-live-summary__selection-row--has-details {
    align-items: start !important;
}

.capf-live-summary__selection-list {
    display: grid !important;
    gap: 7px !important;
    width: 100% !important;
    min-width: 0 !important;
}

.capf-live-summary__selection-item {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    line-height: 1.32 !important;
}

.capf-live-summary__selection-item-text {
    min-width: 0 !important;
    color: var(--capf-text) !important;
    font-weight: 900 !important;
    overflow-wrap: anywhere !important;
}

.capf-live-summary--pro .capf-live-summary__selection-row--has-details .capf-live-summary__selection-value {
    display: block !important;
    text-align: right !important;
}

@media (max-width: 720px) {
    .capf-live-summary__selection-item,
    .capf-live-summary--pro .capf-live-summary__selection-row--has-details .capf-live-summary__selection-value {
        justify-content: flex-start !important;
        text-align: left !important;
    }
}

/* v1.0.37 - carrito/checkout/pedido: personalización agrupada */
.woocommerce .capf-cart-summary__group,
.capf-cart-summary__group {
    align-items: start;
}
.woocommerce .capf-cart-summary__choices,
.capf-cart-summary__choices {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.woocommerce .capf-cart-summary__choices li,
.capf-cart-summary__choices li {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    margin: 0;
    padding: 0;
    line-height: 1.35;
    min-width: 0;
}
.woocommerce .capf-cart-summary__choices .capf-cart-summary__choice,
.capf-cart-summary__choices .capf-cart-summary__choice {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 4px;
    max-width: 100%;
}
@media (max-width: 720px) {
    .woocommerce .capf-cart-summary__choices li,
    .capf-cart-summary__choices li,
    .woocommerce .capf-cart-summary__choices .capf-cart-summary__choice,
    .capf-cart-summary__choices .capf-cart-summary__choice {
        justify-content: flex-start;
        text-align: left;
    }
}

/* v1.0.38 - resumen compatible con carrito/checkout clásico y WooCommerce Blocks */
.woocommerce .capf-cart-summary--compact,
.capf-cart-summary--compact {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #111827 !important;
    font-size: .86rem !important;
    line-height: 1.45 !important;
    white-space: normal !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__group,
.capf-cart-summary--compact .capf-cart-summary__group {
    display: block !important;
    margin: 0 0 7px !important;
    padding: 0 !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__group:last-child,
.capf-cart-summary--compact .capf-cart-summary__group:last-child {
    margin-bottom: 0 !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__label,
.capf-cart-summary--compact .capf-cart-summary__label {
    display: inline-block !important;
    margin: 0 0 3px !important;
    color: #111827 !important;
    font-size: .86rem !important;
    font-weight: 900 !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__choices,
.capf-cart-summary--compact .capf-cart-summary__choices {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #374151 !important;
    font-weight: 650 !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__choice-line,
.capf-cart-summary--compact .capf-cart-summary__choice-line {
    display: inline-block !important;
    margin: 2px 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__choice,
.capf-cart-summary--compact .capf-cart-summary__choice {
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
    max-width: 100% !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__price,
.capf-cart-summary--compact .capf-cart-summary__price {
    display: inline-flex !important;
    align-items: center !important;
    margin-left: 4px !important;
    padding: 1px 7px !important;
    border-radius: 999px !important;
    background: rgba(27, 156, 133, .11) !important;
    color: #147A69 !important;
    font-size: .78rem !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__qty,
.capf-cart-summary--compact .capf-cart-summary__qty {
    display: inline-flex !important;
    align-items: center !important;
    margin-left: 4px !important;
    padding: 1px 7px !important;
    border-radius: 999px !important;
    background: #ecfdf5 !important;
    color: #147a69 !important;
    font-style: normal !important;
    font-size: 11px !important;
    font-weight: 900 !important;
}
.woocommerce .capf-cart-summary__field-break,
.capf-cart-summary__field-break {
    display: block !important;
    content: "" !important;
    margin-top: 6px !important;
}


/* v1.0.39 - estabilidad en productos variables: evita parpadeo por hover y pérdida de foco */
.capf-product-box .capf-choice-card,
.capf-product-box .capf-image-choice-thumb {
    transform: none !important;
}

.capf-product-box .capf-choice-card:hover,
.capf-product-box .capf-image-choice-card:hover .capf-image-choice-thumb {
    transform: none !important;
}

.capf-product-box input[type="text"],
.capf-product-box input[type="email"],
.capf-product-box input[type="url"],
.capf-product-box input[type="tel"],
.capf-product-box input[type="number"],
.capf-product-box textarea {
    pointer-events: auto !important;
    user-select: text !important;
}


/* v1.0.40 - fix real para producto variable: sin hover inestable y escritura segura */
.variations_form .capf-product-box,
.variations_form .capf-product-box * {
    animation: none !important;
}

.variations_form .capf-product-box .capf-choice-card,
.variations_form .capf-product-box .capf-choice-card:hover,
.variations_form .capf-product-box .capf-choice-card:focus,
.variations_form .capf-product-box .capf-choice-card:focus-within,
.variations_form .capf-product-box .capf-choice-card::before,
.variations_form .capf-product-box .capf-choice-card::after,
.variations_form .capf-product-box .capf-image-choice-thumb,
.variations_form .capf-product-box .capf-image-choice-card:hover .capf-image-choice-thumb,
.variations_form .capf-product-box .capf-swatch-dot {
    transition: none !important;
    transform: none !important;
}

.variations_form .capf-product-box .capf-choice-card:hover {
    background: #FFFFFF !important;
    border-color: var(--capf-border) !important;
    box-shadow: none !important;
}

.variations_form .capf-product-box .capf-choice-card--selected,
.variations_form .capf-product-box .capf-choice-card:has(input:checked) {
    border-color: rgba(27,156,133,.55) !important;
    background: linear-gradient(180deg, #FFFFFF 0%, rgba(236,253,245,.9) 100%) !important;
    box-shadow: 0 10px 22px rgba(27,156,133,.12) !important;
}

.variations_form .capf-front-field input[type="text"],
.variations_form .capf-front-field input[type="email"],
.variations_form .capf-front-field input[type="url"],
.variations_form .capf-front-field input[type="tel"],
.variations_form .capf-front-field input[type="number"],
.variations_form .capf-front-field textarea {
    pointer-events: auto !important;
    user-select: text !important;
    -webkit-user-select: text !important;
    position: relative !important;
    z-index: 50 !important;
    transform: none !important;
    transition: border-color .12s ease, box-shadow .12s ease !important;
}

.variations_form .capf-product-box .capf-live-summary,
.variations_form .capf-product-box .capf-live-summary * {
    pointer-events: none !important;
}


/* v1.0.41 - diferencia real entre Tarjetas con detalle y Botones compactos */
.capf-product-box .capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-product-box .capf-front-field-layout-cards .capf-checkbox-group-list {
    display: grid !important;
    grid-template-columns: repeat(var(--capf-option-columns-active, var(--capf-option-columns-desktop, 2)), minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
}

.capf-product-box .capf-front-field-layout-cards .capf-choice-card:not(.capf-swatch-card):not(.capf-image-choice-card) {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) !important;
    grid-template-areas:
        "control title"
        "control desc"
        "control price"
        "control qty" !important;
    align-items: start !important;
    justify-content: initial !important;
    column-gap: 11px !important;
    row-gap: 5px !important;
    min-height: 88px !important;
    padding: 14px 15px !important;
    border-radius: 18px !important;
    text-align: left !important;
}

.capf-product-box .capf-front-field-layout-cards .capf-choice-card:not(.capf-swatch-card):not(.capf-image-choice-card):before {
    grid-area: control !important;
    position: static !important;
    margin: 1px 0 0 !important;
}

.capf-product-box .capf-front-field-layout-cards .capf-choice-label {
    grid-area: title !important;
    justify-self: start !important;
    text-align: left !important;
    font-size: 14px !important;
    line-height: 1.22 !important;
}

.capf-product-box .capf-front-field-layout-cards .capf-option-desc {
    grid-area: desc !important;
    display: block !important;
    color: var(--capf-muted) !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    text-align: left !important;
}

.capf-product-box .capf-front-field-layout-cards .capf-option-price {
    grid-area: price !important;
    justify-self: start !important;
    align-self: start !important;
    margin: 4px 0 0 !important;
}

.capf-product-box .capf-front-field-layout-cards .capf-option-qty-control,
.capf-product-box .capf-front-field-layout-cards [data-capf-option-quantity-wrap] {
    grid-area: qty !important;
    justify-self: start !important;
}

.capf-product-box .capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
.capf-product-box .capf-front-field-layout-buttons .capf-checkbox-group-list {
    display: grid !important;
    grid-template-columns: repeat(var(--capf-option-columns-active, var(--capf-option-columns-desktop, 3)), minmax(0, 1fr)) !important;
    gap: 9px !important;
    align-items: stretch !important;
}

.capf-product-box .capf-front-field-layout-buttons .capf-choice-card:not(.capf-swatch-card):not(.capf-image-choice-card) {
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr) auto !important;
    grid-template-areas: "control title price" !important;
    align-items: center !important;
    justify-content: initial !important;
    column-gap: 8px !important;
    row-gap: 0 !important;
    min-height: 46px !important;
    height: auto !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    text-align: left !important;
    box-shadow: none !important;
    background: #fff !important;
}

.capf-product-box .capf-front-field-layout-buttons .capf-choice-card:not(.capf-swatch-card):not(.capf-image-choice-card):before {
    grid-area: control !important;
    position: static !important;
    width: 16px !important;
    height: 16px !important;
    margin: 0 !important;
}

.capf-product-box .capf-front-field-layout-buttons .capf-choice-label {
    grid-area: title !important;
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.capf-product-box .capf-front-field-layout-buttons .capf-option-desc {
    display: none !important;
}

.capf-product-box .capf-front-field-layout-buttons .capf-option-price {
    grid-area: price !important;
    justify-self: end !important;
    align-self: center !important;
    margin: 0 !important;
    padding: 2px 7px !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    max-width: 100% !important;
}

.capf-product-box .capf-front-field-layout-buttons .capf-option-qty-control,
.capf-product-box .capf-front-field-layout-buttons [data-capf-option-quantity-wrap] {
    grid-column: 2 / -1 !important;
    margin-top: 6px !important;
}

.capf-product-box .capf-front-field-layout-buttons .capf-choice-card:hover {
    border-color: rgba(27, 156, 133, .48) !important;
    background: rgba(27, 156, 133, .045) !important;
}

.capf-product-box .capf-front-field-layout-buttons .capf-choice-card--selected,
.capf-product-box .capf-front-field-layout-buttons .capf-choice-card:has(input:checked) {
    background: rgba(27, 156, 133, .12) !important;
    box-shadow: inset 0 0 0 1px rgba(27, 156, 133, .35) !important;
}

@media (max-width: 820px) {
    .capf-product-box .capf-front-field-layout-cards .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-product-box .capf-front-field-layout-cards .capf-checkbox-group-list,
    .capf-product-box .capf-front-field-layout-buttons .capf-radio-list:not(.capf-swatch-list):not(.capf-image-choice-list),
    .capf-product-box .capf-front-field-layout-buttons .capf-checkbox-group-list {
        grid-template-columns: repeat(var(--capf-option-columns-active, var(--capf-option-columns-mobile, 1)), minmax(0, 1fr)) !important;
    }
}

@media (max-width: 520px) {
    .capf-product-box .capf-front-field-layout-buttons .capf-choice-card:not(.capf-swatch-card):not(.capf-image-choice-card) {
        grid-template-columns: 18px minmax(0, 1fr) !important;
        grid-template-areas:
            "control title"
            "control price" !important;
        border-radius: 16px !important;
    }
    .capf-product-box .capf-front-field-layout-buttons .capf-option-price {
        justify-self: start !important;
        margin-top: 3px !important;
    }
}


/* v1.0.42 - Varias opciones: visual de lista con checkboxes, no tarjetas */
.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list,
.capf-product-box .capf-front-field-checkbox_group.capf-front-field-layout-cards .capf-checkbox-group-list,
.capf-product-box .capf-front-field-checkbox_group.capf-front-field-layout-buttons .capf-checkbox-group-list,
.capf-product-box .capf-front-field-checkbox_group.capf-front-field-layout-checkboxes .capf-checkbox-group-list {
    display: grid !important;
    grid-template-columns: repeat(var(--capf-option-columns-active, var(--capf-option-columns-desktop, 2)), minmax(210px, 1fr)) !important;
    gap: 8px !important;
    align-items: start !important;
}

.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card,
.capf-product-box .capf-front-field-checkbox_group.capf-front-field-layout-cards .capf-checkbox-group-list .capf-choice-card,
.capf-product-box .capf-front-field-checkbox_group.capf-front-field-layout-buttons .capf-checkbox-group-list .capf-choice-card,
.capf-product-box .capf-front-field-checkbox_group.capf-front-field-layout-checkboxes .capf-checkbox-group-list .capf-choice-card {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) auto !important;
    grid-template-areas:
        "control title price"
        "control desc price"
        "control qty qty" !important;
    align-items: start !important;
    column-gap: 10px !important;
    row-gap: 3px !important;
    min-height: 0 !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(229, 231, 235, .96) !important;
    background: #fff !important;
    box-shadow: none !important;
    text-align: left !important;
    transform: none !important;
}

.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card:before {
    grid-area: control !important;
    position: static !important;
    width: 18px !important;
    height: 18px !important;
    margin: 1px 0 0 !important;
    border-radius: 5px !important;
    border: 2px solid #CBD5E1 !important;
    background: #fff !important;
    box-shadow: none !important;
}

.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card:has(input:checked):before,
.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card.capf-choice-card--selected:before {
    border-color: var(--capf-primary) !important;
    background: var(--capf-primary) !important;
}

.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card:has(input:checked):after,
.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card.capf-choice-card--selected:after {
    content: "✓" !important;
    position: absolute !important;
    left: 16px !important;
    top: 11px !important;
    width: 18px !important;
    height: 18px !important;
    color: #fff !important;
    font-size: 12px !important;
    line-height: 18px !important;
    text-align: center !important;
    font-weight: 950 !important;
    pointer-events: none !important;
}

.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-label {
    grid-area: title !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    font-weight: 850 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: initial !important;
}

.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-option-desc {
    grid-area: desc !important;
    display: block !important;
    margin-top: 1px !important;
    color: var(--capf-muted) !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
}

.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-option-price {
    grid-area: price !important;
    justify-self: end !important;
    align-self: start !important;
    margin: 0 !important;
    padding: 3px 8px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
}

.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-option-qty-control,
.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list [data-capf-option-quantity-wrap] {
    grid-area: qty !important;
    justify-self: start !important;
    margin-top: 5px !important;
}

.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card:hover {
    border-color: rgba(27, 156, 133, .45) !important;
    background: rgba(27, 156, 133, .035) !important;
}

.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card:has(input:checked),
.capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list .capf-choice-card.capf-choice-card--selected {
    border-color: rgba(27, 156, 133, .65) !important;
    background: rgba(27, 156, 133, .07) !important;
    box-shadow: inset 0 0 0 1px rgba(27, 156, 133, .22) !important;
}

@media (max-width: 820px) {
    .capf-product-box .capf-front-field-checkbox_group .capf-checkbox-group-list,
    .capf-product-box .capf-front-field-checkbox_group.capf-front-field-layout-cards .capf-checkbox-group-list,
    .capf-product-box .capf-front-field-checkbox_group.capf-front-field-layout-buttons .capf-checkbox-group-list,
    .capf-product-box .capf-front-field-checkbox_group.capf-front-field-layout-checkboxes .capf-checkbox-group-list {
        grid-template-columns: repeat(var(--capf-option-columns-active, var(--capf-option-columns-mobile, 1)), minmax(0, 1fr)) !important;
    }
}

/* File upload extension styles */
.capf-front-field-file_upload input[type="file"][multiple]{min-height:58px;background:#f9fcfa;border-style:dashed}
.capf-front-field-file_upload input[type="file"][multiple]::file-selector-button{margin-right:10px;border:0;border-radius:999px;background:var(--capf-primary);color:#fff;padding:8px 12px;font-weight:800;cursor:pointer}

/* v1.0.108 - resumen compacto en carrito, checkout y pedido */
.woocommerce .capf-cart-summary--compact,
.capf-cart-summary--compact {
    margin: 2px 0 0 !important;
    padding: 0 !important;
    font-size: .86rem !important;
    line-height: 1.35 !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__row,
.capf-cart-summary--compact .capf-cart-summary__row {
    display: block !important;
    margin: 0 0 3px !important;
    padding: 0 !important;
    color: #374151 !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__row:last-child,
.capf-cart-summary--compact .capf-cart-summary__row:last-child {
    margin-bottom: 0 !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__label,
.capf-cart-summary--compact .capf-cart-summary__label {
    display: inline !important;
    margin: 0 !important;
    color: #111827 !important;
    font-size: inherit !important;
    font-weight: 900 !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__choices,
.capf-cart-summary--compact .capf-cart-summary__choices {
    display: inline !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #374151 !important;
    font-weight: 500 !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__choice,
.capf-cart-summary--compact .capf-cart-summary__choice {
    display: inline !important;
    align-items: initial !important;
    flex-wrap: initial !important;
    gap: 0 !important;
    max-width: 100% !important;
    color: inherit !important;
    font-weight: inherit !important;
}
.woocommerce .capf-cart-summary--compact .capf-cart-summary__separator,
.capf-cart-summary--compact .capf-cart-summary__separator {
    color: #6B7280 !important;
    font-weight: 500 !important;
}
.woocommerce .capf-cart-summary__field-break,
.capf-cart-summary__field-break {
    display: block !important;
    margin: 0 !important;
    line-height: 0 !important;
}

/* v1.0.109 - resumen de personalización como etiqueta y valor en una sola línea */
.woocommerce-cart .cart_item .variation dt,
.woocommerce-checkout-review-order .variation dt,
.woocommerce-order .woocommerce-table__line-item .wc-item-meta dt,
.woocommerce-order .woocommerce-table__line-item .wc-item-meta-label {
    display: inline !important;
    float: none !important;
    clear: none !important;
    margin: 0 4px 2px 0 !important;
    padding: 0 !important;
    font-weight: 900 !important;
    color: #111827 !important;
}
.woocommerce-cart .cart_item .variation dd,
.woocommerce-checkout-review-order .variation dd,
.woocommerce-order .woocommerce-table__line-item .wc-item-meta dd {
    display: inline !important;
    float: none !important;
    clear: none !important;
    margin: 0 0 2px 0 !important;
    padding: 0 !important;
    color: #374151 !important;
    font-weight: 500 !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}
.woocommerce-cart .cart_item .variation dd p,
.woocommerce-checkout-review-order .variation dd p,
.woocommerce-order .woocommerce-table__line-item .wc-item-meta dd p {
    display: inline !important;
    margin: 0 !important;
    padding: 0 !important;
}
.woocommerce-cart .cart_item .variation dd::after,
.woocommerce-checkout-review-order .variation dd::after,
.woocommerce-order .woocommerce-table__line-item .wc-item-meta dd::after {
    content: "";
    display: block;
    height: 3px;
}
.capf-cart-summary__value {
    display: inline !important;
    color: inherit !important;
    font-weight: inherit !important;
}

/* v1.0.111: contenedor de grupo invisible y clicks estables en opciones.
   El grupo se mantiene en el DOM para condiciones/variaciones, pero ya no agrega una tarjeta visual extra. */
.capf-product-box .capf-product-group {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.capf-product-box .capf-product-group + .capf-product-group {
    margin-top: 14px !important;
    padding-top: 14px !important;
    border-top: 1px solid rgba(229, 231, 235, .9) !important;
}

.capf-product-box .capf-product-group > .capf-front-field:first-child {
    margin-top: 0 !important;
}

.capf-product-box .capf-checkbox.capf-choice-card,
.capf-product-box .capf-choice-card {
    touch-action: manipulation !important;
}


/* v1.0.115: front-end guard. Si el ajuste está apagado, no permitir que el resumen de selección aparezca aunque exista markup cacheado. */
.capf-product-box[data-capf-show-live-summary="0"] [data-capf-live-summary],
.capf-product-box--no-summary [data-capf-live-summary] {
    display: none !important;
}

.capf-product-box[data-capf-show-selection-summary="0"] [data-capf-selection-summary],
.capf-product-box--no-selection-summary [data-capf-selection-summary] {
    display: none !important;
}
