/* WRAPPER + HEADER IDIOMAS */
.iapc-designer-notice {
    margin: 1rem 0;
    padding: 12px 16px;
    border: 1px solid #f0c36d;
    border-radius: 8px;
    background: #fff8e5;
    color: #5c4a1f;
}

.iapc-designer-unavailable {
    max-width: 36rem;
    margin: 0 auto;
    padding: 1.5rem 1.25rem;
    background: #fff;
    border: 1px solid #e8ebf0;
    border-radius: 20px;
    box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
    text-align: left;
    box-sizing: border-box;
}

.iapc-designer-unavailable__title {
    margin: 0 0 0.75rem;
    font-size: 1.35rem;
    line-height: 1.25;
    color: #111827;
}

.iapc-designer-unavailable__lead {
    margin: 0 0 1rem;
    font-size: 1rem;
    line-height: 1.45;
    color: #374151;
}

.iapc-designer-unavailable__setup {
    margin: 0;
    padding: 1rem;
    border-radius: 14px;
    background: #fff8e5;
    border: 1px solid #f0c36d;
}

.iapc-designer-unavailable__setup-title {
    margin: 0 0 0.5rem;
    color: #5c4a1f;
}

.iapc-designer-unavailable__list {
    margin: 0 0 0.75rem;
    padding-left: 1.2rem;
    color: #5c4a1f;
}

.iapc-designer-unavailable__list li + li {
    margin-top: 0.35rem;
}

.iapc-designer-unavailable__hint {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.4;
    color: #6b7280;
}

.iapc-designer-unavailable__setup .iapc-designer-unavailable__hint {
    color: #5c4a1f;
}

.iapc-designer-wrapper--unavailable {
    padding: 1rem 0.5rem !important;
}

@media (max-width: 700px) {
    .iapc-designer-unavailable {
        max-width: none;
        padding: 1.15rem 1rem;
        border-radius: 16px;
    }

    .iapc-designer-unavailable__title {
        font-size: 1.2rem;
    }
}

/**/
/* PANEL DERECHO */

.iapc-designer-right {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    align-self: start !important;
    background: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 0 !important;
}

/* TARJETAS */

.iapc-right-card {
    background: #fff;
    border-radius: 20px;
    padding: 10px;
    margin-bottom: 0 !important;
    border: 1px solid #e8ebf0;
    box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
}

.iapc-featured {
    margin: 0;
    padding: 8px !important;
    flex: 0 0 auto !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden;
    border: 1px solid #e8ebf0 !important;
    box-shadow: none !important;
}

.iapc-featured-open {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0 !important;
    background: transparent;
    border-radius: 14px;
    box-shadow: none !important;
    cursor: zoom-in;
    line-height: 0;
}

.iapc-featured-img {
    display: block;
    width: 100% !important;
    height: 200px !important;
    min-height: 200px !important;
    max-width: 100%;
    object-fit: contain !important;
    object-position: center;
    border: 0 !important;
    box-shadow: none !important;
}

.iapc-featured-caption {
    display: block;
    margin: 8px 2px 0;
    padding: 0;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.02em;
    text-align: center;
    color: #6b7280;
}

.iapc-featured-stage {
    position: relative;
}

.iapc-featured-arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 28px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    transform: translateY(-50%);
    cursor: pointer;
    opacity: 0.55;
}

.iapc-featured-arrow[hidden] {
    display: none !important;
}

.iapc-featured-arrow-prev {
    left: 0;
}

.iapc-featured-arrow-next {
    right: 0;
}

.iapc-featured-arrow-glyph {
    display: block;
    width: 7px;
    height: 7px;
    border-left: 1.5px solid #9ca3af;
    border-bottom: 1.5px solid #9ca3af;
}

.iapc-featured-arrow-prev .iapc-featured-arrow-glyph {
    transform: rotate(45deg);
    margin-left: 3px;
}

.iapc-featured-arrow-next .iapc-featured-arrow-glyph {
    transform: rotate(-135deg);
    margin-right: 3px;
}

body .iapc-featured .iapc-featured-arrow {
    width: 22px !important;
    min-width: 0 !important;
    height: 28px !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: translateY(-50%) !important;
    opacity: 0.55;
}

.iapc-featured-viewport {
    display: block;
    width: 100%;
    overflow: hidden;
    border-radius: 14px;
}

.iapc-featured-track {
    display: flex;
    align-items: stretch;
    transition: transform 0.35s ease;
}

.iapc-featured-track .iapc-featured-img {
    flex: 0 0 auto;
    max-width: none;
}

@media (prefers-reduced-motion: reduce) {
    .iapc-featured-track {
        transition: none;
    }
}

.iapc-featured-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100090;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 16px 16px;
    box-sizing: border-box;
    background: rgba(17, 24, 39, 0.9);
}

.iapc-featured-lightbox[hidden] {
    display: none !important;
}

.iapc-featured-lightbox-img {
    display: block;
    max-width: 100%;
    max-height: calc(100% - 36px);
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 12px;
    background: #fff;
}

.iapc-featured-lightbox .iapc-featured-caption {
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 16px;
    margin: 0;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
}

.iapc-featured-lightbox-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #111;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

body.iapc-featured-open {
    overflow: hidden;
}

/* BOTONES */

.iapc-actions {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 9px;
}

/*Botones View 1 y 2*/
/* ==========================
   BOTONES VIEW 1 / VIEW 2
========================== */

.iapc-sides {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: stretch;
    align-items: stretch;
    gap: 10px;
    margin-top: 0;
    width: 100%;
}

.iapc-sides.iapc-sides--row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 10px !important;
    width: 100% !important;
}

.iapc-designer-sides {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    width: 100%;
    margin-top: 0;
}

.iapc-sides .iapc-side-btn,
.iapc-designer-center .iapc-side-btn {
    flex: 1 1 0 !important;
    width: calc(50% - 5px) !important;
    max-width: calc(50% - 5px) !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    min-height: 48px !important;
}

.iapc-sides-main,
.iapc-sides-additional,
.iapc-additional-sides-toggle,
.iapc-designer-center #iapc_3d_view,
.iapc-designer-center .iapc-3d-btn {
    display: none !important;
}

/* Collapsible disclosure — not a side button */
.iapc-additional-sides-toggle,
.iapc-designer-wrapper .iapc-additional-sides-toggle,
.iapc-designer-wrapper .iapc-additional-sides-toggle:hover,
.iapc-designer-wrapper .iapc-additional-sides-toggle:focus,
.iapc-designer-wrapper .iapc-additional-sides-toggle:active,
.woocommerce .iapc-designer-wrapper .iapc-additional-sides-toggle,
.woocommerce .iapc-designer-wrapper .iapc-additional-sides-toggle:hover,
.woocommerce .iapc-designer-wrapper .iapc-additional-sides-toggle:focus,
.woocommerce .iapc-designer-wrapper .iapc-additional-sides-toggle:active {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 4px 0 0 !important;
    padding: 10px 4px !important;
    border: 0 !important;
    border-radius: 0 !important;
    border-top: 1px solid #e8ebf0 !important;
    background: transparent !important;
    background-color: transparent !important;
    color: #6b7280 !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    text-align: left !important;
    text-transform: none !important;
    text-decoration: none !important;
    letter-spacing: 0.01em !important;
    box-shadow: none !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.iapc-additional-sides-toggle:hover,
.iapc-additional-sides-toggle:focus,
.iapc-designer-wrapper .iapc-additional-sides-toggle:hover,
.iapc-designer-wrapper .iapc-additional-sides-toggle:focus,
.woocommerce .iapc-designer-wrapper .iapc-additional-sides-toggle:hover,
.woocommerce .iapc-designer-wrapper .iapc-additional-sides-toggle:focus {
    background: transparent !important;
    background-color: transparent !important;
    color: #374151 !important;
    border-color: #e8ebf0 !important;
    box-shadow: none !important;
}

.iapc-additional-sides-toggle.iapc-active,
.iapc-designer-wrapper .iapc-additional-sides-toggle.iapc-active,
.woocommerce .iapc-designer-wrapper .iapc-additional-sides-toggle.iapc-active {
    background: transparent !important;
    background-color: transparent !important;
    color: #374151 !important;
    border-color: #e8ebf0 !important;
    box-shadow: none !important;
}

.iapc-additional-sides-toggle .iapc-additional-sides-label {
    flex: 1 1 auto;
    text-align: left;
}

.iapc-additional-sides-toggle .iapc-additional-sides-chevron {
    flex: 0 0 auto;
    width: 0.55em;
    height: 0.55em;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.18s ease;
    opacity: 0.7;
}

.iapc-additional-sides-toggle.iapc-active .iapc-additional-sides-chevron,
.iapc-additional-sides-toggle[aria-expanded="true"] .iapc-additional-sides-chevron {
    transform: rotate(-135deg);
    margin-top: 4px;
}

.iapc-sides-additional {
    margin-top: 2px;
    padding-top: 2px;
}

.iapc-product-description-panel {
    width: 100%;
    margin-top: 4rem;
    border: 1px solid #e8ebf0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
    overflow: hidden;
}

.iapc-product-description-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    cursor: default;
    list-style: none;
    font-size: 15px;
    font-weight: 700;
    color: #111827;
    pointer-events: none;
    border-bottom: 1px solid #e8ebf0;
}

.iapc-product-description-summary::-webkit-details-marker {
    display: none;
}

.iapc-product-description-title {
    flex: 1 1 auto;
}

.iapc-product-description-toggle {
    display: none !important;
}

.iapc-product-description-panel > .iapc-product-description {
    display: block !important;
}

.iapc-product-description-panel .iapc-product-description {
    padding: 16px 18px 18px;
    font-size: 14px;
    line-height: 1.65;
    color: #4b5563;
    text-align: left;
}

.iapc-product-description-panel .iapc-product-description p:last-child {
    margin-bottom: 0;
}

.iapc-side-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid #d1d5db !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    background: #fff !important;
    color: #111 !important;
    padding: 12px 16px !important;
    min-height: 48px;
    cursor: pointer !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    line-height: 1 !important;
    box-shadow: none !important;
    outline: none !important;
    text-align: center !important;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.iapc-side-btn:hover,
.iapc-side-btn:focus {
    background: #f3f4f6 !important;
    color: #111 !important;
    border-color: #9ca3af !important;
    box-shadow: none !important;
    outline: none !important;
}

.iapc-side-btn.iapc-active {
    background: #111 !important;
    color: #fff !important;
    border-color: #111 !important;
    box-shadow: none !important;
}

.iapc-side-btn.iapc-active:hover,
.iapc-side-btn.iapc-active:focus {
    background: #222 !important;
    color: #fff !important;
    border-color: #222 !important;
    box-shadow: none !important;
}

.iapc-designer-left.iapc-view-unavailable {
    opacity: 0.58;
}

.iapc-designer-left.iapc-view-unavailable .iapc-canva-menu button:disabled,
.iapc-designer-left.iapc-view-unavailable .iapc-canva-content :disabled,
.iapc-designer-right .iapc-actions .iapc-btn:disabled {
    cursor: not-allowed !important;
    opacity: 0.55 !important;
}

/* Add to cart usable aunque el lado actual no tenga imagen, si el producto sí es personalizable */
.iapc-price-card:not(.iapc-product-not-customizable),
.iapc-price-card:not(.iapc-product-not-customizable) .iapc-add-to-cart-inside,
.iapc-price-card:not(.iapc-product-not-customizable) .single_add_to_cart_button,
.iapc-price-card:not(.iapc-product-not-customizable) .quantity input,
.iapc-price-card:not(.iapc-product-not-customizable) .iapc-view-cart {
    opacity: 1 !important;
    pointer-events: auto !important;
}

.iapc-price-card.iapc-product-not-customizable .single_add_to_cart_button:disabled,
.iapc-price-card.iapc-product-not-customizable .quantity input:disabled {
    opacity: 0.55 !important;
    pointer-events: none !important;
    cursor: not-allowed !important;
    background: #9ca3af !important;
}

#iapc_mug_canvas.iapc-canvas-disabled {
    cursor: not-allowed;
}

/* PRECIO */

.iapc-product-price {
    background: #f6f7f9;
    border-radius: 18px;
    padding: 20px;
    margin-bottom: 18px;
    text-align: center;
}

.iapc-product-price,
.iapc-product-price .price,
.iapc-product-price .woocommerce-Price-amount {
    font-size: 16px;
    font-weight: 800;
    line-height: 1;
}

/* CANTIDAD */

.iapc-add-to-cart-inside .quantity {
    width: 100%;
    margin-bottom: 15px;
}

.iapc-add-to-cart-inside input.qty {
    width: 100%;
    border: 1px solid #dfe3ea;
    border-radius: 14px;
    padding: 12px;
    text-align: center;
}

/* BOTON */

.iapc-add-to-cart-inside .single_add_to_cart_button {
    width: 100%;
    background: #111;
    color: #fff;
    border-radius: 16px;
    padding: 14px;
}

/* VER CARRITO */

.iapc-view-cart {
    display: block;
    width: 100%;
    margin-top: 6px;
    text-align: center;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 16px;
    padding: 14px;
    color: #111;
    text-decoration: none;
    font-weight: 700;
}

.iapc-view-cart:hover {
    background: #f3f4f6;
    color: #111;
    border-color: #9ca3af;
}


.iapc-designer-wrapper {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 !important;
    box-sizing: border-box;
    overflow-x: hidden;
    --iapc-brand-purple: #9333ea;
    --iapc-brand-purple-dark: #7c3aed;
    --iapc-brand-purple-light: #a855f7;
    --iapc-brand-purple-soft: #f3e8ff;
    --iapc-brand-purple-ring: rgba(168, 85, 247, 0.24);
    --iapc-btn-radius: 16px;
    accent-color: var(--iapc-brand-purple);
}

.iapc-lang-header {
    margin-bottom: 1.5%;
}

.iapc-lang-header-inner {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    background: #fff;
    border-radius: 18px;
    padding: 10px 14px;
    box-shadow: 0 10px 35px rgba(0, 0, 0, 0.07);
}

.iapc-lang-label {
    font-size: 13px;
    font-weight: 800;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.iapc-lang-switch {
    display: flex;
    gap: 8px;
}

.iapc-lang-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 88px;
    padding: 9px 14px;
    border-radius: 12px;
    background: #f1f3f5;
    color: #222;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.iapc-lang-btn:hover {
    background: #e5e7eb;
    color: #111;
}

.iapc-lang-btn.iapc-active {
    background: #111;
    color: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.iapc-designer-layout {
    display: grid;
    grid-template-columns: minmax(0, 34fr) minmax(0, 48fr) minmax(200px, 18fr);
    gap: 14px;
    align-items: stretch;
    width: 100%;
    box-sizing: border-box;
    min-height: 0;
}

/* COLUMNAS — misma altura; el escenario se ancla al mockup más alto */
.iapc-designer-left,
.iapc-designer-center,
.iapc-designer-right {
    min-height: 0;
    align-self: stretch;
    height: auto;
}

.iapc-designer-left,
.iapc-designer-center {
    background: #fff;
    border-radius: 24px;
    padding: 14px;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    border: 1px solid #e8ebf0;
    box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
}

.iapc-designer-left {
    padding: 8px;
}

.iapc-designer-center {
    height: auto;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    text-align: center;
}

.iapc-designer-center .iapc-designer-title {
    flex: 0 0 auto;
}

.iapc-designer-center #iapc_canvas_wrap {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    box-sizing: border-box;
}

.iapc-designer-center .iapc-sides-card {
    width: 100%;
    max-width: 100%;
    margin-top: auto !important;
    margin-bottom: 0 !important;
    padding: 14px 0 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    flex: 0 0 auto;
}

.iapc-designer-left {
    align-self: stretch;
    height: auto;
}

