/*!******************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./src/text-image/style.css ***!
  \******************************************************************************************************************************************************************************/
/**
 * Texte + image — layout proportions, inversion, masquage éléments.
 *
 * Sans align : reste dans le shell (fond = largeur contenu).
 * `.alignfull` / `.alignwide` (legacy) : breakout viewport + gutters container.
 */

.wp-block-techniconcept-text-image {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	/* Rythme vertical racine : assets/css/block-spacing.css */
	padding-inline: 0;
}

/* Full / legacy wide : fond edge-to-edge, contenu au container site. */
.wp-block-techniconcept-text-image:is(.alignfull, .alignwide),
.is-layout-constrained
	> .wp-block-techniconcept-text-image:is(.alignfull, .alignwide),
.has-global-padding
	> .wp-block-techniconcept-text-image:is(.alignfull, .alignwide) {
	box-sizing: border-box;
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	/* Rythme vertical : block-spacing.css (ne pas reposer ici). */
	padding-inline: var(--tc-container-pad-inline-start)
		var(--tc-container-pad-inline-end);
}

/*
 * Nested : pas de breakout / gutters horizontaux.
 * Rythme section porte par la racine (block-spacing) ; enfants sans second pad.
 */
.wp-block-column > .wp-block-techniconcept-text-image,
.wp-block-techniconcept-columns
	> .wp-block-column
	> .wp-block-techniconcept-text-image {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
	padding-inline: 0;
}

.wp-block-techniconcept-text-image > .wp-block-techniconcept-columns,
.wp-block-techniconcept-text-image > .wp-block-columns {
	display: flex !important;
	flex-wrap: nowrap !important;
	/* Colonnes à hauteur égale (image cover) ; alignement contenu via justify-content. */
	align-items: stretch;
	gap: 2rem;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding-inline: 0 !important;
}

/* Défaut : image à gauche, contenu à droite. */
.wp-block-techniconcept-text-image.is-media-position-left > .wp-block-techniconcept-columns,
.wp-block-techniconcept-text-image.is-media-position-left > .wp-block-columns {
	flex-direction: row !important;
}

/*
 * Masquage sans retirer les InnerBlocks (contenu conservé à la réactivation).
 * Descendants (pas seulement enfants directs) : wrappers éditeur Gutenberg.
 */
.wp-block-techniconcept-text-image.is-hide-intro
	.wp-block-column:last-child
	.wp-block-techniconcept-title.is-intro {
	display: none !important;
}

.wp-block-techniconcept-text-image.is-hide-title
	.wp-block-column:last-child
	.wp-block-techniconcept-title:not(.is-intro) {
	display: none !important;
}

.wp-block-techniconcept-text-image.is-hide-text
	.wp-block-column:last-child
	.wp-block-techniconcept-text {
	display: none !important;
}

.wp-block-techniconcept-text-image.is-hide-button
	.wp-block-column:last-child
	.wp-block-buttons {
	display: none !important;
}

/*
 * Filet CSS si les width core/column ne sont pas encore syncées.
 * 50/50 : flex égal pour absorber le gap (évite 50%+50%+gap > 100%).
 */
@media (min-width: 768px) {
	.wp-block-techniconcept-text-image.is-ratio-50-50
		> .wp-block-techniconcept-columns
		> .wp-block-column,
	.wp-block-techniconcept-text-image.is-ratio-50-50
		> .wp-block-columns
		> .wp-block-column {
		flex: 1 1 0 !important;
		width: auto !important;
		max-width: none !important;
	}

	.wp-block-techniconcept-text-image.is-ratio-66-33
		> .wp-block-techniconcept-columns
		> .wp-block-column:first-child,
	.wp-block-techniconcept-text-image.is-ratio-66-33
		> .wp-block-columns
		> .wp-block-column:first-child {
		flex-basis: 66.66% !important;
		width: 66.66% !important;
	}

	.wp-block-techniconcept-text-image.is-ratio-66-33
		> .wp-block-techniconcept-columns
		> .wp-block-column:last-child,
	.wp-block-techniconcept-text-image.is-ratio-66-33
		> .wp-block-columns
		> .wp-block-column:last-child {
		flex-basis: 33.33% !important;
		width: 33.33% !important;
	}
}

