.cpe-pdf-purchase{margin-top:14px;display:flex;flex-direction:column;gap:7px;max-width:440px}.cpe-pdf-button{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;text-decoration:none!important}.cpe-pdf-button-single{width:100%;min-height:48px}.cpe-pdf-icon{display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;line-height:1;border:1px solid currentColor;border-radius:4px;padding:4px 5px;letter-spacing:.04em}.cpe-pdf-price{font-weight:700}.cpe-pdf-note{font-size:12px;line-height:1.5;opacity:.72}.cpe-edition-label{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:700;background:#f2f2f2}.cpe-library{width:100%}.cpe-library-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.cpe-library-header h2{margin:0 0 6px}.cpe-library-header p{margin:0;opacity:.72}.cpe-library-count{display:inline-flex;min-width:42px;height:42px;align-items:center;justify-content:center;border-radius:999px;background:#111;color:#fff;font-weight:700}.cpe-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.cpe-library-card{border:1px solid #e7e7e7;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.05)}.cpe-library-image{position:relative;aspect-ratio:4/3;background:#f7f7f7;overflow:hidden}.cpe-library-image img{width:100%;height:100%;object-fit:contain;display:block}.cpe-pdf-badge{position:absolute;top:12px;right:12px;background:#111;color:#fff;border-radius:6px;padding:6px 8px;font-size:11px;font-weight:800;letter-spacing:.06em}.cpe-library-body{padding:18px}.cpe-library-body h3{font-size:18px;line-height:1.35;margin:0 0 8px}.cpe-library-meta{font-size:12px;opacity:.7;margin:3px 0}.cpe-download-button{margin-top:14px;width:100%;text-align:center}.cpe-empty-library{padding:28px;border:1px dashed #d7d7d7;border-radius:16px;text-align:center;background:#fafafa}.cpe-empty-library p{max-width:520px;margin:8px auto 18px;opacity:.75}.cpe-pdf-button-loop{margin-top:9px;width:100%}@media(max-width:600px){.cpe-library-grid{grid-template-columns:1fr}.cpe-library-header{align-items:center}.cpe-pdf-button-single{font-size:14px}}
.cpe-legacy-ebook-hidden{display:none!important}
.single-product .cpe-pdf-purchase{clear:both;margin-top:18px}
.single-product .cpe-pdf-button-single{box-sizing:border-box}


/* v1.1.2 — compact WooCommerce catalogue-card spacing.
 * Some themes/builders stretch the text area or apply margin-top:auto to the
 * price/actions, leaving a large empty gap below short product titles.
 * Keep title, price and purchase buttons together without changing the image.
 */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.elementor-widget-woocommerce-products ul.products li.product .woocommerce-loop-product__title,
.elementor-widget-wc-archive-products ul.products li.product .woocommerce-loop-product__title {
    min-height: 0 !important;
    height: auto !important;
    margin-bottom: 10px !important;
    padding-bottom: 0 !important;
}

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price,
.elementor-widget-woocommerce-products ul.products li.product .price,
.elementor-widget-wc-archive-products ul.products li.product .price {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
    min-height: 0 !important;
}

.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button,
.elementor-widget-woocommerce-products ul.products li.product .button,
.elementor-widget-wc-archive-products ul.products li.product .button {
    margin-top: 0 !important;
}

/* Neutralise common flex/grid wrappers that push the price/actions to the
 * bottom of an equal-height card. These selectors are intentionally limited
 * to WooCommerce catalogue product cards. */
.woocommerce ul.products li.product .product-content,
.woocommerce ul.products li.product .product-details,
.woocommerce ul.products li.product .product-info,
.woocommerce ul.products li.product .product-item-inner,
.woocommerce ul.products li.product .product-inner,
.woocommerce-page ul.products li.product .product-content,
.woocommerce-page ul.products li.product .product-details,
.woocommerce-page ul.products li.product .product-info,
.woocommerce-page ul.products li.product .product-item-inner,
.woocommerce-page ul.products li.product .product-inner {
    justify-content: flex-start !important;
}

.woocommerce ul.products li.product .price + .button,
.woocommerce-page ul.products li.product .price + .button {
    margin-top: 0 !important;
}

/* Keep this plugin's loop PDF button close to the normal Add to Cart button. */
.woocommerce ul.products li.product .cpe-pdf-button-loop,
.woocommerce-page ul.products li.product .cpe-pdf-button-loop {
    margin-top: 9px !important;
}