.iapc-designer-right {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    align-self: stretch !important;
    height: auto !important;
    min-height: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

.iapc-designer-left {
    overflow: hidden !important;
}

.iapc-designer-right {
    overflow: hidden;
    min-height: 0;
}

/* PANEL IZQUIERDO TIPO CANVA */
.iapc-designer-left {
    display: grid !important;
    grid-template-columns: 108px minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: stretch !important;
}

/* MENÚ LATERAL — tabs estirados a la altura de la columna */
.iapc-canva-menu {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    background: #f6f7f9;
    border-radius: 20px;
    padding: 10px 6px;
    position: relative;
    z-index: 5;
    flex-shrink: 0;
    height: 100%;
    min-height: 100%;
    align-self: stretch;
    overflow-x: hidden;
    overflow-y: auto;
    border: 1px solid #e8ebf0;
    box-shadow: 0 1px 6px rgba(17, 24, 39, 0.04);
}

.iapc-canva-menu .iapc-canva-tab,
.iapc-canva-menu .iapc-canva-tab-ai {
    flex: 1 1 0;
    min-height: 44px;
    height: auto;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.iapc-other-tools-group,
.iapc-other-tools {
    display: contents;
}

.iapc-other-tools[hidden] {
    display: none !important;
}

.iapc-other-tools-toggle {
    gap: 5px;
}

.iapc-other-tools-arrow {
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    transition: transform 0.18s ease;
    flex: 0 0 auto;
}

.iapc-other-tools-toggle[aria-expanded="true"] .iapc-other-tools-arrow {
    transform: rotate(180deg);
}

.iapc-other-tools-toggle.iapc-has-active-tool:not(.iapc-active) {
    border-color: #9333ea !important;
    box-shadow: 0 0 0 1px rgba(147, 51, 234, 0.18);
}

.iapc-canva-content {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
    max-width: 100%;
    width: 100%;
    height: auto;
    align-self: start;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    position: relative;
    z-index: 1;
}

.iapc-designer-wrapper .iapc-btn,
.iapc-designer-wrapper .iapc-canva-tab,
.iapc-designer-wrapper summary {
    color: #222 !important;
}

.iapc-designer-wrapper .iapc-side-btn:not(.iapc-active) {
    color: #111 !important;
}

.iapc-designer-wrapper .iapc-canva-tab-ai:not(.iapc-active) {
    color: #7c3aed !important;
}

.iapc-designer-wrapper .iapc-canva-tab.iapc-active,
.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active,
.iapc-designer-wrapper .iapc-side-btn.iapc-active,
.iapc-designer-wrapper #iapc_enable_paint.iapc-paint-tool-active,
.iapc-designer-wrapper #iapc_eraser_paint.iapc-paint-tool-active,
.iapc-designer-wrapper .iapc-preview-btn,
.iapc-designer-wrapper .single_add_to_cart_button {
    color: #fff !important;
}

.iapc-designer-wrapper .iapc-help-text,
.iapc-designer-wrapper .iapc-help-text a {
    color: #777 !important;
}

.iapc-designer-wrapper .iapc-danger {
    color: #d93025 !important;
}


.iapc-canva-tab {
    width: 100%;
    min-height: 0;
    border: 1px solid #dfe3ea !important;
    border-radius: 12px !important;
    background: #fff !important;
    padding: 6px 4px !important;
    font-weight: 800 !important;
    font-size: 10px;
    line-height: 1.15;
    cursor: pointer;
    color: #222 !important;
    white-space: normal !important;
    overflow: hidden !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

.iapc-canva-tab-ai {
    width: 100%;
    min-height: 0;
    border: 1px solid #9333ea !important;
    border-radius: 14px !important;
    background: #fff !important;
    padding: 6px 4px !important;
    margin-bottom: 4px;
    font-weight: 800 !important;
    font-size: 10px;
    line-height: 1.15;
    cursor: pointer;
    color: #7c3aed !important;
    white-space: normal !important;
    overflow: hidden !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    text-align: center !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, border-color 0.18s ease;
}

.iapc-canva-tab:hover {
    background: #f6f7f9 !important;
    border-color: #cfd6e0 !important;
}

.iapc-canva-tab-ai:hover {
    background: #f3e8ff !important;
    border-color: #9333ea !important;
    color: #6d28d9 !important;
    box-shadow: 0 4px 12px rgba(168, 85, 247, 0.18) !important;
    transform: translateY(-1px);
}

.iapc-canva-tab.iapc-active {
    background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%) !important;
    color: #fff !important;
    border-color: #9333ea !important;
    box-shadow: 0 4px 14px rgba(168, 85, 247, 0.38) !important;
}

.iapc-canva-tab-ai.iapc-active {
    background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%) !important;
    color: #fff !important;
    border-color: #9333ea !important;
    box-shadow: 0 4px 14px rgba(168, 85, 247, 0.38) !important;
}

.iapc-canva-tab-ai.iapc-active:hover {
    background: linear-gradient(135deg, #b46cff 0%, #8b5cf6 100%) !important;
    color: #fff !important;
    border-color: #9333ea !important;
    box-shadow: 0 6px 18px rgba(168, 85, 247, 0.45) !important;
    transform: translateY(-1px);
}

.iapc-canva-tab-ai:disabled,
.iapc-canva-tab:disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

.iapc-canva-tab-ai:disabled:hover {
    background: #fff !important;
    border-color: #9333ea !important;
    color: #7c3aed !important;
    box-shadow: none !important;
    transform: none;
}

.iapc-canva-tab:disabled:hover {
    background: #fff !important;
    border-color: #dfe3ea !important;
}


/* CONTENIDO PANEL */
.iapc-canva-panel {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    background: #fff;
    border: 1px solid #edf0f4;
    border-radius: 18px;
    padding: 8px 10px 10px !important;
    min-height: 0;
    box-sizing: border-box;
    overflow: visible;
    width: 100%;
    max-width: 100%;
}

.iapc-canva-panel .iapc-card-header {
    display: none !important;
}

.iapc-canva-panel.iapc-active {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    border: 1px solid #e8ebf0;
    box-shadow: 0 1px 6px rgba(17, 24, 39, 0.04);
    visibility: visible !important;
    pointer-events: auto !important;
}

.iapc-canva-content .iapc-card.iapc-canva-panel.iapc-active {
    width: 100% !important;
    max-width: 100% !important;
}

/* Todos los paneles: altura del menú, controles compactos arriba */
.iapc-designer-left:has(.iapc-canva-panel.iapc-active) .iapc-canva-content {
    height: 100% !important;
    min-height: 100% !important;
    align-self: stretch !important;
}

.iapc-canva-content .iapc-card.iapc-canva-panel.iapc-active,
.iapc-card.iapc-canva-panel.iapc-active {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 100% !important;
    height: 100% !important;
    align-self: stretch !important;
}

.iapc-canva-panel.iapc-active .iapc-options {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: 100% !important;
    justify-content: flex-start !important;
    gap: 14px !important;
}

.iapc-canva-panel.iapc-active .iapc-options > * {
    flex: 0 0 auto !important;
}

.iapc-canva-panel.iapc-active .iapc-field {
    justify-content: flex-start !important;
}

.iapc-canva-panel.iapc-active .iapc-fields-2 {
    align-items: stretch !important;
}

.iapc-canva-panel.iapc-active .iapc-fields-2 > .iapc-field {
    justify-content: flex-start !important;
    height: auto !important;
}

.iapc-canva-panel.iapc-active .iapc-inline-checks {
    align-items: center !important;
}

/* Add… actions always at the bottom of the panel */
.iapc-canva-panel.iapc-active .iapc-options > #iapc_add_text,
.iapc-canva-panel.iapc-active .iapc-options > #iapc_add_sticker,
.iapc-canva-panel.iapc-active .iapc-options > #iapc_add_graphic {
    flex: 0 0 auto !important;
    margin-top: auto !important;
}

.iapc-canva-panel.iapc-active .iapc-options > .iapc-paint-mode-row {
    flex: 0 0 auto !important;
    margin-top: 0 !important;
}

/* Uploaded file name under the native file input (ellipsis + floating tooltip) */
.iapc-file-name {
    display: block;
    margin: 6px 0 0 !important;
    padding: 0 !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    font-style: italic !important;
    line-height: 1.35 !important;
    color: #8a8f98 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
}

.iapc-file-name[hidden] {
    display: none !important;
}

.iapc-file-name[data-tooltip] {
    cursor: default;
}

.iapc-edition-preview {
    display: block;
    margin: 8px 0 0 !important;
    width: 88px;
    max-width: 100%;
}

.iapc-edition-preview[hidden] {
    display: none !important;
}

.iapc-edition-preview img {
    display: block !important;
    width: 88px !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border: 1px solid #dfe3ea;
    border-radius: 12px;
    background: #f4f5f7;
}

.iapc-tooltip-bubble {
    position: fixed;
    z-index: 100001;
    max-width: min(300px, calc(100vw - 24px));
    padding: 10px 12px;
    border-radius: 10px;
    background: #2b2f36;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    box-shadow: 0 10px 28px rgba(43, 47, 54, 0.28);
    pointer-events: none;
    animation: iapc-tooltip-in 0.14s ease;
}

@keyframes iapc-tooltip-in {
    from {
        opacity: 0;
        transform: translateY(4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Hide truncated filename next to the native file button; show name only below */
.iapc-designer-wrapper #iapc_image,
.iapc-designer-wrapper #iapc_ai_edition_image {
    color: transparent !important;
}

.iapc-designer-wrapper #iapc_image::file-selector-button,
.iapc-designer-wrapper #iapc_image::-webkit-file-upload-button,
.iapc-designer-wrapper #iapc_ai_edition_image::file-selector-button,
.iapc-designer-wrapper #iapc_ai_edition_image::-webkit-file-upload-button {
    color: #111 !important;
    cursor: pointer !important;
}

.iapc-canva-content .iapc-card.iapc-canva-panel {
    margin-bottom: 0 !important;
}

.iapc-canva-panel.iapc-active .iapc-hidden {
    display: none !important;
}

/* Panel padding must win over .iapc-card { padding: 0 } below */
.iapc-card.iapc-canva-panel,
.iapc-tool-card.iapc-canva-panel {
    padding: 8px 10px 10px !important;
    overflow: visible !important;
}

/* TARJETAS INTERNAS */
.iapc-card,
.iapc-tool-card {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin-bottom: 18px !important;
    box-shadow: none !important;
}

.iapc-card h3,
.iapc-tool-card h3 {
    font-size: 20px !important;
    font-weight: 900 !important;
    line-height: 1.25 !important;
    margin: 0 0 18px !important;
    padding-top: 2px !important;
    color: #111 !important;
    overflow: visible !important;
    text-transform: none !important;
}

/* CAMPOS */
.iapc-canva-panel.iapc-active .iapc-options {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 16px !important;
    overflow-y: visible;
}

.iapc-canva-panel.iapc-active .iapc-options>*,
.iapc-canva-panel.iapc-active>.iapc-btn-secondary,
.iapc-canva-panel.iapc-active>.iapc-btn-full {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.iapc-canva-panel.iapc-active .iapc-field,
.iapc-canva-panel.iapc-active .iapc-field-full,
.iapc-canva-panel.iapc-active .iapc-fields-2,
.iapc-canva-panel.iapc-active .iapc-inline-checks {
    width: 100% !important;
    max-width: 100% !important;
}

.iapc-field-full {
    width: 100% !important;
    max-width: 100% !important;
}

.iapc-canva-panel.iapc-active>.iapc-btn-full,
.iapc-canva-panel.iapc-active .iapc-options>.iapc-btn-full:last-child,
.iapc-canva-panel.iapc-active .iapc-options>.iapc-btn:last-child {
    flex-shrink: 0;
}

.iapc-canva-panel.iapc-active>.iapc-btn-secondary {
    flex-shrink: 0;
}

.iapc-options {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 16px !important;
}

.iapc-canva-panel .iapc-field,
.iapc-field {
    gap: 4px !important;
}

.iapc-field {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    min-width: 0;
    margin: .9em 0 !important;
    padding: 0 !important;
}

.iapc-field label,
.iapc-tool-card label {
    display: block !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #222 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
}

.iapc-tool-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
}

/* Textos de UI: no partir palabras ni letras sueltas */
.iapc-designer-wrapper label,
.iapc-designer-wrapper .iapc-card h3,
.iapc-designer-wrapper .iapc-tool-card h3,
.iapc-designer-wrapper .iapc-ai-guided-modal__header h3,
.iapc-designer-wrapper .iapc-side-btn,
.iapc-designer-wrapper .iapc-lang-label {
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
}

.iapc-field input[type="text"],
.iapc-field select,
.iapc-field input[type="file"],
.iapc-tool-card select,
.iapc-tool-card input[type="text"],
.iapc-tool-card input[type="file"],
.iapc-canva-panel input[type="text"],
.iapc-canva-panel input[type="number"],
.iapc-canva-panel input[type="file"],
.iapc-canva-panel select,
.iapc-canva-panel textarea {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    border: 1px solid #dfe3ea !important;
    border-radius: 14px !important;
    padding: 6px 12px !important;
    font-size: 14px !important;
    background: #fff !important;
    margin: 0 !important;
}

#iapc_ai_prompt.iapc-ai-prompt,
#iapc_ai_edition_prompt.iapc-ai-prompt,
#iapc_ai_texture_prompt.iapc-ai-prompt {
    min-height: 96px !important;
    height: 96px !important;
    max-height: 96px !important;
    resize: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    white-space: pre-wrap !important;
    line-height: 1.35 !important;
    font-size: 13px !important;
    font-family: inherit !important;
}

.iapc-designer-wrapper .iapc-field-head {
    display: flex !important;
    flex-direction: row !important;
    align-items: baseline !important;
    justify-content: space-between !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.iapc-designer-wrapper .iapc-field-head > label {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

.iapc-designer-wrapper .iapc-ai-char-count {
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 11px !important;
    font-style: italic !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    text-align: right !important;
    color: #94a3b8 !important;
    letter-spacing: 0.02em !important;
    white-space: nowrap !important;
}

.iapc-designer-wrapper .iapc-ai-char-count.iapc-ai-char-count--short {
    color: #b45309 !important;
}

/* Color picker — show the swatch full-width (not crushed like a text input) */
.iapc-field input[type="color"],
.iapc-canva-panel input[type="color"],
#iapc_color,
#iapc_brush_color,
#iapc_paint_color {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 4px !important;
    box-sizing: border-box !important;
    border: 1px solid #dfe3ea !important;
    border-radius: 14px !important;
    background: #fff !important;
    cursor: pointer !important;
    margin: 0 !important;
}

.iapc-field input[type="color"]::-webkit-color-swatch-wrapper,
.iapc-canva-panel input[type="color"]::-webkit-color-swatch-wrapper,
#iapc_color::-webkit-color-swatch-wrapper,
#iapc_brush_color::-webkit-color-swatch-wrapper,
#iapc_paint_color::-webkit-color-swatch-wrapper {
    padding: 0 !important;
    border-radius: 10px !important;
}

.iapc-field input[type="color"]::-webkit-color-swatch,
.iapc-canva-panel input[type="color"]::-webkit-color-swatch,
#iapc_color::-webkit-color-swatch,
#iapc_brush_color::-webkit-color-swatch,
#iapc_paint_color::-webkit-color-swatch {
    border: none !important;
    border-radius: 10px !important;
}

.iapc-field input[type="color"]::-moz-color-swatch,
.iapc-canva-panel input[type="color"]::-moz-color-swatch,
#iapc_color::-moz-color-swatch,
#iapc_brush_color::-moz-color-swatch,
#iapc_paint_color::-moz-color-swatch {
    border: none !important;
    border-radius: 10px !important;
}

.iapc-field input[type="color"]:focus,
.iapc-canva-panel input[type="color"]:focus,
#iapc_color:focus,
#iapc_brush_color:focus,
#iapc_paint_color:focus {
    outline: none !important;
    border-color: #c4b5fd !important;
    box-shadow: 0 0 0 3px var(--iapc-brand-purple-ring, rgba(168, 85, 247, 0.24)) !important;
}

.iapc-field input[type="text"]:focus,
.iapc-field select:focus,
.iapc-field textarea:focus,
.iapc-tool-card input[type="text"]:focus,
.iapc-tool-card select:focus,
.iapc-tool-card textarea:focus,
.iapc-canva-panel input[type="text"]:focus,
.iapc-canva-panel input[type="number"]:focus,
.iapc-canva-panel select:focus,
.iapc-canva-panel textarea:focus {
    outline: none !important;
    outline-offset: 0 !important;
    border-width: 1px !important;
    border-color: #c4b5fd !important;
    box-shadow: 0 0 0 3px var(--iapc-brand-purple-ring, rgba(168, 85, 247, 0.24)) !important;
}

.iapc-field input[type="range"],
.iapc-tool-card input[type="range"],
.iapc-canva-panel input[type="range"],
.iapc-designer-wrapper input[type="range"] {
    --iapc-range-track-h: 6px;
    --iapc-range-thumb-size: 20px;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: calc((var(--iapc-range-thumb-size, 20px) - var(--iapc-range-track-h, 6px)) / 2) 0 !important;
    display: block !important;
    height: var(--iapc-range-track-h, 6px) !important;
    min-height: var(--iapc-range-track-h, 6px) !important;
    border: 0 !important;
    background: transparent !important;
    accent-color: var(--iapc-brand-purple, #9333ea) !important;
    cursor: pointer !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    --iapc-range-progress: 50%;
}

.iapc-designer-wrapper input[type="range"]::-webkit-slider-runnable-track {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 100% !important;
    height: var(--iapc-range-track-h, 6px) !important;
    border: 0 !important;
    border-radius: 999px !important;
    background-color: #e5e7eb !important;
    background-image: linear-gradient(to right,
            #9333ea 0%,
            #9333ea var(--iapc-range-progress, 50%),
            #e5e7eb var(--iapc-range-progress, 50%),
            #e5e7eb 100%) !important;
}

.iapc-field input[type="range"]::-webkit-slider-runnable-track,
.iapc-tool-card input[type="range"]::-webkit-slider-runnable-track,
.iapc-canva-panel input[type="range"]::-webkit-slider-runnable-track,
.woocommerce .iapc-designer-wrapper input[type="range"]::-webkit-slider-runnable-track {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 100% !important;
    height: var(--iapc-range-track-h, 6px) !important;
    border: 0 !important;
    border-radius: 999px !important;
    background-color: #e5e7eb !important;
}

.iapc-designer-wrapper input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none !important;
    appearance: none !important;
    box-sizing: border-box !important;
    width: var(--iapc-range-thumb-size, 20px) !important;
    height: var(--iapc-range-thumb-size, 20px) !important;
    /* Center thumb on 6px track inside padded control */
    margin-top: calc((var(--iapc-range-track-h, 6px) - var(--iapc-range-thumb-size, 20px)) / 2) !important;
    border-radius: 50% !important;
    background: var(--iapc-brand-purple, #9333ea) !important;
    border: 2px solid #fff !important;
    box-shadow: 0 2px 6px rgba(124, 58, 237, 0.35) !important;
    cursor: pointer !important;
}

.iapc-designer-wrapper input[type="range"]:focus::-webkit-slider-thumb {
    box-shadow: 0 2px 6px rgba(124, 58, 237, 0.35), 0 0 0 3px var(--iapc-brand-purple-ring, rgba(168, 85, 247, 0.24)) !important;
}

.iapc-designer-wrapper input[type="range"]:hover::-webkit-slider-thumb {
    background: var(--iapc-brand-purple-light, #a855f7) !important;
}

.iapc-designer-wrapper input[type="range"]::-moz-range-track {
    width: 100% !important;
    height: var(--iapc-range-track-h, 6px) !important;
    border-radius: 999px !important;
    background: #e5e7eb !important;
    border: 0 !important;
}

.iapc-designer-wrapper input[type="range"]::-moz-range-progress {
    height: var(--iapc-range-track-h, 6px) !important;
    border-radius: 999px !important;
    background: var(--iapc-brand-purple, #9333ea) !important;
}

.iapc-designer-wrapper input[type="range"]::-moz-range-thumb {
    box-sizing: border-box !important;
    width: var(--iapc-range-thumb-size, 20px) !important;
    height: var(--iapc-range-thumb-size, 20px) !important;
    border: 2px solid #fff !important;
    border-radius: 50% !important;
    background: var(--iapc-brand-purple, #9333ea) !important;
    box-shadow: 0 2px 6px rgba(124, 58, 237, 0.35) !important;
    cursor: pointer !important;
}

.iapc-designer-wrapper input[type="range"]:hover::-moz-range-thumb {
    background: var(--iapc-brand-purple-light, #a855f7) !important;
}

.iapc-designer-wrapper input[type="checkbox"],
.iapc-designer-wrapper input[type="radio"] {
    accent-color: var(--iapc-brand-purple, #9333ea) !important;
}

/* DOS COLUMNAS */
.iapc-fields-2 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 12px !important;
    min-width: 0;
    margin: 0 !important;
    flex-shrink: 0;
    align-items: start;
}

.iapc-field,
.iapc-fields-2>.iapc-field {
    min-width: 0;
}

.iapc-fields-2>.iapc-field {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start;
    gap: 6px !important;
    height: auto;
}

.iapc-fields-2>.iapc-field > label {
    display: block !important;
    margin: 0 !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

/* CHECKBOXES */
.iapc-switch,
.iapc-inline-checks label {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
}

.iapc-inline-checks {
    display: flex !important;
    gap: 16px !important;
    margin: 0 !important;
    flex-shrink: 0;
    width: 100% !important;
    max-width: 100% !important;
    justify-content: flex-start;
    align-items: center;
}

.iapc-canva-panel .iapc-fields-2 {
    gap: 10px !important;
}

.iapc-options>.iapc-btn,
.iapc-options>.iapc-btn-secondary,
.iapc-options>button,
.iapc-canva-panel.iapc-active>.iapc-btn-secondary,
.iapc-canva-panel.iapc-active>button {
    margin: 0 !important;
}

/* BOTONES */
.iapc-btn,
#iapc_enable_paint,
#iapc_eraser_paint,
#iapc_undo_paint,
#iapc_clear_paint,
#iapc_add_sticker {
    border: 0 !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    background: #f1f3f5 !important;
    padding: 11px 14px !important;
    cursor: pointer !important;
    font-weight: 800 !important;
    color: #222 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    text-align: center !important;
}

.iapc-btn-full {
    width: 100% !important;
    display: block !important;
    flex-shrink: 0;
}

#iapc_enable_paint.iapc-paint-tool-active,
#iapc_eraser_paint.iapc-paint-tool-active,
.iapc-preview-btn {
    background: #111 !important;
    color: #fff !important;
}

#iapc_enable_paint:not(.iapc-paint-tool-active),
#iapc_eraser_paint:not(.iapc-paint-tool-active) {
    background: #f1f3f5 !important;
    color: #222 !important;
}

#iapc_clear_paint,
#iapc_undo_paint,
#iapc_add_sticker {
    width: 100% !important;
    margin-top: 10px !important;
}

.iapc-btn:hover,
#iapc_clear_paint:hover,
#iapc_undo_paint:hover,
#iapc_add_sticker:hover {
    color: #111 !important;
}

/*imagen destacada miniatura*/
.iapc-ai-thumb-active,
.iapc-ai-thumb.iapc-ai-thumb-active {
    border-color: var(--iapc-brand-purple, #9333ea) !important;
    box-shadow: 0 4px 12px rgba(168, 85, 247, 0.35) !important;
}


/* Reset botones WooCommerce/tema — no aplica dentro del personalizador */
.woocommerce:not(.iapc-designer-wrapper) form.cart .button,
.woocommerce:not(.iapc-designer-wrapper) .single_add_to_cart_button {
    background-color: transparent;
    border: 1px solid transparent !important;
    border-radius: 3px;
    color: #c36;
    display: inline-block;
    font-size: 1rem;
    font-weight: 400;
    padding: .5rem 1rem;
    text-align: center;
    transition: all .3s;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    white-space: nowrap;
}

/*boton 3d*/
#iapc_3d_view:disabled,
.iapc-3d-btn--disabled {
    opacity: 0.45;
    cursor: not-allowed !important;
}

.iapc-ai-guided-modal {
    position: fixed;
    inset: 0;
    z-index: 100150;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    box-sizing: border-box;
}

.iapc-ai-guided-modal.is-open {
    display: flex;
}

.iapc-ai-guided-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(17, 24, 39, 0.45);
    border: 0;
    cursor: pointer;
}

.iapc-ai-guided-modal__dialog {
    position: relative;
    width: min(520px, 100%);
    max-height: min(85vh, 720px);
    background: #fff;
    border: 1px solid #dfe3ea;
    border-radius: 24px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.iapc-ai-guided-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid #dfe3ea;
    background: transparent;
    flex-shrink: 0;
}

.iapc-ai-guided-modal__header h3 {
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    color: #111 !important;
}

.iapc-ai-guided-modal__header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

.iapc-ai-guided-modal__clear-filters,
#iapc_ai_guided_modal .iapc-ai-guided-modal__clear-filters,
#iapc_ai_guided_modal #iapc_clear_guided,
body .iapc-ai-guided-modal .iapc-ai-guided-modal__clear-filters,
body .iapc-ai-guided-modal #iapc_clear_guided {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 0 !important;
    border-width: 0 !important;
    border-style: none !important;
    border-color: transparent !important;
    border-radius: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
    color: #000 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
    white-space: nowrap !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
}

.iapc-ai-guided-modal__clear-filters:hover,
.iapc-ai-guided-modal__clear-filters:focus,
.iapc-ai-guided-modal__clear-filters:active,
#iapc_ai_guided_modal .iapc-ai-guided-modal__clear-filters:hover,
#iapc_ai_guided_modal .iapc-ai-guided-modal__clear-filters:focus,
#iapc_ai_guided_modal .iapc-ai-guided-modal__clear-filters:active,
#iapc_ai_guided_modal #iapc_clear_guided:hover,
#iapc_ai_guided_modal #iapc_clear_guided:focus,
#iapc_ai_guided_modal #iapc_clear_guided:active,
body .iapc-ai-guided-modal .iapc-ai-guided-modal__clear-filters:hover,
body .iapc-ai-guided-modal .iapc-ai-guided-modal__clear-filters:focus,
body .iapc-ai-guided-modal .iapc-ai-guided-modal__clear-filters:active {
    color: #000 !important;
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: none !important;
}

.iapc-ai-guided-modal__close,
#iapc_ai_guided_modal .iapc-ai-guided-modal__close,
body .iapc-ai-guided-modal .iapc-ai-guided-modal__close {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-width: 0 !important;
    border-style: none !important;
    border-color: transparent !important;
    border-radius: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
    color: #000 !important;
    font-size: 28px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    flex-shrink: 0;
}

.iapc-ai-guided-modal__close:hover,
.iapc-ai-guided-modal__close:focus,
.iapc-ai-guided-modal__close:active,
#iapc_ai_guided_modal .iapc-ai-guided-modal__close:hover,
#iapc_ai_guided_modal .iapc-ai-guided-modal__close:focus,
#iapc_ai_guided_modal .iapc-ai-guided-modal__close:active,
body .iapc-ai-guided-modal .iapc-ai-guided-modal__close:hover,
body .iapc-ai-guided-modal .iapc-ai-guided-modal__close:focus,
body .iapc-ai-guided-modal .iapc-ai-guided-modal__close:active {
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #000 !important;
    opacity: 0.55 !important;
    outline: none !important;
}

.iapc-ai-guided-modal__body {
    padding: 20px 24px 24px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.iapc-ai-guided-modal__body .iapc-field {
    gap: 10px !important;
    margin: 0 !important;
}

.iapc-ai-guided-modal__body .iapc-field label {
    font-weight: 400 !important;
    margin-bottom: 2px !important;
}

.iapc-ai-guided-modal__body .iapc-ai-guided-buttons {
    gap: 12px;
    margin: 0 !important;
}

.iapc-ai-guided-modal__body #iapc_design_for_me {
    margin-top: 4px;
    border: 0 !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%) !important;
    color: #fff !important;
    min-height: 52px !important;
    padding: 12px 16px !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    box-shadow: 0 4px 14px rgba(168, 85, 247, 0.38) !important;
    transition: background 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease;
}

.iapc-ai-guided-modal__body #iapc_design_for_me:hover,
.iapc-ai-guided-modal__body #iapc_design_for_me:focus {
    background: linear-gradient(135deg, #b46cff 0%, #8b5cf6 100%) !important;
    color: #fff !important;
    box-shadow: 0 6px 18px rgba(168, 85, 247, 0.45) !important;
}

.iapc-ai-guided-modal__body #iapc_design_for_me:disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

.iapc-ai-guided-modal__body .iapc-ai-actions {
    margin-top: 6px;
    gap: 12px;
}

body.iapc-guided-modal-open {
    overflow: hidden;
}

/* CENTRO */
.iapc-designer-title {
    text-align: center;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 900;
    margin: 0 0 8px;
    line-height: 1.15;
    word-break: break-word;
    color: #111;
    text-transform: uppercase;
}

#iapc_canvas_wrap {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
    perspective: 1400px;
    transform-style: preserve-3d;
    aspect-ratio: var(--iapc-stage-ratio, auto);
    max-height: 100%;
}

