/* Single product: spacing, form, and gallery */

body.single-product {
	background: #f5f7fa;
}

body.single-product .woocommerce-notices-wrapper {
	max-width: 1280px;
	margin: 32px auto 8px;
	padding: 0;
}

body.single-product .woocommerce-notices-wrapper:empty {
	display: none;
	margin: 0;
}

body.single-product .elementor-688 > .elementor-element-899b3d1 {
	padding-top: 48px !important;
	padding-bottom: 12px !important;
	margin-bottom: 64px !important;
}

body.single-product .elementor-688 .e-con-inner {
	max-width: 1280px;
}

body.single-product .elementor-element-8eaa71f {
	gap: 22px !important;
}

body.single-product .elementor-element-e2c34ce {
	gap: 0 !important;
}

/* Hide empty chrome that currently leaves odd gaps */
body.single-product .elementor-element-48eb911,
body.single-product .elementor-element-885f111,
body.single-product .elementor-element-aad105b,
body.single-product .elementor-element-90ef482,
body.single-product .elementor-element-9b427d8,
body.single-product .elementor-element-8c5888b,
body.single-product .elementor-element-acd04ee,
body.single-product .elementor-element-1da9105,
body.single-product .elementor-element-175ba11,
body.single-product .elementor-element-80830c6 {
	display: none !important;
}

body.single-product .elementor-688 .elementor-element.elementor-element-dfc4ea9 {
	border-width: 1px !important;
	border-top-width: 1px !important;
	border-radius: 8px !important;
}

body.single-product .ovabrw-product-images .featured-img {
	overflow: visible !important;
	margin-bottom: 16px !important;
}

/* Fancybox above sticky header / nav (menu uses up to ~99999) */
body.single-product .fancybox__container,
body.single-product .fancybox-container {
	z-index: 1000000 !important;
}

body.single-product .ovabrw-product-images .featured-img a {
	display: block;
	overflow: hidden !important;
	border-radius: 8px;
	background: #fff;
}

body.single-product .ovabrw-product-images .featured-img a img,
body.single-product .ovabrw-product-images .featured-img img {
	display: block;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	object-fit: contain !important;
	object-position: center center !important;
	border-radius: 8px;
	background: #fff;
	transform: none !important;
}

body.single-product .ovabrw-product-images .gallery {
	position: relative;
	margin-top: 16px !important;
	padding: 0 40px;
}

