/* Global mobile UX/UI optimizations for CETV custom blocks. */

@media ( max-width: 900px ) {
	:where(
		.wp-block-cetv-home-hero,
		.wp-block-cetv-general-hero,
		.wp-block-cetv-hero-shop,
		.wp-block-cetv-home-half-cards,
		.wp-block-cetv-shop-featured-products,
		.wp-block-cetv-shop-category-products,
		.wp-block-cetv-product-cards,
		.wp-block-cetv-featured-services,
		.wp-block-cetv-custom-cards,
		.wp-block-cetv-card-slider,
		.wp-block-cetv-how-it-works,
		.wp-block-cetv-how-it-works-static,
		.wp-block-cetv-materials-grid,
		.wp-block-cetv-two-columns,
		.wp-block-cetv-testimonials,
		.wp-block-cetv-faq,
		.wp-block-cetv-professional-account,
		.wp-block-cetv-contact-hero,
		.wp-block-cetv-rendez-vous,
		.wp-block-cetv-location,
		.wp-block-cetv-contact-form
	) {
		--cetv-mobile-side-padding: 16px;
		box-sizing: border-box;
	}

	:where(
		.wp-block-cetv-home-hero,
		.wp-block-cetv-general-hero,
		.wp-block-cetv-hero-shop,
		.wp-block-cetv-home-half-cards,
		.wp-block-cetv-shop-featured-products,
		.wp-block-cetv-shop-category-products,
		.wp-block-cetv-product-cards,
		.wp-block-cetv-featured-services,
		.wp-block-cetv-custom-cards,
		.wp-block-cetv-card-slider,
		.wp-block-cetv-how-it-works,
		.wp-block-cetv-how-it-works-static,
		.wp-block-cetv-materials-grid,
		.wp-block-cetv-two-columns,
		.wp-block-cetv-testimonials,
		.wp-block-cetv-faq,
		.wp-block-cetv-professional-account,
		.wp-block-cetv-contact-hero,
		.wp-block-cetv-rendez-vous,
		.wp-block-cetv-location,
		.wp-block-cetv-contact-form
	) :where(h1, h2, h3, h4, h5, h6, p, a, li, span) {
		overflow-wrap: anywhere;
	}

	:where(
		.wp-block-cetv-home-hero,
		.wp-block-cetv-general-hero,
		.wp-block-cetv-hero-shop,
		.wp-block-cetv-home-half-cards,
		.wp-block-cetv-shop-featured-products,
		.wp-block-cetv-shop-category-products,
		.wp-block-cetv-product-cards,
		.wp-block-cetv-featured-services,
		.wp-block-cetv-custom-cards,
		.wp-block-cetv-card-slider,
		.wp-block-cetv-how-it-works,
		.wp-block-cetv-how-it-works-static,
		.wp-block-cetv-materials-grid,
		.wp-block-cetv-two-columns,
		.wp-block-cetv-testimonials,
		.wp-block-cetv-faq,
		.wp-block-cetv-professional-account,
		.wp-block-cetv-contact-hero,
		.wp-block-cetv-rendez-vous,
		.wp-block-cetv-location,
		.wp-block-cetv-contact-form
	) :where(.wp-block-button__link, button, [type="button"], [type="submit"], [role="button"]) {
		min-height: 44px;
		min-width: 44px;
	}

	:where(
		.wp-block-cetv-contact-form,
		.wp-block-cetv-contact-hero
	) :where(input, select, textarea) {
		font-size: 16px;
	}

	/* Global mobile flow:
	 * if a CETV block container has heading + image siblings, force:
	 * heading -> image -> remaining content.
	 */
	:where(
		.wp-block-cetv-home-hero,
		.wp-block-cetv-general-hero,
		.wp-block-cetv-hero-shop,
		.wp-block-cetv-home-half-cards,
		.wp-block-cetv-shop-featured-products,
		.wp-block-cetv-shop-category-products,
		.wp-block-cetv-product-cards,
		.wp-block-cetv-featured-services,
		.wp-block-cetv-custom-cards,
		.wp-block-cetv-card-slider,
		.wp-block-cetv-how-it-works,
		.wp-block-cetv-how-it-works-static,
		.wp-block-cetv-materials-grid,
		.wp-block-cetv-two-columns,
		.wp-block-cetv-testimonials,
		.wp-block-cetv-faq,
		.wp-block-cetv-professional-account,
		.wp-block-cetv-contact-hero,
		.wp-block-cetv-rendez-vous,
		.wp-block-cetv-location,
		.wp-block-cetv-contact-form,
		.wp-block-cetv-about-us,
		.wp-block-cetv-why-kitchen,
		.wp-block-cetv-segundo-why,
		.wp-block-cetv-segundo-method,
		.wp-block-cetv-segundo-advantages,
		.wp-block-cetv-realisations,
		.wp-block-cetv-realisations-gallery,
		.wp-block-cetv-realisations-main-slider,
		.wp-block-cetv-realisations-styles-slider
	) :where(.wp-block-group__inner-container, .wp-block-column__inner-container):has(> :is(.wp-block-heading, h1, h2, h3, h4, h5, h6)):has(> .wp-block-image) {
		display: flex;
		flex-direction: column;
	}

	:where(
		.wp-block-cetv-home-hero,
		.wp-block-cetv-general-hero,
		.wp-block-cetv-hero-shop,
		.wp-block-cetv-home-half-cards,
		.wp-block-cetv-shop-featured-products,
		.wp-block-cetv-shop-category-products,
		.wp-block-cetv-product-cards,
		.wp-block-cetv-featured-services,
		.wp-block-cetv-custom-cards,
		.wp-block-cetv-card-slider,
		.wp-block-cetv-how-it-works,
		.wp-block-cetv-how-it-works-static,
		.wp-block-cetv-materials-grid,
		.wp-block-cetv-two-columns,
		.wp-block-cetv-testimonials,
		.wp-block-cetv-faq,
		.wp-block-cetv-professional-account,
		.wp-block-cetv-contact-hero,
		.wp-block-cetv-rendez-vous,
		.wp-block-cetv-location,
		.wp-block-cetv-contact-form,
		.wp-block-cetv-about-us,
		.wp-block-cetv-why-kitchen,
		.wp-block-cetv-segundo-why,
		.wp-block-cetv-segundo-method,
		.wp-block-cetv-segundo-advantages,
		.wp-block-cetv-realisations,
		.wp-block-cetv-realisations-gallery,
		.wp-block-cetv-realisations-main-slider,
		.wp-block-cetv-realisations-styles-slider
	) :where(.wp-block-group__inner-container, .wp-block-column__inner-container):has(> :is(.wp-block-heading, h1, h2, h3, h4, h5, h6)):has(> .wp-block-image) > :is(.wp-block-heading, h1, h2, h3, h4, h5, h6) {
		order: 1;
	}

	:where(
		.wp-block-cetv-home-hero,
		.wp-block-cetv-general-hero,
		.wp-block-cetv-hero-shop,
		.wp-block-cetv-home-half-cards,
		.wp-block-cetv-shop-featured-products,
		.wp-block-cetv-shop-category-products,
		.wp-block-cetv-product-cards,
		.wp-block-cetv-featured-services,
		.wp-block-cetv-custom-cards,
		.wp-block-cetv-card-slider,
		.wp-block-cetv-how-it-works,
		.wp-block-cetv-how-it-works-static,
		.wp-block-cetv-materials-grid,
		.wp-block-cetv-two-columns,
		.wp-block-cetv-testimonials,
		.wp-block-cetv-faq,
		.wp-block-cetv-professional-account,
		.wp-block-cetv-contact-hero,
		.wp-block-cetv-rendez-vous,
		.wp-block-cetv-location,
		.wp-block-cetv-contact-form,
		.wp-block-cetv-about-us,
		.wp-block-cetv-why-kitchen,
		.wp-block-cetv-segundo-why,
		.wp-block-cetv-segundo-method,
		.wp-block-cetv-segundo-advantages,
		.wp-block-cetv-realisations,
		.wp-block-cetv-realisations-gallery,
		.wp-block-cetv-realisations-main-slider,
		.wp-block-cetv-realisations-styles-slider
	) :where(.wp-block-group__inner-container, .wp-block-column__inner-container):has(> :is(.wp-block-heading, h1, h2, h3, h4, h5, h6)):has(> .wp-block-image) > .wp-block-image {
		order: 2;
	}

	:where(
		.wp-block-cetv-home-hero,
		.wp-block-cetv-general-hero,
		.wp-block-cetv-hero-shop,
		.wp-block-cetv-home-half-cards,
		.wp-block-cetv-shop-featured-products,
		.wp-block-cetv-shop-category-products,
		.wp-block-cetv-product-cards,
		.wp-block-cetv-featured-services,
		.wp-block-cetv-custom-cards,
		.wp-block-cetv-card-slider,
		.wp-block-cetv-how-it-works,
		.wp-block-cetv-how-it-works-static,
		.wp-block-cetv-materials-grid,
		.wp-block-cetv-two-columns,
		.wp-block-cetv-testimonials,
		.wp-block-cetv-faq,
		.wp-block-cetv-professional-account,
		.wp-block-cetv-contact-hero,
		.wp-block-cetv-rendez-vous,
		.wp-block-cetv-location,
		.wp-block-cetv-contact-form,
		.wp-block-cetv-about-us,
		.wp-block-cetv-why-kitchen,
		.wp-block-cetv-segundo-why,
		.wp-block-cetv-segundo-method,
		.wp-block-cetv-segundo-advantages,
		.wp-block-cetv-realisations,
		.wp-block-cetv-realisations-gallery,
		.wp-block-cetv-realisations-main-slider,
		.wp-block-cetv-realisations-styles-slider
	) :where(.wp-block-group__inner-container, .wp-block-column__inner-container):has(> :is(.wp-block-heading, h1, h2, h3, h4, h5, h6)):has(> .wp-block-image) > :not(.wp-block-image):not(.wp-block-heading):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
		order: 3;
	}

	/* Comment ça marche cards keep semantic flow on mobile:
	 * icon -> title -> paragraph.
	 */
	.wp-block-cetv-how-it-works .cetv-how-it-works__card > .wp-block-image,
	.wp-block-cetv-how-it-works .cetv-how-it-works__card > .wp-block-group__inner-container > .wp-block-image,
	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card > .wp-block-image,
	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card > .wp-block-group__inner-container > .wp-block-image,
	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card > .cetv-how-it-works-static__card-icon {
		order: 1 !important;
	}

	.wp-block-cetv-how-it-works .cetv-how-it-works__card > .wp-block-heading,
	.wp-block-cetv-how-it-works .cetv-how-it-works__card > .wp-block-group__inner-container > .wp-block-heading,
	.wp-block-cetv-how-it-works .cetv-how-it-works__card > .cetv-how-it-works__card-title,
	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card > .cetv-how-it-works-static__card-content,
	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card > .wp-block-group__inner-container > .cetv-how-it-works-static__card-title,
	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card > .wp-block-group__inner-container > .wp-block-heading,
	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card > .cetv-how-it-works-static__card-title {
		order: 2 !important;
	}

	.wp-block-cetv-how-it-works .cetv-how-it-works__card > .wp-block-paragraph,
	.wp-block-cetv-how-it-works .cetv-how-it-works__card > .wp-block-group__inner-container > .wp-block-paragraph,
	.wp-block-cetv-how-it-works .cetv-how-it-works__card > .cetv-how-it-works__card-text {
		order: 3 !important;
	}

	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card > .wp-block-group__inner-container {
		display: flex;
		flex-direction: column;
	}

	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card > .wp-block-group__inner-container > .cetv-how-it-works-static__card-text,
	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card > .wp-block-group__inner-container > .wp-block-paragraph {
		order: 3 !important;
	}

	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card-content {
		display: flex;
		flex-direction: column;
		gap: 12px;
	}

	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card-content > .cetv-how-it-works-static__card-title,
	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card-content > .wp-block-heading {
		order: 1;
	}

	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card-content > .cetv-how-it-works-static__card-text,
	.wp-block-cetv-how-it-works-static .cetv-how-it-works-static__card-content > .wp-block-paragraph {
		order: 2;
	}

	/* Consistent touch-friendly sliders/carousels. */
	:where(
		.wp-block-cetv-shop-featured-products .cetv-featured-products-block__track,
		.wp-block-cetv-shop-category-products .cetv-category-products-block__products-track,
		.wp-block-cetv-custom-cards .cetv-custom-cards-block__track,
		.wp-block-cetv-card-slider .cetv-card-slider-block__track,
		.wp-block-cetv-product-cards .cetv-product-cards-block__track
	) {
		scroll-snap-type: x mandatory;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
	}

	:where(
		.wp-block-cetv-shop-featured-products .cetv-featured-products-block__track,
		.wp-block-cetv-shop-category-products .cetv-category-products-block__products-track,
		.wp-block-cetv-custom-cards .cetv-custom-cards-block__track,
		.wp-block-cetv-card-slider .cetv-card-slider-block__track,
		.wp-block-cetv-product-cards .cetv-product-cards-block__track
	)::-webkit-scrollbar {
		display: none;
	}

	:where(
		.wp-block-cetv-shop-featured-products .cetv-featured-products-block__card,
		.wp-block-cetv-shop-category-products .cetv-category-products-block__product,
		.wp-block-cetv-custom-cards .cetv-custom-cards-block__card,
		.wp-block-cetv-card-slider .cetv-card-slider-block__card,
		.wp-block-cetv-product-cards .cetv-product-cards-block__card
	) {
		scroll-snap-align: start;
	}

	/* Keep content width stable in contact hero on narrow screens. */
	.wp-block-cetv-contact-hero .cetv-contact-hero__columns.wp-block-columns {
		gap: 20px !important;
	}

	/* Unified mobile text rail:
	 * these blocks already sit inside the page side padding, so their
	 * own horizontal padding creates a double offset vs the rest.
	 */
	#page .entry-content > .wp-block-cetv-card-slider,
	#page .entry-content > .wp-block.wp-block-cetv-card-slider,
	#page .entry-content > .wp-block-cetv-testimonials,
	#page .entry-content > .wp-block.wp-block-cetv-testimonials {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.wp-block-cetv-contact-hero .cetv-contact-hero__left.wp-block-column,
	.wp-block-cetv-contact-hero .cetv-contact-hero__right.wp-block-column {
		min-width: 0;
	}

	.wp-block-cetv-contact-hero .cetv-contact-hero__right .wp-block-cetv-contact-form,
	.wp-block-cetv-contact-hero .cetv-contact-hero__right .cetv-contact-form-block {
		width: 100%;
		max-width: none;
	}

	/* Slider controls remain easy to tap on mobile when visible. */
	.cetv-card-slider-block__control,
	.cetv-custom-cards-block__control,
	.cetv-featured-products-block__control,
	.cetv-category-products-block__control {
		width: 44px;
		height: 44px;
	}

	.cetv-card-slider-block__control-icon,
	.cetv-card-slider-block__control-icon svg,
	.cetv-custom-cards-block__control-icon,
	.cetv-custom-cards-block__control-icon svg,
	.cetv-featured-products-block__control-icon,
	.cetv-featured-products-block__control-icon svg,
	.cetv-category-products-block__control-icon,
	.cetv-category-products-block__control-icon svg {
		width: 44px;
		height: 44px;
	}
}