#iapc_canvas_wrap.iapc-side-flip-forward,
#iapc_canvas_wrap.iapc-side-flip-back {
    animation-duration: 0.58s;
    animation-timing-function: cubic-bezier(0.33, 0.1, 0.25, 1);
    animation-fill-mode: both;
}

#iapc_canvas_wrap.iapc-side-flip-forward {
    animation-name: iapc-side-flip-forward;
}

#iapc_canvas_wrap.iapc-side-flip-back {
    animation-name: iapc-side-flip-back;
}

@keyframes iapc-side-flip-forward {
    0% {
        transform: rotateY(0deg) scale(1);
    }
    38% {
        transform: rotateY(-72deg) scale(0.985);
    }
    48% {
        transform: rotateY(-88deg) scale(0.975);
    }
    52% {
        transform: rotateY(88deg) scale(0.975);
    }
    68% {
        transform: rotateY(38deg) scale(0.99);
    }
    100% {
        transform: rotateY(0deg) scale(1);
    }
}

@keyframes iapc-side-flip-back {
    0% {
        transform: rotateY(0deg) scale(1);
    }
    38% {
        transform: rotateY(72deg) scale(0.985);
    }
    48% {
        transform: rotateY(88deg) scale(0.975);
    }
    52% {
        transform: rotateY(-88deg) scale(0.975);
    }
    68% {
        transform: rotateY(-38deg) scale(0.99);
    }
    100% {
        transform: rotateY(0deg) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    #iapc_canvas_wrap.iapc-side-flip-forward,
    #iapc_canvas_wrap.iapc-side-flip-back {
        animation: none !important;
    }
}

#iapc_mug_canvas {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center center;
    flex: 0 1 auto;
    min-width: 0;
    min-height: 0;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.iapc-designer-wrapper #iapc_mug_canvas {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
}

.iapc-canvas-scroll-down,
.iapc-canvas-fs-toggle,
.iapc-canvas-fs-exit {
    display: none !important;
}

.iapc-canvas-loading {
    position: absolute;
    inset: 0;
    z-index: 6;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.42);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    pointer-events: none;
}

.iapc-canvas-loading.iapc-hidden {
    display: none !important;
}

.iapc-canvas-loading__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 18px 22px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(229, 231, 235, 0.9);
    box-shadow: 0 10px 30px rgba(17, 24, 39, 0.12);
    max-width: min(280px, calc(100% - 32px));
}

.iapc-canvas-loading__spinner {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2.5px solid #e5e7eb;
    border-top-color: #111;
    animation: iapc-canvas-spin 0.75s linear infinite;
}

.iapc-canvas-loading__text {
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    line-height: 1.35;
    text-align: center;
    max-width: 230px;
    min-height: 2.7em;
}

@keyframes iapc-canvas-spin {
    to {
        transform: rotate(360deg);
    }
}



/* PANEL DERECHO */
.iapc-actions {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 9px;
}

.iapc-confirm-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 100050;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(17, 24, 39, 0.45);
}

.iapc-confirm-overlay--open {
    display: flex;
}

.iapc-confirm {
    width: min(420px, 100%);
    padding: 20px 20px 16px;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
}

.iapc-confirm-title {
    margin: 0 0 8px !important;
    color: #111827 !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

.iapc-confirm-text {
    margin: 0 0 16px !important;
    color: #4b5563 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
}

.iapc-confirm-actions {
    display: flex;
    gap: 8px;
}

.iapc-confirm-actions .iapc-btn {
    flex: 1 1 0;
    width: auto !important;
    margin: 0 !important;
}

.iapc-confirm-cancel {
    background: #fff !important;
    color: #6d28d9 !important;
    border: 1px solid #ddd6fe !important;
}

/* TEXTOS AYUDA */
.iapc-panel-intro {
    font-size: 12px !important;
    font-style: italic !important;
    font-weight: 400 !important;
    color: #6b7280 !important;
    line-height: 1.4 !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
}

.iapc-guided-intro-row {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 0 0 2px !important;
}

.iapc-guided-intro-row .iapc-panel-intro {
    flex: 1 1 auto !important;
    margin: 0 !important;
}

#iapc_ai_guided_panel .iapc-guided-clear-link,
.iapc-designer-wrapper #iapc_ai_guided_panel .iapc-guided-clear-link,
.woocommerce .iapc-designer-wrapper #iapc_ai_guided_panel .iapc-guided-clear-link {
    appearance: none !important;
    -webkit-appearance: none !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #9ca3af !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    font-style: normal !important;
    line-height: 1.4 !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    cursor: pointer !important;
    white-space: nowrap !important;
}

#iapc_ai_guided_panel .iapc-guided-clear-link:hover,
#iapc_ai_guided_panel .iapc-guided-clear-link:focus,
.iapc-designer-wrapper #iapc_ai_guided_panel .iapc-guided-clear-link:hover,
.iapc-designer-wrapper #iapc_ai_guided_panel .iapc-guided-clear-link:focus {
    color: #6b7280 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}

.iapc-canva-panel > .iapc-panel-intro {
    margin: 0 0 12px !important;
}

.iapc-help-text {
    font-size: 12px !important;
    font-style: italic !important;
    color: #777 !important;
    margin: 0 !important;
}

.iapc-canva-panel .iapc-help-text {
    margin-top: 6px !important;
}

.iapc-canva-panel .iapc-panel-divider {
    margin: 10px 0 !important;
}

.iapc-panel-divider {
    margin: 18px 0 !important;
    border: 0;
    border-top: 1px solid #eee;
}

.iapc-hidden {
    display: none !important;
}

/*carrito y precio*/
/* PANEL DERECHO */
.iapc-designer-right .iapc-buy-box {
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
    margin-top: 24px !important;
}

/* PRECIO */
.iapc-designer-right .iapc-product-price {
    background: #f2f2f2 !important;
    border-radius: 16px !important;
    text-align: center !important;
    margin-bottom: 0 !important;
}

.iapc-designer-right .iapc-product-price,
.iapc-designer-right .iapc-product-price .price,
.iapc-designer-right .iapc-product-price .woocommerce-Price-amount {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #111 !important;
    line-height: 1 !important;
}

/* FORMULARIO ADD TO CART */
.iapc-designer-right .iapc-add-to-cart-inside form.cart {
    margin: 0 !important;
}

.iapc-designer-right .iapc-add-to-cart-inside .quantity {
    width: 100% !important;
    margin: 0 !important;
}

.iapc-designer-right .iapc-add-to-cart-inside input.qty {
    width: 100% !important;
    max-width: 100% !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 16px !important;
    text-align: center !important;
    font-weight: 800 !important;
    font-size: 16px !important;
}

/* BOTÓN AÑADIR AL CARRITO */
.iapc-designer-right .iapc-add-to-cart-inside .single_add_to_cart_button {
    width: 100% !important;
    margin-top: 0 !important;
    border: 0 !important;
    border-radius: 16px !important;
    background: #111 !important;
    color: #fff !important;
    font-weight: 800 !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    text-align: center !important;
}

/* VER CARRITO */
.iapc-designer-right .iapc-view-cart {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    margin-top: 0 !important;
    text-align: center !important;
    border-radius: 16px !important;
    background: #fff !important;
    border: 1px solid #d1d5db !important;
    color: #111 !important;
    text-decoration: none !important;
    font-weight: 800 !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

.iapc-designer-right .iapc-view-cart:hover {
    background: #f3f4f6 !important;
    color: #111 !important;
    border-color: #9ca3af !important;
}


/* =========================
   IA + IA GUIADA
========================= */

.iapc-ai-history {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin: 0 !important;
}

.iapc-ai-thumb-wrap {
    position: relative;
    overflow: visible;
}

.iapc-ai-thumb-wrap .iapc-ai-thumb {
    width: 100%;
}

.iapc-ai-thumb-remove {
    position: absolute !important;
    top: 4px !important;
    right: 4px !important;
    z-index: 5 !important;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(17, 24, 39, 0.78) !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 0 !important;
    letter-spacing: 0 !important;
    text-indent: 0 !important;
    text-align: center !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
    transform: none !important;
}

.iapc-ai-thumb-remove:hover,
.iapc-ai-thumb-remove:focus,
.iapc-ai-thumb-remove:active,
.iapc-ai-thumb-remove:focus-visible,
body .iapc-designer-wrapper button.iapc-ai-thumb-remove:hover,
body .iapc-designer-wrapper button.iapc-ai-thumb-remove:focus,
body .iapc-designer-wrapper button.iapc-ai-thumb-remove:active,
.woocommerce .iapc-designer-wrapper button.iapc-ai-thumb-remove:hover {
    background: rgba(17, 24, 39, 0.78) !important;
    background-color: rgba(17, 24, 39, 0.78) !important;
    background-image: none !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    outline: none !important;
}

.iapc-canva-tab[data-panel="ai"],
.iapc-canva-tab[data-panel="textures"] {
    position: relative !important;
    overflow: visible !important;
}

.iapc-ai-tab-count {
    position: absolute !important;
    top: -5px !important;
    right: -4px !important;
    z-index: 3;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box !important;
    min-width: 18px;
    width: 18px;
    height: 18px;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 50% !important;
    border: 2px solid #7c3aed !important;
    background: #7c3aed !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    pointer-events: none;
}

.iapc-ai-tab-count[hidden] {
    display: none !important;
}

.iapc-ai-remaining-warning {
    margin: 0 !important;
    color: #b45309 !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
}

.iapc-designer-wrapper .iapc-ai-remaining-warning--empty,
.woocommerce .iapc-designer-wrapper .iapc-ai-remaining-warning--empty {
    display: block !important;
    margin: 4px 0 10px !important;
    color: #dc2626 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    font-style: normal !important;
    line-height: 1.3 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
}

.iapc-designer-wrapper #iapc_generate_ai:disabled,
.iapc-designer-wrapper #iapc_generate_ai_edition:disabled,
.iapc-designer-wrapper #iapc_generate_ai_texture:disabled,
.iapc-designer-wrapper #iapc_design_for_me:disabled,
.iapc-designer-wrapper #iapc_open_guided_ai:disabled,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai:disabled,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai_edition:disabled,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai_texture:disabled,
.woocommerce .iapc-designer-wrapper #iapc_design_for_me:disabled,
.woocommerce .iapc-designer-wrapper #iapc_open_guided_ai:disabled {
    opacity: 0.4 !important;
    pointer-events: none !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

.iapc-ai-remaining-warning[hidden] {
    display: none !important;
}

.iapc-canva-tab-ai.iapc-active .iapc-ai-tab-count {
    background: #fff !important;
    color: #7c3aed !important;
}

.iapc-ai-thumb {
    /* Theme button padding ties on specificity and wins on source order */
    padding: 0 !important;
    border: 1px solid #dfe3ea !important;
    border-radius: 14px;
    /* Tinted so artwork on a white background still shows its edges */
    background: #f4f5f7 !important;
    background-color: #f4f5f7 !important;
    background-image: none !important;
    cursor: pointer;
    overflow: hidden;
    transition: border-color .18s ease;
    box-shadow: none !important;
    transform: none !important;
}

.iapc-ai-thumb:hover,
.iapc-ai-thumb:focus,
.iapc-ai-thumb:focus-visible,
.iapc-ai-thumb:active {
    background: #f4f5f7 !important;
    background-color: #f4f5f7 !important;
    background-image: none !important;
    border-color: var(--iapc-brand-purple-light, #a855f7) !important;
    outline: none;
    transform: none !important;
    box-shadow: none !important;
    color: inherit !important;
}

.iapc-ai-thumb img {
    /* Elementor forces height:auto on every img, so the box is squared with
       aspect-ratio instead of a fixed height it would override. */
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}

#iapc_generate_ai,
#iapc_generate_ai_texture,
#iapc_regenerate_ai,
#iapc_clear_ai,
#iapc_remove_ai_image {
    margin: 0 !important;
}

/* Botones de opciones IA guiada */
.iapc-ai-guided-buttons,
#iapc_ai_guided_panel .iapc-ai-guided-buttons {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

#iapc_ai_guided_panel .iapc-options {
    gap: 12px !important;
}

#iapc_ai_guided_panel #iapc_design_for_me {
    line-height: 1.2 !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
}

.iapc-ai-guided-modal__body .iapc-ai-guided-buttons {
    gap: 12px;
    margin: 0 !important;
}

.iapc-ai-choice,
#iapc_ai_guided_panel .iapc-ai-choice {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border: 1px solid #dfe3ea !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #222 !important;
    padding: 6px 7px !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    text-transform: lowercase !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    text-align: center !important;
    transition: border-color .16s ease, box-shadow .16s ease, color .16s ease !important;
    box-shadow: none !important;
    transform: none !important;
}

.iapc-ai-choice:hover,
.iapc-ai-choice:focus,
.iapc-ai-choice:active,
#iapc_ai_guided_panel .iapc-ai-choice:hover,
#iapc_ai_guided_panel .iapc-ai-choice:focus,
#iapc_ai_guided_panel .iapc-ai-choice:active {
    background: #fff !important;
    color: #222 !important;
    border-color: #c4b5fd !important;
    box-shadow: none !important;
    transform: none !important;
}

.iapc-ai-choice.iapc-active,
.iapc-ai-choice.iapc-active:hover,
.iapc-ai-choice.iapc-active:focus,
.iapc-ai-choice.iapc-active:active,
#iapc_ai_guided_panel .iapc-ai-choice.iapc-active,
#iapc_ai_guided_panel .iapc-ai-choice.iapc-active:hover,
#iapc_ai_guided_panel .iapc-ai-choice.iapc-active:focus,
#iapc_ai_guided_panel .iapc-ai-choice.iapc-active:active,
.iapc-designer-wrapper #iapc_ai_guided_panel .iapc-ai-choice.iapc-active,
.woocommerce .iapc-designer-wrapper #iapc_ai_guided_panel .iapc-ai-choice.iapc-active {
    background: #fff !important;
    background-color: #fff !important;
    color: #6d28d9 !important;
    border: 2px solid #7c3aed !important;
    box-shadow: 0 2px 8px rgba(124, 58, 237, 0.18) !important;
    transform: none !important;
}

/* Acciones inferiores IA guiada */
.iapc-ai-actions {
    display: flex;
    gap: 10px;
    margin-top: 12px;
}

.iapc-ai-actions button {
    flex: 1;
}

.iapc-ai-actions.iapc-hidden {
    display: none !important;
}

.iapc-btn-secondary {
    background: #fff !important;
    color: #222 !important;
    border: 1px solid #dfe3ea !important;
    border-radius: 14px !important;
    padding: 11px 14px !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    transition: all .18s ease !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .04) !important;
}

.iapc-btn-secondary:hover {
    border-color: #dfe3ea !important;
    transform: translateY(-1px);
}

.iapc-panel-subtitle {
    margin: 0 0 8px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #222 !important;
}

.iapc-image-edit-options,
.iapc-ai-image-options {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}

.iapc-ai-adjust-block {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    transition: opacity 0.18s ease;
}

.iapc-ai-adjust-block.iapc-controls-disabled {
    opacity: 0.45;
    pointer-events: none;
}

.iapc-ai-adjust-block.iapc-controls-disabled input,
.iapc-ai-adjust-block.iapc-controls-disabled select {
    cursor: not-allowed !important;
}

/* ==========================================================================
   FASE B — Desktop compacto (1025px–1279px)
   Keep 3 columns, but tighten padding/type so CTA text (CA/ES) never clips.
   Must stay above the ≤1024 stacked/mobile rules.

   Matriz QA (Fase D):
   ≤430 / 768 / 820 / 1024 → stack + dock
   1025–1279 (Elementor ~1140) → 3 col compactas
   ≥1280 → 3 col cómodas + buy floor 220px
   zoom 125% → cae al rango real de viewport
   ========================================================================== */