body.single-product .ovabrw-product-images .gallery .nm-gallery-nav {
	position: absolute;
	top: 50%;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 1px solid #d0d7de;
	border-radius: 50%;
	background: #fff;
	color: #0c142e;
	box-shadow: 0 1px 4px rgba(12, 20, 46, 0.08);
	cursor: pointer;
	transform: translateY(-50%);
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

body.single-product .ovabrw-product-images .gallery .nm-gallery-nav:hover {
	border-color: #0083db;
	background: #0083db;
	color: #fff;
}

body.single-product .ovabrw-product-images .gallery .nm-gallery-nav:focus {
	outline: 2px solid #0083db;
	outline-offset: 2px;
}

body.single-product .ovabrw-product-images .gallery .nm-gallery-nav:disabled,
body.single-product .ovabrw-product-images .gallery .nm-gallery-nav.is-disabled {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}

body.single-product .ovabrw-product-images .gallery .nm-gallery-nav--prev {
	left: 0;
}

body.single-product .ovabrw-product-images .gallery .nm-gallery-nav--next {
	right: 0;
}

body.single-product .ovabrw-product-images .gallery .nm-gallery-nav svg {
	display: block;
	width: 14px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

body.single-product .ovabrw-product-images .gallery a {
	overflow: hidden;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
}

body.single-product .ovabrw-product-images .gallery a.is-active,
body.single-product .ovabrw-product-images .gallery .swiper-slide-thumb-active a {
	outline: 2px solid #0083db;
	outline-offset: 2px;
}

body.single-product .ovabrw-product-images .gallery img {
	width: 100% !important;
	height: auto !important;
	max-height: 120px !important;
	object-fit: contain !important;
	background: #fff;
	pointer-events: none;
}

body.single-product .ovabrw-product-title {
	margin: 8px 0 6px !important;
	color: #0c142e;
	font-family: Inter, sans-serif;
	font-size: 32px !important;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

body.single-product .ovabrw-product-price {
	margin: 0 0 8px;
}

body.single-product .ovabrw-product-price .amount,
body.single-product .ovabrw-product-price .woocommerce-Price-amount {
	color: #0083db;
	font-size: 22px;
	font-weight: 700;
}

body.single-product .ovabrw-product-price .unit {
	color: #696969;
	font-size: 16px;
	font-weight: 500;
}

body.single-product .ovabrw-product-price .nm-price-ex-vat {
	color: #696969;
	font-size: 14px;
	font-weight: 500;
}

body.single-product .ovabrw-product-short-description {
	margin: 8px 0 0;
	color: #3d3d3d;
	font-size: 15px;
	line-height: 1.65;
}

body.single-product .ovabrw-product-short-description ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

body.single-product .ovabrw-product-short-description li {
	position: relative;
	margin: 0 0 10px;
	padding-left: 22px;
}

body.single-product .ovabrw-product-short-description li:last-child {
	margin-bottom: 0;
}

body.single-product .ovabrw-product-short-description li::before {
	position: absolute;
	top: 0.55em;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #0083db;
	content: "";
}

body.single-product .ovabrw-product-full-description {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid #e8edf2;
	color: #3d3d3d;
	font-size: 15px;
	line-height: 1.7;
}

body.single-product .ovabrw-product-full-description p {
	margin: 0 0 12px;
}

body.single-product .ovabrw-product-full-description p:last-child {
	margin-bottom: 0;
}

body.single-product .ovabrw-product-full-description a {
	color: #0083db;
	font-weight: 600;
	text-decoration: none;
}

body.single-product .ovabrw-product-full-description a:hover {
	color: #0c142e;
}

/* Booking / enquiry card — overflow must stay visible so the date picker is not clipped */
body.single-product .ovabrw-product-form-tabs {
	overflow: visible;
	border: 1px solid #d0d7de;
	border-radius: 8px;
	background: #fff;
}

body.single-product .ova_sticky_column,
body.single-product .ova_sticky_column .e-con,
body.single-product .ova_sticky_column .e-con-inner,
body.single-product .ova_sticky_column .elementor-widget-wrap,
body.single-product .ova_sticky_column .elementor-element,
body.single-product .elementor-element-e2c34ce,
body.single-product #booking_form,
body.single-product #request_booking,
body.single-product #booking_form .rental_item,
body.single-product #request_booking .rental_item,
body.single-product .ovabrw-product-form-tabs,
body.single-product .ovabrw-modern-product {
	overflow: visible !important;
}

body.single-product .ovabrw-form .rental_item:has(.pickup-date),
body.single-product .ovabrw-form .rental_item:has(.dropoff-date) {
	position: relative;
	z-index: 10050;
}

body.single-product .easepick-wrapper {
	z-index: 2147483646;
}

body.single-product .ovabrw-form input.pickup-date,
body.single-product .ovabrw-form input.dropoff-date {
	pointer-events: auto !important;
	cursor: pointer;
}

body.single-product .xdsoft_datetimepicker {
	z-index: 2147483646 !important;
}

body.single-product #booking_form .nm-qty,
body.single-product #request_booking .nm-qty {
	align-self: start;
	width: auto !important;
	max-width: 148px;
}

body.single-product #booking_form .nm-qty input,
body.single-product #request_booking .nm-qty input {
	width: 52px !important;
	height: 48px !important;
	padding: 0 4px !important;
}

body.single-product .ovabrw-product-form-tabs .ovabrw-tab-head {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	margin: 0;
	padding: 0 !important;
	overflow: hidden;
	background: #0c142e !important;
	border-radius: 8px 8px 0 0 !important;
}

body.single-product .ovabrw-product-form-tabs .ovabrw-tab-head .item-tab {
	padding: 16px 12px;
	color: rgba(255, 255, 255, 0.72) !important;
	font-size: 15px !important;
	font-weight: 600;
	text-align: center;
	cursor: pointer;
}

body.single-product .ovabrw-product-form-tabs .ovabrw-tab-head .item-tab.active {
	color: #fff !important;
	background: #0083db;
}

body.single-product .ovabrw-product-form-tabs .ovabrw-tab-head .item-tab.active .title:after {
	display: none;
}

body.single-product #booking_form .rental_item,
body.single-product #request_booking .rental_item {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 8px;
	margin: 0;
}

body.single-product #booking_form,
body.single-product #request_booking {
	padding: 28px 24px 24px !important;
	background: #fff !important;
	border-radius: 0 !important;
}

body.single-product #booking_form .ovabrw-product-fields,
body.single-product #request_booking .ovabrw-product-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 16px !important;
	padding: 0 !important;
}

body.single-product #booking_form .brw-variable-rental,
body.single-product #request_booking .brw-variable-rental,
body.single-product #booking_form .rental_item.full-width,
body.single-product #request_booking .rental_item.full-width,
body.single-product #request_booking .ovabrw-request-extra {
	grid-column: 1 / -1;
}

body.single-product #booking_form .rental_item,
body.single-product #request_booking .rental_item {
	margin: 0;
}

body.single-product #booking_form .rental_item > label,
body.single-product #request_booking .rental_item > label,
body.single-product #booking_form .ovabrw-label,
body.single-product #request_booking .ovabrw-label {
	display: block;
	margin: 0 0 8px;
	color: #0c142e;
	font-size: 13px;
	font-weight: 600;
}

