/**
 * Hover immagini contenuto — wrapper fermo, zoom solo media interna.
 * Utility: .bb-image-hover (= .bb-img-hover-host) | opt-out: .bb-image-hover--off
 */

:root {
	--bb-img-hover-scale: 1.04;
	--bb-img-hover-bg-zoom: 104%;
	--bb-img-hover-duration: 350ms;
	--bb-img-hover-easing: ease;
	--bb-img-hover-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
	--bb-img-hover-shadow-none: 0 0 0 rgba(0, 0, 0, 0);
}

/* —— Utility —— */
.bb-image-hover,
.bb-img-hover-host {
	overflow: hidden;
	transition: box-shadow var(--bb-img-hover-duration) var(--bb-img-hover-easing);
	transform: none;
}

.bb-image-hover > a,
.bb-img-hover-host > a {
	display: block;
	overflow: hidden;
	border-radius: inherit;
}

.bb-image-hover img,
.bb-img-hover-host img {
	display: block;
	width: 100%;
	height: auto;
	box-shadow: none !important;
	transition: transform var(--bb-img-hover-duration) var(--bb-img-hover-easing);
	transform-origin: center center;
}

/* Host automatici (clip + ombra sul wrapper, mai transform sul wrapper) */
#main-container .site-main .entry-content :is(
	.wp-block-image,
	.wp-block-gallery figure.wp-block-image,
	.wp-block-media-text__media,
	.bb-camere-grid-card .bb-camere-teaser-img,
	.bb-camere-teaser-img:not(.bb-room-intro-img),
	.bb-room-gallery-grid .wp-block-image,
	.bb-territory-card,
	.bb-home-room-card .wp-block-image,
	.home .bb-territory-kcol .wp-block-kadence-image,
	.home .bb-room-kcol .wp-block-kadence-image,
	.bb-home-destination-card,
	.bb-territory-carousel .bb-territory-card,
	.bb-territory-slider .wp-block-cover,
	.home .wp-block-group.has-panna-background-color > .wp-block-group.is-layout-grid > .wp-block-cover,
	.wp-block-cover:not(
		.bb-page-hero,
		.bb-camere-hero,
		.bb-room-hero,
		.bb-camere-final-cta,
		.bb-home-hero-cover,
		.bb-home-final-cta,
		.bb-cta-band
	):not(.alignfull)
):not(.bb-image-hover--off):not(.bb-room-intro-img) {
	overflow: hidden;
	transition: box-shadow var(--bb-img-hover-duration) var(--bb-img-hover-easing);
	transform: none;
}

#main-container .site-main .entry-content .bb-home-destinations-grid > .wp-block-spectra-container,
#main-container .site-main .entry-content .bb-territory-carousel .bb-territory-track > .bb-territory-card {
	overflow: hidden;
	border-radius: inherit;
}

#main-container .site-main .entry-content :is(
	.wp-block-image,
	.bb-camere-teaser-img,
	.bb-room-gallery-grid .wp-block-image
) > a {
	display: block;
	overflow: hidden;
	border-radius: inherit;
}

/* Radius inline Gutenberg: clip sul figure, non alterare il valore */
#main-container .site-main .entry-content .wp-block-image[style*="border-radius"] {
	overflow: hidden;
}

/* Media interna — solo transform, mai ombra */
#main-container .site-main .entry-content :is(
	.wp-block-image,
	.wp-block-gallery,
	.wp-block-media-text__media,
	.bb-camere-grid-card,
	.bb-camere-teaser-img,
	.bb-room-gallery-grid,
	.bb-territory-card,
	.bb-home-room-card,
	.home .bb-territory-kcol .wp-block-kadence-image,
	.home .bb-room-kcol .wp-block-kadence-image
) img:not([src$=".svg"]):not([src*=".svg?"]) {
	box-shadow: none !important;
	transition: transform var(--bb-img-hover-duration) var(--bb-img-hover-easing);
	transform-origin: center center;
}

/* Cover: zoom solo background, wrapper Cover senza transform */
#main-container .site-main .entry-content :is(
	.wp-block-cover:not(
		.bb-page-hero,
		.bb-camere-hero,
		.bb-room-hero,
		.bb-camere-final-cta,
		.bb-home-hero-cover,
		.bb-home-final-cta,
		.bb-cta-band
	),
	.bb-territory-slider .wp-block-cover,
	.home .wp-block-group.has-panna-background-color > .wp-block-group.is-layout-grid > .wp-block-cover
) {
	transform: none;
}

