/* Basic adjustments for product block sliders */
.product-block-swiper .products-grid { list-style:none; margin:0; padding:0; display:flex; gap:1rem; }
.product-block-swiper .product-card { width:100%; box-sizing:border-box; }
.product-block-swiper .swiper-slide { display:flex; }
.product-block-swiper .product-card .product-media img { width:100%; height:auto; display:block; }

/* Shop By Health Goals Section */
.health-goals {
    padding: 40px 0;
    background: #fff;
}

.health-goals .section-title {
    font-size: 24px;
    font-weight: 700;
    text-align: center;
    margin: 0 0 30px 0;
    color: #222;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Shop By Grid Layout */
.goals-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 20px;
}

.goal-card {
    list-style: none;
    display: flex;
    margin: 0;
    padding: 0;
}

.goal-card a {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    width: 100%;
    transition: opacity 200ms ease;
}

.goal-card a:hover {
    opacity: 0.85;
}

.goal-card .goal-media {
    width: 100%;
    height: auto;
    margin-bottom: 10px;
    overflow: hidden;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.goal-card .ppv-goal-image {
    width: 100%;
    height: auto;
    display: block;
}

.goal-card .ppv-goal-icon {
    width: 100%;
    height: 150px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 8px;
}

.goal-card .goal-label {
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    color: #222;
    width: 100%;
}

.goal-card .goal-label span {
    display: block;
}

/* Toast UI for AJAX add-to-cart */
.cnm-ppv-toast-container { position: fixed; right: 16px; bottom: 16px; z-index: 99999; }
.cnm-ppv-toast { background: #222; color: #fff; padding: 10px 14px; border-radius: 6px; margin-top: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.25); opacity: 0; transform: translateY(8px); transition: opacity 280ms ease, transform 280ms ease; }
.cnm-ppv-toast.cnm-ppv-toast--visible { opacity: 1; transform: translateY(0); }
.cnm-ppv-toast[hidden] { display: none; }

/* Shop Products Section */
.shop-products {
    padding: 40px 0;
    background: #fff;
}

.shop-products .section-head {
    margin-bottom: 30px;
}

.shop-products .section-head h2 {
    font-size: 24px;
    font-weight: 700;
    text-align: center;
    color: #222;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Shop Products Grid */
.sp-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 30px;
}

.sp-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    transition: transform 200ms ease, opacity 200ms ease;
}

.sp-card:hover {
    transform: translateY(-8px);
    opacity: 0.9;
}

.sp-media {
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 8px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sp-media img,
.sp-image {
    width: 100%;
    height: auto;
    display: block;
}

.sp-caption {
    text-align: center;
}

.sp-title {
    font-size: 16px;
    font-weight: 600;
    color: #222;
    display: block;
    line-height: 1.4;
}

/* Screen reader only utility for ARIA announcements */
.cnm-ppv-sr-only { position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* Flying product image used for add-to-cart animation */
.cnm-ppv-fly-img { position: fixed; z-index: 999999; pointer-events: none; width: 260px; height: 260px; object-fit: cover; border-radius: 6px; transition: transform 1500ms cubic-bezier(.2,.9,.2,1), opacity 1500ms ease; opacity: 1; }
.cnm-ppv-fly-img--hide { opacity: 0; }

/* Add-to-cart button disabled / loading states */
.ppv-add-to-cart button[disabled], .ppv-add-to-cart button.loading,
.btn-add-to-cart[disabled], .btn-add-to-cart.loading,
.ajax_add_to_cart.loading, .ajax_add_to_cart[disabled] {
	opacity: 0.8;
	filter: grayscale(40%);
	cursor: progress;
	pointer-events: none;
	transition: opacity 160ms ease, filter 160ms ease;
}

/* Spinner for loading buttons */
.ppv-add-to-cart button.loading::after,
.btn-add-to-cart.loading::after,
.ajax_add_to_cart.loading::after {
	content: '';
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-left: 8px;
	vertical-align: middle;
	border-radius: 50%;
	border: 2px solid rgba(255,255,255,0.35);
	border-top-color: rgba(255,255,255,0.95);
	box-sizing: border-box;
	animation: cnm-ppv-spin 0.7s linear infinite;
}

@keyframes cnm-ppv-spin {
	to { transform: rotate(360deg); }
}