@media (min-width: 1025px) and (max-width: 1279px) {
    .iapc-designer-wrapper .iapc-designer-layout {
        grid-template-columns: minmax(0, 32fr) minmax(0, 46fr) minmax(200px, 22fr) !important;
        gap: 10px !important;
    }

    .iapc-designer-wrapper .iapc-designer-left {
        padding: 6px !important;
        display: grid !important;
        grid-template-columns: 96px minmax(0, 1fr) !important;
        gap: 8px !important;
    }

    .iapc-designer-wrapper .iapc-designer-center {
        padding: 10px !important;
        border-radius: 18px !important;
    }

    .iapc-designer-wrapper .iapc-designer-title {
        font-size: clamp(1.35rem, 2.2vw, 1.75rem) !important;
        margin: 0 0 8px !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu {
        padding: 6px 4px !important;
        gap: 6px !important;
        border-radius: 14px !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai {
        padding: 5px 3px !important;
        font-size: 9px !important;
        line-height: 1.15 !important;
        border-radius: 10px !important;
        white-space: normal !important;
    }

    .iapc-designer-wrapper .iapc-canva-panel,
    .iapc-designer-wrapper .iapc-card.iapc-canva-panel,
    .iapc-designer-wrapper .iapc-tool-card.iapc-canva-panel {
        padding: 8px !important;
        border-radius: 14px !important;
        gap: 10px !important;
    }

    .iapc-designer-wrapper .iapc-canva-panel.iapc-active {
        gap: 10px !important;
    }

    .iapc-designer-wrapper .iapc-fields-2 {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        gap: 8px !important;
    }

    .iapc-designer-wrapper .iapc-field > label,
    .iapc-designer-wrapper .iapc-fields-2 > .iapc-field > label {
        font-size: 12px !important;
        line-height: 1.2 !important;
        white-space: normal !important;
    }

    .iapc-designer-wrapper .iapc-designer-right {
        gap: 10px !important;
    }

    .iapc-designer-wrapper .iapc-right-card,
    .iapc-designer-wrapper .iapc-actions-card,
    .iapc-designer-wrapper .iapc-price-card {
        padding: 8px !important;
        border-radius: 16px !important;
    }

    .iapc-designer-wrapper .iapc-price-card {
        gap: 8px !important;
        overflow: visible !important;
    }

    .iapc-designer-wrapper .iapc-actions {
        justify-content: flex-start !important;
        gap: 7px !important;
    }

    .iapc-designer-wrapper .iapc-actions .iapc-btn {
        min-height: 40px !important;
        height: auto !important;
        padding: 8px 6px !important;
        font-size: 9px !important;
        line-height: 1.2 !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
        text-align: center !important;
    }

    .iapc-designer-wrapper .iapc-price-card .iapc-product-price,
    .iapc-designer-wrapper .iapc-price-card .quantity,
    .iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button,
    .iapc-designer-wrapper .iapc-price-card .iapc-view-cart,
    .iapc-designer-wrapper .iapc-price-card input.qty,
    .iapc-designer-wrapper .iapc-price-card .quantity input.qty,
    .iapc-designer-wrapper .iapc-price-card .quantity input[type="number"] {
        min-height: 40px !important;
        height: auto !important;
        padding: 8px 6px !important;
        font-size: 10px !important;
        line-height: 1.2 !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
        text-align: center !important;
    }

    .iapc-designer-wrapper .iapc-price-card .iapc-product-price,
    .iapc-designer-wrapper .iapc-price-card .iapc-product-price .price,
    .iapc-designer-wrapper .iapc-price-card .iapc-product-price .woocommerce-Price-amount,
    .iapc-designer-wrapper .iapc-price-card .iapc-product-price .woocommerce-Price-amount bdi {
        font-size: 13px !important;
    }

    .iapc-designer-wrapper .iapc-price-card input.qty,
    .iapc-designer-wrapper .iapc-price-card .quantity input.qty,
    .iapc-designer-wrapper .iapc-price-card .quantity input[type="number"] {
        height: 40px !important;
        min-height: 40px !important;
        font-size: 13px !important;
        white-space: nowrap !important;
    }

    .iapc-designer-wrapper .iapc-add-to-cart-inside,
    .iapc-designer-wrapper .iapc-price-card .iapc-add-to-cart-inside form.cart,
    .iapc-designer-wrapper .iapc-price-card form.cart {
        gap: 8px !important;
    }
}

/* Comfortable desktop (≥1280): restore a bit of breathing room */
@media (min-width: 1280px) {
    .iapc-designer-wrapper .iapc-designer-layout {
        /* Floor on buy column so CA/ES CTAs survive zoom 125% / Elementor sidebars */
        grid-template-columns: minmax(0, 32fr) minmax(0, 48fr) minmax(220px, 20fr);
        gap: 16px;
    }

    .iapc-designer-wrapper .iapc-designer-left {
        padding: 10px;
        grid-template-columns: 112px minmax(0, 1fr);
        gap: 12px;
    }

    .iapc-designer-wrapper .iapc-actions-card,
    .iapc-designer-wrapper .iapc-price-card,
    .iapc-designer-wrapper .iapc-right-card {
        padding: 12px;
    }

    .iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button,
    .iapc-designer-wrapper .iapc-price-card .iapc-view-cart,
    .iapc-designer-wrapper .iapc-actions .iapc-btn {
        font-size: 10px !important;
        white-space: normal !important;
        overflow-wrap: break-word !important;
    }
}

/* FASE D — Desktop: cabe en la ventana (header del tema aparte); shortcode estrecho sigue al 100% */
@media (min-width: 1025px) {
    .iapc-designer-wrapper {
        --iapc-fit-offset: 14rem;
    }

    body.admin-bar .iapc-designer-wrapper {
        --iapc-fit-offset: 15.75rem;
    }

    .iapc-designer-wrapper .iapc-designer-layout {
        align-items: stretch !important;
        height: auto;
        max-height: calc(100vh - var(--iapc-fit-offset, 14rem));
        max-height: calc(100svh - var(--iapc-fit-offset, 14rem));
        overflow: hidden;
    }

    .iapc-designer-wrapper .iapc-designer-left,
    .iapc-designer-wrapper .iapc-designer-center,
    .iapc-designer-wrapper .iapc-designer-right {
        align-self: stretch !important;
        min-height: 0 !important;
        max-height: 100%;
        overflow: hidden;
    }

    .iapc-designer-wrapper .iapc-designer-center {
        height: 100%;
        min-height: 0 !important;
    }

    .iapc-designer-wrapper .iapc-designer-right {
        overflow-x: hidden;
        overflow-y: auto;
    }

    .iapc-designer-wrapper .iapc-designer-left {
        overflow: hidden;
    }

    .iapc-designer-wrapper .iapc-canva-content {
        min-height: 0 !important;
        height: auto !important;
        max-height: 100%;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        align-self: stretch !important;
    }

    .iapc-designer-wrapper .iapc-designer-left:has(.iapc-canva-panel.iapc-active) .iapc-canva-content {
        height: auto !important;
        min-height: 0 !important;
    }

    .iapc-designer-wrapper .iapc-canva-content .iapc-card.iapc-canva-panel.iapc-active,
    .iapc-designer-wrapper .iapc-card.iapc-canva-panel.iapc-active {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        height: auto !important;
    }

    .iapc-designer-wrapper .iapc-designer-center #iapc_canvas_wrap {
        flex: 1 1 0% !important;
        min-height: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 0 !important;
        max-height: none !important;
        aspect-ratio: auto !important;
        justify-content: center !important;
    }

    .iapc-designer-wrapper .iapc-designer-center .iapc-sides-card {
        flex: 0 0 auto !important;
        flex-shrink: 0 !important;
        margin-top: auto !important;
        padding-top: 10px !important;
    }

    .iapc-designer-wrapper .iapc-canva-content {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        align-self: stretch !important;
        height: auto !important;
        min-height: 0 !important;
    }

    /* One panel at a time: display:none so inactive controls cannot overlay. */
    .iapc-designer-wrapper .iapc-canva-content .iapc-canva-panel,
    .iapc-designer-wrapper .iapc-canva-content .iapc-card.iapc-canva-panel,
    .iapc-designer-wrapper .iapc-canva-content .iapc-tool-card.iapc-canva-panel {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
        height: auto !important;
        min-height: 0 !important;
        z-index: 0;
    }

    .iapc-designer-wrapper .iapc-canva-content .iapc-canva-panel:not(.iapc-active) *,
    .iapc-designer-wrapper .iapc-canva-content .iapc-card.iapc-canva-panel:not(.iapc-active) * {
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .iapc-designer-wrapper .iapc-canva-content .iapc-canva-panel.iapc-active,
    .iapc-designer-wrapper .iapc-canva-content .iapc-card.iapc-canva-panel.iapc-active {
        display: flex !important;
        flex-direction: column !important;
        visibility: visible !important;
        pointer-events: auto !important;
        z-index: 2;
        height: auto !important;
        min-height: 0 !important;
    }

    .iapc-designer-wrapper .iapc-canva-content .iapc-canva-panel .iapc-options {
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
    }

    .iapc-designer-wrapper .iapc-designer-right {
        align-self: stretch !important;
        position: relative;
        top: auto;
        z-index: 6;
        height: auto !important;
        min-height: 0 !important;
        max-height: 100% !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    .iapc-designer-wrapper .iapc-featured {
        flex: 0 0 auto !important;
        height: auto !important;
        max-height: none !important;
        overflow: hidden;
    }

    .iapc-designer-wrapper .iapc-featured-img {
        height: 200px;
        min-height: 200px;
    }

    .iapc-designer-wrapper .iapc-actions-card {
        flex: 0 0 auto !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: visible !important;
        max-height: none !important;
        min-height: 0 !important;
        height: auto !important;
    }

    .iapc-designer-wrapper .iapc-actions-card .iapc-card-actions,
    .iapc-designer-wrapper .iapc-actions-card .iapc-actions {
        flex: 0 0 auto !important;
        height: auto !important;
        min-height: 0 !important;
    }

    .iapc-designer-wrapper .iapc-actions {
        justify-content: flex-start !important;
        gap: 9px !important;
    }

    .iapc-designer-wrapper .iapc-price-card {
        position: static;
        margin-top: auto !important;
        flex: 0 0 auto !important;
        background: #fff;
    }
}

/* RESPONSIVE — apilar secciones y liberar alturas (compact / ≤1024)
   Menu chrome lives ONLY in the dock block further below (Phase C).
   Do not restyle .iapc-canva-menu here — it fights the fixed icon dock. */
@media (max-width: 1024px) {
    .iapc-designer-wrapper .iapc-designer-layout {
        grid-template-columns: 1fr !important;
        gap: 14px;
    }

    .iapc-designer-wrapper .iapc-designer-center {
        order: 1;
        height: auto !important;
        min-height: 0 !important;
    }

    .iapc-designer-wrapper .iapc-designer-left {
        order: 2;
        display: flex !important;
        flex-direction: column !important;
        grid-template-columns: none !important;
        gap: 12px !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    .iapc-designer-wrapper .iapc-designer-right {
        order: 3;
        position: static !important;
        top: auto !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .iapc-designer-wrapper .iapc-actions-card {
        flex: none !important;
        overflow: visible !important;
        height: auto !important;
    }

    .iapc-designer-wrapper .iapc-actions-card .iapc-card-actions,
    .iapc-designer-wrapper .iapc-actions-card .iapc-actions {
        flex: none !important;
        height: auto !important;
    }

    .iapc-designer-wrapper .iapc-actions {
        justify-content: flex-start !important;
        gap: 9px !important;
    }

    .iapc-designer-wrapper .iapc-canva-content,
    .iapc-designer-wrapper .iapc-designer-left:has(.iapc-canva-panel.iapc-active) .iapc-canva-content,
    .iapc-designer-wrapper .iapc-canva-content .iapc-card.iapc-canva-panel.iapc-active,
    .iapc-designer-wrapper .iapc-card.iapc-canva-panel.iapc-active,
    .iapc-designer-wrapper .iapc-canva-panel.iapc-active,
    .iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-options {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        flex: 0 0 auto !important;
        align-self: stretch !important;
    }

    .iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-options > #iapc_add_text,
    .iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-options > #iapc_add_sticker,
    .iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-options > #iapc_add_graphic {
        margin-top: 8px !important;
    }

    .iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-options > .iapc-paint-mode-row {
        margin-top: 0 !important;
    }

    .iapc-designer-wrapper .iapc-price-card {
        position: static;
        overflow: visible !important;
        margin-top: 0 !important;
    }

    .iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-btn,
    .iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-btn-full,
    .iapc-designer-wrapper .iapc-canva-panel.iapc-active #iapc_generate_ai,
    .iapc-designer-wrapper .iapc-canva-panel.iapc-active #iapc_open_guided_ai,
    .iapc-designer-wrapper .iapc-canva-panel.iapc-active #iapc_generate_ai_edition,
    .iapc-designer-wrapper .iapc-canva-panel.iapc-active #iapc_generate_ai_texture,
    .iapc-designer-wrapper .iapc-canva-panel.iapc-active #iapc_design_for_me,
    .iapc-designer-wrapper .single_add_to_cart_button {
        display: block !important;
        visibility: visible !important;
        pointer-events: auto !important;
        min-height: 48px !important;
        height: auto !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    .iapc-designer-wrapper .iapc-fields-2 {
        grid-template-columns: 1fr !important;
    }

    .iapc-designer-wrapper .iapc-designer-title {
        font-size: clamp(1.35rem, 5vw, 1.85rem) !important;
        line-height: 1.2 !important;
    }

    .iapc-designer-wrapper .iapc-sides,
    .iapc-designer-wrapper .iapc-sides.iapc-sides--row {
        flex-wrap: nowrap !important;
        gap: 10px !important;
    }

    .iapc-designer-wrapper .iapc-sides .iapc-side-btn,
    .iapc-designer-wrapper .iapc-designer-center .iapc-side-btn {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        width: calc(50% - 5px) !important;
        max-width: calc(50% - 5px) !important;
        box-sizing: border-box !important;
        min-height: 48px !important;
        padding: 12px 16px !important;
        font-size: 14px !important;
        font-weight: 700 !important;
    }
}

@media (max-width: 700px) {
    .iapc-lang-header-inner {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .iapc-lang-switch {
        width: 100%;
    }

    .iapc-lang-btn {
        flex: 1;
    }

    .iapc-designer-wrapper {
        padding: 0;
    }

    .iapc-designer-wrapper .iapc-designer-left,
    .iapc-designer-wrapper .iapc-designer-center,
    .iapc-designer-wrapper .iapc-designer-right {
        margin-bottom: 0;
        padding: 0;
    }

    .iapc-designer-wrapper .iapc-designer-center #iapc_canvas_wrap {
        padding-left: 16px;
        padding-right: 16px;
        box-sizing: border-box;
    }

    .iapc-designer-wrapper .iapc-featured {
        margin: 0 16px;
        width: auto;
    }

    .iapc-designer-wrapper .iapc-featured-img {
        height: 88px !important;
        min-height: 88px !important;
    }

    .iapc-designer-title {
        font-size: 28px;
    }

    .iapc-canva-panel {
        padding: 10px !important;
    }

    .iapc-card h3,
    .iapc-tool-card h3 {
        font-size: 18px !important;
    }

    .iapc-help-text {
        word-break: normal !important;
        overflow-wrap: break-word;
    }
}

/* TOASTS / NOTIFICACIONES */
.iapc-toast-stack {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 999999;
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: min(360px, calc(100vw - 32px));
    pointer-events: none;
}

.iapc-toast {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    width: 100%;
    padding: 14px 16px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #e8ebf0;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.14);
    box-sizing: border-box;
    pointer-events: auto;
    opacity: 0;
    transform: translate3d(18px, -6px, 0) scale(0.96);
    transition:
        opacity 0.38s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.38s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.38s ease;
    will-change: opacity, transform;
}

.iapc-toast--visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.16);
}

.iapc-toast--hide {
    opacity: 0;
    transform: translate3d(12px, -4px, 0) scale(0.98);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

@media (prefers-reduced-motion: reduce) {
    .iapc-toast {
        transform: none;
        transition: opacity 0.2s ease;
    }

    .iapc-toast--visible,
    .iapc-toast--hide {
        transform: none;
    }
}

.iapc-toast-icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
}

.iapc-toast--success .iapc-toast-icon {
    background: #e8f7ee;
    color: #137333;
}

.iapc-toast--error .iapc-toast-icon {
    background: #fdecea;
    color: #c5221f;
}

.iapc-toast--warning .iapc-toast-icon {
    background: #fff4e5;
    color: #b06000;
}

.iapc-toast--info .iapc-toast-icon {
    background: #f3e8ff;
    color: #7c3aed;
}

.iapc-toast-text {
    flex: 1;
    margin: 0 !important;
    padding: 4px 0 0 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
    color: #111 !important;
}

.iapc-toast-close {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border: 0 !important;
    border-radius: 10px !important;
    background: transparent !important;
    color: #444 !important;
    font-size: 18px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
}

.iapc-toast-close:hover {
    background: transparent !important;
    color: #111 !important;
}

#iapc_3d_status:empty {
    display: none !important;
}


/* ==========================
   PAINT - MÁS ESPACIO
========================== */

#iapc_enable_paint,
#iapc_eraser_paint,
#iapc_undo_paint,
#iapc_clear_paint {
    width: 100%;
    margin: 0 !important;
    padding: 16px 20px !important;
    border-radius: 16px !important;
}

#iapc_enable_paint {
    margin-bottom: 0 !important;
}

.iapc-paint-mode-row {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    margin: 0 !important;
}

.iapc-paint-mode-row > button,
.iapc-designer-wrapper .iapc-paint-mode-row > #iapc_enable_paint,
.iapc-designer-wrapper .iapc-paint-mode-row > #iapc_eraser_paint,
.iapc-designer-wrapper .iapc-paint-mode-row > #iapc_undo_paint,
.iapc-designer-wrapper .iapc-paint-mode-row > #iapc_clear_paint {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    padding: 12px 14px !important;
}

/* Separación de controles sueltos en panel Pintar (sin .iapc-field) */

.iapc-paint-panel>*:not(h3):not(.iapc-card-header),
.iapc-canva-panel>*:not(h3):not(.iapc-card-header) {
    margin-bottom: 0 !important;
}

#iapc_brush_color,
#iapc_brush_size,
#iapc_brush_opacity,
#iapc_paint_color,
#iapc_paint_size {
    margin: 0 !important;
}

/* ==========================
   PANEL DERECHO EN 2 CARDS
========================== */