#main-container .site-main .entry-content :is(
	.wp-block-cover:not(
		.bb-page-hero,
		.bb-camere-hero,
		.bb-room-hero,
		.bb-camere-final-cta,
		.bb-home-hero-cover,
		.bb-home-final-cta,
		.bb-cta-band
	),
	.bb-territory-slider .wp-block-cover,
	.home .wp-block-group.has-panna-background-color > .wp-block-group.is-layout-grid > .wp-block-cover
) .wp-block-cover__image-background {
	box-shadow: none !important;
	transition: transform var(--bb-img-hover-duration) var(--bb-img-hover-easing);
	transform-origin: center center;
}

/* Card con background-image: wrapper fermo, zoom solo del paint interno */
#main-container .site-main .entry-content :is(
	.bb-home-destination-card,
	.bb-territory-carousel .bb-territory-card
) {
	background-size: cover !important;
	background-position: center center !important;
	transform: none;
	transition:
		box-shadow var(--bb-img-hover-duration) var(--bb-img-hover-easing),
		background-size var(--bb-img-hover-duration) var(--bb-img-hover-easing);
}

/* Esclusioni */
#main-container .site-main .entry-content :is(
	.bb-page-hero,
	.bb-camere-hero,
	.bb-room-hero,
	.bb-camere-final-cta,
	.bb-home-hero-cover,
	.bb-home-final-cta,
	.bb-cta-band,
	.bb-room-intro-img
) :is(img, .wp-block-cover__image-background),
#main-container .site-main .entry-content .wp-block-cover.alignfull:not(.bb-territory-slider .wp-block-cover)
	.wp-block-cover__image-background,
#main-container .site-main .entry-content :is(.vikbooking, .vbmod, .bb-vista-vikbooking-wrap) img,
#main-container .site-main .entry-content .bb-image-hover--off :is(img, .wp-block-cover__image-background) {
	transition: none !important;
	transform: none !important;
}

@media (hover: hover) and (pointer: fine) {
	.bb-image-hover:hover,
	.bb-image-hover:focus-within,
	.bb-img-hover-host:hover,
	.bb-img-hover-host:focus-within,
	body:not(.home) #main-container .site-main .entry-content :is(
		.wp-block-image,
		.wp-block-gallery figure.wp-block-image,
		.wp-block-media-text__media,
		.bb-camere-grid-card .bb-camere-teaser-img,
		.bb-camere-teaser-img:not(.bb-room-intro-img),
		.bb-room-gallery-grid .wp-block-image,
		.bb-territory-card,
		.bb-home-room-card .wp-block-image,
		.bb-territory-kcol .wp-block-kadence-image,
		.bb-room-kcol .wp-block-kadence-image,
		.bb-home-destination-card,
		.bb-territory-carousel .bb-territory-card,
		.bb-territory-slider .wp-block-cover,
		.home .wp-block-group.has-panna-background-color > .wp-block-group.is-layout-grid > .wp-block-cover,
		.wp-block-cover:not(
			.bb-page-hero,
			.bb-camere-hero,
			.bb-room-hero,
			.bb-camere-final-cta,
			.bb-home-hero-cover,
			.bb-home-final-cta,
			.bb-cta-band
		):not(.alignfull)
	):not(.bb-image-hover--off):not(.bb-room-intro-img):is(:hover, :focus-within) {
		box-shadow: var(--bb-img-hover-shadow);
		transform: none;
	}

	.bb-image-hover:hover img,
	.bb-image-hover:focus-within img,
	#main-container .site-main .entry-content :is(
		.wp-block-image,
		.wp-block-gallery,
		.wp-block-media-text__media,
		.bb-camere-grid-card .bb-camere-teaser-img,
		.bb-camere-teaser-img:not(.bb-room-intro-img),
		.bb-room-gallery-grid,
		.bb-territory-card,
		.bb-home-room-card,
		.home .bb-territory-kcol .wp-block-kadence-image,
		.home .bb-room-kcol .wp-block-kadence-image
	):not(.bb-image-hover--off):is(:hover, :focus-within) img:not([src$=".svg"]) {
		transform: scale(var(--bb-img-hover-scale));
	}

	#main-container .site-main .entry-content :is(
		.wp-block-cover:not(
			.bb-page-hero,
			.bb-camere-hero,
			.bb-room-hero,
			.bb-camere-final-cta,
			.bb-home-hero-cover,
			.bb-home-final-cta,
			.bb-cta-band
		),
		.bb-territory-slider .wp-block-cover,
		.home .wp-block-group.has-panna-background-color > .wp-block-group.is-layout-grid > .wp-block-cover
	):not(.bb-image-hover--off):is(:hover, :focus-within) .wp-block-cover__image-background {
		transform: scale(var(--bb-img-hover-scale));
	}

	#main-container .site-main .entry-content :is(
		.bb-home-destination-card,
		.bb-territory-carousel .bb-territory-card
	):is(:hover, :focus-within) {
		background-size: var(--bb-img-hover-bg-zoom) !important;
		transform: none;
	}

	#main-container .site-main .entry-content a:has(img):not(.bb-vista-whatsapp):not(.kadence-bb-whatsapp) {
		cursor: pointer;
	}

}

