/* styles v1.0.0 */
.pqc-modal{ position:fixed; left:0; top:0; width:100%; height:100%; background:rgba(0,0,0,0.6); display:none; align-items:center; justify-content:center; z-index:99999; overflow:auto; }
.pqc-modal.pqc-visible{ display:flex; }
.pqc-modal-inner{ background:#fff; width:95%; max-width:760px; padding:18px; border-radius:8px; max-height:95vh; overflow:auto; box-shadow:0 8px 40px rgba(0,0,0,0.3); font-family:inherit; }
.pqc-close{ float:right; cursor:pointer; background:none; border:0; font-size:20px; line-height:1; padding:6px; }
.pqc-form-header{ margin:0 0 12px 0; font-weight:700; }
.pqc-heading{ margin:14px 0 8px 0; font-weight:700; }
.pqc-product-row{ display:flex; gap:12px; align-items:flex-start; margin:12px 0; }
.pqc-product-thumb img{ max-width:60px; height:auto; display:block; border-radius:6px; }
.pqc-field{ margin-bottom:8px; }
.pqc-field label{ display:block; margin-bottom:4px; font-weight:600; }
.pqc-input{ width:100%; box-sizing:border-box; padding:8px; border:1px solid #e6e6e6; border-radius:4px; }
.pqc-input.small{ padding:6px; font-size:13px; }
.pqc-input.medium{ padding:8px; font-size:14px; }
.pqc-input.large{ padding:10px; font-size:16px; }
.pqc-shipping-option, .pqc-payment-option{ display:block; padding:8px; border:1px solid #eee; border-radius:6px; margin-bottom:8px; background:#fff; }
.pqc-shipping-price{ float:right; font-weight:600; }
.pqc-totals{ background:#fafafa; padding:10px; border-radius:6px; margin-top:10px; }
.pqc-place-order{ display:inline-block; padding:14px 22px; border-radius:8px; background:#ff7a00; color:#fff; border:none; cursor:pointer; font-size:16px; font-weight:700; }
@media (max-width:600px){
    .pqc-product-row{ flex-direction:column; align-items:stretch; }
    .pqc-product-thumb img{ max-width:100%; }
    .pqc-place-order.large{ width:100%; display:block; }
}

/* PQC override: force modal product thumbnail sizes and responsive adjustments */
.pqc-modal img.attachment-woocommerce_thumbnail,
.pqc-modal img.size-woocommerce_thumbnail,
.pqc-modal img.attachment-woocommerce_thumbnail.size-woocommerce_thumbnail {
    width: var(--pqc-desktop-img-w, 50px) !important;
    height: var(--pqc-desktop-img-h, 50px) !important;
    object-fit: cover !important;
    border-radius: 4px !important;
}
@media (max-width: 767px) {
    .pqc-modal img.attachment-woocommerce_thumbnail,
    .pqc-modal img.size-woocommerce_thumbnail,
    .pqc-modal img.attachment-woocommerce_thumbnail.size-woocommerce_thumbnail {
        width: var(--pqc-mobile-img-w, 120px) !important;
        height: var(--pqc-mobile-img-h, 120px) !important;
    }
}
/* ensure container doesn't force larger size */
.pqc-modal .pqc-product-image { display:flex; align-items:center; justify-content:center; overflow:hidden; }
.pqc-modal .pqc-content{ max-width:600px !important; box-sizing:border-box; }

/* Ensure popup product image respects plugin sizing */
.pqc-modal .pqc-product-thumb img {
    max-width: none !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
}
/* PQC: small animation helpers */
.pqc-modal.pqc-visible { align-items:center; justify-content:center; }

/* scale/zoom */
.pqc-anim-zoom .pqc-modal-inner { transform-origin:center center; transition: transform 250ms ease, opacity 250ms ease; }
.pqc-anim-zoom.show .pqc-modal-inner { transform: scale(1); opacity:1; }
.pqc-anim-zoom .pqc-modal-inner { transform: scale(0.96); opacity:0; }

/* slide */
.pqc-anim-slide .pqc-modal-inner { transform: translateY(-12px); transition: transform 250ms ease, opacity 250ms ease; opacity:0; }
.pqc-anim-slide.show .pqc-modal-inner { transform: translateY(0); opacity:1; }

/* fade (default) */
.pqc-anim-fade { opacity:0; transition: opacity 250ms ease; }
.pqc-anim-fade.show { opacity:1; }

/* keep modal-inner transitions smooth */
.pqc-modal .pqc-modal-inner { transition: all 250ms ease; }

/* ----------------------------
   LOADING SKELETON / SPINNER
   ---------------------------- */
.pqc-loading-skeleton .pqc-modal-inner {
    background: rgba(255,255,255,0.98);
    border-radius: 8px;
    min-width: 160px;
    min-height: 80px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}

/* Spinner */
.pqc-spinner {
    width: 44px;
    height: 44px;
    border: 4px solid rgba(0,0,0,0.08);
    border-top-color: #ff7a00;
    border-radius: 50%;
    animation: pqc-spin 1s linear infinite;
    box-sizing: border-box;
}

/* tiny text under spinner */
.pqc-skeleton-text { opacity: 0.95; margin-top:6px; color:#666; font-size:13px; }

/* spin keyframes */
@keyframes pqc-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* responsive tweak for skeleton */
@media (max-width:420px){
    .pqc-loading-skeleton .pqc-modal-inner { min-width:120px; min-height:70px; padding:14px; }
    .pqc-spinner { width:36px; height:36px; border-width:3px; }
}

/* Button animation state classes (JS toggles) */
.pqc-btn-anim-pulse-active { animation: pqc-pulse 900ms ease; }
.pqc-btn-anim-grow-active { animation: pqc-grow 700ms ease; }
.pqc-btn-anim-shake-active { animation: pqc-shake 600ms ease; }
.pqc-btn-anim-slide-active { animation: pqc-slide-up 600ms ease; }

@keyframes pqc-pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.06); }
    100% { transform: scale(1); }
}
@keyframes pqc-grow {
    0% { transform: scale(1); opacity:1; }
    50% { transform: scale(1.08); opacity:0.95; }
    100% { transform: scale(1); opacity:1; }
}
@keyframes pqc-shake {
    0% { transform: translateX(0); }
    20% { transform: translateX(-6px); }
    40% { transform: translateX(6px); }
    60% { transform: translateX(-4px); }
    80% { transform: translateX(4px); }
    100% { transform: translateX(0); }
}
@keyframes pqc-slide-up {
    0% { transform: translateY(0); opacity:1; }
    50% { transform: translateY(-8px); opacity:0.95; }
    100% { transform: translateY(0); opacity:1; }
}