@media ( max-width: 640px ) {
	:where(
		.wp-block-cetv-home-hero,
		.wp-block-cetv-general-hero,
		.wp-block-cetv-hero-shop,
		.wp-block-cetv-home-half-cards,
		.wp-block-cetv-shop-featured-products,
		.wp-block-cetv-shop-category-products,
		.wp-block-cetv-product-cards,
		.wp-block-cetv-featured-services,
		.wp-block-cetv-custom-cards,
		.wp-block-cetv-card-slider,
		.wp-block-cetv-how-it-works,
		.wp-block-cetv-how-it-works-static,
		.wp-block-cetv-materials-grid,
		.wp-block-cetv-two-columns,
		.wp-block-cetv-testimonials,
		.wp-block-cetv-faq,
		.wp-block-cetv-professional-account,
		.wp-block-cetv-contact-hero,
		.wp-block-cetv-rendez-vous,
		.wp-block-cetv-location,
		.wp-block-cetv-contact-form
	) :where(.wp-block-button__link, button, [type="button"], [type="submit"]) {
		padding-inline: 18px;
	}

	/* Avoid horizontal clipping on tiny screens in slider-based cards. */
	.wp-block-cetv-shop-featured-products .cetv-featured-products-block__card,
	.wp-block-cetv-custom-cards .cetv-custom-cards-block__card,
	.wp-block-cetv-product-cards .cetv-product-cards-block__card {
		max-width: calc(100vw - 42px);
	}

	.wp-block-cetv-shop-category-products .cetv-category-products-block__product {
		max-width: calc(100vw - 42px);
	}
}

@media (prefers-reduced-motion: reduce) {
	:where(
		.cetv-card-slider-block__track,
		.cetv-custom-cards-block__track,
		.cetv-category-products-block__products-track,
		.cetv-featured-products-block__track,
		.cetv-product-cards-block__track
	) {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}
