/* Single-product gallery, booking widget, Datepicker, tabs, and PhotoSwipe. */

@media (min-width: 782px) {
	body.single-product .krabi-product-summary-frame {
		align-items: stretch !important;
		justify-content: center !important;
		gap: 24px !important;
	}

	body.single-product
		.krabi-product-summary-frame
		> .wp-block-column {
		display: flex;
		flex-direction: column;
		align-self: stretch !important;
	}

	body.single-product
		.krabi-product-summary-frame
		> .wp-block-column:first-child {
		flex: 0 1 40% !important;
	}

	body.single-product
		.krabi-product-summary-frame
		> .wp-block-column:last-child {
		flex: 0 1 calc(50% - 24px) !important;
	}

	body.single-product
		.krabi-product-summary-frame
		.variationswatcher_container {
		box-sizing: border-box;
		flex: 1 1 auto;
		width: 100% !important;
		max-width: none !important;
	}

	body.single-product
		.krabi-product-summary-frame
		.wp-block-woocommerce-product-image-gallery,
	body.single-product
		.krabi-product-summary-frame
		.variation_wrapper {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
	}

	body.single-product
		.krabi-product-summary-frame
		.woocommerce-product-gallery {
		margin-bottom: 0 !important;
	}
}

/* Visuals owns presentation only; Orders Widget behavior and DOM stay intact. */
body.single-product .variationswatcher_container,
body.single-product .variation_calculate {
	font-family: var(--krabi-font-family) !important;
	font-size: 17px !important;
	font-weight: 400;
	line-height: 1.5 !important;
}

body.single-product .variationswatcher_container,
body.single-product .select_container_line,
body.single-product .select_container_selection,
body.single-product .type_to_cart_selection,
body.single-product .date_select .type_select_date_container,
body.single-product .error_validation,
body.single-product #inline_calendar .ui-datepicker,
body.single-product #inline_calendar .ui-datepicker .ui-datepicker-header,
body.single-product input.choice_variant_count,
body.single-product .textsticker {
	border-radius: var(--krabi-ui-radius) !important;
}


body.single-product .variationswatcher_container button,
body.single-product .variationswatcher_container input,
body.single-product .variationswatcher_container select,
body.single-product .variationswatcher_container textarea {
	font-family: var(--krabi-font-family) !important;
}

body.single-product #selected-date-display,
body.single-product #tomorrow-warning,
body.single-product #inline_calendar .ui-datepicker {
	font-family: var(--krabi-font-family) !important;
	font-size: 17px !important;
	line-height: 1.5 !important;
}

body.single-product .user_conditions_wrapper {
	align-items: center;
}

body.single-product .krabi-booking-contact {
	box-sizing: border-box;
	align-items: center;
	gap: 10px;
	width: 100%;
	max-width: 100%;
	margin-right: auto;
	margin-left: auto;
	color: #1a2b49;
	font-family: var(--krabi-font-family) !important;
	font-size: 17px;
	line-height: 1.5;
	text-align: center;
}

body.single-product .krabi-booking-contact__title,
body.single-product .krabi-booking-contact__refund {
	white-space: nowrap;
}

body.single-product .krabi-booking-contact__title {
	font-weight: 600;
}

body.single-product .krabi-booking-social-links {
	display: flex !important;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.single-product
	.krabi-booking-social-links
	.wp-block-social-link {
	display: block !important;
	box-sizing: border-box;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 50% !important;
	list-style: none !important;
	overflow: hidden;
}

body.single-product
	.krabi-booking-social-links
	.wp-social-link-whatsapp {
	background-color: #25d366 !important;
}

body.single-product
	.krabi-booking-social-links
	.wp-social-link-mail {
	color: #444444 !important;
	background-color: #f0f0f0 !important;
}

body.single-product
	.krabi-booking-social-links
	.wp-block-social-link-anchor {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	color: #ffffff !important;
	background: transparent !important;
	border-radius: 50%;
	line-height: 1 !important;
	text-decoration: none !important;
}

body.single-product
	.krabi-booking-social-links
	.wp-social-link-mail
	.wp-block-social-link-anchor {
	color: #444444 !important;
}

body.single-product
	.krabi-booking-social-links
	.wp-block-social-link-anchor
	svg {
	fill: currentColor;
}

body.single-product
	.krabi-booking-social-links
	.screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	overflow: hidden !important;
}

