.idp-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
    width:100%;
}
.idp-card{
    display:flex;
    flex-direction:column;
    min-width:0;
    overflow:hidden;
    background:#fff;
    border:1px solid #e6e1d4;
    border-radius:18px;
    box-shadow:0 2px 4px rgba(23,63,43,.05),0 18px 40px -22px rgba(23,63,43,.20);
    transition:transform .2s ease,box-shadow .2s ease;
}
.idp-card:hover{
    transform:translateY(-3px);
    box-shadow:0 4px 10px rgba(23,63,43,.08),0 24px 48px -24px rgba(23,63,43,.28);
}
.idp-card-image{
    display:block;
    overflow:hidden;
    background:#f5f0e2;
}
.idp-card-image img{
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:1/1;
    object-fit:cover;
    object-position:center;
    transition:transform .3s ease;
}
.idp-card:hover .idp-card-image img{transform:scale(1.015);}
.idp-card-body{
    display:flex;
    flex-direction:column;
    flex:1;
    padding:28px;
}
.idp-eyebrow{
    margin:0 0 8px;
    color:#c7a44d;
    font-size:12px;
    font-weight:700;
    line-height:1.4;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.idp-title{
    margin:0 0 10px;
    color:#173f2b;
    font-size:25px;
    line-height:1.25;
    font-weight:700;
}
.idp-title a{color:inherit;text-decoration:none;}
.idp-excerpt{
    margin-bottom:24px;
    color:#6c746e;
    font-size:15px;
    line-height:1.7;
}
.idp-price-row{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:14px;
    margin-top:auto;
    margin-bottom:18px;
}
.idp-price{
    color:#245b3b;
    font-size:21px;
    line-height:1.2;
    font-weight:700;
}
.idp-price del{opacity:.55;font-size:.8em;}
.idp-price ins{text-decoration:none;}
.idp-badge{
    flex:0 0 auto;
    max-width:90px;
    color:#245b3b;
    font-size:10px;
    line-height:1.35;
    font-weight:800;
    text-align:center;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.idp-delivery-note{
    margin:-8px 0 18px;
    color:#6c746e;
    font-size:12px;
    line-height:1.5;
}
.idp-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.idp-btn{
    display:flex!important;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:11px 16px!important;
    border:1px solid transparent;
    border-radius:10px;
    text-decoration:none!important;
    text-align:center;
    font-size:14px;
    line-height:1.3;
    font-weight:700;
    box-shadow:none!important;
    transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.idp-btn:hover{transform:translateY(-1px);}
.idp-btn-primary{background:#245b3b;color:#fff;border-color:#245b3b;}
.idp-btn-primary:hover{background:#173f2b;color:#fff;border-color:#173f2b;}
.idp-btn-outline{background:transparent;color:#245b3b;border-color:#245b3b;}
.idp-btn-outline:hover{background:#f2ecdc;color:#173f2b;}
.idp-whatsapp{width:100%;margin-top:10px;}
.idp-empty{padding:20px;border:1px dashed #d8d1bf;border-radius:12px;background:#faf7ef;color:#6c746e;}

@media(max-width:1024px){
    .idp-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:767px){
    .idp-grid{grid-template-columns:1fr;gap:16px;}
    .idp-card-body{padding:20px;}
    .idp-title{font-size:22px;}
    .idp-actions{grid-template-columns:1fr;}
}

/* v1.0.1: Keep WooCommerce AJAX feedback inside the original CTA. */
.elementor-widget-ideal_dynamic_products a.added_to_cart.wc-forward{
    display:none!important;
}
.idp-add-to-cart.idp-view-cart-state{
    background:#173f2b!important;
    color:#fff!important;
    border-color:#173f2b!important;
}


/* v1.0.2: Immediate in-button AJAX loading feedback. */
.idp-add-to-cart.idp-preloading{
    position:relative;
    gap:9px;
    cursor:wait!important;
    pointer-events:none;
    opacity:.92;
}
.idp-add-to-cart .idp-button-spinner{
    display:inline-block;
    width:16px;
    height:16px;
    flex:0 0 16px;
    border:2px solid rgba(255,255,255,.42);
    border-top-color:#fff;
    border-radius:50%;
    animation:idp-button-spin .7s linear infinite;
    box-sizing:border-box;
}
.idp-add-to-cart .idp-button-loading-label{
    display:inline-block;
    line-height:1;
}
@keyframes idp-button-spin{
    to{transform:rotate(360deg);}
}
@media (prefers-reduced-motion:reduce){
    .idp-add-to-cart .idp-button-spinner{animation-duration:1.4s;}
}