/* Inversé : texte à gauche, image à droite (DOM inchangé). */
.wp-block-techniconcept-text-image.is-media-position-right > .wp-block-techniconcept-columns,
.wp-block-techniconcept-text-image.is-media-position-right > .wp-block-columns {
	flex-direction: row-reverse !important;
}

.wp-block-techniconcept-text-image .wp-block-column {
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-self: stretch;
	height: auto;
	min-height: 100%;
}

/* Colonne média (1re dans le DOM) : pleine hauteur de la rangée. */
.wp-block-techniconcept-text-image
	> .wp-block-techniconcept-columns
	> .wp-block-column:first-child,
.wp-block-techniconcept-text-image
	> .wp-block-columns
	> .wp-block-column:first-child {
	align-self: stretch;
	justify-content: stretch;
}

.wp-block-techniconcept-text-image
	> .wp-block-techniconcept-columns
	> .wp-block-column:first-child
	> *,
.wp-block-techniconcept-text-image
	> .wp-block-columns
	> .wp-block-column:first-child
	> * {
	flex: 1 1 auto;
	height: 100%;
	min-height: 100%;
}

/*
 * Colonne contenu (intro / titre / texte / bouton) :
 * remplit la hauteur de la rangée ; ancrage vertical via toolbar
 * (is-vertically-aligned-top|center|bottom → justify-content).
 */
.wp-block-techniconcept-text-image
	> .wp-block-techniconcept-columns
	> .wp-block-column:last-child,
.wp-block-techniconcept-text-image
	> .wp-block-columns
	> .wp-block-column:last-child {
	display: flex !important;
	flex-direction: column;
	align-self: stretch;
	justify-content: center;
	min-height: 100%;
	height: auto;
	/* Espacements verticaux gérés par margins des enfants (gap titre=texte=bouton). */
	gap: 0;
}

.wp-block-techniconcept-text-image.is-vertically-aligned-top
	> .wp-block-techniconcept-columns
	> .wp-block-column:last-child,
.wp-block-techniconcept-text-image.is-vertically-aligned-top
	> .wp-block-columns
	> .wp-block-column:last-child {
	justify-content: flex-start;
}

.wp-block-techniconcept-text-image.is-vertically-aligned-center
	> .wp-block-techniconcept-columns
	> .wp-block-column:last-child,
.wp-block-techniconcept-text-image.is-vertically-aligned-center
	> .wp-block-columns
	> .wp-block-column:last-child {
	justify-content: center;
}

.wp-block-techniconcept-text-image.is-vertically-aligned-bottom
	> .wp-block-techniconcept-columns
	> .wp-block-column:last-child,
.wp-block-techniconcept-text-image.is-vertically-aligned-bottom
	> .wp-block-columns
	> .wp-block-column:last-child {
	justify-content: flex-end;
}

/* Ne pas flex-grow le texte : sinon le vide interne fausse l’écart avant le bouton. */

.wp-block-techniconcept-text-image .wp-block-techniconcept-image,
.wp-block-techniconcept-text-image .wp-block-column figure {
	display: flex;
	flex: 1 1 auto;
	width: 100%;
	height: 100%;
	margin: 0;
}

.wp-block-techniconcept-text-image .wp-block-column img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wp-block-techniconcept-text-image {
	--tc-text-image-stack-gap: 2rem;
}

/*
 * Intro / titre : padding latéral/haut à 0, filet accent conservé.
 * Écart titre→texte = écart texte→bouton = --tc-text-image-stack-gap.
 */
