/* =========================================================
   JP Transfers — mobile-first / anti-overflow
   ========================================================= */

html, body {
	max-width: 100%;
	overflow-x: hidden !important;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

img,
video,
iframe,
embed,
object,
.wp-video,
.wp-video-shortcode,
.mejs-container,
.woocommerce-product-gallery,
.woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery__image,
.woocommerce img {
	max-width: 100% !important;
	height: auto !important;
}

/* WordPress inserts inline width:751px on videos — force fluid */
.wp-video,
div.wp-video,
.wp-video[style],
.blog__details-content .wp-video,
.woocommerce-product-details__short-description .wp-video,
.entry-summary .wp-video,
.summary .wp-video {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.wp-video-shortcode,
video.wp-video-shortcode,
.mejs-container,
.mejs-overlay,
.mejs-layer {
	width: 100% !important;
	max-width: 100% !important;
}

/* Product page: single column on phones, no clipped text */
@media (max-width: 991px) {
	.single-product div.product,
	.jp-woo-main div.product {
		display: flex !important;
		flex-direction: column !important;
		grid-template-columns: none !important;
		gap: 20px !important;
		width: 100% !important;
		max-width: 100% !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	.single-product div.product .woocommerce-product-gallery,
	.single-product div.product .summary.entry-summary,
	.single-product div.product .woocommerce-tabs,
	.single-product div.product .related.products,
	.single-product div.product .product_meta {
		width: 100% !important;
		max-width: 100% !important;
		float: none !important;
		clear: both !important;
		margin: 0 0 16px !important;
		padding: 0 !important;
		left: auto !important;
		right: auto !important;
		position: relative !important;
	}

	.jp-woo-main,
	.jp-woo-container {
		width: 100% !important;
		max-width: 100% !important;
		padding-left: 16px !important;
		padding-right: 16px !important;
		margin: 0 auto !important;
		box-sizing: border-box !important;
		overflow-x: hidden !important;
	}

	.single-product .summary,
	.single-product .entry-summary,
	.woocommerce-product-details__short-description,
	.woocommerce-product-details__short-description p,
	.single-product .product_title,
	.single-product .price,
	.jp-product-booking,
	.deposet-options,
	.deposet-option,
	.jp-deposit-hint {
		max-width: 100% !important;
		width: 100% !important;
		overflow-wrap: anywhere !important;
		word-break: break-word !important;
		white-space: normal !important;
		box-sizing: border-box !important;
	}

	.single-product .product_title {
		font-size: 1.45rem !important;
		line-height: 1.25 !important;
	}

	body.single-product .tg-breadcrumb-area {
		min-height: 120px !important;
		padding: 88px 16px 24px !important;
		margin: 0 !important;
		overflow: hidden !important;
	}

	body.single-product .tg-breadcrumb-title {
		font-size: 1.35rem !important;
		line-height: 1.25 !important;
		max-width: 100% !important;
		padding: 0 8px !important;
	}

	.single-product .related.products ul.products,
	ul.products {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 16px !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.single-product .related.products > h2 {
		font-size: 1.25rem !important;
		padding: 0 !important;
		margin: 0 0 12px !important;
	}

	/* Theme containers that cause horizontal scroll */
	.container,
	.row,
	.blog__details-content,
	.blog__details-wrap,
	.tg-blog-details-wrap,
	.elementor-section.elementor-section-boxed > .elementor-container {
		max-width: 100% !important;
		width: 100% !important;
		padding-left: 16px !important;
		padding-right: 16px !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		overflow-x: hidden !important;
	}

	.col-lg-8,
	.col-lg-4,
	.col-md-8,
	.col-md-4,
	.col-12 {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 100% !important;
	}
}

@media (max-width: 575px) {
	.jp-product-booking,
	.deposet-options {
		padding: 12px !important;
	}

	.single_add_to_cart_button {
		font-size: 0.95rem !important;
		padding: 12px 14px !important;
	}

	/* Avoid double chat widgets covering CTA */
	.qlwapp,
	[class*="whatsapp"] {
		transform: scale(0.9);
		transform-origin: bottom right;
	}
}

/* Tables never overflow */
.woocommerce table.shop_table {
	display: block;
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.woocommerce-cart-form,
.cart-collaterals,
.woocommerce-checkout {
	max-width: 100%;
	overflow-x: hidden;
}