body.single-product .krabi-booking-contact__refund a {
	font: inherit;
	font-weight: 600;
}

body.single-product .select_container_line,
body.single-product button.book_button {
	box-sizing: border-box;
	min-height: 45px;
}

body.single-product button.book_button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 24px !important;
	line-height: 1.2 !important;
	text-align: center !important;
}

/* Keep both booking modes in one vertical field flow. */
body.single-product .krabi-booking-field {
	flex-direction: column;
	align-items: stretch;
	gap: 4px;
}

body.single-product .krabi-booking-field > .select_container_line {
	width: 100%;
}

body.single-product .krabi-direct-tickets {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

body.single-product
	.krabi-direct-ticket
	> .type_to_cart_selection {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: center;
	column-gap: 8px;
	cursor: default;
}

body.single-product .krabi-direct-ticket__name {
	display: flex;
	flex-direction: column;
	min-width: 0;
	font-weight: 500;
	line-height: 1.35;
}

body.single-product .krabi-direct-ticket__comment {
	color: #5f6368;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.35;
}

body.single-product .krabi-direct-ticket__comment:empty {
	display: none;
}

body.single-product .krabi-field-help {
	box-sizing: border-box;
	width: 100%;
	min-height: 20px;
	margin: 0;
	padding: 0 2px;
	color: #5f6368;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
}

body.single-product .krabi-field-help.is-error {
	color: #b42318;
}

body.single-product
	.krabi-program-selector
	> .type_program_container {
	position: static;
	box-sizing: border-box;
	width: 100%;
	margin-top: 4px;
	border-radius: var(--krabi-ui-radius) !important;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
}

body.single-product .choice_variant_price {
	display: flex;
	align-items: center;
	justify-self: end;
	min-height: 36px;
	font-size: 17px;
	line-height: 1.35;
	text-align: right;
	white-space: nowrap;
}

body.single-product .choice_variant_up_down {
	display: flex;
	align-items: center;
	justify-self: end;
	gap: 4px;
	min-height: 36px;
}

body.single-product .choice_variant_button {
	width: 32px;
	min-width: 32px;
	height: 36px;
	border-radius: 50%;
}

body.single-product img.choice_variant_img {
	width: 18px;
	height: 18px;
}

body.single-product input.choice_variant_count {
	box-sizing: border-box;
	width: 44px;
	height: 36px;
	margin: 0;
	padding: 0;
	color: #252525;
	background: #ffffff;
	border: 1px solid #c9cfd6;
	box-shadow: none;
	font-size: 17px;
	font-weight: 500;
	line-height: 34px;
	text-align: center;
	-moz-appearance: textfield;
}

body.single-product input.choice_variant_count::-webkit-inner-spin-button,
body.single-product input.choice_variant_count::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

body.single-product input.choice_variant_count:focus-visible {
	border-color: #1d4ed8;
	outline: 2px solid #1d4ed8;
	outline-offset: 2px;
}

body.single-product .ungpoup .type_to_cart_selection {
	justify-content: space-between;
}

body.single-product .krabi-ticket-date-target {
	margin: 0;
	padding: 0;
	color: inherit;
	font: inherit;
	font-weight: inherit;
	line-height: inherit;
	text-align: left;
	background: transparent;
	border: 0;
	cursor: pointer;
}

body.single-product .krabi-ticket-date-target:focus-visible {
	outline: 2px solid #1d4ed8;
	outline-offset: 2px;
}

body.single-product
	.krabi-date-assignment--per-program
	.krabi-ungrouped-ticket.is-active
	> .type_to_cart_selection {
	box-shadow: inset 0 0 0 2px var(--krabi-action-color, #0170b9);
}

body.single-product .variation_calculate {
	box-sizing: border-box;
	width: 100%;
	padding: 0 16px;
}

body.single-product .krabi-booking-summary {
	--krabi-summary-amount-width: 112px;
	--krabi-summary-action-width: 40px;
	--krabi-summary-column-gap: 4px;

	width: 100%;
	margin: 0;
	color: #2e2e2e;
	font-family: inherit;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.35;
}

body.single-product .krabi-booking-summary__program {
	padding-top: 10px;
	padding-bottom: 6px;
	font-weight: 600;
	text-align: left;
}

body.single-product .krabi-booking-summary__dated-label {
	display: flex;
	flex-wrap: wrap;
	column-gap: 0.3em;
}

body.single-product .krabi-booking-summary__dated-name {
	min-width: 0;
}

body.single-product .krabi-booking-summary__dated-date {
	flex: 0 0 auto;
	overflow-wrap: normal;
	word-break: normal;
	white-space: nowrap;
}

body.single-product .krabi-booking-summary__line,
body.single-product .krabi-booking-summary__total {
	display: grid;
	grid-template-columns:
		minmax(0, 1fr)
		var(--krabi-summary-amount-width)
		var(--krabi-summary-action-width);
	align-items: center;
	column-gap: var(--krabi-summary-column-gap);
}

body.single-product .krabi-booking-summary__line {
	grid-template-areas:
		"name amount action"
		"calculation amount action";
	row-gap: 2px;
	padding: 10px 0;
	border-bottom: 1px solid #ebeef1;
}

body.single-product .krabi-booking-summary__name {
	grid-area: name;
	min-width: 0;
	font-weight: 500;
	text-align: left;
	overflow-wrap: anywhere;
}

body.single-product .krabi-booking-summary__calculation {
	grid-area: calculation;
	min-width: 0;
	color: #5f6368;
	font-weight: 400;
	text-align: left;
	white-space: nowrap;
}

body.single-product .krabi-booking-summary__line-amount,
body.single-product .krabi-booking-summary__total-amount {
	grid-area: amount;
	align-self: center;
	font-weight: 600;
	text-align: right;
	white-space: nowrap;
}

body.single-product .krabi-booking-summary__line-action {
	grid-area: action;
	align-self: center;
	justify-self: end;
}

body.single-product .krabi-booking-summary__total {
	grid-template-areas: "label amount action";
	padding: 10px 0;
	font-weight: 600;
}

body.single-product .krabi-booking-summary__total-label {
	grid-area: label;
	text-align: left;
}

body.single-product .krabi-booking-summary__total-action {
	grid-area: action;
	min-height: var(--krabi-summary-action-width);
}

body.single-product .krabi-booking-summary .deleteitem {
	width: var(--krabi-summary-action-width);
	height: var(--krabi-summary-action-width);
}

body.single-product .krabi-booking-summary .deleteitem img {
	width: 20px;
	height: 20px;
}

@media (max-width: 599px) {
	/* Match normal selector height while allowing long labels to expand the row. */
	body.single-product
		.krabi-direct-ticket
		> .type_to_cart_selection {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"ticket controls"
			"price controls";
		row-gap: 1px;
		column-gap: 10px;
		min-height: 45px;
		padding: 4px 12px;
	}

	body.single-product .krabi-direct-ticket__name {
		grid-area: ticket;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: baseline;
		gap: 6px;
		line-height: 1.1;
	}

	body.single-product
		.krabi-ungrouped-ticket__name.is-compact {
		font-size: 15px;
	}

	body.single-product
		.krabi-ungrouped-ticket__name.is-condensed {
		font-size: 14px;
	}

	body.single-product .krabi-direct-ticket__comment {
		line-height: 1.1;
	}

	body.single-product .choice_variant_price {
		grid-area: price;
		justify-self: start;
		min-height: auto;
		font-size: 15px;
		text-align: left;
	}

	body.single-product
		.krabi-direct-ticket
		.choice_variant_price {
		line-height: 1.1;
	}

	body.single-product .choice_variant_up_down {
		grid-area: controls;
		align-self: center;
	}

	body.single-product .variation_calculate {
		padding-right: 12px;
		padding-left: 12px;
	}
}

/* Minimal booking calendar with a self-contained, non-overlapping surface. */
body.single-product .date_select > .type_select_date_container {
	position: static;
	box-sizing: border-box;
	width: min(100%, 320px) !important;
	margin: 8px auto 0 !important;
	padding: 10px !important;
	background: #ffffff !important;
	border: 1px solid #e4e4e4 !important;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07) !important;
	overflow: hidden !important;
}

body.single-product #inline_calendar .ui-datepicker.ui-datepicker-inline {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	color: #252525 !important;
	background: #ffffff !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-header {
	padding: 0 0 8px !important;
	color: #252525 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-title {
	color: #252525 !important;
	font-weight: 600 !important;
	line-height: 32px !important;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-prev,
body.single-product #inline_calendar .ui-datepicker .ui-datepicker-next {
	top: 0 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 32px !important;
	height: 32px !important;
	color: #252525 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: var(--krabi-ui-radius) !important;
	cursor: pointer;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-prev {
	left: 0 !important;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-next {
	right: 0 !important;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-prev:not(.ui-state-disabled):hover,
body.single-product #inline_calendar .ui-datepicker .ui-datepicker-next:not(.ui-state-disabled):hover {
	background: #eef4f8 !important;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-prev .ui-icon,
body.single-product #inline_calendar .ui-datepicker .ui-datepicker-next .ui-icon {
	position: static !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	background: none !important;
	font-size: 0 !important;
	text-indent: 0 !important;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-prev .ui-icon::before,
body.single-product #inline_calendar .ui-datepicker .ui-datepicker-next .ui-icon::before {
	display: block;
	font-family: Arial, sans-serif;
	font-size: 26px;
	font-weight: 400;
	line-height: 1;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-prev .ui-icon::before {
	content: "‹";
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-next .ui-icon::before {
	content: "›";
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-calendar {
	width: 100% !important;
	margin: 0 !important;
	border: 0 !important;
	border-collapse: separate !important;
	border-spacing: 3px !important;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-calendar th {
	padding: 3px 0 5px !important;
	color: #6b7280 !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-calendar td {
	padding: 0 !important;
	border: 0 !important;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-calendar td a,
body.single-product #inline_calendar .ui-datepicker .ui-datepicker-calendar td span {
	display: flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 32px;
	padding: 0 !important;
	color: #252525 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: var(--krabi-ui-radius) !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	text-align: center !important;
}

body.single-product
	#inline_calendar
	.ui-datepicker
	.ui-datepicker-calendar
	td:not(.ui-state-disabled)
	a:hover {
	color: var(--krabi-action-color) !important;
	background: #eef4f8 !important;
}

body.single-product
	#inline_calendar
	.ui-datepicker
	.ui-datepicker-calendar
	.ui-datepicker-today
	.ui-state-default {
	box-shadow: inset 0 0 0 1px var(--krabi-action-color);
}

body.single-product
	#inline_calendar
	.ui-datepicker
	.ui-datepicker-calendar
	.ui-datepicker-current-day
	.ui-state-active {
	color: #ffffff !important;
	background: var(--krabi-action-color) !important;
	box-shadow: none !important;
}

body.single-product #inline_calendar .ui-datepicker .ui-datepicker-calendar .ui-state-disabled {
	opacity: 0.38 !important;
}

/*
 * The product page is a transparent full-width layout container. Its visible
 * children own the shared krabi-visual-lane instead of inheriting theme
 * padding, so Product, Description, and gallery cards use one geometry.
 */
body.single-product main.wp-block-group {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin-right: auto !important;
	margin-left: auto !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
}

body.single-product
	.wp-block-woocommerce-product-details.alignwide {
	box-sizing: border-box;
}

body.single-product .textsticker {
	box-sizing: border-box;
	max-width: calc(100% - 48px);
	padding: 0 16px;
	font-size: 17px;
	line-height: 29px;
	border-radius: var(--krabi-ui-radius);
	overflow-wrap: anywhere;
}


body.single-product .textsticker {
	top: -15px;
}


/*
 * Keep two native four-thumbnail rows. JavaScript adds the root class only
 * after it has counted the gallery and prepared the final visible tile.
 */
html.krabi-product-gallery-enhanced
	body.single-product
	.woocommerce-product-gallery
	.flex-control-thumbs
	> li:nth-child(n+9) {
	display: none !important;
}

body.single-product
	.woocommerce-product-gallery
	.flex-control-thumbs
	> li.krabi-gallery-more {
	position: relative;
	cursor: pointer;
}

body.single-product
	.woocommerce-product-gallery
	.flex-control-thumbs
	> li.krabi-gallery-more::before,
body.single-product
	.woocommerce-product-gallery
	.flex-control-thumbs
	> li.krabi-gallery-more::after {
	position: absolute;
	z-index: 2;
	inset: 0;
	pointer-events: none;
	content: "";
}

body.single-product
	.woocommerce-product-gallery
	.flex-control-thumbs
	> li.krabi-gallery-more::before {
	background: rgba(0, 0, 0, 0.52);
}

body.single-product
	.woocommerce-product-gallery
	.flex-control-thumbs
	> li.krabi-gallery-more::after {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	font-size: 22px;
	font-weight: 700;
	line-height: 1;
	content: attr(data-krabi-gallery-more);
}

body.single-product
	.woocommerce-product-gallery
	.flex-control-thumbs
	> li.krabi-gallery-more:focus-visible {
	outline: 3px solid var(--fkcart-primary-bg-color, #0170b9);
	outline-offset: -3px;
}

/* PhotoSwipe: a clear control row followed by the current tour title. */
body.single-product .pswp__top-bar {
	display: grid !important;
	box-sizing: border-box;
	grid-template-columns: auto minmax(0, 1fr) 52px 52px 52px;
	grid-template-areas:
		"counter . zoom fullscreen close"
		"title title title title title";
	width: 100%;
	height: auto !important;
	min-height: 52px;
	padding-right: max(0px, env(safe-area-inset-right));
	padding-left: max(0px, env(safe-area-inset-left));
	background: rgba(0, 0, 0, 0.62);
}

body.single-product .pswp__counter {
	grid-area: counter;
	width: auto;
	height: 52px;
	margin: 0 !important;
	padding: 0 12px;
	color: #ffffff;
	font-size: 19px;
	font-weight: 600;
	line-height: 52px;
	opacity: 1;
}

body.single-product .pswp__button--zoom {
	grid-area: zoom;
}

body.single-product .pswp__button--fs {
	grid-area: fullscreen;
}

body.single-product .pswp__button--close {
	grid-area: close;
	justify-self: end;
	width: 52px;
	height: 52px;
	margin: 0 !important;
	background: none !important;
	opacity: 1;
}

body.single-product .pswp__button--close::before {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #ffffff;
	font-family: Arial, sans-serif;
	font-size: 42px;
	font-weight: 300;
	line-height: 1;
	content: "\00d7";
}

body.single-product .pswp__button--zoom,
body.single-product .pswp__button--fs {
	width: 52px;
	height: 52px;
	margin: 0 !important;
	opacity: 1;
}

body.single-product .pswp__button--share {
	display: none !important;
}

body.single-product .pswp__preloader {
	position: absolute !important;
	top: 4px;
	left: 50% !important;
	margin: 0 0 0 -22px !important;
}

body.single-product .pswp__top-bar .krabi-pswp-title {
	grid-area: title;
	box-sizing: border-box;
	width: 100%;
	padding: 0 64px 16px;
	color: #ffffff;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.35;
	text-align: center;
	overflow-wrap: anywhere;
	pointer-events: none;
}

body.krabi-photoswipe-open #fkcart-floating-toggler,
body.krabi-photoswipe-open .fkcart-floating-toggler {
	display: none !important;
}

/*
 * The verified gallery and variation columns share one desktop frame. The
 * compact 12px inset preserves the existing gallery and booking-form widths.
 */
@media (min-width: 600px) {
	body.single-product .krabi-product-summary-frame {
		box-sizing: border-box;
		padding: 12px !important;
		background: #ffffff;
		border: 1px solid #e4e4e4;
		border-radius: var(--krabi-ui-radius);
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
	}

	body.single-product
		.krabi-product-summary-frame
		> .wp-block-column {
		min-width: 0;
	}

	body.single-product
		.krabi-product-summary-frame
		.variation_wrapper {
		margin-top: 0 !important;
	}

	body.single-product
		.krabi-product-summary-frame
		.variation_title
		> h1 {
		margin-top: 0 !important;
	}

	body.single-product
		.krabi-product-summary-frame
		.variationswatcher_container {
		margin-right: auto !important;
		margin-left: auto !important;
	}
}

/*
 * Keep WooCommerce's real tab controls so additional product-detail tabs can
 * be added later. Only their presentation changes; tab behavior is untouched.
 */
body.single-product
	.wp-block-woocommerce-product-details
	.woocommerce-tabs
	> ul.tabs.wc-tabs {
	display: flex;
	box-sizing: border-box;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 6px;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

body.single-product
	.wp-block-woocommerce-product-details
	.woocommerce-tabs
	> ul.tabs.wc-tabs::before,
body.single-product
	.wp-block-woocommerce-product-details
	.woocommerce-tabs
	> ul.tabs.wc-tabs
	> li::before,
body.single-product
	.wp-block-woocommerce-product-details
	.woocommerce-tabs
	> ul.tabs.wc-tabs
	> li::after {
	display: none !important;
	content: none !important;
}

body.single-product
	.wp-block-woocommerce-product-details
	.woocommerce-tabs
	> ul.tabs.wc-tabs
	> li {
	display: block;
	float: none;
	width: auto;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent;
	border: 0;
	border-radius: 0;
}

body.single-product
	.wp-block-woocommerce-product-details
	.woocommerce-tabs
	> ul.tabs.wc-tabs
	> li
	> a {
	display: block;
	box-sizing: border-box;
	width: auto;
	padding: 10px 16px;
	color: #252525;
	background: #f5f5f5;
	border: 1px solid #e4e4e4;
	border-bottom: 0;
	border-radius: var(--krabi-ui-radius) var(--krabi-ui-radius) 0 0;
	font: inherit;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
}

body.single-product
	.wp-block-woocommerce-product-details
	.woocommerce-tabs
	> ul.tabs.wc-tabs
	> li.active
	> a {
	color: #ffffff;
	background: var(--fkcart-primary-bg-color, #0170b9);
	border-color: var(--fkcart-primary-bg-color, #0170b9);
}

/*
 * Each actual WooCommerce tab panel receives the same frame used on the
 * approved information pages. Horizontal padding also keeps its direct text
 * content at no more than the approved 860px measure on wide screens.
 */
body.single-product
	.wp-block-woocommerce-product-details
	.woocommerce-tabs
	> .woocommerce-Tabs-panel {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0 !important;
	padding-top: clamp(22px, 4vw, 44px) !important;
	padding-right: max(
		clamp(22px, 4vw, 44px),
		calc((100% - var(--krabi-text-width)) / 2)
	) !important;
	padding-bottom: clamp(22px, 4vw, 44px) !important;
	padding-left: max(
		clamp(22px, 4vw, 44px),
		calc((100% - var(--krabi-text-width)) / 2)
	) !important;
	color: #252525;
	background: #ffffff;
	border: 1px solid #e4e4e4;
	border-radius: 0 var(--krabi-ui-radius) var(--krabi-ui-radius)
		var(--krabi-ui-radius);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
	font-family: inherit;
	font-size: clamp(16px, 1.2vw, 17px);
	line-height: 1.6;
	text-align: left;
	overflow-wrap: break-word;
}

@media (max-width: 599px) {
	/* One phone layout: title, gallery, then full-width booking widget. */
	body.single-product .krabi-product-summary-frame {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr);
		grid-auto-flow: row;
		gap: 16px !important;
	}

	body.single-product
		.krabi-product-summary-frame
		> .wp-block-column,
	body.single-product
		.krabi-product-summary-frame
		.variation_wrapper {
		display: contents !important;
	}

	body.single-product
		.krabi-product-summary-frame
		.variation_title {
		grid-row: 1;
		grid-column: 1;
		margin: 0 !important;
	}

	body.single-product
		.krabi-product-summary-frame
		.variation_title
		> h1 {
		margin: 0 !important;
	}

	body.single-product
		.krabi-product-summary-frame
		.wp-block-woocommerce-product-image-gallery {
		grid-row: 2;
		grid-column: 1;
		margin: 0 !important;
	}

	body.single-product
		.krabi-product-summary-frame
		.woocommerce-product-gallery {
		margin-bottom: 0 !important;
	}

	body.single-product
		.krabi-product-summary-frame
		.variationswatcher_container {
		grid-row: 3;
		grid-column: 1;
		box-sizing: border-box;
		width: 100% !important;
		max-width: none !important;
		/* 16px grid gap + 8px clearance = one 24px booking boundary. */
		margin: 8px 0 0 !important;
	}

	body.single-product .pswp__top-bar {
		grid-template-columns: auto minmax(0, 1fr) 52px;
		grid-template-areas:
			"counter . close"
			"title title title";
	}

	body.single-product .pswp__button--zoom,
	body.single-product .pswp__button--fs {
		display: none !important;
	}

	body.single-product .pswp__top-bar .krabi-pswp-title {
		padding: 0 48px 14px;
		font-size: 21px;
	}

	body.single-product .krabi-booking-contact {
		gap: 8px;
		font-size: 15px;
		line-height: 1.4;
	}

	body.single-product
		.krabi-booking-social-links
		.wp-block-social-link-anchor {
		width: 38px;
		height: 38px;
	}
}