.wp-block-techniconcept-text-image .wp-block-techniconcept-title {
	--tc-title-pad: 0;
	padding-inline: 0 !important;
	padding-block-start: 0 !important;
	padding-block-end: 0 !important;
}

/* Place du filet : le titre gère le flex ; pas de padding-block forcé ici. */
.wp-block-techniconcept-text-image
	.wp-block-techniconcept-title.has-title-accent {
	/* Conserve le stack-gap titre→suite ; le filet est dans le flux flex. */
	padding-block-end: 0 !important;
}

.wp-block-techniconcept-text-image
	.wp-block-techniconcept-title.has-title-accent.has-title-accent-top {
	padding-block-start: 0 !important;
	padding-block-end: 0 !important;
}

.wp-block-techniconcept-text-image .wp-block-techniconcept-title.is-intro {
	/* Même intro que title.is-intro / Univers (pas de label-caps forcé). */
	font-size: var(--wp--preset--font-size--title, 1.25rem) !important;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
	color: var(--wp--preset--color--accent-strong, #287d63);
	margin-block-start: 0 !important;
	margin-block-end: 0.25rem !important;
}

.wp-block-techniconcept-text-image
	.wp-block-techniconcept-title:not(.is-intro) {
	font-size: var(--wp--preset--font-size--display, 2.25rem);
	line-height: 1.15;
	margin-block-start: 0 !important;
	margin-block-end: var(--tc-text-image-stack-gap, 0.75rem) !important;
}

/*
 * Intro après le titre : ordre flex (DOM inchangé) + margins adaptés.
 * Titre → intro (0.25rem) ; intro → texte (stack-gap).
 */
.wp-block-techniconcept-text-image.is-intro-after
	> .wp-block-techniconcept-columns
	> .wp-block-column:last-child
	> .wp-block-techniconcept-title.is-intro,
.wp-block-techniconcept-text-image.is-intro-after
	> .wp-block-columns
	> .wp-block-column:last-child
	> .wp-block-techniconcept-title.is-intro {
	order: 2;
}

.wp-block-techniconcept-text-image.is-intro-after
	> .wp-block-techniconcept-columns
	> .wp-block-column:last-child
	> .wp-block-techniconcept-title:not(.is-intro),
.wp-block-techniconcept-text-image.is-intro-after
	> .wp-block-columns
	> .wp-block-column:last-child
	> .wp-block-techniconcept-title:not(.is-intro) {
	order: 1;
}

.wp-block-techniconcept-text-image.is-intro-after
	> .wp-block-techniconcept-columns
	> .wp-block-column:last-child
	> .wp-block-techniconcept-text,
.wp-block-techniconcept-text-image.is-intro-after
	> .wp-block-columns
	> .wp-block-column:last-child
	> .wp-block-techniconcept-text,
.wp-block-techniconcept-text-image.is-intro-after
	> .wp-block-techniconcept-columns
	> .wp-block-column:last-child
	> p,
.wp-block-techniconcept-text-image.is-intro-after
	> .wp-block-columns
	> .wp-block-column:last-child
	> p {
	order: 3;
}

.wp-block-techniconcept-text-image.is-intro-after
	> .wp-block-techniconcept-columns
	> .wp-block-column:last-child
	> .wp-block-buttons,
.wp-block-techniconcept-text-image.is-intro-after
	> .wp-block-columns
	> .wp-block-column:last-child
	> .wp-block-buttons {
	order: 4;
}

.wp-block-techniconcept-text-image.is-intro-after:not(.is-hide-intro)
	.wp-block-techniconcept-title:not(.is-intro) {
	margin-block-end: 0.25rem !important;
}

.wp-block-techniconcept-text-image.is-intro-after:not(.is-hide-intro)
	.wp-block-techniconcept-title:not(.is-intro).has-title-accent {
	/*
	 * Écart filet→intro = 0.25rem (comme intro→titre sur la home).
	 * Le filet est dans le flux flex du titre — pas de padding-block forcé.
	 */
	margin-block-end: 0.25rem !important;
	padding-block-end: 0 !important;
}

.wp-block-techniconcept-text-image.is-intro-after:not(.is-hide-intro)
	.wp-block-techniconcept-title.is-intro {
	margin-block-end: var(--tc-text-image-stack-gap, 0.75rem) !important;
}

.wp-block-techniconcept-text-image
	.wp-block-column
	> .wp-block-techniconcept-text,
.wp-block-techniconcept-text-image .wp-block-column > p {
	margin-block-start: 0 !important;
	margin-block-end: var(--tc-text-image-stack-gap, 0.75rem) !important;
}

.wp-block-techniconcept-text-image .wp-block-buttons {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* Neutralise le margin-block WP entre InnerBlocks (sauf gaps stack ci-dessus). */
.wp-block-techniconcept-text-image
	> .wp-block-techniconcept-columns
	> .wp-block-column:last-child
	> .wp-block:not(.wp-block-techniconcept-text):not(.wp-block-buttons),
.wp-block-techniconcept-text-image
	> .wp-block-columns
	> .wp-block-column:last-child
	> .wp-block:not(.wp-block-techniconcept-text):not(.wp-block-buttons) {
	margin-block-start: 0 !important;
}

@media (max-width: 767px) {
	.wp-block-techniconcept-text-image > .wp-block-techniconcept-columns,
	.wp-block-techniconcept-text-image > .wp-block-columns,
	.wp-block-techniconcept-text-image.is-media-position-left > .wp-block-techniconcept-columns,
	.wp-block-techniconcept-text-image.is-media-position-left > .wp-block-columns,
	.wp-block-techniconcept-text-image.is-media-position-right > .wp-block-techniconcept-columns,
	.wp-block-techniconcept-text-image.is-media-position-right > .wp-block-columns {
		/* Empile image puis contenu (intro, titre, texte, bouton). */
		flex-direction: column !important;
		align-items: stretch;
	}

	.wp-block-techniconcept-text-image .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	/* Colonne média : image pleine largeur mobile. */
	.wp-block-techniconcept-text-image
		> .wp-block-techniconcept-columns
		> .wp-block-column:first-child,
	.wp-block-techniconcept-text-image
		> .wp-block-columns
		> .wp-block-column:first-child {
		order: 0;
	}

	.wp-block-techniconcept-text-image
		> .wp-block-techniconcept-columns
		> .wp-block-column:last-child,
	.wp-block-techniconcept-text-image
		> .wp-block-columns
		> .wp-block-column:last-child {
		order: 1;
	}

	.wp-block-techniconcept-text-image .wp-block-column img {
		width: 100%;
		height: auto;
		min-height: 12rem;
		object-fit: cover;
	}
}

/*
 * Variante éditeur `.hero-special-image` (pages type Services premium) :
 * sort du cadre bloc, collée sous la nav ; image pleine hauteur + fondu.
 */
.wp-block-techniconcept-text-image.hero-special-image,
.is-layout-constrained > .wp-block-techniconcept-text-image.hero-special-image,
.has-global-padding > .wp-block-techniconcept-text-image.hero-special-image {
	box-sizing: border-box;
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	margin-block-start: 0 !important;
	padding-block: 0 !important;
	padding-inline: 0 !important;
	background-color: var(--wp--preset--color--background, #fff);
}

.wp-block-techniconcept-text-image.hero-special-image
	> .wp-block-techniconcept-columns,
.wp-block-techniconcept-text-image.hero-special-image > .wp-block-columns {
	gap: 0;
	align-items: stretch;
	min-height: min(36rem, 70vh);
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding-inline: 0 !important;
}

.wp-block-techniconcept-text-image.hero-special-image
	> .wp-block-techniconcept-columns
	> .wp-block-column:last-child,
.wp-block-techniconcept-text-image.hero-special-image
	> .wp-block-columns
	> .wp-block-column:last-child {
	/* Place pour le fil d’Ariane absolu + air maquette. */
	justify-content: center;
	padding-block: 4.5rem 2.5rem;
	padding-inline: var(--tc-container-pad-inline-start, 1.5rem) 2rem;
	box-sizing: border-box;
}

/* Colonne média : image cover, déborde jusqu’au bord viewport. */
.wp-block-techniconcept-text-image.hero-special-image
	> .wp-block-techniconcept-columns
	> .wp-block-column:first-child,
.wp-block-techniconcept-text-image.hero-special-image
	> .wp-block-columns
	> .wp-block-column:first-child {
	position: relative;
	overflow: hidden;
	align-self: stretch;
}

.wp-block-techniconcept-text-image.hero-special-image.is-media-position-right
	> .wp-block-techniconcept-columns
	> .wp-block-column:first-child,
.wp-block-techniconcept-text-image.hero-special-image.is-media-position-right
	> .wp-block-columns
	> .wp-block-column:first-child {
	/* Colle le bord droit de l’image au viewport. */
	margin-inline-end: 0;
}

.wp-block-techniconcept-text-image.hero-special-image
	.wp-block-column:first-child
	.wp-block-techniconcept-image,
.wp-block-techniconcept-text-image.hero-special-image
	.wp-block-column:first-child
	.wp-block-image,
.wp-block-techniconcept-text-image.hero-special-image
	.wp-block-column:first-child
	figure {
	height: 100%;
	min-height: min(36rem, 70vh);
	margin: 0;
}

.wp-block-techniconcept-text-image.hero-special-image
	.wp-block-column:first-child
	img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* Image à droite (texte à gauche) : fondu sur le bord gauche de l’image. */
.wp-block-techniconcept-text-image.hero-special-image.is-media-position-right
	.wp-block-column:first-child
	img {
	-webkit-mask-image: linear-gradient(
		to right,
		transparent 0%,
		#000 22%
	);
	mask-image: linear-gradient(to right, transparent 0%, #000 22%);
}

/* Image à gauche : fondu sur le bord droit. */
.wp-block-techniconcept-text-image.hero-special-image.is-media-position-left
	.wp-block-column:first-child
	img {
	-webkit-mask-image: linear-gradient(
		to left,
		transparent 0%,
		#000 22%
	);
	mask-image: linear-gradient(to left, transparent 0%, #000 22%);
}

@media (max-width: 767px) {
	.wp-block-techniconcept-text-image.hero-special-image
		> .wp-block-techniconcept-columns,
	.wp-block-techniconcept-text-image.hero-special-image > .wp-block-columns {
		min-height: 0;
		gap: 1.25rem;
	}

	.wp-block-techniconcept-text-image.hero-special-image
		.wp-block-column:first-child
		.wp-block-techniconcept-image,
	.wp-block-techniconcept-text-image.hero-special-image
		.wp-block-column:first-child
		.wp-block-image,
	.wp-block-techniconcept-text-image.hero-special-image
		.wp-block-column:first-child
		figure {
		min-height: 16rem;
	}

	.wp-block-techniconcept-text-image.hero-special-image
		.wp-block-column:first-child
		img {
		-webkit-mask-image: none;
		mask-image: none;
	}

	.wp-block-techniconcept-text-image.hero-special-image
		> .wp-block-techniconcept-columns
		> .wp-block-column:last-child,
	.wp-block-techniconcept-text-image.hero-special-image
		> .wp-block-columns
		> .wp-block-column:last-child {
		padding-block: 0 1.5rem;
		padding-inline: var(--tc-container-pad-inline-start, 1.5rem)
			var(--tc-container-pad-inline-end, 1.5rem);
	}
}

/* Hero special → intro : rythme vertical porte par block-spacing.css. */


/*# sourceMappingURL=style-index.css.map*/