/* ==========================================================================
   Site-wide responsive safety
   ========================================================================== */

html {
	overflow-x: clip;
}
body {
	overflow-x: clip;
	max-width: 100%;
}
img,
video,
iframe,
svg {
	max-width: 100%;
	height: auto;
}
.pb-container,
.pb-main,
.woocommerce,
.pb-shop,
.pb-shop__grid,
.pb-shop-layout,
ul.products,
.pb-products,
.pb-card,
ul.products li.product {
	min-width: 0;
	max-width: 100%;
}

ul.products,
.pb-products {
	width: 100%;
}

/* —— Product cards: never overflow —— */
.pb-card,
ul.products li.product {
	container-type: inline-size;
	container-name: pbcard;
}
.pb-card__title,
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product .pb-card__title a {
	overflow-wrap: anywhere;
	word-break: break-word;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.pb-card .price,
ul.products li.product .price {
	min-width: 0;
}
.pb-card .price .amount,
.pb-card .price del,
.pb-card .price ins {
	overflow-wrap: anywhere;
}

.pb-card__footer-cta {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
	gap: 0.35rem;
	padding: 0 0.75rem 0.75rem;
	margin-top: auto;
}
.pb-card__footer-cta .button,
.pb-card__footer-cta a.button,
.pb-card__footer-cta .pb-btn,
.pb-card__footer-cta .pb-btn--cart,
.pb-card__footer-cta .pb-btn--buy-now,
.woocommerce ul.products li.product .pb-card__footer-cta a.button,
.woocommerce ul.products li.product .pb-card__footer-cta .button,
.woocommerce ul.products li.product .pb-card__footer-cta .pb-btn--buy-now {
	flex: none !important;
	width: 100% !important;
	max-width: none;
	min-width: 0;
	margin: 0 !important;
	height: 36px !important;
	min-height: 36px !important;
	padding: 0 0.4rem !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	border: 0 !important;
	border-radius: var(--pb-radius-md) !important;
	box-sizing: border-box;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0.25rem !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.pb-card__footer-cta .pb-btn__icon,
.pb-card__footer-cta .button .pb-btn__icon,
.pb-card__footer-cta .pb-btn--cart .pb-btn__icon {
	width: 0.9rem !important;
	height: 0.9rem !important;
	margin: 0 !important;
	flex-shrink: 0;
}
.pb-card__footer-cta .pb-btn__icon svg,
.pb-card__footer-cta .pb-icon {
	width: 0.9rem !important;
	height: 0.9rem !important;
}
@container pbcard (max-width: 260px) {
	.pb-card__footer-cta .pb-btn__icon {
		display: none !important;
	}
}

/* —— Shop + sidebar: cap columns so cards stay usable —— */
@media (max-width: 1480px) {
	body.pb-has-shop-sidebar .pb-shop-layout ul.products,
	body.post-type-archive-product.pb-has-shop-sidebar .pb-shop-layout ul.products,
	body.tax-product_cat.pb-has-shop-sidebar .pb-shop-layout ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 1200px) {
	.pb-main--home ul.products,
	ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
	.pb-shop__grid {
		grid-template-columns: 230px minmax(0, 1fr);
		gap: 1rem;
	}
}
@media (max-width: 1100px) {
	body.pb-has-shop-sidebar .pb-shop-layout ul.products,
	body.post-type-archive-product.pb-has-shop-sidebar .pb-shop-layout ul.products,
	body.tax-product_cat.pb-has-shop-sidebar .pb-shop-layout ul.products,
	body.post-type-archive-product .pb-shop-layout ul.products,
	body.tax-product_cat .pb-shop-layout ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

/* —— Home / archive grids —— */
@media (max-width: 900px) {
	ul.products,
	.pb-products,
	.pb-main--home ul.products,
	body.pb-has-shop-sidebar .pb-shop-layout ul.products,
	body.post-type-archive-product .pb-shop-layout ul.products,
	body.tax-product_cat .pb-shop-layout ul.products,
	body.post-type-archive-product ul.products,
	body.tax-product_cat ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.7rem !important;
	}

	.pb-card__body { padding: 0.6rem 0.6rem 0.25rem; }
	.pb-card__footer-cta { padding: 0 0.55rem 0.6rem; }
	.pb-card__title,
	ul.products li.product .woocommerce-loop-product__title {
		font-size: 0.78rem;
		min-height: 2.2em;
	}
}

@media (max-width: 380px) {
	.pb-card__footer-cta .pb-btn__label {
		font-size: 0.68rem;
	}
}

/* —— Floating cart stays on the right edge (Naturo). Hidden on small screens. —— */

/* —— Header / search —— */
.pb-header__row,
.pb-header__search,
.pb-search-wrap,
.pb-header__actions {
	min-width: 0;
}
@media (max-width: 1100px) {
	.pb-header__account-text { display: none; }
}
@media (max-width: 900px) {
	.pb-search__input { min-width: 0; }
}

/* —— Checkout + direct form —— */
@media (max-width: 960px) {
	.pb-direct__layout,
	.pb-checkout .pb-direct__layout {
		grid-template-columns: 1fr !important;
	}
	.pb-direct__aside,
	.pb-checkout__aside {
		position: static !important;
	}
}

/* —— Cart page —— */
@media (max-width: 1024px) {
	.pb-cart__layout {
		grid-template-columns: 1fr !important;
	}
}

/* —— Single product —— */
@media (max-width: 1100px) {
	.pb-sp,
	.pb-single-product .product {
		grid-template-columns: 1fr 1fr !important;
	}
}
@media (max-width: 860px) {
	.pb-sp,
	.pb-single-product .product {
		grid-template-columns: 1fr !important;
	}
	.pb-sp-cart,
	.pb-sp-cart__row {
		flex-wrap: wrap;
	}
	.pb-btn--cart,
	.pb-btn--buy-now {
		flex: 1 1 calc(50% - 0.4rem);
		min-width: 0;
	}
}

/* —— Account —— */
@media (max-width: 980px) {
	.pb-account,
	.woocommerce-account .woocommerce {
		grid-template-columns: 1fr !important;
	}
}

/* —— Easy checkout sheet —— */
.pb-easy__sheet {
	max-height: 100% !important;
	overflow: hidden;
}
.pb-easy__form {
	min-height: 0 !important;
	overflow: hidden !important;
}
.pb-easy__grid {
	min-height: 0;
	overflow-y: auto;
}
@media (max-width: 800px) {
	.pb-easy__sheet {
		width: 100% !important;
		height: min(92dvh, 100%) !important;
		border-radius: 18px 18px 0 0;
	}
	.pb-easy__form { padding-inline: 0.75rem; }
	.pb-slide-cart__panel { width: min(100%, 380px); }
}

/* —— Footer / cats —— */
@media (max-width: 640px) {
	.pb-cats--circle { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.pb-footer__features-grid { grid-template-columns: 1fr 1fr; }
}

/* Homepage Best Selling carousel — keep flex row over archive grids */
.pb-main--home .pb-best-slider ul.products,
.pb-best-slider ul.products,
.pb-best-slider .pb-products {
	display: flex !important;
	grid-template-columns: none !important;
}
@media (max-width: 1200px) {
	.pb-main--home .pb-best-slider ul.products,
	.pb-best-slider ul.products {
		display: flex !important;
		grid-template-columns: none !important;
	}
	.pb-best-slider ul.products > li.product {
		flex-basis: calc((100% - 3rem) / 4);
		max-width: none !important;
	}
}
@media (max-width: 900px) {
	.pb-main--home .pb-best-slider ul.products,
	.pb-best-slider ul.products {
		display: flex !important;
		grid-template-columns: none !important;
	}
	.pb-best-slider ul.products > li.product {
		flex-basis: calc((100% - 2rem) / 3);
		max-width: none !important;
	}
}
@media (max-width: 600px) {
	.pb-best-slider ul.products > li.product {
		flex-basis: calc((100% - 0.75rem) / 2);
		max-width: none !important;
	}
}