.iapc-designer-right {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;

    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

.iapc-right-card {
    background: #fff;
    border-radius: 20px;
    padding: 10px;
    margin-bottom: 0 !important;
    border: 1px solid #e8ebf0;
    box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow: hidden;
}


.iapc-actions-card {
    display: flex !important;
    flex-direction: column !important;
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
    padding: 10px !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.iapc-price-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow: visible;
    padding: 6px 10px 10px !important;
    margin-top: 0 !important;
}

/* Orden compra: form (variaciones → qty → precio → envío → ATC) → ver carrito */
.iapc-price-card > .iapc-add-to-cart-inside {
    order: 1;
    margin: 0 !important;
    padding: 0 !important;
    gap: 10px;
}

.iapc-price-card > .iapc-product-price,
.iapc-price-card > .iapc-shipping-notice {
    /* Fallback before JS moves them above ATC */
    order: 2;
}

.iapc-price-card > .iapc-view-cart {
    order: 3;
}

.iapc-price-card .iapc-add-to-cart-inside form.cart,
.iapc-designer-wrapper .iapc-price-card form.cart {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.iapc-price-card .reset_variations_alert,
.iapc-price-card .woocommerce-variation:empty,
.iapc-price-card .clear {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
}

.iapc-price-card .variations,
.iapc-price-card table.variations,
.iapc-price-card .variations tbody,
.iapc-price-card .variations tr,
.iapc-price-card .variations .label,
.iapc-price-card .variations td.label {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.iapc-price-card .woocommerce-variation-add-to-cart .iapc-shipping-notice,
.iapc-price-card form.cart .iapc-shipping-notice,
.iapc-price-card .woocommerce-variation-add-to-cart .iapc-product-price,
.iapc-price-card form.cart .iapc-product-price {
    width: 100% !important;
    flex: 0 0 auto !important;
    order: 0;
}

/* Bloque compra: precio, cantidad y botones del mismo tamaño */
.iapc-price-card .iapc-product-price,
.iapc-price-card .quantity,
.iapc-price-card .single_add_to_cart_button,
.iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button,
.iapc-price-card .iapc-view-cart {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 10px 8px !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    float: none !important;
}

/* Precio */

.iapc-price-card .iapc-product-price {
    background: #f2f2f2 !important;
    color: #111 !important;
}

.iapc-price-card .iapc-product-price,
.iapc-price-card .iapc-product-price .price,
.iapc-price-card .iapc-product-price .woocommerce-Price-amount,
.iapc-price-card .iapc-product-price .woocommerce-Price-amount bdi {
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    margin: 0 !important;
}

.iapc-price-card .iapc-add-to-cart-inside {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* Formulario WooCommerce dentro del personalizador */
.iapc-price-card .iapc-add-to-cart-inside form.cart,
.iapc-designer-wrapper .iapc-price-card form.cart {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    float: none !important;
}

/* Dentro del form: variaciones → info variación → qty+ATC */
.iapc-price-card form.cart > .variations,
.iapc-price-card form.cart > table.variations {
    order: 1;
}

.iapc-price-card form.cart > .single_variation_wrap {
    order: 2;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.iapc-price-card form.cart > .quantity {
    order: 3;
}

.iapc-price-card form.cart > .single_add_to_cart_button {
    order: 4;
}

.iapc-price-card .woocommerce-variation-add-to-cart {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Variable products: attribute selectors — stack label + select */
.iapc-price-card .variations,
.iapc-designer-wrapper .iapc-price-card .variations,
.iapc-price-card table.variations {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    border: 0 !important;
}

.iapc-price-card .variations tbody,
.iapc-price-card .variations tr,
.iapc-price-card .variations td,
.iapc-price-card .variations th {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    vertical-align: top !important;
}

.iapc-price-card .variations .label,
.iapc-price-card .variations td.label,
.iapc-price-card .variations label {
    display: block !important;
    width: 100% !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    text-align: left !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: #374151 !important;
}

.iapc-price-card .variations .value,
.iapc-price-card .variations td.value {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.iapc-price-card .variations select {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 44px !important;
    padding: 10px 12px !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    background: #fff !important;
    box-sizing: border-box !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    font-style: normal !important;
    color: #111 !important;
    text-align: center !important;
    text-align-last: center !important;
    appearance: none;
    -webkit-appearance: none;
}

.iapc-price-card .variations select option {
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    font-style: normal !important;
    color: #111 !important;
    background: #fff !important;
}

.iapc-price-card .reset_variations {
    display: none !important;
}

/* Hide WC variation summary block (price/stock) — we mirror stock under qty only */
.iapc-price-card .woocommerce-variation,
.iapc-price-card .single_variation,
.iapc-price-card .woocommerce-variation-description,
.iapc-price-card .woocommerce-variation-price,
.iapc-price-card .woocommerce-variation-availability:not(.iapc-qty-availability),
.iapc-price-card .woocommerce-variation .stock,
.iapc-price-card .single_variation .stock,
.iapc-price-card form.cart > .stock,
.iapc-price-card .single_variation_wrap > .stock {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
}

.iapc-price-card .iapc-qty-availability,
.iapc-price-card .iapc-qty-field > .iapc-qty-availability {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    font-style: italic !important;
    line-height: 1.35 !important;
    color: #6b7280 !important;
    text-align: right !important;
}

.iapc-price-card .iapc-qty-availability[hidden],
.iapc-price-card .iapc-qty-availability:empty {
    display: none !important;
}

.iapc-price-card .iapc-qty-availability p,
.iapc-price-card .iapc-qty-availability .stock {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    font: inherit !important;
    color: inherit !important;
    text-align: inherit !important;
}

/* Cantidad: label + (− N +) */
.iapc-price-card .iapc-qty-field {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 6px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

.iapc-price-card .iapc-qty-label {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: #374151 !important;
}

/* Cantidad: −  N  + (plugin-owned; hide theme qty chrome) */
.iapc-price-card .quantity,
.iapc-designer-wrapper .iapc-price-card .quantity,
.iapc-designer-wrapper .iapc-price-card form.cart .quantity,
.woocommerce .iapc-designer-wrapper .iapc-price-card .quantity {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
    align-self: stretch !important;
    flex: 0 0 auto !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    background: #f3f4f6 !important;
    overflow: hidden !important;
    position: relative !important;
}

/* Hide gallery/thumbnail chrome in the buy column — keep notice images */
.iapc-price-card .woocommerce-product-gallery,
.iapc-price-card .woocommerce-product-gallery-nav-wrapper,
.iapc-price-card .uncode-single-product-gallery,
.iapc-price-card .uncode-wrapper.uncode-single-product-gallery,
.iapc-price-card .owl-carousel-wrapper,
.iapc-price-card .owl-carousel-parent,
.iapc-price-card .flex-control-thumbs,
.iapc-price-card .images,
.iapc-price-card .thumbnails,
.iapc-price-card .variations .wp-post-image,
.iapc-add-to-cart-inside .woocommerce-product-gallery,
.iapc-add-to-cart-inside .woocommerce-product-gallery-nav-wrapper,
.iapc-add-to-cart-inside .uncode-single-product-gallery,
.iapc-add-to-cart-inside .uncode-wrapper.uncode-single-product-gallery,
.iapc-add-to-cart-inside .owl-carousel-wrapper,
.iapc-add-to-cart-inside .owl-carousel-parent {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

.iapc-price-card .iapc-shipping-notice img {
    display: inline-block !important;
    max-width: 100%;
    height: auto;
    margin: 0;
}

/* Theme/plugin free-shipping (or similar) notices above ATC */
.iapc-price-card .iapc-shipping-notice:not([hidden]) {
    display: block !important;
    width: 100%;
    margin: 0 !important;
    padding: 0;
    box-sizing: border-box;
    color: #4b5563;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    text-align: center !important;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    visibility: visible !important;
    opacity: 1 !important;
}

.iapc-price-card .iapc-shipping-notice[hidden] {
    display: none !important;
}

.iapc-price-card .iapc-shipping-notice > * {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    font: inherit !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Cantidad: −  N  + (plugin-owned; hide theme qty chrome) */
.iapc-price-card .quantity,
.iapc-designer-wrapper .iapc-price-card .quantity,
.iapc-designer-wrapper .iapc-price-card form.cart .quantity,
.woocommerce .iapc-designer-wrapper .iapc-price-card .quantity {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
    align-self: stretch !important;
    flex: 0 0 auto !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    background: #f3f4f6 !important;
    overflow: hidden !important;
    position: relative !important;
}

/* Theme gallery/slider arrows that leak into the buy column */
.iapc-price-card .owl-nav,
.iapc-price-card .owl-prev,
.iapc-price-card .owl-next,
.iapc-price-card .slick-arrow,
.iapc-price-card .slick-prev,
.iapc-price-card .slick-next,
.iapc-price-card .flex-direction-nav,
.iapc-price-card .flex-prev,
.iapc-price-card .flex-next,
.iapc-price-card .flickity-button,
.iapc-price-card .qty-spinners,
.iapc-price-card .quantity-nav,
.iapc-designer-right .owl-nav,
.iapc-designer-right .owl-prev,
.iapc-designer-right .owl-next,
.iapc-designer-right .slick-arrow,
.iapc-designer-right .slick-prev,
.iapc-designer-right .slick-next,
.iapc-add-to-cart-inside .owl-nav,
.iapc-add-to-cart-inside .owl-prev,
.iapc-add-to-cart-inside .owl-next {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* Keep view (side) buttons visible under the canvas */
.iapc-designer-wrapper .iapc-sides-card,
.iapc-designer-wrapper .iapc-designer-sides,
.iapc-designer-wrapper .iapc-sides,
.iapc-designer-wrapper .iapc-sides.iapc-sides--row {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.iapc-designer-wrapper .iapc-sides .iapc-side-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.iapc-price-card .quantity .iapc-qty-btn,
.iapc-designer-wrapper .iapc-price-card .quantity .iapc-qty-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #f3f4f6 !important;
    color: #111 !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.iapc-price-card .quantity .iapc-qty-btn:hover,
.iapc-designer-wrapper .iapc-price-card .quantity .iapc-qty-btn:hover {
    background: #e5e7eb !important;
    color: #111 !important;
}

.iapc-price-card .quantity .iapc-qty-btn:disabled,
.iapc-designer-wrapper .iapc-price-card .quantity .iapc-qty-btn:disabled {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

.iapc-price-card .quantity .qty-minus,
.iapc-price-card .quantity .qty-plus,
.iapc-price-card .quantity .qty-inset {
    display: none !important;
}

.iapc-price-card .quantity.iapc-qty-switcher--input-only,
.iapc-designer-wrapper .iapc-price-card .quantity.iapc-qty-switcher--input-only {
    background: #fff !important;
}

.iapc-price-card .quantity.iapc-qty-switcher--input-only input.qty,
.iapc-designer-wrapper .iapc-price-card .quantity.iapc-qty-switcher--input-only input.qty {
    border: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    width: 100% !important;
    flex: 1 1 auto !important;
}

.iapc-price-card input.qty,
.iapc-price-card .quantity input.qty,
.iapc-price-card .quantity input[type="number"],
.iapc-designer-wrapper .iapc-price-card input.qty,
.iapc-designer-wrapper .iapc-price-card .quantity input.qty,
.iapc-designer-wrapper .iapc-price-card .quantity input[type="number"],
.iapc-designer-wrapper .iapc-price-card form.cart input.qty,
.iapc-designer-wrapper .iapc-price-card form.cart .quantity input.qty,
.iapc-designer-wrapper .iapc-price-card form.cart .quantity input[type="number"],
.woocommerce .iapc-designer-wrapper .iapc-price-card input.qty,
.woocommerce .iapc-designer-wrapper .iapc-price-card .quantity input.qty,
.woocommerce .iapc-designer-wrapper .iapc-price-card .quantity input[type="number"] {
    display: block !important;
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    border: 0 !important;
    border-left: 1px solid #e0e0e0 !important;
    border-right: 1px solid #e0e0e0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    text-align: center !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    box-sizing: border-box !important;
    float: none !important;
    -moz-appearance: textfield;
    appearance: textfield;
}

.iapc-price-card .quantity input.qty::-webkit-outer-spin-button,
.iapc-price-card .quantity input.qty::-webkit-inner-spin-button,
.iapc-designer-wrapper .iapc-price-card .quantity input.qty::-webkit-outer-spin-button,
.iapc-designer-wrapper .iapc-price-card .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Theme quantity +/- extras — we use .iapc-qty-btn instead */
.iapc-price-card .quantity .minus:not(.iapc-qty-btn),
.iapc-price-card .quantity .plus:not(.iapc-qty-btn),
.iapc-price-card .qty-minus,
.iapc-price-card .qty-plus,
.iapc-price-card .quantity-down,
.iapc-price-card .quantity-up,
.iapc-price-card button.minus:not(.iapc-qty-btn),
.iapc-price-card button.plus:not(.iapc-qty-btn),
.iapc-price-card a.minus,
.iapc-price-card a.plus {
    display: none !important;
}

/* Botón comprar (WooCommerce) */

.iapc-price-card .single_add_to_cart_button,
.iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button {
    margin-top: 0 !important;
    border: 0 !important;
    background: #111 !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    text-align: center !important;
}

/* Ver carrito */

.iapc-price-card .iapc-view-cart {
    margin-top: 0 !important;
    background: #fff !important;
    border: 1px solid #d1d5db !important;
    color: #111 !important;
    text-decoration: none !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    text-align: center !important;
}

.iapc-price-card .iapc-view-cart:hover {
    background: #f3f4f6 !important;
    color: #111 !important;
    border-color: #9ca3af !important;
}

.iapc-card-actions {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    display: flex !important;
    flex-direction: column !important;
    flex: 0 0 auto !important;
    min-height: 0 !important;
    height: auto !important;
}

.iapc-actions {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    gap: 9px !important;
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 0 !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.iapc-actions .iapc-btn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    height: auto !important;
    padding: 8px 10px !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    text-transform: uppercase;
    white-space: normal !important;
    line-height: 1.2 !important;
    font-size: 10px !important;
    overflow: hidden !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

.iapc-price-card .single_add_to_cart_button,
.iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button,
.iapc-price-card .iapc-view-cart {
    text-transform: uppercase;
}

/* Anti-reset tema — Side buttons neutros */
.iapc-designer-wrapper .iapc-side-btn,
.iapc-designer-wrapper .iapc-side-btn:active,
.woocommerce .iapc-designer-wrapper .iapc-side-btn,
.woocommerce .iapc-designer-wrapper .iapc-side-btn:active {
    background-color: #fff !important;
    background: #fff !important;
    color: #111 !important;
    border: 1px solid #d1d5db !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

.iapc-designer-wrapper .iapc-side-btn:hover,
.iapc-designer-wrapper .iapc-side-btn:focus,
.woocommerce .iapc-designer-wrapper .iapc-side-btn:hover,
.woocommerce .iapc-designer-wrapper .iapc-side-btn:focus {
    background-color: #f3f4f6 !important;
    background: #f3f4f6 !important;
    color: #111 !important;
    border-color: #9ca3af !important;
    box-shadow: none !important;
}

.iapc-designer-wrapper .iapc-side-btn.iapc-active,
.iapc-designer-wrapper .iapc-side-btn.iapc-active:active,
.woocommerce .iapc-designer-wrapper .iapc-side-btn.iapc-active,
.woocommerce .iapc-designer-wrapper .iapc-side-btn.iapc-active:active {
    background: #111 !important;
    background-color: #111 !important;
    color: #fff !important;
    border-color: #111 !important;
    box-shadow: none !important;
}

.iapc-designer-wrapper .iapc-side-btn.iapc-active:hover,
.iapc-designer-wrapper .iapc-side-btn.iapc-active:focus,
.woocommerce .iapc-designer-wrapper .iapc-side-btn.iapc-active:hover,
.woocommerce .iapc-designer-wrapper .iapc-side-btn.iapc-active:focus {
    background: #222 !important;
    background-color: #222 !important;
    color: #fff !important;
    border-color: #222 !important;
    box-shadow: none !important;
}

.iapc-designer-wrapper .iapc-btn,
.iapc-designer-wrapper .iapc-btn:hover,
.iapc-designer-wrapper .iapc-btn:focus,
.iapc-designer-wrapper .iapc-btn:active {
    background-color: #f1f3f5 !important;
    background: #f1f3f5 !important;
    color: #222 !important;
    border: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

.iapc-designer-wrapper .iapc-btn:hover,
.iapc-designer-wrapper .iapc-btn:focus {
    background-color: #e5e7eb !important;
    background: #e5e7eb !important;
    color: #111 !important;
}

.iapc-designer-wrapper .iapc-lang-btn,
.iapc-designer-wrapper .iapc-lang-btn:hover,
.iapc-designer-wrapper .iapc-lang-btn:focus,
.iapc-designer-wrapper .iapc-lang-btn:active {
    background-color: #f1f3f5 !important;
    background: #f1f3f5 !important;
    color: #222 !important;
    text-decoration: none !important;
}

.iapc-designer-wrapper .iapc-lang-btn:hover,
.iapc-designer-wrapper .iapc-lang-btn:focus {
    background-color: #e5e7eb !important;
    background: #e5e7eb !important;
    color: #111 !important;
}

.iapc-designer-wrapper .iapc-lang-btn.iapc-active,
.iapc-designer-wrapper .iapc-lang-btn.iapc-active:hover,
.iapc-designer-wrapper .iapc-lang-btn.iapc-active:focus,
.iapc-designer-wrapper .iapc-lang-btn.iapc-active:active {
    background-color: #111 !important;
    background: #111 !important;
    color: #fff !important;
}

.iapc-designer-wrapper .iapc-canva-tab:hover,
.iapc-designer-wrapper .iapc-canva-tab:focus,
.iapc-designer-wrapper .iapc-canva-tab:active {
    background-color: #f6f7f9 !important;
    background: #f6f7f9 !important;
    color: #222 !important;
    border-color: #cfd6e0 !important;
}

.iapc-designer-wrapper .iapc-canva-tab-ai:not(.iapc-active),
.iapc-designer-wrapper .iapc-canva-tab-ai:not(.iapc-active):hover,
.iapc-designer-wrapper .iapc-canva-tab-ai:not(.iapc-active):focus,
.iapc-designer-wrapper .iapc-canva-tab-ai:not(.iapc-active):active {
    background-color: #fff !important;
    background: #fff !important;
    color: #7c3aed !important;
    border: 1px solid #9333ea !important;
    box-shadow: none !important;
}

.iapc-designer-wrapper .iapc-canva-tab-ai:not(.iapc-active):hover,
.iapc-designer-wrapper .iapc-canva-tab-ai:not(.iapc-active):focus {
    background-color: #f3e8ff !important;
    background: #f3e8ff !important;
    color: #6d28d9 !important;
    box-shadow: 0 4px 12px rgba(168, 85, 247, 0.18) !important;
}

.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active,
.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active:hover,
.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active:focus,
.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active:active {
    background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%) !important;
    color: #fff !important;
    border-color: #9333ea !important;
}

.iapc-designer-wrapper .iapc-canva-tab.iapc-active,
.iapc-designer-wrapper .iapc-canva-tab.iapc-active:hover,
.iapc-designer-wrapper .iapc-canva-tab.iapc-active:focus,
.iapc-designer-wrapper .iapc-canva-tab.iapc-active:active {
    background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%) !important;
    background-color: #7c3aed !important;
    color: #fff !important;
    border-color: #9333ea !important;
    box-shadow: 0 4px 14px rgba(168, 85, 247, 0.38) !important;
}

.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active:hover,
.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active:focus {
    background: linear-gradient(135deg, #b46cff 0%, #8b5cf6 100%) !important;
    color: #fff !important;
    border-color: #9333ea !important;
    box-shadow: 0 6px 18px rgba(168, 85, 247, 0.45) !important;
}

/*
 * Product page integration: show only the Customizer (+ WC notices).
 * Works with any theme: hide every direct sibling of the designer root
 * inside whatever parent wraps it (classic, blocks, page builders).
 */
body.iapc-product-page-integration *:has(> .iapc-product-page-designer-root) > *:not(.iapc-product-page-designer-root):not(.woocommerce-notices-wrapper):not(.woocommerce-message):not(.woocommerce-info):not(.woocommerce-error):not(.woocommerce-NoticeGroup) {
    display: none !important;
}

body.iapc-product-page-integration .iapc-product-page-designer-root,
body.iapc-product-page-integration .iapc-designer-wrapper {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.iapc-product-page-integration .iapc-product-page-designer-root {
    max-width: var(--wp--style--global--wide-size, 1280px);
    margin: 4rem auto;
    padding: 0;
}

/* WooCommerce / block chrome that may sit outside that parent */
body.iapc-product-page-integration .woocommerce-product-gallery,
body.iapc-product-page-integration .wp-block-woocommerce-product-image-gallery,
body.iapc-product-page-integration .woocommerce-tabs,
body.iapc-product-page-integration .wc-tabs-wrapper,
body.iapc-product-page-integration .woocommerce-Tabs-panel,
body.iapc-product-page-integration .related.products,
body.iapc-product-page-integration .upsells,
body.iapc-product-page-integration .wp-block-post-title,
body.iapc-product-page-integration .wp-block-woocommerce-product-price,
body.iapc-product-page-integration .wp-block-add-to-cart-form,
body.iapc-product-page-integration .wc-block-add-to-cart-form,
body.iapc-product-page-integration .wp-block-post-excerpt,
body.iapc-product-page-integration .wp-block-woocommerce-product-meta,
body.iapc-product-page-integration .wp-block-woocommerce-product-details,
body.iapc-product-page-integration .wp-block-woocommerce-product-collection,
body.iapc-product-page-integration .woocommerce-breadcrumb,
body.iapc-product-page-integration nav.woocommerce-breadcrumb {
    display: none !important;
}

body.iapc-product-page-integration .iapc-designer-layout {
    min-width: 0;
}

body.iapc-product-page-integration .iapc-designer-left,
body.iapc-product-page-integration .iapc-designer-center,
body.iapc-product-page-integration .iapc-designer-right {
    min-width: 0;
}

body.iapc-product-page-integration .iapc-designer-wrapper .iapc-btn,
body.iapc-product-page-integration .iapc-designer-wrapper .iapc-side-btn,
body.iapc-product-page-integration .iapc-designer-wrapper .iapc-canva-tab,
body.iapc-product-page-integration .iapc-designer-wrapper .iapc-canva-tab-ai {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    word-break: normal !important;
    letter-spacing: normal !important;
}

body.iapc-product-page-integration .iapc-designer-wrapper .iapc-canva-tab,
body.iapc-product-page-integration .iapc-designer-wrapper .iapc-canva-tab-ai,
body.iapc-product-page-integration .iapc-designer-wrapper .iapc-side-btn {
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

body.iapc-product-page-integration .iapc-designer-wrapper .iapc-field label,
body.iapc-product-page-integration .iapc-designer-wrapper .iapc-tool-card label,
body.iapc-product-page-integration .iapc-designer-wrapper .iapc-help-text {
    white-space: normal !important;
}

body.iapc-product-page-integration form.cart {
    display: none !important;
}

body.iapc-product-page-integration .iapc-designer-wrapper form.cart {
    display: flex !important;
    flex-direction: column;
}

body.iapc-product-page-integration .iapc-price-card .iapc-shipping-notice:not([hidden]) {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body.iapc-product-page-integration .iapc-price-card .iapc-shipping-notice:not([hidden]) {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body.iapc-product-page-integration .summary>*:not(.iapc-designer-wrapper) {
    display: none !important;
}

body.iapc-product-page-integration .summary.entry-summary,
body.iapc-product-page-integration div.product .summary {
    width: 100% !important;
    float: none !important;
    max-width: 100% !important;
}

body.iapc-product-page-integration div.product {
    display: block;
}

/* Shortcode en descripción: ocultar carrito duplicado del resumen */
body.single-product:has(.iapc-designer-wrapper) .summary form.cart,
body.single-product:has(.iapc-designer-wrapper) .entry-summary form.cart {
    display: none !important;
}

/* Sin sombras en controles interactivos */
.iapc-designer-wrapper button,
.iapc-designer-wrapper .iapc-btn,
.iapc-designer-wrapper .iapc-btn-secondary,
.iapc-designer-wrapper .iapc-ai-choice,
.iapc-designer-wrapper .iapc-canva-tab,
.iapc-designer-wrapper input:not([type="color"]):not([type="range"]),
.iapc-designer-wrapper select,
.iapc-designer-wrapper textarea {
    box-shadow: none !important;
}

.iapc-designer-wrapper .iapc-canva-tab-ai:not(.iapc-active) {
    box-shadow: none !important;
}

.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active {
    box-shadow: 0 4px 14px rgba(168, 85, 247, 0.38) !important;
}

.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active:hover,
.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active:focus {
    box-shadow: 0 6px 18px rgba(168, 85, 247, 0.45) !important;
}

/* Sin borde negro ni outline en botones */
.iapc-designer-wrapper button,
.iapc-designer-wrapper button:hover,
.iapc-designer-wrapper button:focus,
.iapc-designer-wrapper button:active,
.iapc-designer-wrapper button:focus-visible,
.iapc-designer-wrapper .iapc-btn,
.iapc-designer-wrapper .iapc-btn:hover,
.iapc-designer-wrapper .iapc-btn:focus,
.iapc-designer-wrapper .iapc-btn:active,
.iapc-designer-wrapper .iapc-btn:focus-visible,
.iapc-designer-wrapper .iapc-btn-secondary,
.iapc-designer-wrapper .iapc-btn-secondary:hover,
.iapc-designer-wrapper .iapc-btn-secondary:focus,
.iapc-designer-wrapper .iapc-btn-secondary:active,
.iapc-designer-wrapper .iapc-ai-choice,
.iapc-designer-wrapper .iapc-ai-choice:hover,
.iapc-designer-wrapper .iapc-ai-choice:focus,
.iapc-designer-wrapper .iapc-ai-choice:active,
.iapc-designer-wrapper .iapc-canva-tab,
.iapc-designer-wrapper .iapc-canva-tab:hover,
.iapc-designer-wrapper .iapc-canva-tab:focus,
.iapc-designer-wrapper .iapc-canva-tab:active,
.iapc-designer-wrapper .iapc-canva-tab-ai,
.iapc-designer-wrapper .iapc-canva-tab-ai:hover,
.iapc-designer-wrapper .iapc-canva-tab-ai:focus,
.iapc-designer-wrapper .iapc-canva-tab-ai:active,
.iapc-designer-wrapper .iapc-side-btn,
.iapc-designer-wrapper .iapc-side-btn:hover,
.iapc-designer-wrapper .iapc-side-btn:focus,
.iapc-designer-wrapper .iapc-side-btn:active,
.iapc-designer-wrapper .iapc-ai-guided-modal__close,
.iapc-designer-wrapper .iapc-ai-guided-modal__close:hover,
.iapc-designer-wrapper .iapc-ai-guided-modal__close:focus,
.iapc-designer-wrapper .iapc-ai-guided-modal__close:active {
    outline: none !important;
    outline-offset: 0 !important;
}

/* Modal Guided AI se mueve a body al abrir: forzar sin depender de .iapc-designer-wrapper */
#iapc_ai_guided_modal .iapc-ai-guided-modal__clear-filters,
#iapc_ai_guided_modal #iapc_clear_guided,
#iapc_ai_guided_modal .iapc-ai-guided-modal__clear-filters:hover,
#iapc_ai_guided_modal .iapc-ai-guided-modal__clear-filters:focus,
#iapc_ai_guided_modal .iapc-ai-guided-modal__clear-filters:active,
#iapc_ai_guided_modal #iapc_clear_guided:hover,
#iapc_ai_guided_modal #iapc_clear_guided:focus,
#iapc_ai_guided_modal #iapc_clear_guided:active,
body > .iapc-ai-guided-modal .iapc-ai-guided-modal__clear-filters,
body > .iapc-ai-guided-modal #iapc_clear_guided,
body > .iapc-ai-guided-modal .iapc-ai-guided-modal__clear-filters:hover,
body > .iapc-ai-guided-modal .iapc-ai-guided-modal__clear-filters:focus,
body > .iapc-ai-guided-modal .iapc-ai-guided-modal__clear-filters:active,
.iapc-designer-wrapper .iapc-ai-guided-modal__clear-filters,
.iapc-designer-wrapper .iapc-ai-guided-modal__clear-filters:hover,
.iapc-designer-wrapper .iapc-ai-guided-modal__clear-filters:focus,
.iapc-designer-wrapper .iapc-ai-guided-modal__clear-filters:active,
.woocommerce .iapc-designer-wrapper .iapc-ai-guided-modal__clear-filters,
.woocommerce .iapc-designer-wrapper .iapc-ai-guided-modal__clear-filters:hover,
.woocommerce .iapc-designer-wrapper .iapc-ai-guided-modal__clear-filters:focus,
.woocommerce .iapc-designer-wrapper .iapc-ai-guided-modal__clear-filters:active,
.woocommerce button.iapc-ai-guided-modal__clear-filters {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 0 !important;
    border-width: 0 !important;
    border-style: none !important;
    border-color: transparent !important;
    border-radius: 0 !important;
    outline: none !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    color: #000 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
    cursor: pointer !important;
}

.iapc-designer-wrapper .iapc-ai-guided-modal__header,
.woocommerce .iapc-designer-wrapper .iapc-ai-guided-modal__header,
#iapc_ai_guided_modal .iapc-ai-guided-modal__header,
body > .iapc-ai-guided-modal .iapc-ai-guided-modal__header {
    background: transparent !important;
    background-color: transparent !important;
}

#iapc_ai_guided_modal .iapc-ai-guided-modal__close,
#iapc_ai_guided_modal .iapc-ai-guided-modal__close:hover,
#iapc_ai_guided_modal .iapc-ai-guided-modal__close:focus,
#iapc_ai_guided_modal .iapc-ai-guided-modal__close:active,
body > .iapc-ai-guided-modal .iapc-ai-guided-modal__close,
body > .iapc-ai-guided-modal .iapc-ai-guided-modal__close:hover,
body > .iapc-ai-guided-modal .iapc-ai-guided-modal__close:focus,
body > .iapc-ai-guided-modal .iapc-ai-guided-modal__close:active,
.iapc-designer-wrapper .iapc-ai-guided-modal__close,
.iapc-designer-wrapper .iapc-ai-guided-modal__close:hover,
.iapc-designer-wrapper .iapc-ai-guided-modal__close:focus,
.iapc-designer-wrapper .iapc-ai-guided-modal__close:active,
.woocommerce .iapc-designer-wrapper .iapc-ai-guided-modal__close,
.woocommerce .iapc-designer-wrapper .iapc-ai-guided-modal__close:hover,
.woocommerce .iapc-designer-wrapper .iapc-ai-guided-modal__close:focus,
.woocommerce .iapc-designer-wrapper .iapc-ai-guided-modal__close:active,
.woocommerce button.iapc-ai-guided-modal__close {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-width: 0 !important;
    border-style: none !important;
    border-color: transparent !important;
    border-radius: 0 !important;
    outline: none !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    color: #000 !important;
    font-size: 28px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

#iapc_ai_guided_modal .iapc-ai-guided-modal__close:hover,
#iapc_ai_guided_modal .iapc-ai-guided-modal__close:focus,
body > .iapc-ai-guided-modal .iapc-ai-guided-modal__close:hover,
body > .iapc-ai-guided-modal .iapc-ai-guided-modal__close:focus,
.iapc-designer-wrapper .iapc-ai-guided-modal__close:hover,
.iapc-designer-wrapper .iapc-ai-guided-modal__close:focus,
.woocommerce .iapc-designer-wrapper .iapc-ai-guided-modal__close:hover,
.woocommerce .iapc-designer-wrapper .iapc-ai-guided-modal__close:focus {
    color: #000 !important;
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    opacity: 0.55 !important;
}

.iapc-designer-wrapper .iapc-canva-tab-ai:disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    background: #fff !important;
    color: #7c3aed !important;
    box-shadow: none !important;
}

.iapc-designer-wrapper .iapc-canva-tab:disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    background: #fff !important;
    color: #888 !important;
}

.iapc-designer-wrapper .iapc-btn-secondary,
.iapc-designer-wrapper .iapc-btn-secondary:hover,
.iapc-designer-wrapper .iapc-btn-secondary:focus,
.iapc-designer-wrapper .iapc-btn-secondary:active,
.iapc-designer-wrapper .iapc-ai-choice,
.iapc-designer-wrapper .iapc-ai-choice:hover,
.iapc-designer-wrapper .iapc-ai-choice:focus,
.iapc-designer-wrapper .iapc-ai-choice:active,
.iapc-designer-wrapper .iapc-canva-tab,
.iapc-designer-wrapper .iapc-canva-tab:hover,
.iapc-designer-wrapper .iapc-canva-tab:focus,
.iapc-designer-wrapper .iapc-canva-tab:active {
    border: 1px solid #dfe3ea !important;
}

.iapc-designer-wrapper .iapc-canva-tab-ai,
.iapc-designer-wrapper .iapc-canva-tab-ai:hover,
.iapc-designer-wrapper .iapc-canva-tab-ai:focus,
.iapc-designer-wrapper .iapc-canva-tab-ai:active {
    border: 1px solid #9333ea !important;
}

.iapc-designer-wrapper .iapc-ai-choice.iapc-active,
.iapc-designer-wrapper .iapc-ai-choice.iapc-active:hover,
.iapc-designer-wrapper .iapc-ai-choice.iapc-active:focus,
.iapc-designer-wrapper .iapc-ai-choice.iapc-active:active {
    border: 2px solid #7c3aed !important;
}

.iapc-designer-wrapper .iapc-canva-tab.iapc-active,
.iapc-designer-wrapper .iapc-canva-tab.iapc-active:hover,
.iapc-designer-wrapper .iapc-canva-tab.iapc-active:focus,
.iapc-designer-wrapper .iapc-canva-tab.iapc-active:active {
    border: 1px solid #9333ea !important;
}

.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active,
.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active:hover,
.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active:focus,
.iapc-designer-wrapper .iapc-canva-tab-ai.iapc-active:active {
    border: 1px solid #9333ea !important;
}

/* Input focus — soft ring, no black border or outline gaps on rounded corners */
.iapc-designer-wrapper .iapc-field input[type="text"]:focus,
.iapc-designer-wrapper .iapc-field select:focus,
.iapc-designer-wrapper .iapc-field textarea:focus,
.iapc-designer-wrapper .iapc-tool-card input[type="text"]:focus,
.iapc-designer-wrapper .iapc-tool-card select:focus,
.iapc-designer-wrapper .iapc-tool-card textarea:focus,
.iapc-designer-wrapper .iapc-canva-panel input[type="text"]:focus,
.iapc-designer-wrapper .iapc-canva-panel input[type="number"]:focus,
.iapc-designer-wrapper .iapc-canva-panel select:focus,
.iapc-designer-wrapper .iapc-canva-panel textarea:focus {
    outline: none !important;
    outline-offset: 0 !important;
    border-width: 1px !important;
    border-color: #c4b5fd !important;
    box-shadow: 0 0 0 3px var(--iapc-brand-purple-ring, rgba(168, 85, 247, 0.24)) !important;
}

/* Color picker — anti-theme reset (Text + Paint); swatch must fill the control */
.iapc-designer-wrapper .iapc-field input[type="color"],
.iapc-designer-wrapper .iapc-tool-card input[type="color"],
.iapc-designer-wrapper .iapc-canva-panel input[type="color"],
.iapc-designer-wrapper #iapc_color,
.iapc-designer-wrapper #iapc_brush_color,
.iapc-designer-wrapper #iapc_paint_color {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 25px !important;
    min-height: 25px !important;
    padding: 4px !important;
    box-sizing: border-box !important;
    border: 1px solid #dfe3ea !important;
    border-radius: 14px !important;
    background: #fff !important;
    cursor: pointer !important;
    line-height: normal !important;
}

.iapc-designer-wrapper .iapc-field input[type="color"]::-webkit-color-swatch-wrapper,
.iapc-designer-wrapper .iapc-tool-card input[type="color"]::-webkit-color-swatch-wrapper,
.iapc-designer-wrapper .iapc-canva-panel input[type="color"]::-webkit-color-swatch-wrapper,
.iapc-designer-wrapper #iapc_color::-webkit-color-swatch-wrapper,
.iapc-designer-wrapper #iapc_brush_color::-webkit-color-swatch-wrapper,
.iapc-designer-wrapper #iapc_paint_color::-webkit-color-swatch-wrapper {
    padding: 0 !important;
    border: none !important;
    border-radius: 10px !important;
    width: 100% !important;
    height: 100% !important;
}

.iapc-designer-wrapper .iapc-field input[type="color"]::-webkit-color-swatch,
.iapc-designer-wrapper .iapc-tool-card input[type="color"]::-webkit-color-swatch,
.iapc-designer-wrapper .iapc-canva-panel input[type="color"]::-webkit-color-swatch,
.iapc-designer-wrapper #iapc_color::-webkit-color-swatch,
.iapc-designer-wrapper #iapc_brush_color::-webkit-color-swatch,
.iapc-designer-wrapper #iapc_paint_color::-webkit-color-swatch {
    border: none !important;
    border-radius: 10px !important;
    width: 100% !important;
    height: 100% !important;
}

.iapc-designer-wrapper .iapc-field input[type="color"]::-moz-color-swatch,
.iapc-designer-wrapper .iapc-tool-card input[type="color"]::-moz-color-swatch,
.iapc-designer-wrapper .iapc-canva-panel input[type="color"]::-moz-color-swatch,
.iapc-designer-wrapper #iapc_color::-moz-color-swatch,
.iapc-designer-wrapper #iapc_brush_color::-moz-color-swatch,
.iapc-designer-wrapper #iapc_paint_color::-moz-color-swatch {
    border: none !important;
    border-radius: 10px !important;
    width: 100% !important;
    height: 100% !important;
}

.iapc-designer-wrapper .iapc-field input[type="color"]:focus,
.iapc-designer-wrapper .iapc-tool-card input[type="color"]:focus,
.iapc-designer-wrapper .iapc-canva-panel input[type="color"]:focus,
.iapc-designer-wrapper #iapc_color:focus,
.iapc-designer-wrapper #iapc_brush_color:focus,
.iapc-designer-wrapper #iapc_paint_color:focus {
    outline: none !important;
    border-color: #c4b5fd !important;
    box-shadow: 0 0 0 3px var(--iapc-brand-purple-ring, rgba(168, 85, 247, 0.24)) !important;
}

/* Panel lateral: estirar controles al ancho completo */
.iapc-designer-wrapper .iapc-canva-panel.iapc-active,
.iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-options,
.iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-field,
.iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-fields-2 {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

.iapc-designer-wrapper .iapc-canva-panel.iapc-active input:not([type="checkbox"]):not([type="radio"]),
.iapc-designer-wrapper .iapc-canva-panel.iapc-active select,
.iapc-designer-wrapper .iapc-canva-panel.iapc-active textarea,
.iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-btn,
.iapc-designer-wrapper .iapc-canva-panel.iapc-active .iapc-btn-secondary {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* Side buttons — neutros, sin sombra morada */
.iapc-designer-wrapper .iapc-designer-center .iapc-side-btn,
.woocommerce .iapc-designer-wrapper .iapc-designer-center .iapc-side-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    min-height: 48px !important;
}

.iapc-designer-wrapper .iapc-side-btn:hover,
.iapc-designer-wrapper .iapc-side-btn:focus,
.woocommerce .iapc-designer-wrapper .iapc-side-btn:hover,
.woocommerce .iapc-designer-wrapper .iapc-side-btn:focus {
    box-shadow: none !important;
}

.iapc-designer-wrapper .iapc-side-btn.iapc-active,
.woocommerce .iapc-designer-wrapper .iapc-side-btn.iapc-active {
    box-shadow: none !important;
}

.iapc-designer-wrapper .iapc-side-btn.iapc-active:hover,
.iapc-designer-wrapper .iapc-side-btn.iapc-active:focus,
.woocommerce .iapc-designer-wrapper .iapc-side-btn.iapc-active:hover,
.woocommerce .iapc-designer-wrapper .iapc-side-btn.iapc-active:focus {
    box-shadow: none !important;
}

/* Guided AI — botón Create corporativo (después del reset .iapc-btn gris) */
.iapc-designer-wrapper #iapc_design_for_me,
.iapc-designer-wrapper #iapc_design_for_me:hover,
.iapc-designer-wrapper #iapc_design_for_me:focus,
.iapc-designer-wrapper #iapc_design_for_me:active,
.woocommerce .iapc-designer-wrapper #iapc_design_for_me,
.woocommerce .iapc-designer-wrapper #iapc_design_for_me:hover,
.woocommerce .iapc-designer-wrapper #iapc_design_for_me:focus,
.woocommerce .iapc-designer-wrapper #iapc_design_for_me:active {
    border: 0 !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    color: #fff !important;
    text-decoration: none !important;
}

.iapc-designer-wrapper #iapc_design_for_me,
.woocommerce .iapc-designer-wrapper #iapc_design_for_me {
    background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%) !important;
    background-color: #7c3aed !important;
    box-shadow: 0 4px 14px rgba(168, 85, 247, 0.38) !important;
}

.iapc-designer-wrapper #iapc_design_for_me:hover,
.iapc-designer-wrapper #iapc_design_for_me:focus,
.woocommerce .iapc-designer-wrapper #iapc_design_for_me:hover,
.woocommerce .iapc-designer-wrapper #iapc_design_for_me:focus {
    background: linear-gradient(135deg, #b46cff 0%, #8b5cf6 100%) !important;
    background-color: #8b5cf6 !important;
    box-shadow: 0 6px 18px rgba(168, 85, 247, 0.45) !important;
}

.iapc-designer-wrapper #iapc_design_for_me:disabled,
.woocommerce .iapc-designer-wrapper #iapc_design_for_me:disabled {
    background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%) !important;
    color: #fff !important;
    opacity: 0.45 !important;
    box-shadow: none !important;
}

/* Sliders — anti-reset tema / WooCommerce (track + thumb visibles y centrados)
   Incluye .iapc-canva-content / .iapc-canva-panel: en móvil el panel se porta a <body>.
   Hit-area 20px con padding; track 6px centrado; thumb con margin-top negativo. */
.iapc-designer-wrapper input[type="range"],
.iapc-canva-content input[type="range"],
.iapc-canva-panel input[type="range"],
.iapc-field input[type="range"],
.woocommerce .iapc-designer-wrapper input[type="range"],
.woocommerce-page .iapc-designer-wrapper input[type="range"],
.woocommerce .iapc-canva-content input[type="range"],
.woocommerce-page .iapc-canva-content input[type="range"] {
    --iapc-range-track-h: 6px;
    --iapc-range-thumb-size: 20px;
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: var(--iapc-range-track-h, 6px) !important;
    min-height: var(--iapc-range-track-h, 6px) !important;
    margin: 0 !important;
    /* Reserva espacio para la bolita sin desplazar el track hacia arriba */
    padding: calc((var(--iapc-range-thumb-size, 20px) - var(--iapc-range-track-h, 6px)) / 2) 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    cursor: pointer !important;
    accent-color: var(--iapc-brand-purple, #9333ea) !important;
}

.iapc-designer-wrapper input[type="range"]::-webkit-slider-runnable-track,
.iapc-canva-content input[type="range"]::-webkit-slider-runnable-track,
.iapc-canva-panel input[type="range"]::-webkit-slider-runnable-track,
.iapc-field input[type="range"]::-webkit-slider-runnable-track,
.woocommerce .iapc-designer-wrapper input[type="range"]::-webkit-slider-runnable-track,
.woocommerce-page .iapc-designer-wrapper input[type="range"]::-webkit-slider-runnable-track,
.woocommerce .iapc-canva-content input[type="range"]::-webkit-slider-runnable-track,
.woocommerce-page .iapc-canva-content input[type="range"]::-webkit-slider-runnable-track {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 100% !important;
    height: var(--iapc-range-track-h, 6px) !important;
    border: 0 !important;
    border-radius: 999px !important;
    background-color: #e5e7eb !important;
}

.iapc-designer-wrapper input[type="range"]::-webkit-slider-thumb,
.iapc-canva-content input[type="range"]::-webkit-slider-thumb,
.iapc-canva-panel input[type="range"]::-webkit-slider-thumb,
.iapc-field input[type="range"]::-webkit-slider-thumb,
.woocommerce .iapc-designer-wrapper input[type="range"]::-webkit-slider-thumb,
.woocommerce-page .iapc-designer-wrapper input[type="range"]::-webkit-slider-thumb,
.woocommerce .iapc-canva-content input[type="range"]::-webkit-slider-thumb,
.woocommerce-page .iapc-canva-content input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none !important;
    appearance: none !important;
    box-sizing: border-box !important;
    width: var(--iapc-range-thumb-size, 20px) !important;
    height: var(--iapc-range-thumb-size, 20px) !important;
    margin-top: calc((var(--iapc-range-track-h, 6px) - var(--iapc-range-thumb-size, 20px)) / 2) !important;
    border-radius: 50% !important;
    background: var(--iapc-brand-purple, #9333ea) !important;
    border: 2px solid #fff !important;
    box-shadow: 0 2px 6px rgba(124, 58, 237, 0.35) !important;
    cursor: pointer !important;
}

.iapc-designer-wrapper input[type="range"]::-moz-range-track,
.iapc-canva-content input[type="range"]::-moz-range-track,
.iapc-canva-panel input[type="range"]::-moz-range-track,
.iapc-field input[type="range"]::-moz-range-track,
.woocommerce .iapc-designer-wrapper input[type="range"]::-moz-range-track,
.woocommerce-page .iapc-designer-wrapper input[type="range"]::-moz-range-track,
.woocommerce .iapc-canva-content input[type="range"]::-moz-range-track,
.woocommerce-page .iapc-canva-content input[type="range"]::-moz-range-track {
    width: 100% !important;
    height: var(--iapc-range-track-h, 6px) !important;
    border-radius: 999px !important;
    background: #e5e7eb !important;
    border: 0 !important;
}

.iapc-designer-wrapper input[type="range"]::-moz-range-progress,
.iapc-canva-content input[type="range"]::-moz-range-progress,
.iapc-canva-panel input[type="range"]::-moz-range-progress,
.iapc-field input[type="range"]::-moz-range-progress,
.woocommerce .iapc-designer-wrapper input[type="range"]::-moz-range-progress,
.woocommerce-page .iapc-designer-wrapper input[type="range"]::-moz-range-progress,
.woocommerce .iapc-canva-content input[type="range"]::-moz-range-progress,
.woocommerce-page .iapc-canva-content input[type="range"]::-moz-range-progress {
    height: var(--iapc-range-track-h, 6px) !important;
    border-radius: 999px !important;
    background: var(--iapc-brand-purple, #9333ea) !important;
}

.iapc-designer-wrapper input[type="range"]::-moz-range-thumb,
.iapc-canva-content input[type="range"]::-moz-range-thumb,
.iapc-canva-panel input[type="range"]::-moz-range-thumb,
.iapc-field input[type="range"]::-moz-range-thumb,
.woocommerce .iapc-designer-wrapper input[type="range"]::-moz-range-thumb,
.woocommerce-page .iapc-designer-wrapper input[type="range"]::-moz-range-thumb,
.woocommerce .iapc-canva-content input[type="range"]::-moz-range-thumb,
.woocommerce-page .iapc-canva-content input[type="range"]::-moz-range-thumb {
    box-sizing: border-box !important;
    width: var(--iapc-range-thumb-size, 20px) !important;
    height: var(--iapc-range-thumb-size, 20px) !important;
    border: 2px solid #fff !important;
    border-radius: 50% !important;
    background: var(--iapc-brand-purple, #9333ea) !important;
    box-shadow: 0 2px 6px rgba(124, 58, 237, 0.35) !important;
    cursor: pointer !important;
}

/* CTAs primarios IA — alineados con web corporativa */
.iapc-designer-wrapper #iapc_generate_ai,
.iapc-designer-wrapper #iapc_generate_ai_edition,
.iapc-designer-wrapper #iapc_generate_ai_texture,
.iapc-designer-wrapper #iapc_open_guided_ai,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai_edition,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai_texture,
.woocommerce .iapc-designer-wrapper #iapc_open_guided_ai {
    border: 0 !important;
    border-radius: var(--iapc-btn-radius, 16px) !important;
    background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%) !important;
    background-color: #7c3aed !important;
    color: #fff !important;
    box-shadow: 0 4px 14px rgba(168, 85, 247, 0.38) !important;
    text-decoration: none !important;
}

.iapc-designer-wrapper #iapc_generate_ai:hover,
.iapc-designer-wrapper #iapc_generate_ai:focus,
.iapc-designer-wrapper #iapc_generate_ai_edition:hover,
.iapc-designer-wrapper #iapc_generate_ai_edition:focus,
.iapc-designer-wrapper #iapc_generate_ai_texture:hover,
.iapc-designer-wrapper #iapc_generate_ai_texture:focus,
.iapc-designer-wrapper #iapc_open_guided_ai:hover,
.iapc-designer-wrapper #iapc_open_guided_ai:focus,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai:hover,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai:focus,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai_edition:hover,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai_edition:focus,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai_texture:hover,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai_texture:focus,
.woocommerce .iapc-designer-wrapper #iapc_open_guided_ai:hover,
.woocommerce .iapc-designer-wrapper #iapc_open_guided_ai:focus {
    background: linear-gradient(135deg, #b46cff 0%, #8b5cf6 100%) !important;
    background-color: #8b5cf6 !important;
    color: #fff !important;
    box-shadow: 0 6px 18px rgba(168, 85, 247, 0.45) !important;
}

.iapc-designer-wrapper #iapc_generate_ai:disabled,
.iapc-designer-wrapper #iapc_generate_ai_edition:disabled,
.iapc-designer-wrapper #iapc_generate_ai_texture:disabled,
.iapc-designer-wrapper #iapc_open_guided_ai:disabled,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai:disabled,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai_edition:disabled,
.woocommerce .iapc-designer-wrapper #iapc_generate_ai_texture:disabled,
.woocommerce .iapc-designer-wrapper #iapc_open_guided_ai:disabled {
    background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%) !important;
    color: #fff !important;
    opacity: 0.45 !important;
    box-shadow: none !important;
}

/* Opciones IA guiada — selección con borde, sin relleno de clic */
.iapc-designer-wrapper .iapc-ai-choice.iapc-active,
.iapc-designer-wrapper .iapc-ai-choice.iapc-active:hover,
.iapc-designer-wrapper .iapc-ai-choice.iapc-active:focus,
.iapc-designer-wrapper .iapc-ai-choice.iapc-active:active,
.woocommerce .iapc-designer-wrapper .iapc-ai-choice.iapc-active,
.woocommerce .iapc-designer-wrapper .iapc-ai-choice.iapc-active:hover,
.woocommerce .iapc-designer-wrapper .iapc-ai-choice.iapc-active:focus,
.woocommerce .iapc-designer-wrapper .iapc-ai-choice.iapc-active:active,
#iapc_ai_guided_panel .iapc-ai-choice.iapc-active,
#iapc_ai_guided_panel .iapc-ai-choice.iapc-active:hover,
#iapc_ai_guided_panel .iapc-ai-choice.iapc-active:focus,
#iapc_ai_guided_panel .iapc-ai-choice.iapc-active:active,
.iapc-designer-wrapper #iapc_ai_guided_panel .iapc-ai-choice.iapc-active,
.iapc-designer-wrapper #iapc_ai_guided_panel .iapc-ai-choice.iapc-active:hover,
.iapc-designer-wrapper #iapc_ai_guided_panel .iapc-ai-choice.iapc-active:focus,
.iapc-designer-wrapper #iapc_ai_guided_panel .iapc-ai-choice.iapc-active:active {
    background: #fff !important;
    background-color: #fff !important;
    color: #6d28d9 !important;
    border: 2px solid #7c3aed !important;
    box-shadow: 0 2px 8px rgba(124, 58, 237, 0.18) !important;
    transform: none !important;
}

/* View cart — secundario outline neutro */
.iapc-designer-wrapper .iapc-view-cart,
.iapc-designer-wrapper .iapc-view-cart:hover,
.iapc-designer-wrapper .iapc-view-cart:focus,
.iapc-designer-wrapper .iapc-view-cart:active,
.woocommerce .iapc-designer-wrapper .iapc-view-cart,
.woocommerce .iapc-designer-wrapper .iapc-view-cart:hover,
.woocommerce .iapc-designer-wrapper .iapc-view-cart:focus,
.woocommerce .iapc-designer-wrapper .iapc-view-cart:active {
    background: #fff !important;
    background-color: #fff !important;
    border: 1px solid #d1d5db !important;
    color: #111 !important;
    text-decoration: none !important;
}

.iapc-designer-wrapper .iapc-view-cart:hover,
.iapc-designer-wrapper .iapc-view-cart:focus,
.woocommerce .iapc-designer-wrapper .iapc-view-cart:hover,
.woocommerce .iapc-designer-wrapper .iapc-view-cart:focus {
    background: #f3f4f6 !important;
    background-color: #f3f4f6 !important;
    color: #111 !important;
    border-color: #9ca3af !important;
}

/* MOBILE / COMPACT TOOLS: icon dock + almost-fullscreen modal (scroll inside)
   Breakpoint must stay in sync with:
   - public/js/designer/iapc-tabs.js → MOBILE_BREAKPOINT
   - public/js/designer.js → MOBILE_CANVAS_MQ
*/
.iapc-canva-content-home {
    display: contents;
}

/* Desktop: header hidden; scroll wrapper is transparent to layout */
.iapc-mobile-modal-header {
    display: none !important;
}

.iapc-mobile-modal-scroll {
    display: contents;
}

html.iapc-mobile-tools-open,
body.iapc-mobile-tools-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
}

@media (max-width: 1024px) {
    /* Phase C: dock / sheet / keyboard tokens on html so portaled sheets inherit them */
    html {
        --iapc-dock-gap: 8px;
        --iapc-dock-pad: 6px;
        --iapc-dock-btn: 44px;
        --iapc-dock-chrome: calc(var(--iapc-dock-pad) * 2 + var(--iapc-dock-btn) + 2px);
        --iapc-dock-bottom: calc(var(--iapc-dock-gap) + env(safe-area-inset-bottom, 0px));
        --iapc-dock-stack: calc(var(--iapc-dock-bottom) + var(--iapc-dock-chrome));
        --iapc-keyboard-inset: 0px; /* synced by iapc-tabs.js via visualViewport */
        --iapc-sheet-bottom: calc(var(--iapc-dock-stack) + var(--iapc-keyboard-inset));
        --iapc-sheet-compact-h: min(58dvh, 480px);
        --iapc-dock-clearance: calc(var(--iapc-dock-stack) + 28px + var(--iapc-keyboard-inset));
    }

    /* Theme/plugin WhatsApp floats sit on the dock — hide while customizing */
    body.iapc-product-page-integration .joinchat,
    body:has(.iapc-designer-wrapper) .joinchat,
    body.iapc-product-page-integration .joinchat__button,
    body:has(.iapc-designer-wrapper) .joinchat__button {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
        opacity: 0 !important;
    }

    @supports not (height: 1dvh) {
        html {
            --iapc-sheet-compact-h: min(58vh, 480px);
        }
    }

    .iapc-designer-wrapper {
        padding-bottom: var(--iapc-dock-clearance) !important;
    }

    .iapc-designer-wrapper .iapc-price-card .single_variation_wrap,
    .iapc-designer-wrapper .iapc-price-card .woocommerce-variation-add-to-cart,
    body .iapc-designer-wrapper .iapc-price-card form.cart .single_add_to_cart_button,
    body .iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button,
    body .iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button.button,
    body .iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button.btn {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        align-self: stretch !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        display: flex !important;
        box-sizing: border-box !important;
    }

    body .iapc-designer-wrapper .iapc-price-card form.cart .single_add_to_cart_button,
    body .iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button.button,
    body .iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button.btn {
        min-width: 100% !important;
    }

    .iapc-designer-wrapper .iapc-designer-layout {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .iapc-designer-wrapper .iapc-designer-center {
        order: 1;
        padding: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
    }

    .iapc-designer-wrapper .iapc-right-card,
    .iapc-designer-wrapper .iapc-actions-card,
    .iapc-designer-wrapper .iapc-price-card {
        border: 0 !important;
        box-shadow: none !important;
    }

    .iapc-designer-wrapper .iapc-featured {
        margin: 0 16px;
        width: auto;
    }

    .iapc-designer-wrapper .iapc-featured-img {
        height: 88px !important;
        min-height: 88px !important;
    }

    .iapc-designer-wrapper .iapc-actions-card {
        display: flex !important;
        flex-direction: column !important;
        flex: 0 0 auto;
        min-height: 0;
        overflow: visible;
        padding: 1px !important;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .iapc-designer-wrapper .iapc-price-card {
        display: flex;
        flex-direction: column;
        gap: 10px;
        flex: 0 0 auto;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        overflow: visible;
        padding: 17px 16px 12px !important;
        margin-top: 0 !important;
    }

    .iapc-designer-wrapper .iapc-product-description-panel {
        width: auto !important;
        max-width: 100% !important;
        margin: 16px 16px 0 !important;
        box-sizing: border-box !important;
        border: 1px solid #e8ebf0;
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
        overflow: hidden;
    }

    /* Same View 1 / View 2 buttons as desktop */
    .iapc-designer-wrapper .iapc-sides-card,
    .iapc-designer-wrapper .iapc-designer-sides,
    .iapc-designer-wrapper .iapc-sides,
    .iapc-designer-wrapper .iapc-sides.iapc-sides--row {
        padding-left: 5px !important;
        padding-right: 5px !important;
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        flex-wrap: nowrap !important;
        gap: 10px !important;
        padding: 1px !important;
    }

    .iapc-designer-wrapper .iapc-sides .iapc-side-btn,
    .iapc-designer-wrapper .iapc-designer-center .iapc-side-btn,
    .woocommerce .iapc-designer-wrapper .iapc-sides .iapc-side-btn {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        width: auto !important;
        max-width: none !important;
        box-sizing: border-box !important;
        min-height: 48px !important;
        height: auto !important;
        padding: 12px 16px !important;
        border: 1px solid #d1d5db !important;
        border-radius: var(--iapc-btn-radius, 16px) !important;
        background: #fff !important;
        color: #111 !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        white-space: nowrap !important;
        box-shadow: none !important;
    }

    .iapc-designer-wrapper .iapc-sides .iapc-side-btn.iapc-active,
    .woocommerce .iapc-designer-wrapper .iapc-sides .iapc-side-btn.iapc-active {
        background: #111 !important;
        color: #fff !important;
        border-color: #111 !important;
    }

    .iapc-designer-wrapper .iapc-designer-right {
        order: 3;
        padding: 0 !important;
    }

    .iapc-designer-wrapper .iapc-designer-left {
        order: 2;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        overflow: visible !important;
        display: block !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu {
        position: fixed !important;
        left: max(var(--iapc-dock-gap), env(safe-area-inset-left, 0px));
        right: max(var(--iapc-dock-gap), env(safe-area-inset-right, 0px));
        bottom: calc(var(--iapc-dock-bottom) + var(--iapc-keyboard-inset));
        z-index: 100070;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: stretch !important;
        gap: 6px !important;
        width: auto;
        max-width: none !important;
        box-sizing: border-box !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: var(--iapc-dock-pad) !important;
        border-radius: 18px !important;
        background: #fff !important;
        border: 1px solid #e9d5ff !important;
        box-shadow: 0 8px 24px rgba(124, 58, 237, 0.14) !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu::-webkit-scrollbar {
        display: none;
    }

    .iapc-designer-wrapper .iapc-other-tools-toggle {
        display: inline-flex !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        flex: 1 1 0 !important;
    }

    .iapc-designer-wrapper .iapc-other-tools-arrow {
        display: none !important;
    }

    .iapc-designer-wrapper .iapc-other-tools-group {
        display: flex;
        position: static !important;
        flex: 1 1 0 !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
        background: none !important;
        box-shadow: none !important;
    }

    .iapc-designer-wrapper .iapc-other-tools {
        display: flex !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        position: absolute;
        left: 8px;
        right: 8px;
        bottom: calc(100% + 8px);
        width: auto !important;
        padding: 10px;
        margin: 0;
        border-radius: 16px;
        background: #fff !important;
        border: 1px solid #e9d5ff !important;
        box-shadow: 0 8px 24px rgba(124, 58, 237, 0.16) !important;
        z-index: 5;
    }

    .iapc-designer-wrapper .iapc-other-tools[hidden] {
        display: none !important;
    }

    .iapc-designer-wrapper .iapc-other-tools .iapc-canva-tab {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        flex: none !important;
        height: auto !important;
        min-height: 54px !important;
        padding: 6px 4px !important;
        flex-direction: column !important;
        gap: 4px !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        line-height: 1.15 !important;
        color: #7c3aed !important;
        white-space: nowrap !important;
    }

    .iapc-designer-wrapper .iapc-other-tools .iapc-canva-tab::before {
        width: auto !important;
        height: auto !important;
        font-size: 16px !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab[data-panel="ai"] {
        overflow: visible !important;
        position: relative !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-ai-tab-count {
        display: none !important;
    }

    .iapc-mobile-remaining {
        flex: 0 0 auto !important;
        margin: 0 2px 0 0 !important;
        padding: 0 !important;
        font-size: 11px !important;
        font-weight: 400 !important;
        font-style: italic !important;
        line-height: 1.2 !important;
        color: #9ca3af !important;
        white-space: nowrap !important;
        letter-spacing: 0 !important;
    }

    .iapc-mobile-remaining--low {
        color: #d97706 !important;
    }

    .iapc-mobile-remaining--empty {
        color: #d93025 !important;
    }

    .iapc-mobile-remaining[hidden] {
        display: none !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai {
        flex: 1 1 0 !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        min-height: var(--iapc-dock-btn) !important;
        height: var(--iapc-dock-btn) !important;
        padding: 0 !important;
        margin: 0 !important;
        font-size: 0 !important;
        line-height: 1 !important;
        white-space: nowrap !important;
        border-radius: 12px !important;
        border: 1.5px solid #c4b5fd !important;
        background: #fff !important;
        box-shadow: none !important;
        transform: none !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        box-sizing: border-box !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab:hover,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai:hover {
        background: #faf5ff !important;
        border-color: #a855f7 !important;
        box-shadow: none !important;
        transform: none !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab.iapc-active,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai.iapc-active,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab.iapc-active:hover,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai.iapc-active:hover,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab.iapc-active:focus,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai.iapc-active:focus {
        background: #fff !important;
        background-color: #fff !important;
        border-color: #7c3aed !important;
        box-shadow: 0 0 0 1px #7c3aed !important;
        filter: none !important;
        transform: none !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab::before,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai::before {
        content: attr(data-icon);
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 100%;
        font-size: 17px;
        line-height: 1;
        text-align: center;
        color: #7c3aed !important;
        filter: none !important;
        opacity: 1;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai::before {
        font-size: 13px;
        font-weight: 900;
        letter-spacing: 0.02em;
        color: #7c3aed !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab.iapc-active::before,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai.iapc-active::before {
        color: #6d28d9 !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab[disabled],
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai[disabled],
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab[aria-disabled="true"],
    .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai[aria-disabled="true"] {
        border-color: #e9d5ff !important;
        background: #fff !important;
        opacity: 0.4 !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-other-tools .iapc-canva-tab,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-other-tools .iapc-canva-tab-ai {
        height: auto !important;
        min-height: 54px !important;
        padding: 6px 4px !important;
        flex-direction: column !important;
        gap: 4px !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        line-height: 1.15 !important;
        color: #7c3aed !important;
        white-space: nowrap !important;
    }

    .iapc-designer-wrapper .iapc-canva-menu .iapc-other-tools .iapc-canva-tab::before,
    .iapc-designer-wrapper .iapc-canva-menu .iapc-other-tools .iapc-canva-tab-ai::before {
        width: auto !important;
        height: auto !important;
        font-size: 16px !important;
        color: #7c3aed !important;
    }

    /* Full modal above the dock — portaled to body + inner scroll body */
    body > .iapc-canva-content.iapc-mobile-portal {
        --iapc-mobile-modal-top: max(8px, env(safe-area-inset-top, 0px));
        --iapc-mobile-modal-side: max(8px, env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px));
        --iapc-mobile-modal-bottom: var(--iapc-sheet-bottom);
        position: fixed !important;
        top: var(--iapc-mobile-modal-top) !important;
        left: var(--iapc-mobile-modal-side) !important;
        right: var(--iapc-mobile-modal-side) !important;
        bottom: var(--iapc-mobile-modal-bottom) !important;
        width: auto !important;
        max-width: none !important;
        /* Explicit height so overflow can scroll (auto + top/bottom alone fails on some mobile browsers) */
        height: calc(100vh - var(--iapc-mobile-modal-top) - var(--iapc-mobile-modal-bottom)) !important;
        height: calc(100dvh - var(--iapc-mobile-modal-top) - var(--iapc-mobile-modal-bottom)) !important;
        max-height: calc(100vh - var(--iapc-mobile-modal-top) - var(--iapc-mobile-modal-bottom)) !important;
        max-height: calc(100dvh - var(--iapc-mobile-modal-top) - var(--iapc-mobile-modal-bottom)) !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border-radius: 16px !important;
        background: #fff !important;
        border: 1px solid #e8ebf0 !important;
        box-shadow: 0 18px 48px rgba(17, 24, 39, 0.22) !important;
        z-index: 100030 !important;
        display: none !important;
        flex-direction: column !important;
        align-items: stretch !important;
        overflow: hidden !important;
        transform: none !important;
        transition: opacity 0.18s ease;
        pointer-events: none;
        visibility: hidden;
        opacity: 0;
        box-sizing: border-box !important;
    }

    body.iapc-mobile-tools-open > .iapc-canva-content.iapc-mobile-portal {
        display: flex !important;
        pointer-events: auto !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    /* All mobile tool panels = low bottom sheet (canvas stays visible above) */
    body.iapc-mobile-tools-open > .iapc-canva-content.iapc-mobile-portal.iapc-mobile-sheet--compact {
        top: auto !important;
        left: max(8px, env(safe-area-inset-left, 0px)) !important;
        right: max(8px, env(safe-area-inset-right, 0px)) !important;
        bottom: var(--iapc-sheet-bottom) !important;
        height: var(--iapc-sheet-compact-h) !important;
        max-height: var(--iapc-sheet-compact-h) !important;
        min-height: 0 !important;
        border-radius: 18px 18px 14px 14px !important;
        box-shadow: 0 -12px 40px rgba(17, 24, 39, 0.22) !important;
    }

    body.iapc-mobile-tools-open.iapc-mobile-sheet--compact > .iapc-mobile-sheet-backdrop.iapc-mobile-portal {
        background: rgba(17, 24, 39, 0.28);
    }

    /* Fallback when content is not yet portaled */
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-content {
        position: fixed !important;
        top: max(8px, env(safe-area-inset-top, 0px)) !important;
        left: max(8px, env(safe-area-inset-left, 0px)) !important;
        right: max(8px, env(safe-area-inset-right, 0px)) !important;
        bottom: var(--iapc-sheet-bottom) !important;
        height: calc(100dvh - max(8px, env(safe-area-inset-top, 0px)) - var(--iapc-sheet-bottom)) !important;
        max-height: calc(100dvh - max(8px, env(safe-area-inset-top, 0px)) - var(--iapc-sheet-bottom)) !important;
        z-index: 100030 !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        pointer-events: auto !important;
        visibility: visible !important;
        opacity: 1 !important;
        background: #fff !important;
        border-radius: 16px !important;
        box-sizing: border-box !important;
    }

    body > .iapc-mobile-sheet-backdrop.iapc-mobile-portal,
    .iapc-mobile-sheet-backdrop {
        position: fixed;
        inset: 0;
        z-index: 100025;
        border: 0;
        padding: 0;
        margin: 0;
        background: rgba(17, 24, 39, 0.48);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.18s ease;
        touch-action: none;
        overscroll-behavior: none;
    }

    body.iapc-mobile-tools-open > .iapc-mobile-sheet-backdrop.iapc-mobile-portal,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-mobile-sheet-backdrop {
        opacity: 1;
        pointer-events: auto;
    }

    .iapc-mobile-modal-header {
        position: relative !important;
        top: auto !important;
        flex: 0 0 auto !important;
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 10px 8px 10px 12px !important;
        border-bottom: 1px solid #eef1f5;
        background: #fff !important;
        z-index: 3;
    }

    /* Override desktop `display: contents` so this box can actually scroll */
    body > .iapc-canva-content.iapc-mobile-portal > .iapc-mobile-modal-scroll,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-content > .iapc-mobile-modal-scroll {
        display: block !important;
    }

    .iapc-mobile-modal-title {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: 15px !important;
        font-style: italic !important;
        font-weight: 500 !important;
        color: #4b5563 !important;
        line-height: 1.35 !important;
        text-align: left !important;
    }

    .iapc-mobile-modal-title[hidden] {
        display: none !important;
    }

    .iapc-mobile-sheet-close {
        position: static !important;
        flex: 0 0 auto !important;
        margin: 0 !important;
        width: 36px !important;
        height: 36px !important;
        border: 0 !important;
        border-radius: 999px !important;
        background: transparent !important;
        box-shadow: none !important;
        color: #111 !important;
        font-size: 20px !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        z-index: 2;
        cursor: pointer;
    }

    .iapc-mobile-sheet-close:hover,
    .iapc-mobile-sheet-close:focus {
        background: #f3f4f6 !important;
        border: 0 !important;
        box-shadow: none !important;
        color: #111 !important;
    }

    /* THE scroll container */
    body > .iapc-canva-content.iapc-mobile-portal > .iapc-mobile-modal-scroll,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-content > .iapc-mobile-modal-scroll {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        height: auto !important;
        max-height: none !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        overflow-y: scroll !important;
        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
        box-sizing: border-box !important;
    }

    /* Intro moves to header on mobile modal — hide duplicate in body */
    body.iapc-mobile-tools-open > .iapc-canva-content.iapc-mobile-portal .iapc-panel-intro,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-panel-intro {
        display: none !important;
    }

    /* Panel grows with content; scroll lives on .iapc-mobile-modal-scroll */
    body > .iapc-canva-content.iapc-mobile-portal .iapc-canva-panel,
    body > .iapc-canva-content.iapc-mobile-portal .iapc-card.iapc-canva-panel,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-panel,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-content .iapc-card.iapc-canva-panel {
        display: none !important;
    }

    body > .iapc-canva-content.iapc-mobile-portal .iapc-canva-panel.iapc-active,
    body > .iapc-canva-content.iapc-mobile-portal .iapc-card.iapc-canva-panel.iapc-active,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-panel.iapc-active,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-content .iapc-card.iapc-canva-panel.iapc-active {
        display: block !important;
        flex: none !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 10px 12px 24px !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    body > .iapc-canva-content.iapc-mobile-portal .iapc-canva-panel.iapc-active .iapc-options,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-panel.iapc-active .iapc-options {
        display: flex !important;
        flex-direction: column !important;
        flex: none !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 !important;
        gap: 12px !important;
        justify-content: flex-start !important;
        overflow: visible !important;
    }

    /* Same generate button as desktop, even when the sheet is portaled out of the wrapper.
       Sticky so it stays on screen with an empty field (placeholder only). */
    body > .iapc-canva-content.iapc-mobile-portal #iapc_generate_ai,
    body > .iapc-canva-content.iapc-mobile-portal #iapc_generate_ai_edition,
    body > .iapc-canva-content.iapc-mobile-portal #iapc_generate_ai_texture,
    body > .iapc-canva-content.iapc-mobile-portal #iapc_design_for_me,
    .iapc-designer-wrapper.iapc-mobile-sheet-open #iapc_generate_ai,
    .iapc-designer-wrapper.iapc-mobile-sheet-open #iapc_generate_ai_edition,
    .iapc-designer-wrapper.iapc-mobile-sheet-open #iapc_generate_ai_texture,
    .iapc-designer-wrapper.iapc-mobile-sheet-open #iapc_design_for_me {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        visibility: visible !important;
        width: 100% !important;
        min-height: 48px !important;
        margin: 0 !important;
        padding: 12px 16px !important;
        border: 0 !important;
        border-radius: 16px !important;
        background: linear-gradient(135deg, #a855f7 0%, #7c3aed 100%) !important;
        background-color: #7c3aed !important;
        color: #fff !important;
        font-weight: 800 !important;
        box-shadow: 0 4px 14px rgba(168, 85, 247, 0.38) !important;
        position: sticky !important;
        bottom: 0 !important;
        z-index: 4 !important;
        opacity: 1 !important;
    }

    body > .iapc-canva-content.iapc-mobile-portal .iapc-canva-panel.iapc-active .iapc-options > #iapc_add_text,
    body > .iapc-canva-content.iapc-mobile-portal .iapc-canva-panel.iapc-active .iapc-options > #iapc_add_sticker,
    body > .iapc-canva-content.iapc-mobile-portal .iapc-canva-panel.iapc-active .iapc-options > #iapc_add_graphic,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-panel.iapc-active .iapc-options > #iapc_add_text,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-panel.iapc-active .iapc-options > #iapc_add_sticker,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-panel.iapc-active .iapc-options > #iapc_add_graphic {
        margin-top: 8px !important;
    }

    body > .iapc-canva-content.iapc-mobile-portal .iapc-canva-panel.iapc-active .iapc-options > .iapc-paint-mode-row,
    .iapc-designer-wrapper.iapc-mobile-sheet-open .iapc-canva-panel.iapc-active .iapc-options > .iapc-paint-mode-row {
        margin-top: 0 !important;
    }

    /* Canvas: stop page scroll stealing paint/drag gestures */
    #iapc_canvas_wrap,
    #iapc_mug_canvas {
        touch-action: none !important;
        -webkit-user-select: none !important;
        user-select: none !important;
    }

    #iapc_canvas_wrap {
        position: relative;
    }

    .iapc-canvas-scroll-down,
    .iapc-canvas-fs-toggle,
    .iapc-canvas-fs-exit {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        position: absolute;
        z-index: 8;
        width: 30px !important;
        height: 30px !important;
        min-height: 30px;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 999px !important;
        background: rgba(17, 24, 39, 0.88) !important;
        color: #fff !important;
        font-size: 0 !important;
        box-shadow: 0 8px 20px rgba(17, 24, 39, 0.28) !important;
        cursor: pointer;
    }

    .iapc-canvas-scroll-down {
        position: absolute !important;
        top: 8px;
        left: 8px;
        bottom: auto;
        right: auto;
        transform: none;
        z-index: 9;
        width: 28px !important;
        height: 28px !important;
        min-height: 28px !important;
        background: rgba(17, 24, 39, 0.45) !important;
        box-shadow: none !important;
    }

    .iapc-canvas-fs-toggle {
        right: 10px;
        bottom: 10px;
    }

    .iapc-canvas-scroll-down.iapc-hidden,
    .iapc-canvas-fs-toggle.iapc-hidden,
    .iapc-canvas-fs-exit.iapc-hidden {
        display: none !important;
    }

    .iapc-canvas-scroll-down .iapc-canvas-fs-icon,
    .iapc-canvas-fs-toggle .iapc-canvas-fs-icon,
    .iapc-canvas-fs-exit .iapc-canvas-fs-icon {
        display: block;
        width: 15px;
        height: 15px;
        pointer-events: none;
    }

    .iapc-canvas-fs-toggle.iapc-hidden,
    .iapc-canvas-fs-exit.iapc-hidden {
        display: none !important;
    }

    html.iapc-canvas-fs-open,
    body.iapc-canvas-fs-open {
        overflow: hidden !important;
        overscroll-behavior: none !important;
        touch-action: none !important;
    }

    /* Fullscreen: plugin + bottom dock. Hide theme chrome only. */
    body.iapc-canvas-fs-open .menu-wrapper,
    body.iapc-canvas-fs-open #masthead,
    body.iapc-canvas-fs-open .top-menu,
    body.iapc-canvas-fs-open .joinchat,
    body.iapc-canvas-fs-open .joinchat__button,
    body.iapc-canvas-fs-open .footer-scroll-top,
    body.iapc-canvas-fs-open .scroll-top,
    body.iapc-canvas-fs-open #cmplz-manage-consent,
    body.iapc-canvas-fs-open .cmplz-cookiebanner,
    body.iapc-canvas-fs-open #uncode_sidecart,
    body.iapc-canvas-fs-open #uncode_sidecart_overlay,
    body.iapc-canvas-fs-open #colophon,
    body.iapc-canvas-fs-open .overlay-menu-focus,
    body.iapc-canvas-fs-open .body-borders {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    /* Canvas-only fullscreen: product on TOP of sheet/backdrop */
    body.iapc-canvas-fs-open #iapc_canvas_wrap.iapc-canvas-fs {
        position: fixed !important;
        top: env(safe-area-inset-top, 0px) !important;
        left: max(16px, env(safe-area-inset-left, 0px)) !important;
        right: max(16px, env(safe-area-inset-right, 0px)) !important;
        bottom: var(--iapc-sheet-bottom) !important;
        z-index: 100055 !important;
        width: auto !important;
        height: auto !important;
        aspect-ratio: auto !important;
        margin: 0 !important;
        padding: 10px 16px !important;
        border-radius: 16px !important;
        background: #111 !important;
        border: 1px solid #1f2937 !important;
        box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45) !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
        pointer-events: auto !important;
    }

    /* Leave room for the bottom sheet under the canvas */
    body.iapc-canvas-fs-open.iapc-mobile-tools-open.iapc-mobile-sheet--compact #iapc_canvas_wrap.iapc-canvas-fs,
    body.iapc-canvas-fs-open.iapc-mobile-tools-open #iapc_canvas_wrap.iapc-canvas-fs {
        bottom: calc(var(--iapc-sheet-bottom) + var(--iapc-sheet-compact-h) + 10px) !important;
    }

    body.iapc-canvas-fs-open #iapc_canvas_wrap.iapc-canvas-fs #iapc_mug_canvas {
        width: auto !important;
        max-width: 100% !important;
        max-height: 100% !important;
        height: auto !important;
        margin: 0 auto !important;
        align-self: center !important;
        object-fit: contain;
        object-position: top center;
        background: #fff;
        border-radius: 12px;
    }

    body.iapc-canvas-fs-open #iapc_canvas_wrap.iapc-canvas-fs .iapc-canvas-fs-toggle,
    body.iapc-canvas-fs-open #iapc_canvas_wrap.iapc-canvas-fs .iapc-canvas-scroll-down {
        display: none !important;
    }

    body.iapc-canvas-fs-open #iapc_canvas_wrap.iapc-canvas-fs .iapc-canvas-fs-exit {
        display: inline-flex !important;
        top: 10px;
        right: 10px;
        bottom: auto;
        left: auto;
        z-index: 12;
        background: rgba(17, 24, 39, 0.72) !important;
    }

    @media (orientation: landscape) {
        body.iapc-canvas-fs-open #iapc_canvas_wrap.iapc-canvas-fs {
            padding: 10px 16px !important;
        }

        body.iapc-canvas-fs-open #iapc_canvas_wrap.iapc-canvas-fs #iapc_mug_canvas {
            width: auto !important;
            max-width: min(100%, 92vw) !important;
            max-height: calc(100dvh - var(--iapc-sheet-bottom) - env(safe-area-inset-top, 0px) - 20px) !important;
            max-height: calc(100vh - var(--iapc-sheet-bottom) - env(safe-area-inset-top, 0px) - 20px) !important;
        }
    }

    /* Landscape + short viewport: keep canvas usable, shrink dock/sheet */
    @media (orientation: landscape) and (max-height: 500px) {
        html {
            --iapc-dock-gap: 6px;
            --iapc-dock-pad: 4px;
            --iapc-dock-btn: 40px;
            --iapc-sheet-compact-h: min(36dvh, 220px);
        }

        @supports not (height: 1dvh) {
            html {
                --iapc-sheet-compact-h: min(36vh, 220px);
            }
        }

        .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab::before,
        .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai::before {
            font-size: 15px;
        }

        .iapc-mobile-modal-header {
            padding: 6px 8px 6px 10px !important;
        }

        .iapc-mobile-modal-title {
            font-size: 13px !important;
        }
    }

    /* Narrow phones: touch CTAs + slightly tighter dock icons */
    @media (max-width: 430px) {
        .iapc-designer-wrapper .iapc-canva-menu {
            gap: 2px !important;
        }

        .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab::before,
        .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai::before {
            font-size: 15px;
        }

        .iapc-designer-wrapper .iapc-canva-menu .iapc-canva-tab-ai::before {
            font-size: 12px;
        }

        .iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button,
        .iapc-designer-wrapper .iapc-actions .iapc-btn,
        .iapc-designer-wrapper .iapc-btn-full {
            min-height: 48px !important;
            font-size: 13px !important;
            line-height: 1.25 !important;
            white-space: normal !important;
            padding-left: 12px !important;
            padding-right: 12px !important;
        }

        .iapc-toast-stack {
            top: max(12px, env(safe-area-inset-top, 0px));
            right: max(12px, env(safe-area-inset-right, 0px));
            left: max(12px, env(safe-area-inset-left, 0px));
            width: auto;
        }
    }

    /* Sheet above canvas (clicks); canvas stays visually in the top band via bottom inset */
    body.iapc-canvas-fs-open.iapc-mobile-tools-open > .iapc-canva-content.iapc-mobile-portal {
        z-index: 100080 !important;
    }

    body.iapc-canvas-fs-open.iapc-mobile-tools-open > .iapc-mobile-sheet-backdrop.iapc-mobile-portal {
        z-index: 100050 !important;
        pointer-events: none;
    }

    body.iapc-canvas-fs-open .iapc-designer-wrapper .iapc-canva-menu,
    body.iapc-canvas-fs-open.iapc-mobile-tools-mode .iapc-canva-menu {
        z-index: 100100 !important;
    }

    /* Guided AI must sit above mobile sheet + dock */
    body.iapc-mobile-tools-open .iapc-ai-guided-modal,
    body.iapc-canvas-fs-open .iapc-ai-guided-modal,
    body > .iapc-ai-guided-modal {
        z-index: 100150 !important;
    }
}

/* Phone: actions, variations and dock share the canvas side gutter (16px). */
@media (max-width: 700px) {
    .iapc-designer-wrapper .iapc-actions-card {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .iapc-designer-wrapper .iapc-price-card {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .iapc-designer-wrapper .iapc-sides-card {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        box-sizing: border-box !important;
    }

    .iapc-designer-wrapper .iapc-designer-sides,
    .iapc-designer-wrapper .iapc-sides,
    .iapc-designer-wrapper .iapc-sides.iapc-sides--row {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    .iapc-designer-wrapper .iapc-sides .iapc-side-btn,
    .iapc-designer-wrapper .iapc-designer-center .iapc-side-btn,
    .woocommerce .iapc-designer-wrapper .iapc-sides .iapc-side-btn {
        flex: 1 1 0 !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
    }

    body.woocommerce .iapc-designer-wrapper .iapc-price-card form.cart,
    body.woocommerce .iapc-designer-wrapper .iapc-price-card .single_variation_wrap,
    body.woocommerce .iapc-designer-wrapper .iapc-price-card .woocommerce-variation-add-to-cart,
    body.woocommerce .iapc-designer-wrapper .iapc-price-card .variations_button {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    body.woocommerce .iapc-designer-wrapper .iapc-price-card form.cart .single_add_to_cart_button,
    body.woocommerce .iapc-designer-wrapper .iapc-price-card button.single_add_to_cart_button,
    body.woocommerce .iapc-designer-wrapper .iapc-price-card a.single_add_to_cart_button,
    body.woocommerce .iapc-designer-wrapper .iapc-price-card .button.single_add_to_cart_button,
    body.woocommerce .iapc-designer-wrapper .iapc-price-card .btn.single_add_to_cart_button {
        display: flex !important;
        align-self: stretch !important;
        flex: 1 1 auto !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        float: none !important;
        box-sizing: border-box !important;
    }

    html {
        --iapc-dock-gap: 16px;
    }
}

/* Theme (Uncode) paints button:hover with the accent red fill.
   Thumbs stay grey; hover is the border only. */
body .iapc-designer-wrapper button.iapc-ai-thumb,
body .iapc-designer-wrapper button.iapc-ai-thumb:hover,
body .iapc-designer-wrapper button.iapc-ai-thumb:focus,
body .iapc-designer-wrapper button.iapc-ai-thumb:focus-visible,
body .iapc-designer-wrapper button.iapc-ai-thumb:active,
body.woocommerce .iapc-designer-wrapper button.iapc-ai-thumb,
body.woocommerce .iapc-designer-wrapper button.iapc-ai-thumb:hover,
body.woocommerce .iapc-designer-wrapper button.iapc-ai-thumb:focus,
body.woocommerce .iapc-designer-wrapper button.iapc-ai-thumb:active,
.woocommerce .iapc-designer-wrapper .iapc-ai-thumb-wrap button.iapc-ai-thumb:hover {
    background: #f4f5f7 !important;
    background-color: #f4f5f7 !important;
    background-image: none !important;
    color: inherit !important;
    box-shadow: none !important;
    transform: none !important;
}

body .iapc-designer-wrapper button.iapc-ai-thumb:hover,
body .iapc-designer-wrapper button.iapc-ai-thumb:focus,
body .iapc-designer-wrapper button.iapc-ai-thumb:focus-visible,
body .iapc-designer-wrapper button.iapc-ai-thumb:active,
body.woocommerce .iapc-designer-wrapper button.iapc-ai-thumb:hover,
body.woocommerce .iapc-designer-wrapper button.iapc-ai-thumb:focus,
.woocommerce .iapc-designer-wrapper .iapc-ai-thumb-wrap button.iapc-ai-thumb:hover {
    border-color: var(--iapc-brand-purple-light, #a855f7) !important;
}

.iapc-featured-handle {
    display: none;
}

/* Mobile: featured photo is a right-edge drawer. Drag the tab to pull it out. */
@media (max-width: 1024px) {
    .iapc-designer-wrapper .iapc-featured,
    body > .iapc-featured {
        position: fixed !important;
        top: max(72px, env(safe-area-inset-top, 0px)) !important;
        right: 0 !important;
        left: auto !important;
        bottom: auto !important;
        z-index: 100065;
        width: min(78vw, 280px) !important;
        max-width: min(78vw, 280px) !important;
        height: auto !important;
        max-height: calc(100dvh - var(--iapc-dock-stack, 88px) - 88px) !important;
        margin: 0 !important;
        padding: 10px !important;
        overflow: visible !important;
        border: 1px solid #e8ebf0 !important;
        border-right: 0 !important;
        border-radius: 16px 0 0 16px !important;
        background: #fff !important;
        box-shadow: none !important;
        transform: translateX(100%);
        touch-action: none;
        box-sizing: border-box !important;
    }

    .iapc-designer-wrapper .iapc-featured.iapc-featured-dragging,
    body > .iapc-featured.iapc-featured-dragging {
        transition: none !important;
    }

    .iapc-featured-handle {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        position: absolute;
        left: 0;
        top: 72px;
        transform: translateX(-100%);
        width: 18px !important;
        height: 52px !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 1px solid #e5e7eb !important;
        border-right: 0 !important;
        border-radius: 8px 0 0 8px !important;
        background: rgba(255, 255, 255, 0.94) !important;
        box-shadow: none !important;
        color: #9ca3af !important;
        cursor: grab;
        touch-action: none;
        z-index: 2;
    }

    .iapc-featured-handle:active {
        cursor: grabbing;
    }

    .iapc-featured-handle-grip {
        display: block;
        width: 6px;
        height: 6px;
        border-left: 1.5px solid #9ca3af;
        border-bottom: 1.5px solid #9ca3af;
        transform: rotate(45deg);
    }

    .iapc-featured-drawer-open .iapc-featured-handle-grip {
        transform: rotate(-135deg);
    }

    .iapc-designer-wrapper .iapc-featured .iapc-featured-img,
    body > .iapc-featured .iapc-featured-img {
        height: auto !important;
        min-height: 0 !important;
        max-height: min(42vh, 320px) !important;
    }
}

/* Uncode: under 569px every .btn is scale(0.8). The cart button is already
   width 100%; the scale is what paints it narrower than price and quantity. */
@media (max-width: 569px) {
    body .iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button,
    body .iapc-designer-wrapper .iapc-price-card .single_add_to_cart_button.btn,
    body .iapc-designer-wrapper .iapc-price-card button.btn.single_add_to_cart_button {
        transform: none !important;
    }
}

/* Theme: div.product form.cart gets margin-top 18px and margin-bottom 2em. */
div.product .iapc-designer-wrapper p.cart:not(.dynamic-button),
div.product .iapc-designer-wrapper form.cart:not(.dynamic-button) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Theme buttons: accent border on the photo, and the drag tab showing as a box. */
body .iapc-featured button.iapc-featured-open,
body .iapc-featured button.iapc-featured-open:hover,
body .iapc-featured button.iapc-featured-open:focus,
body .iapc-featured button.iapc-featured-open:active,
body > .iapc-featured button.iapc-featured-open,
body > .iapc-featured button.iapc-featured-open:hover,
body > .iapc-featured button.iapc-featured-open:focus,
body > .iapc-featured button.iapc-featured-open:active {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    background-image: none !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    width: 100% !important;
    transform: none !important;
}

body .iapc-featured button.iapc-featured-open::before,
body .iapc-featured button.iapc-featured-open::after,
body > .iapc-featured button.iapc-featured-open::before,
body > .iapc-featured button.iapc-featured-open::after,
body .iapc-featured button.iapc-featured-arrow::before,
body .iapc-featured button.iapc-featured-arrow::after,
body .iapc-featured button.iapc-featured-handle::before,
body .iapc-featured button.iapc-featured-handle::after {
    content: none !important;
    display: none !important;
}

@media (min-width: 1025px) {
    body .iapc-featured button.iapc-featured-handle {
        display: none !important;
    }
}