body.single-product #booking_form input[type="text"],
body.single-product #booking_form input[type="email"],
body.single-product #booking_form input[type="tel"],
body.single-product #booking_form select,
body.single-product #booking_form textarea,
body.single-product #request_booking input[type="text"],
body.single-product #request_booking input[type="email"],
body.single-product #request_booking input[type="tel"],
body.single-product #request_booking select,
body.single-product #request_booking textarea,
body.single-product .nm-product-options__control select {
	width: 100%;
	height: 48px;
	padding: 0 36px 0 14px;
	border: 1px solid #d0d7de !important;
	border-radius: 8px !important;
	background: #fff !important;
	color: #0c142e !important;
	box-shadow: none !important;
	font-size: 14px;
	appearance: none;
	-webkit-appearance: none;
}

body.single-product #booking_form textarea,
body.single-product #request_booking textarea {
	height: 96px;
	padding: 12px 14px;
}

body.single-product #booking_form .terms-conditions,
body.single-product #request_booking .terms-conditions,
body.single-product #request_booking .ovabrw-request-extra {
	margin-top: 16px;
}

body.single-product #booking_form .ajax_show_total,
body.single-product #request_booking .ajax_show_total {
	margin-top: 16px;
	padding: 0 !important;
	overflow: hidden;
	border: 1px solid #d0d7de;
	border-radius: 8px;
	background: #f5f7fa;
	font-family: Inter, sans-serif;
}

body.single-product #booking_form .ajax_show_total .show_ajax_content.active,
body.single-product #request_booking .ajax_show_total .show_ajax_content.active {
	padding: 16px;
}

body.single-product #booking_form .nm-hire-summary__title,
body.single-product #request_booking .nm-hire-summary__title {
	margin: 0 0 12px;
	color: #0c142e;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.01em;
}

body.single-product #booking_form .ovabrw-price-details,
body.single-product #request_booking .ovabrw-price-details {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin: 0;
	overflow: hidden;
	border: 1px solid #d0d7de;
	border-radius: 8px;
	background: #fff;
}

body.single-product #booking_form .ovabrw-price-details > div:empty,
body.single-product #request_booking .ovabrw-price-details > div:empty {
	display: none;
}

body.single-product #booking_form .ovabrw-price-details > div:not(:empty),
body.single-product #request_booking .ovabrw-price-details > div:not(:empty) {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 11px 14px;
	color: #696969;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.35;
}

body.single-product #booking_form .ovabrw-price-details > div:not(:empty) ~ div:not(:empty),
body.single-product #request_booking .ovabrw-price-details > div:not(:empty) ~ div:not(:empty) {
	border-top: 1px solid #d0d7de;
}

body.single-product #booking_form .nm-hire-line__label,
body.single-product #request_booking .nm-hire-line__label {
	color: #696969;
	font-size: 13px;
	font-weight: 500;
}

body.single-product #booking_form .nm-hire-line__hint,
body.single-product #request_booking .nm-hire-line__hint {
	color: #696969;
	font-size: 12px;
	font-weight: 400;
}

body.single-product #booking_form .ovabrw-price-details .nm-hire-line__value,
body.single-product #request_booking .ovabrw-price-details .nm-hire-line__value,
body.single-product #booking_form .ovabrw-price-details .amount,
body.single-product #request_booking .ovabrw-price-details .amount,
body.single-product #booking_form .ajax_show_total .ovabrw-price-details .amount,
body.single-product #request_booking .ajax_show_total .ovabrw-price-details .amount {
	color: #0c142e !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	font-variant-numeric: tabular-nums;
}

body.single-product #booking_form .ovabrw-total-amount,
body.single-product #request_booking .ovabrw-total-amount {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-top: 10px;
	padding: 12px 14px;
	border-radius: 8px;
	background: #0c142e;
	color: #fff;
}

body.single-product #booking_form .ovabrw-total-amount .nm-hire-line__label,
body.single-product #request_booking .ovabrw-total-amount .nm-hire-line__label {
	color: rgba(255, 255, 255, 0.78);
	font-size: 13px;
	font-weight: 600;
}

body.single-product #booking_form .ovabrw-total-amount .show_total,
body.single-product #request_booking .ovabrw-total-amount .show_total,
body.single-product #booking_form .ovabrw-total-amount .amount,
body.single-product #request_booking .ovabrw-total-amount .amount,
body.single-product #booking_form .ajax_show_total .show_total,
body.single-product #request_booking .ajax_show_total .show_total {
	color: #fff !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1.15 !important;
	font-variant-numeric: tabular-nums;
}