/* Territorio slider Spectra (legacy): stesso hover delle altre card */
@media (hover: hover) and (pointer: fine) {
	.home .wp-block-spectra-slider.bb-territory-slider .slide-content > .wp-block-cover:is(:hover, :focus-within) {
		box-shadow: var(--bb-img-hover-shadow);
		transform: none;
	}
}

/* Home: ombra hover anche sulle copertine territorio (body.home escluso dal blocco generico) */
@media (hover: hover) and (pointer: fine) {
	.home .wp-block-group.has-panna-background-color > .wp-block-group.is-layout-grid > .wp-block-cover:is(:hover, :focus-within) {
		box-shadow: var(--bb-img-hover-shadow);
		transform: none;
	}

	.home .bb-home-room-card .wp-block-image:is(:hover, :focus-within) {
		box-shadow: var(--bb-img-hover-shadow);
		transform: none;
	}
}

/* Header / footer / UI */
#header :is(img, .wp-block-cover__image-background),
#footer :is(img, .wp-block-cover__image-background),
.bb-vista-whatsapp,
.kadence-bb-whatsapp,
.custom-logo,
.site-logo img,
.ct-header [data-id="logo"] img,
img[src$=".svg"],
svg {
	transition: none !important;
	box-shadow: none !important;
}

#header :is(img, .wp-block-cover__image-background),
#footer :is(img, .wp-block-cover__image-background),
.custom-logo,
.site-logo img,
.ct-header [data-id="logo"] img {
	transform: none !important;
}

#header,
#footer,
.bb-vista-whatsapp,
.kadence-bb-whatsapp {
	box-shadow: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.bb-image-hover,
	.bb-img-hover-host,
	.bb-image-hover img,
	#main-container .site-main .entry-content .bb-img-hover-host,
	#main-container .site-main .entry-content :is(
		.wp-block-image,
		.wp-block-gallery figure.wp-block-image,
		.wp-block-media-text__media,
		.bb-camere-grid-card .bb-camere-teaser-img,
		.bb-camere-teaser-img,
		.bb-room-gallery-grid .wp-block-image,
		.bb-territory-card,
		.bb-home-room-card .wp-block-image,
		.bb-territory-slider .wp-block-cover,
		.home .wp-block-group.has-panna-background-color > .wp-block-group.is-layout-grid > .wp-block-cover,
		.wp-block-cover:not(
			.bb-page-hero,
			.bb-camere-hero,
			.bb-room-hero,
			.bb-camere-final-cta,
			.bb-home-hero-cover,
			.bb-home-final-cta,
			.bb-cta-band
		):not(.alignfull),
		.bb-home-destination-card,
		.bb-territory-carousel .bb-territory-card
	),
	#main-container .site-main .entry-content img,
	#main-container .site-main .entry-content .wp-block-cover .wp-block-cover__image-background {
		transition: none !important;
	}

	@media (hover: hover) and (pointer: fine) {
		#main-container .site-main .entry-content img,
		#main-container .site-main .entry-content .wp-block-cover .wp-block-cover__image-background {
			transform: none !important;
		}

		#main-container .site-main .entry-content :is(
			.bb-home-destination-card,
			.bb-territory-carousel .bb-territory-card
		):is(:hover, :focus-within) {
			background-size: cover !important;
		}

		.bb-image-hover:is(:hover, :focus-within),
		#main-container .site-main .entry-content :is(
			.wp-block-image,
			.wp-block-gallery figure.wp-block-image,
			.wp-block-media-text__media,
			.bb-camere-grid-card .bb-camere-teaser-img,
			.bb-camere-teaser-img,
			.bb-room-gallery-grid .wp-block-image,
			.bb-territory-card,
			.bb-home-room-card .wp-block-image,
			.bb-territory-slider .wp-block-cover,
			.home .wp-block-group.has-panna-background-color > .wp-block-group.is-layout-grid > .wp-block-cover,
			.wp-block-cover:not(
				.bb-page-hero,
				.bb-camere-hero,
				.bb-room-hero,
				.bb-camere-final-cta,
				.bb-home-hero-cover,
				.bb-home-final-cta,
				.bb-cta-band
			):not(.alignfull),
			.bb-home-destination-card,
			.bb-territory-carousel .bb-territory-card
		):is(:hover, :focus-within) {
			box-shadow: var(--bb-img-hover-shadow-none) !important;
		}
	}
}