body.single-product #booking_form .ovabrw-items-available,
body.single-product #request_booking .ovabrw-items-available,
body.single-product #booking_form .ajax_show_total .ovabrw-items-available,
body.single-product #request_booking .ajax_show_total .ovabrw-items-available {
	display: block;
	margin-top: 10px;
	color: #696969 !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
}

body.single-product #booking_form .ovabrw-items-available .number-available,
body.single-product #request_booking .ovabrw-items-available .number-available,
body.single-product #booking_form .ajax_show_total .number-available,
body.single-product #request_booking .ajax_show_total .number-available {
	color: #0c142e !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
}

body.single-product #booking_form .submit,
body.single-product #request_booking .submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	margin-top: 18px;
	padding: 12px 18px;
	border: 0;
	border-radius: 8px;
	background: #0083db !important;
	color: #fff !important;
	font-size: 15px;
	font-weight: 600;
}

body.single-product #booking_form .submit:hover,
body.single-product #request_booking .submit:hover {
	background: #0c142e !important;
	color: #fff !important;
}

body.single-product .elementor-element-9d9348f {
	margin-top: 24px;
	margin-bottom: 48px !important;
}

body.single-product .ovabrw-product-related .products,
body.single-product .related.products ul.products,
body.single-product .upsells.products ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

/* Header mini-cart: WooCommerce product CSS must not restyle hire details */
body.single-product .nm-header-cart .minicart,
body.single-product .elementor-widget-remons_elementor_menu_cart .minicart,
body.single-product .ova-menu-cart .minicart {
	overflow: visible !important;
}

body.single-product .ova-menu-cart .minicart img,
body.single-product .ova-menu-cart .nm-minicart__thumb img {
	width: 64px !important;
	max-width: 64px !important;
	height: 64px !important;
	float: none !important;
	object-fit: contain !important;
}

body.single-product .ova-menu-cart .minicart .amount,
body.single-product .ova-menu-cart .minicart .woocommerce-Price-amount,
body.single-product .ova-menu-cart .nm-minicart__price,
body.single-product .ova-menu-cart .nm-minicart__price .amount {
	color: #0c142e !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
}

body.single-product .ova-menu-cart .minicart .unit,
body.single-product .ova-menu-cart .nm-minicart__price .unit {
	display: none !important;
}

body.single-product .ova-menu-cart .minicart ul.woocommerce-mini-cart,
body.single-product .ova-menu-cart .nm-minicart__list {
	display: block !important;
	grid-template-columns: none !important;
}

body.single-product .ova-menu-cart .nm-minicart__item,
body.single-product .ova-menu-cart .minicart ul.woocommerce-mini-cart li {
	display: grid !important;
	grid-template-columns: 64px minmax(0, 1fr) 28px !important;
	gap: 10px 12px !important;
	width: auto !important;
	margin: 0 0 12px !important;
	float: none !important;
}

body.single-product .ova-menu-cart .minicart ul.woocommerce-mini-cart li::before,
body.single-product .ova-menu-cart .minicart ul.woocommerce-mini-cart li::after,
body.single-product .ova-menu-cart .minicart dl.variation::before,
body.single-product .ova-menu-cart .minicart dl.variation::after {
	content: none !important;
	display: none !important;
}

body.single-product .woocommerce .ova-menu-cart ul.product_list_widget li dl,
body.single-product .ova-menu-cart .minicart dl.variation {
	display: flex !important;
	flex-direction: column !important;
	grid-template-columns: none !important;
	gap: 2px !important;
	width: 100% !important;
	margin: 6px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-left: 0 !important;
	float: none !important;
}

body.single-product .ova-menu-cart .minicart dl.variation dt,
body.single-product .ova-menu-cart .minicart dl.variation dd {
	display: inline !important;
	float: none !important;
	clear: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	color: #696969 !important;
	font-size: 12px !important;
	line-height: 1.4 !important;
}

body.single-product .ova-menu-cart .minicart dl.variation dt {
	margin-right: 4px !important;
	font-weight: 600 !important;
}

body.single-product .ova-menu-cart .minicart dl.variation dd::after {
	content: "" !important;
	display: block !important;
}

body.single-product .ova-menu-cart .minicart dl.variation p {
	display: inline !important;
	margin: 0 !important;
}

@media (max-width: 1024px) {
	body.single-product .elementor-688 > .elementor-element-899b3d1 {
		padding-top: 28px !important;
	}

	body.single-product .ovabrw-product-title {
		font-size: 26px !important;
	}
}

@media (max-width: 767px) {
	body.single-product .ovabrw-product-images .gallery {
		padding: 0 34px;
	}

	body.single-product #booking_form .ovabrw-product-fields,
	body.single-product #request_booking .ovabrw-product-fields {
		grid-template-columns: 1fr;
	}

	body.single-product .ovabrw-product-related .products,
	body.single-product .related.products ul.products,
	body.single-product .upsells.products ul.products {
		grid-template-columns: 1fr;
	}
}
