/* Style pour infobulles fenetres noires pourcentage slider */
.tooltip-title-bt .tooltip-inner {
	font-size: 11.5px !important;
	font-weight: 700 !important;
	max-width: 320px !important;
	white-space: nowrap !important;
	background-color: #000000 !important;
	color: #ffffff !important;
	padding: 4px 8px !important;
	border-radius: 4px !important;
	line-height: 1.3 !important;
	box-shadow: 0 2px 6px rgba(0,0,0,0.35) !important;
}
.tooltip-title-bt .tooltip-arrow::before {
	border-right-color: #000000 !important;
	border-left-color: #000000 !important;
	border-top-color: #000000 !important;
	border-bottom-color: #000000 !important;
}

/* Styles globaux pour les boutons d'information intégrés (22px de haut, 16px de large) */
#simulateur .formRow {
	position: relative !important;
}

/* Style par défaut pour tous les boutons d'infobulle (carré autonome) */
#simulateur .tootltipButton {
	width: 16px !important;
	height: 22px !important;
	min-width: 16px !important;
	max-width: 16px !important;
	border-radius: 4px !important;
	background: linear-gradient(to bottom, #fafcfd 0%, #d7dfe4 100%) !important;
	border: 1px solid #ccc !important;
	margin: 0 0 0 5px !important;
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	cursor: pointer !important;
	box-sizing: border-box !important;
	transition: background 0.2s ease, transform 0.2s ease !important;
}

#simulateur .tootltipButton:hover {
	background: linear-gradient(to bottom, #f0f4f7 0%, #c4cbd1 100%) !important;
	transform: scale(1.05) !important;
}

#simulateur .tootltipButton img {
	display: none !important;
}

#simulateur .tootltipButton::after {
	content: "i" !important;
	color: #82aab8 !important;
	font-family: "Albert Sans", "Inter", sans-serif !important;
	font-weight: bold !important;
	font-style: italic !important;
	font-size: 12px !important;
	line-height: 1 !important;
	display: block !important;
}

/* Positionnement et fusion pour les champs de saisie textuels/selects */
#simulateur .formRow:has(input:not([type="checkbox"]):not([type="radio"]):not([type="range"])) .tooltipss,
#simulateur .formRow:has(select) .tooltipss,
#simulateur .formRow:has(.fakeInput) .tooltipss,
#simulateur .formRGroup > .tooltipss,
#simulateur .ligne .tooltipss {
	position: absolute !important;
	right: 0 !important;
	bottom: 0 !important;
	top: auto !important;
	display: flex !important;
	align-items: center !important;
	height: 22px !important;
	margin: 0 !important;
	padding: 0 !important;
	z-index: 5 !important;
}

/* Assurer un alignement parfait sur mobile et desktop */
#simulateur .formRow,
#simulateur .formRGroup,
#simulateur .ligne {
	padding-bottom: 0 !important;
}

/* Alignement spécifique pour les indicateurs (toujours sur une seule ligne) */
#simulateur .ligne {
	display: flex !important;
	align-items: center !important;
}
#simulateur .ligne .tooltipss {
	top: 50% !important;
	transform: translateY(-50%) !important;
	bottom: auto !important;
}

/* Alignements spécifiques pour tablettes et ordinateurs */
@media (min-width: 768px) {
	#simulateur .formRow,
	#simulateur .formRGroup {
		display: flex !important;
		align-items: center !important;
	}

	#simulateur .formRow:has(input:not([type="checkbox"]):not([type="radio"]):not([type="range"])) .tooltipss,
	#simulateur .formRow:has(select) .tooltipss,
	#simulateur .formRow:has(.fakeInput) .tooltipss,
	#simulateur .formRGroup > .tooltipss {
		top: 50% !important;
		transform: translateY(-50%) !important;
		bottom: auto !important;
	}

	#simulateur .formRow label,
	#simulateur .formRGroup label,
	#simulateur .formRow .champDeroulant label,
	#simulateur .formRGroup .label {
		margin-bottom: 0 !important;
		padding-bottom: 0 !important;
		margin-top: 0 !important;
		padding-top: 0 !important;
	}

	#simulateur .formRow .devise,
	#simulateur .formRGroup .devise,
	#simulateur .ligne .devise {
		top: 50% !important;
		transform: translateY(-50%) !important;
		bottom: auto !important;
	}

	#simulateur .likeInput .devise {
		top: 1px !important;
		transform: none !important;
		bottom: auto !important;
	}
}

/* Alignements spécifiques pour mobile pour éviter tout décalage */
@media (max-width: 767px) {
	#simulateur .formRGroup {
		padding-bottom: 0 !important;
	}
	#simulateur .formRGroup .formRow:last-of-type {
		margin-bottom: 0 !important;
		padding-bottom: 0 !important;
	}
	#simulateur .formRGroup .formRow:last-of-type input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
	#simulateur .formRGroup .formRow:last-of-type select {
		margin-bottom: 0 !important;
	}

	#simulateur .formRow .devise,
	#simulateur .formRGroup .devise {
		bottom: 1px !important;
		top: auto !important;
		transform: none !important;
	}

	#simulateur .likeInput .devise {
		top: 1px !important;
		bottom: auto !important;
		transform: none !important;
	}

	#simulateur .ligne .devise {
		top: 50% !important;
		transform: translateY(-50%) !important;
		bottom: auto !important;
	}
}

/* Quand il est fusionné, le bouton d'infobulle perd ses arrondis gauches et sa bordure gauche */
#simulateur .formRow:has(input:not([type="checkbox"]):not([type="radio"]):not([type="range"])) .tootltipButton,
#simulateur .formRow:has(select) .tootltipButton,
#simulateur .formRow:has(.fakeInput) .tootltipButton,
#simulateur .formRGroup > .tooltipss .tootltipButton,
#simulateur .likeInput .tootltipButton,
#simulateur .ligne .tootltipButton {
	border-radius: 0 4px 4px 0 !important;
	border: 1px solid #ccc !important;
	border-left: none !important;
	margin: 0 !important;
}

#simulateur .formRow:has(input:not([type="checkbox"]):not([type="radio"]):not([type="range"])) .tootltipButton:hover,
#simulateur .formRow:has(select) .tootltipButton:hover,
#simulateur .formRow:has(.fakeInput) .tootltipButton:hover,
#simulateur .formRGroup > .tooltipss .tootltipButton:hover,
#simulateur .likeInput .tootltipButton:hover,
#simulateur .ligne .tootltipButton:hover {
	transform: none !important;
}

/* Assurer que tous les inputs textuels, selects, likeInput inputs et fakeInputs ont la même hauteur (22px) et s'alignent avec les boutons d'info */
#simulateur .formRow input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
#simulateur .formRow select,
#simulateur .likeInput input:not([type="range"]) {
	height: 22px !important;
	box-sizing: border-box !important;
	border: 1px solid #ccc !important;
	border-radius: 4px !important;
	font-size: 0.85em !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 6px !important;
	padding-right: 6px !important;
	line-height: 20px !important;
	margin-bottom: 0 !important;
	margin-top: 0 !important;
}

/* Bouton custom TMI/Régime fiscal : mêmes dimensions que les selects */
#simulateur .formRow .tmi-btn {
	height: 22px !important;
	box-sizing: border-box !important;
	border: 1px solid #ccc !important;
	border-radius: 4px !important;
	font-size: 0.85em !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 6px !important;
	padding-right: 22px !important;
	line-height: 20px !important;
	margin: 0 !important;
}

#simulateur .fakeInput {
	height: 22px !important;
	box-sizing: border-box !important;
	border: 1px solid #ccc !important;
	border-radius: 4px !important;
	font-size: 0.85em !important;
	padding: 0 6px !important;
	margin-bottom: 0 !important;
	margin-top: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* Fusionner les inputs et selects avec le bouton d'information (uniquement quand il n'y a PAS de devise) */
#simulateur .formRow input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not(:has(~ .devise)):has(~ .tooltipss),
#simulateur .formRow select:has(~ .tooltipss),
#simulateur .fakeInput:has(~ .tooltipss) {
	border-radius: 4px !important;
	border-right: none !important;
	padding-right: 24px !important;
}

#simulateur .formRow .likeInput:not(:has(.devise)):has(~ .tooltipss) input:not([type="range"]),
#simulateur .formRow .likeInput:not(:has(.devise)) input:has(~ .tooltipss):not([type="range"]),
#simulateur .likeInput:not(:has(.devise)) input:not([type="range"]) {
	border-radius: 4px !important;
	border-right: none !important;
	padding-right: 24px !important;
}


/* Alignement au haut pour les tooltips dans .likeInput (Apport envisagé, Financement de) */
#simulateur .formRow .likeInput .tooltipss,
#simulateur .likeInput .tooltipss {
	position: absolute !important;
	right: 0 !important;
	top: 0 !important;
	bottom: auto !important;
	transform: none !important;
}

/* Style global pour toutes les devises (unités m2, €, etc.) */
#simulateur .devise {
	position: absolute !important;
	height: 20px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 0.85em !important;
	color: #555 !important;
	pointer-events: none !important;
	z-index: 3 !important;
	margin: 0 !important;
	line-height: 1 !important;
	right: 6px !important;
}

/* Fusionner le dernier input d'un formRGroup (groupe de champs) avec son bouton d'information */
#simulateur .formRGroup:has(> .tooltipss) .formRow:last-of-type input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
#simulateur .formRGroup:has(> .tooltipss) .formRow:last-of-type select {
	border-radius: 4px !important;
	border-right: none !important;
	padding-right: 24px !important;
}

/* Ajuster le décalage à droite des devises pour ne pas chevaucher le bouton carré d'info */
#simulateur .devise:has(~ .tooltipss),
#simulateur .likeInput .devise:has(~ .tooltipss),
#simulateur .formRow .devise:has(~ .tooltipss),
#simulateur .formRGroup:has(> .tooltipss) .formRow:last-of-type .devise {
	right: 24px !important;
}

/* Force l'alignement en haut à droite des infobulles dans .likeInput */
#simulateur .formRow .likeInput .tooltipss,
#simulateur .likeInput .tooltipss {
	position: absolute !important;
	right: 0 !important;
	top: 0 !important;
	bottom: auto !important;
	transform: none !important;
}

/* Etape 6 - Juxtaposition bord à bord des icônes d'information et des selects */
#simulateur #sBaseCalcul6 .formRow select {
	border-radius: 4px 0 0 4px !important;
	border-right: none !important;
	padding-right: 6px !important;
}
#simulateur #sBaseCalcul6 .formRow .tooltipss {
	position: static !important;
	transform: none !important;
	display: flex !important;
	align-items: center !important;
	height: 22px !important;
	margin: 0 !important;
	padding: 0 !important;
}
#simulateur #sBaseCalcul6 .formRow .tootltipButton {
	border-radius: 0 4px 4px 0 !important;
	border-left: none !important;
	margin: 0 !important;
	height: 22px !important;
	width: 16px !important;
	min-width: 16px !important;
	max-width: 16px !important;
	box-sizing: border-box !important;
}

/* Etape 0 - Juxtaposition bord à bord des icônes d'information et des inputs/selects */
@media (min-width: 768px) {
	#simulateur #sBaseCalculBien .row-type-bien .tooltipss {
		position: static !important;
		transform: none !important;
		display: flex !important;
		align-items: center !important;
		height: 22px !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	#simulateur #sBaseCalculBien .row-type-bien .tootltipButton {
		border-radius: 0 4px 4px 0 !important;
		border-left: none !important;
		margin: 0 !important;
		height: 22px !important;
		width: 16px !important;
		min-width: 16px !important;
		max-width: 16px !important;
		box-sizing: border-box !important;
	}
}

/* Uniformisation de la taille verticale de tous les bandeaux d'étape */
#simulateur .titleEtape {
	display: flex !important;
	align-items: center !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
#simulateur .titleEtape p {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 1px !important;
	padding-bottom: 1px !important;
	line-height: normal !important;
}

/* Fix accordion wrapper and buttons to be transparent and not cover text */
#contentSbaseCalcul .accordion,
#contentSbaseCalcul .accordion-item,
#contentSbaseCalcul .accordion-header,
#contentSbaseCalcul .accordion-button {
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

/* Desktop position for all accordion buttons in formRows */
@media (min-width: 768px) {
	#contentSbaseCalcul .formRow > .accordion,
	#contentSbaseCalcul .formRow > .accordion-item {
		position: absolute !important;
		left: -35px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: 25px !important;
		margin: 0 !important;
	}
	#sBaseCalculPrincipal label[for="s_base_calcul_p1c5"] {
		white-space: nowrap !important;
	}
}

/* Harmonisation des dimensions horizontales des champs des étapes 2, 3 et 4 */
#sBaseCalculPrincipal .formRow > .input-unit-group,
#sBaseCalculPrincipal .formRow > .likeInput,
#ongletLoyer .formRow .input-unit-group,
#ongletCharges .formRow .input-unit-group {
	width: 176px !important;
	min-width: 176px !important;
	max-width: 176px !important;
	box-sizing: border-box !important;
	position: relative !important;
	display: block !important;
	height: 22px !important;
}

/* Champs avec unites : regles a haute specificite garantissant un espacement parfait sans chevauchement */
body #simulateur #sBaseCalcul .formRow .input-unit-group input,
body #simulateur #sBaseCalcul .formRow .likeInput input:not([type="range"]) {
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100% !important;
	height: 22px !important;
	box-sizing: border-box !important;
	display: block !important;
	position: relative !important;
	text-align: right !important;
	padding-left: 14px !important;
}

/* Etape 2 (Bien immobilier & frais d'acquisition) : unite € (largeur ~11px a right: 22px, bord gauche a 33px) */
body #simulateur #sBaseCalcul #sBaseCalculPrincipal .formRow .input-unit-group input,
body #simulateur #sBaseCalcul #sBaseCalculPrincipal .formRow .likeInput input:not([type="range"]) {
	padding-right: 48px !important;
	padding-left: 14px !important;
	text-align: right !important;
}

/* Etape 3 (Loyers) : unite €/mois ou €/month (largeur ~45-52px a right: 22px, bord gauche a 67-74px) */
body #simulateur #sBaseCalcul #ongletLoyer .formRow .input-unit-group input,
body #simulateur #sBaseCalcul #loyers-apartments-list .input-unit-group input,
body #simulateur #sBaseCalcul .apartment-block .input-unit-group input {
	padding-right: 82px !important;
	padding-left: 14px !important;
	text-align: right !important;
}

/* Etape 4 (Charges de proprietaire) : unite €/mois, €/an (largeur ~45px a right: 22px, bord gauche a 67px) */
body #simulateur #sBaseCalcul #ongletCharges .formRow .input-unit-group input {
	padding-right: 82px !important;
	padding-left: 14px !important;
	text-align: right !important;
}

/* Etape 5 (Financement / Credit) : unites %, an(s), €/mois */
body #simulateur #sBaseCalcul #ongletCredit .formRow .input-unit-group input,
body #simulateur #sBaseCalcul #ongletCredit .formRow .likeInput input:not([type="range"]) {
	padding-right: 48px !important;
	padding-left: 14px !important;
	text-align: right !important;
}
body #simulateur #sBaseCalcul #ongletCredit input#s_credit_p1c20Copy {
	padding-right: 60px !important;
	padding-left: 14px !important;
	text-align: right !important;
}
body #simulateur #sBaseCalcul #ongletCredit #mensualite .input-unit-group input {
	padding-right: 82px !important;
	padding-left: 14px !important;
	text-align: right !important;
}


/* Apport envisagé slider rail calibré à 100% de la largeur du champ (176px) */
#sBaseCalculPrincipal .formRow .likeInput[data-name="p1c7Cursor"] {
	width: 176px !important;
	min-width: 176px !important;
	max-width: 176px !important;
	display: block !important;
	position: relative !important;
	height: 22px !important;
}

#sBaseCalculPrincipal .formRow .likeInput[data-name="p1c7Cursor"] .progressBarCursor {
	display: block !important;
	position: relative !important;
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100% !important;
	margin-top: -2px !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	height: 2px !important;
	z-index: 10 !important;
	box-sizing: border-box !important;
}

#sBaseCalculPrincipal .formRow .likeInput[data-name="p1c7Cursor"] .progressBarCursor input[type="range"] {
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100% !important;
	display: block !important;
}

/* Positionnement unifié des devises et des infobulles sur tous les champs */
#sBaseCalculPrincipal .formRow .input-unit-group .devise,
#sBaseCalculPrincipal .formRow .likeInput .devise,
#ongletLoyer .formRow .input-unit-group .devise,
#ongletCharges .formRow .input-unit-group .devise {
	position: absolute !important;
	right: 22px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 0.85em !important;
	color: #666 !important;
	pointer-events: none !important;
	z-index: 5 !important;
	line-height: 1 !important;
	bottom: auto !important;
	left: auto !important;
	white-space: nowrap !important;
}

#sBaseCalculPrincipal .formRow .input-unit-group .tooltipss,
#sBaseCalculPrincipal .formRow .likeInput .tooltipss,
#ongletLoyer .formRow .input-unit-group .tooltipss,
#ongletCharges .formRow .input-unit-group .tooltipss {
	position: absolute !important;
	right: 0 !important;
	top: 0 !important;
	bottom: auto !important;
	left: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	height: 22px !important;
	width: auto !important;
	z-index: 6 !important;
}

#sBaseCalculPrincipal .formRow .input-unit-group .tootltipButton,
#sBaseCalculPrincipal .formRow .likeInput .tootltipButton,
#ongletLoyer .formRow .input-unit-group .tootltipButton,
#ongletCharges .formRow .input-unit-group .tootltipButton {
	margin-right: 0 !important;
	margin-left: 0 !important;
}

/* Alignement vertical parfait des champs des étapes 2, 3 et 4 sur les rails */
#sBaseCalculPrincipal .formRow.row1 {
	margin-right: 36px !important;
}
#sBaseCalculPrincipal .formRow.row1 label {
	margin-right: auto !important;
}

#ongletCharges .charges-rows-container > .formRow.row1 {
	margin-right: 36px !important;
}
#ongletCharges .charges-rows-container > .formRow.row1 label {
	margin-right: auto !important;
}
#ongletCharges .charges-facultatives-main-row .input-unit-group {
	margin-left: auto !important;
}

/* Collapsible section buttons inline styling */
.label-with-collapse {
	display: inline-flex !important;
	align-items: center !important;
	cursor: pointer !important;
}

/* Round yellow collapse/expand button wrapper */
.accordion-button-wrapper {
	width: 20px !important;
	height: 20px !important;
	min-width: 20px !important;
	max-width: 20px !important;
	border-radius: 50% !important;
	background-color: #fde8ad !important; /* Soft yellow matching screenshots */
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin-right: 6px !important;
	transition: transform 0.2s ease, background-color 0.2s ease !important;
	flex-shrink: 0 !important;
}

.accordion-button-wrapper:hover {
	background-color: #fcd980 !important;
}

/* Downward/upward small chevron arrow using border */
.accordion-arrow {
	border: solid #555 !important;
	border-width: 0 1.5px 1.5px 0 !important;
	display: inline-block !important;
	padding: 2.5px !important;
	transform: rotate(45deg) !important;
	transition: transform 0.2s ease !important;
	margin-top: -2px !important;
}

/* Rotate arrow when collapsed/expanded */
.accordion-button-wrapper.collapsed .accordion-arrow {
	transform: rotate(45deg) !important;
	margin-top: -2px !important;
}

.accordion-button-wrapper:not(.collapsed) .accordion-arrow {
	transform: rotate(-135deg) !important;
	margin-top: 2px !important;
}

/* On PC, align the label properly */
@media (min-width: 768px) {
	#sBaseCalculPrincipal label.label-with-collapse {
		justify-content: flex-end !important;
	}
}

/* Mobile specific: compress vertical padding and align texts */
@media (max-width: 767px) {
	/* Reduce row spacing on mobile in Etape 2 */
	#sBaseCalculPrincipal .formRow {
		padding: 3px 0 !important;
		margin-bottom: 2px !important;
	}
	#sBaseCalculPrincipal .baseFormGroup1 {
		margin-bottom: 2px !important;
	}

	/* Prevent outer shifts */
	#sBaseCalculPrincipal .formRow.row1 {
		padding: 3px 0 !important;
	}

	/* Labels left aligned next to button */
	#sBaseCalculPrincipal .formRow.row1 > label.label-with-collapse {
		justify-content: flex-start !important;
		width: auto !important;
		min-width: 0 !important;
		max-width: none !important;
		flex: 1 1 auto !important;
		text-align: left !important;
		display: inline-flex !important;
		align-items: center !important;
		flex-direction: row !important;
		white-space: normal !important;
		padding-right: 0 !important;
	}

	/* Specific styling to make split label lines closer on mobile */
	#sBaseCalculPrincipal .formRow.row1 > label.label-with-collapse .text-two-lines {
		display: inline-block !important;
		line-height: 1.15 !important;
		vertical-align: middle !important;
	}
}

/* Styling for rabbit icon inside information modal headers (2x larger) */
.rabbit-modal-icon {
	height: 64px !important;
	width: auto !important;
	max-height: 64px !important;
	object-fit: contain !important;
	display: inline-block !important;
	vertical-align: middle !important;
	margin-right: 12px !important;
	flex-shrink: 0 !important;
}

.modalInformation .modal-header {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: flex-start !important;
	padding: 10px 15px !important;
	background-color: #2F6975 !important;
	color: #f2f2f2 !important;
}

.modalInformation .modal-title {
	margin: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	font-size: 20px !important;
	font-weight: bold !important;
	color: #ffffff !important;
}

/* Tablette & mode intermédiaire : alignement vertical parfait de TOUTES les étapes les unes en dessous des autres */
@media screen and (max-width: 1199.98px) {
	#formSbaseCalcul {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: flex-start !important;
		width: 100% !important;
		padding: 0 15px !important;
		box-sizing: border-box !important;
	}

	#formSbaseCalcul #contentVisuel,
	#formSbaseCalcul #contentSbaseCalcul,
	#formSbaseCalcul #sIndicateurs {
		width: 100% !important;
		max-width: 640px !important;
		min-width: 0 !important;
		margin: 0 auto !important;
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		box-sizing: border-box !important;
	}

	#formSbaseCalcul #contentVisuel > div,
	#formSbaseCalcul #contentSbaseCalcul > div,
	#formSbaseCalcul #sIndicateurs > div,
	#formSbaseCalcul .tab50,
	.tab50,
	#typeAchat,
	#sBaseCalculPrincipal,
	#ongletLoyer,
	#ongletCharges,
	#ongletCredit,
	#sBaseCalcul6,
	#sResultatsSimulationContainer,
	#sBaseCalculBien {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		float: none !important;
	}

	#contentSbaseCalcul > #ongletCredit {
		margin-top: 0 !important;
		margin-bottom: 5px !important;
	}
	#contentSbaseCalcul > #sBaseCalcul6 {
		margin-top: 5px !important;
		margin-bottom: 0px !important;
	}
}

/* ------------------------------------------------------------- */
/* Positionnement des asterix (Rouges en haut a gauche, Bleues en bas a gauche) */
/* ------------------------------------------------------------- */
#simulateur .input-unit-group,
#simulateur .likeInput,
#simulateur .charge-input-wrapper,
#simulateur .travaux-col,
#simulateur .detail-field,
#simulateur .formRow.relative {
	position: relative !important;
}

/* Asterix rouges (Obligatoire) : coin haut gauche */
#simulateur span.obligatoire,
body #simulateur .formRow .input-unit-group span.obligatoire,
body #simulateur .formRow .likeInput span.obligatoire,
body #simulateur .charge-input-wrapper span.obligatoire,
body #simulateur .travaux-col span.obligatoire,
body #simulateur .detail-field span.obligatoire {
	position: absolute !important;
	left: 4px !important;
	top: 2px !important;
	bottom: auto !important;
	right: auto !important;
	transform: none !important;
	color: #d0021b !important;
	font-size: 13px !important;
	line-height: 1 !important;
	font-family: "Albert Sans", "Inter", sans-serif !important;
	font-weight: 700 !important;
	z-index: 10 !important;
	pointer-events: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Asterix bleues (Saisie possible) : coin bas gauche (juste en dessous des rouges, sans superposition) */
#simulateur span.saisiePossible,
body #simulateur .formRow .input-unit-group span.saisiePossible,
body #simulateur .formRow .likeInput span.saisiePossible,
body #simulateur .charge-input-wrapper span.saisiePossible,
body #simulateur .travaux-col span.saisiePossible,
body #simulateur .detail-field span.saisiePossible {
	position: absolute !important;
	left: 4px !important;
	top: auto !important;
	bottom: 2px !important;
	right: auto !important;
	transform: none !important;
	color: #0052cc !important;
	font-size: 13px !important;
	line-height: 1 !important;
	font-family: "Albert Sans", "Inter", sans-serif !important;
	font-weight: 700 !important;
	z-index: 10 !important;
	pointer-events: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* ============================================================================
   Classes remplaçant les anciens attributs style= des templates.
   :is(.classe, #_#_#_) donne à la règle la spécificité de 3 id (le second sélecteur ne
   correspond à rien) : comme le style inline qu'elle remplace, elle l'emporte sur les
   règles normales des autres feuilles, mais pas sur leurs !important ni sur element.style.
   ============================================================================ */

/* simulateur/etapes/_0listes.html.twig */
:is(.etape-0listes__simulation-launcher-wrapper, #_#_#_) {
	width: 100% !important;
	border: none !important;
	border-left: none !important;
	border-left-width: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin-top: 45px !important;
	margin-bottom: 20px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
:is(.etape-0listes__calculer-indicateurs, #_#_#_) {
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 13.5px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
:is(.etape-0listes__simu-light-separator, #_#_#_) {
	margin: 2px 0 1px 0;
}

/* simulateur/etapes/_1typeAchat.html.twig */
:is(.etape-1type-achat__type-achat-content, #_#_#_) {
	width: 100%;
	box-sizing: border-box;
	align-items: stretch;
}
:is(.etape-1type-achat__div, #_#_#_) {
	width: 50%;
	padding: 12px 16px;
	box-sizing: border-box;
	gap: 6px;
}
:is(.etape-1type-achat__locatif, #_#_#_) {
	cursor: pointer;
	width: 14px;
	height: 14px;
}
:is(.etape-1type-achat__label, #_#_#_) {
	margin: 0 !important;
	cursor: pointer;
	font-size: 0.9em;
	font-weight: normal;
	color: #333;
	line-height: 1;
}
:is(.etape-1type-achat__div-2, #_#_#_) {
	position: relative;
}
:is(.etape-1type-achat__label-2, #_#_#_) {
	margin: 0 !important;
	cursor: pointer;
	font-size: 0.9em;
	font-weight: normal;
	color: #333;
	line-height: 1;
	white-space: nowrap !important;
}
:is(.etape-1type-achat__div-3, #_#_#_) {
	width: 1px;
	background-color: var(--colorEtape2);
	margin: 10px 0;
	opacity: 0.8;
}
:is(.etape-1type-achat__div-4, #_#_#_) {
	width: 50%;
	padding: 12px 16px;
	box-sizing: border-box;
}
:is(.etape-1type-achat__label-3, #_#_#_) {
	margin: 0 !important;
	cursor: pointer;
	font-size: 0.9em;
	font-weight: normal;
	color: #333;
	line-height: 1;
	display: inline-block !important;
	white-space: nowrap !important;
}

/* simulateur/modeExpert/_modeExpertView.html.twig */
:is(.mode-expert-view__s-mode-expert-view-content, #_#_#_) {
	height: 708px;
	max-height: 708px;
	min-height: 708px;
	box-sizing: border-box;
	overflow: hidden;
}
:is(.mode-expert-view__div, #_#_#_) {
	padding: 4px 6px;
	box-sizing: border-box;
}
:is(#sModeExpertColGauche, .mode-expert-view__col-gauche, #_#_#_) {
	height: 100% !important;
	max-height: 100% !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	padding-bottom: 14px !important;
	scrollbar-width: thin;
	scrollbar-color: #94a3b8 transparent;
}
:is(#sModeExpertColGauche, .mode-expert-view__col-gauche)::-webkit-scrollbar {
	width: 6px;
}
:is(#sModeExpertColGauche, .mode-expert-view__col-gauche)::-webkit-scrollbar-track {
	background: transparent;
}
:is(#sModeExpertColGauche, .mode-expert-view__col-gauche)::-webkit-scrollbar-thumb {
	background: #cbd5e1;
	border-radius: 4px;
}
:is(#sModeExpertColGauche, .mode-expert-view__col-gauche)::-webkit-scrollbar-thumb:hover {
	background: #94a3b8;
}
:is(.mode-expert-view__div-2, #_#_#_) {
	background-color: #000000;
	color: #ffffff;
	text-align: center;
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 13.5px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 5px 12px;
	border-radius: 6px;
	margin-bottom: 6px;
}
:is(.mode-expert-view__div-3, #_#_#_) {
	background-color: #f2fbf4;
	border: 1.5px solid #7bb388;
	border-radius: 8px;
	padding: 7px 10px;
	margin-bottom: 6px;
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 10px;
	color: #1e293b;
	line-height: 1.35;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
:is(.mode-expert-view__div-4, #_#_#_) {
	text-align: center;
	font-weight: 800;
	margin-bottom: 5px;
	font-size: 10.5px;
	text-transform: uppercase;
	color: #134e2e;
	letter-spacing: 0.3px;
}
:is(.mode-expert-view__div-5, #_#_#_) {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
:is(.mode-expert-view__div-6, #_#_#_) {
	display: flex;
	align-items: flex-start;
	gap: 7px;
}
:is(.mode-expert-view__span, #_#_#_) {
	display: inline-block;
	width: 6px;
	height: 6px;
	min-width: 6px;
	background-color: #6da37d;
	margin-top: 3.5px;
	flex-shrink: 0;
	border-radius: 1px;
}
:is(.mode-expert-view__div-7, #_#_#_) {
	flex: 1;
}
:is(.mode-expert-view__expert-recap-bien-card, #_#_#_) {
	background: #ffffff;
	border: 1px solid #000000 !important;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 6px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.05);
	font-family: 'Albert Sans', 'Inter', sans-serif;
}
:is(.mode-expert-view__div-8, #_#_#_) {
	background-color: #2F6975;
	color: #ffffff;
	font-weight: 800;
	font-size: 11.5px;
	text-transform: uppercase;
	text-align: center;
	padding: 4px 10px;
	letter-spacing: 0.5px;
}
:is(.mode-expert-view__div-9, #_#_#_) {
	padding: 8px 16px;
	font-size: 11px;
	max-width: 340px;
	margin-left: auto !important;
	margin-right: auto !important;
	width: 100% !important;
	box-sizing: border-box !important;
}
:is(.mode-expert-view__span-2, #_#_#_) {
	color: #475569;
	font-weight: 600;
}
:is(.mode-expert-view__i, #_#_#_) {
	font-size: 10px;
}
:is(.mode-expert-view__span-3, #_#_#_) {
	font-size: 7px;
	vertical-align: middle;
}
:is(.mode-expert-view__div-10, #_#_#_) {
	padding: 2px 0;
}
:is(.mode-expert-view__expert-recap-apport-slider, #_#_#_) {
	height: 4px;
	width: 110px;
	accent-color: #2F6975;
	cursor: pointer;
	margin: 0;
}
:is(.mode-expert-view__expert-recap-apport-badge, #_#_#_) {
	background-color: #000000;
	color: #ffffff;
	font-size: 10px;
	font-weight: 700;
	padding: 2px 7px;
	border-radius: 4px;
	white-space: nowrap;
	line-height: 1.2;
	box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
:is(.mode-expert-view__div-11, #_#_#_) {
	width: 100%;
}
:is(.mode-expert-view__logo, #_#_#_) {
	width: 14px !important;
	height: 14px !important;
	object-fit: contain !important;
	filter: brightness(0) invert(1) !important;
	-webkit-filter: brightness(0) invert(1) !important;
	margin: 0 !important;
	display: inline-block !important;
}
:is(.mode-expert-view__i-2, #_#_#_) {
	color: #ffffff !important;
	font-size: 12px !important;
	margin-right: 2px !important;
}
:is(.mode-expert-view__div-12, #_#_#_) {
	background-color: #ffffff;
	border-radius: 8px;
	border: 1.5px solid #000000;
	padding: 4px 10px;
	box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
:is(.mode-expert-view__expert-pdf-sim-btn, #_#_#_) {
	cursor: pointer;
	flex: 1;
	justify-content: center;
}
:is(.mode-expert-view__hover-zoom, #_#_#_) {
	height: 30px;
	width: auto;
	transition: transform 0.15s ease;
}
:is(.mode-expert-view__span-4, #_#_#_) {
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 10px;
	font-weight: 800;
	color: #01677d;
	line-height: 1.2;
}
:is(.mode-expert-view__div-13, #_#_#_) {
	height: 24px;
	width: 1px;
	background-color: #cbd5e1;
	flex-shrink: 0;
}
:is(.mode-expert-view__span-5, #_#_#_) {
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 10px;
	font-weight: 800;
	color: #01677d;
	line-height: 1.2;
	white-space: nowrap;
}
:is(.mode-expert-view__analyse-profils-block, #_#_#_) {
	margin-bottom: 6px;
	font-family: 'Albert Sans', 'Inter', sans-serif;
}
:is(.mode-expert-view__div-14, #_#_#_) {
	background-color: #000000;
	color: #ffffff;
	padding: 5px 10px;
	border-radius: 8px 8px 0 0;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	display: flex;
	align-items: center;
	justify-content: space-between;
	letter-spacing: 0.3px;
}
:is(.mode-expert-view__div-15, #_#_#_) {
	display: flex;
	align-items: center;
	align-self: stretch;
	margin: -5px 0 -5px -10px;
	padding: 0 14px;
	border-right: 2px solid #ffffff;
	flex-shrink: 0;
}
:is(.mode-expert-view__header-icon, #_#_#_) {
	display: inline-flex !important;
	align-items: center;
	align-self: center;
	gap: 4px;
	flex-shrink: 0;
	margin: 0 0 0 10px !important;
	font-size: 0;
	line-height: 0;
	color: #ffffff;
}
:is(.mode-expert-view__header-icon svg, .mode-expert-view__header-icon img, #_#_#_) {
	display: block;
}
:is(.mode-expert-view__header-icon--profils img, #_#_#_) {
	margin: -4px 0;
	object-fit: contain;
}
:is(.mode-expert-view__header-icon--city, #_#_#_) {
	margin-right: -2px !important;
}
:is(.mode-expert-view__span-6, #_#_#_) {
	opacity: 0.5;
}
:is(.mode-expert-view__div-16, #_#_#_) {
	flex-grow: 1;
	text-align: center;
	margin: 0 4px;
	line-height: 1.25;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
:is(.mode-expert-view__span-7, #_#_#_) {
	font-size: 11px;
	text-transform: none;
	white-space: nowrap;
}
:is(.mode-expert-view__btn-download-analyse-profils-pdf, #_#_#_) {
	background-color: #ffffff;
	color: #000000;
	font-weight: 800;
	font-size: 10.5px;
	border-radius: 4px;
	padding: 2px 8px;
	text-transform: uppercase;
	align-items: center;
	gap: 4px;
	cursor: pointer;
	border: 1px solid #ffffff;
	box-shadow: 0 1px 3px rgba(0,0,0,0.25);
	line-height: 1.2;
}
:is(.mode-expert-view__i-3, #_#_#_) {
	font-size: 10px;
	color: #000000;
}
:is(.mode-expert-view__div-17, #_#_#_) {
	background-color: #ffffff;
	border: 2.5px solid #000000;
	border-top: none;
	border-radius: 0 0 10px 10px;
	padding: 3px 2px 6px 2px;
	display: flex;
	align-items: flex-end;
	justify-content: space-evenly;
}
:is(.mode-expert-view__div-18, #_#_#_) {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3px;
	flex: 1;
}
:is(.mode-expert-view__div-19, #_#_#_) {
	font-size: 8.5px;
	font-weight: 800;
	color: #000000;
	text-align: center;
	line-height: 1.1;
	min-height: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 3px;
}
:is(.mode-expert-view__info-expert-icon, #_#_#_) {
	font-size: 8.5px;
	color: #64748b;
	cursor: pointer;
	transition: all 0.15s ease;
}
:is(.mode-expert-view__div-20, #_#_#_) {
	width: 2px;
	background-color: #000000;
	align-self: stretch;
	margin: 0 1px;
}
:is(.mode-expert-view__div-21, #_#_#_) {
	font-size: 8.5px;
	font-weight: 900;
	color: #000000;
	text-align: center;
	line-height: 1.1;
	min-height: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 3px;
}
:is(.mode-expert-view__info-expert-icon-2, #_#_#_) {
	font-size: 8.5px;
	color: #01677d;
	cursor: pointer;
	transition: all 0.15s ease;
}
:is(.mode-expert-view__s-analyse-ville-card, #_#_#_) {
	border-color: #8f702d !important;
	border-left-color: #8f702d !important;
	background-color: #ffffff;
	border-style: solid;
	border-width: 1px;
	border-left-width: 10px;
	border-radius: 12px;
	overflow: hidden;
	padding: 0 0 2px 0;
}
:is(.mode-expert-view__title-etape, #_#_#_) {
	background-color: #8f702d !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 26px !important;
	padding: 0 !important;
	border-top-left-radius: 0 !important;
	width: 100% !important;
	margin: 0 !important;
	border-left: none !important;
}
:is(.mode-expert-view__p, #_#_#_) {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 100% !important;
	border-right: 2px solid #ffffff !important;
	border-left: none !important;
	border-radius: 0 !important;
	padding: 0 14px !important;
	margin: 0 !important;
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 11px !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	color: #ffffff !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	white-space: nowrap !important;
}
:is(.mode-expert-view__p-2, #_#_#_) {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 100% !important;
	padding-left: 10px !important;
	margin: 0 !important;
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 11px !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	color: #ffffff !important;
	flex-grow: 1 !important;
}
:is(.mode-expert-view__div-22, #_#_#_) {
	padding: 6px 12px 2px 12px !important;
	box-sizing: border-box !important;
}
:is(.mode-expert-view__div-23, #_#_#_) {
	margin-bottom: 6px !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
:is(.mode-expert-view__div-24, #_#_#_) {
	padding-left: 0;
	gap: 4px;
}
:is(.mode-expert-view__span-8, #_#_#_) {
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 9px;
	font-weight: 800;
	color: #64748b;
	white-space: nowrap;
}
:is(.mode-expert-view__ville-code-postal, #_#_#_) {
	width: 100%;
	height: 26px;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	padding: 2px 4px;
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: #1e293b;
	background-color: #ffffff;
	box-sizing: border-box;
	text-align: center;
}
:is(.mode-expert-view__div-25, #_#_#_) {
	padding-right: 0;
	gap: 4px;
}
:is(.mode-expert-view__ville-nom, #_#_#_) {
	width: 100%;
	height: 26px;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	padding: 2px 4px;
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: #1e293b;
	background-color: #ffffff;
	box-sizing: border-box;
	text-align: center;
	text-transform: uppercase;
}
:is(.mode-expert-view__div-26, #_#_#_) {
	margin-top: -6px !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
:is(.mode-expert-view__div-27, #_#_#_) {
	padding: 0 2px !important;
	box-sizing: border-box !important;
}
:is(.mode-expert-view__span-9, #_#_#_) {
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 9px;
	font-weight: 800;
	color: #64748b;
	text-transform: uppercase;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 20px !important;
	line-height: 11px;
	margin-bottom: 2px !important;
	overflow: visible !important;
	text-align: center;
	gap: 3px;
}
:is(.mode-expert-view__info-expert-icon-3, #_#_#_) {
	font-size: 9.5px;
	color: #8f702d;
	cursor: pointer;
	transition: all 0.15s ease;
}
:is(.mode-expert-view__ville-rentabilite-val, #_#_#_) {
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	padding: 2px 2px;
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 12.5px;
	font-weight: 900;
	color: #1e293b;
	background-color: #fff;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	min-height: 24px;
	align-items: center;
	justify-content: center;
}
:is(.mode-expert-view__svg, #_#_#_) {
	width: 100%;
	max-width: 65px;
	height: auto;
	margin: 2px auto 0 auto !important;
	display: block;
}
:is(.mode-expert-view__needle-rentabilite, #_#_#_) {
	transform: rotate(-80deg);
	transform-origin: 50px 50px;
	transition: transform 0.8s ease-in-out;
}
:is(.mode-expert-view__s-carte-overlay-central, #_#_#_) {
	background-color: #ffffff;
	border-radius: 8px;
	border: 1px solid #000000 !important;
	flex-direction: column;
	overflow: hidden;
	box-shadow: none !important;
	filter: none !important;
}
:is(.mode-expert-view__div-28, #_#_#_) {
	height: 36px;
	flex-shrink: 0;
}
:is(.mode-expert-view__span-10, #_#_#_) {
	font-size: 11px !important;
}
:is(.mode-expert-view__poi-status-badge, #_#_#_) {
	font-size: 10.5px;
}
:is(.mode-expert-view__btn-refresh-poi-map, #_#_#_) {
	font-size: 11px;
}
:is(.mode-expert-view__div-29, #_#_#_) {
	flex-shrink: 0;
}
:is(.mode-expert-view__poi-search-address, #_#_#_) {
	font-size: 11px;
	height: 26px;
}
:is(.mode-expert-view__div-30, #_#_#_) {
	height: 26px;
	background-color: #ffffff;
}
:is(.mode-expert-view__btn-radius-zoom-out, #_#_#_) {
	width: 26px;
	height: 26px;
	background-color: #4b5563;
	color: #ffffff;
	font-weight: bold;
	font-size: 14px;
	flex-shrink: 0;
	cursor: pointer;
}
:is(.mode-expert-view__div-31, #_#_#_) {
	font-size: 10.5px;
	white-space: nowrap;
	cursor: default;
	user-select: none;
}
:is(.mode-expert-view__btn-toggle-poi-categories, #_#_#_) {
	background-color: #f1a30c;
	background-image: linear-gradient(180deg, #fbb022 0%, #e59a04 100%);
	color: #000000;
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 800;
	text-align: center;
	padding: 2px 10px;
	cursor: pointer;
	border-radius: 3px;
	border: 1px solid #d97706;
	margin-top: 3px;
	user-select: none;
	box-shadow: 0 1px 2px rgba(0,0,0,0.12);
	display: flex;
	position: relative;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 24px;
	transition: filter 0.15s ease;
}
:is(.mode-expert-view__btn-toggle-all-pois, #_#_#_) {
	position: absolute;
	left: 4px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	background-color: #1e293b;
	color: #ffffff;
	border: 1px solid #0f172a;
	border-radius: 3px;
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.2;
	padding: 2px 8px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	box-shadow: 0 1px 2px rgba(0,0,0,0.25);
	white-space: nowrap;
	transition: background-color 0.15s ease, transform 0.1s ease;
}
:is(.mode-expert-view__btn-toggle-all-pois:hover, #_#_#_) {
	background-color: #0f172a;
	color: #ffffff;
}
:is(.mode-expert-view__btn-toggle-all-pois:active, #_#_#_) {
	transform: translateY(-50%) scale(0.97);
}
@media (max-width: 576px) {
	:is(.mode-expert-view__btn-toggle-all-pois, #_#_#_) {
		font-size: 9px;
		padding: 1.5px 5px;
		left: 2px;
	}
}
:is(.mode-expert-view__poi-categories-chevron, #_#_#_) {
	font-size: 11px;
	font-weight: 900;
	transition: transform 0.2s ease;
}
:is(.mode-expert-view__poi-categories-collapsible-wrapper, #_#_#_) {
	margin-top: 4px;
	padding: 4px 5px;
	background-color: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 5px;
	box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}
:is(.mode-expert-view__poi-category-filters-container, #_#_#_) {
	flex-direction: column;
	gap: 3px;
}
:is(.mode-expert-view__div-32, #_#_#_) {
	flex-wrap: nowrap;
}
:is(.mode-expert-view__btn-poi-select-all-badge, #_#_#_) {
	font-size: 8.5px;
	height: 21px;
	cursor: pointer;
	user-select: none;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__poi-select-all-checkbox, #_#_#_) {
	width: 10px;
	height: 10px;
	cursor: pointer;
	margin: 0;
	flex-shrink: 0;
}
:is(.mode-expert-view__span-11, #_#_#_) {
	color: #0f172a;
	font-weight: 800;
	white-space: nowrap;
}
:is(.mode-expert-view__active, #_#_#_) {
	color: #ffffff;
	background-color: #0d6efd;
	border-color: #0d6efd;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__form-check-input, #_#_#_) {
	width: 10px;
	height: 10px;
	margin: 0;
	flex-shrink: 0;
}
:is(.mode-expert-view__poi-badge-text-school, #_#_#_) {
	white-space: nowrap;
}
:is(.mode-expert-view__svg-2, #_#_#_) {
	vertical-align: middle;
	display: inline-block;
	margin-right: 2px;
}
:is(.mode-expert-view__active-2, #_#_#_) {
	color: #ffffff;
	background-color: #00b4d8;
	border-color: #00b4d8;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__active-3, #_#_#_) {
	color: #ffffff;
	background-color: #198754;
	border-color: #198754;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__active-4, #_#_#_) {
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__poi-badge-text-bakery, #_#_#_) {
	color: #000000 !important;
	white-space: nowrap;
}
:is(.mode-expert-view__active-5, #_#_#_) {
	color: #ffffff;
	background-color: #dc2626;
	border-color: #dc2626;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__active-6, #_#_#_) {
	color: #ffffff;
	background-color: #64748b;
	border-color: #64748b;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__active-7, #_#_#_) {
	color: #ffffff;
	background-color: #1e293b;
	border-color: #1e293b;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__active-8, #_#_#_) {
	color: #ffffff;
	background-color: #dc3545;
	border-color: #dc3545;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__active-9, #_#_#_) {
	color: #ffffff;
	background-color: #059669;
	border-color: #059669;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__poi-badge-text-tourism, #_#_#_) {
	color: #793d96 !important;
	white-space: nowrap;
}
:is(.mode-expert-view__active-10, #_#_#_) {
	color: #ffffff;
	background-color: #009bc7;
	border-color: #009bc7;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__active-11, #_#_#_) {
	color: #ffffff;
	background-color: #78350f;
	border-color: #78350f;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__active-12, #_#_#_) {
	color: #ffffff;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__poi-badge-text-technopole, #_#_#_) {
	color: #ffffff !important;
	white-space: nowrap;
}
:is(.mode-expert-view__active-13, #_#_#_) {
	color: #ffffff;
	background-color: #1d4ed8;
	border-color: #1d4ed8;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__active-14, #_#_#_) {
	color: #ffffff;
	background-color: #157347;
	border-color: #157347;
	font-size: 8.5px;
	height: 21px;
	margin: 0;
	min-width: 0;
}
:is(.mode-expert-view__poi-map-canvas, #_#_#_) {
	width: 100%;
	height: 100%;
	min-height: 250px;
	flex-grow: 1;
	z-index: 1;
}
:is(.mode-expert-view__poi-map-loader, #_#_#_) {
	z-index: 1000;
}
:is(.mode-expert-view__div-33, #_#_#_) {
	font-size: 12px;
}
:is(.mode-expert-view__div-34, #_#_#_) {
	padding: 4px 6px;
	box-sizing: border-box;
	height: 100%;
}
:is(.mode-expert-view__s-poi-tableau-overlay-right, #_#_#_) {
	border: 1px solid #000000 !important;
	border-radius: 8px;
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
:is(.mode-expert-view__div-35, #_#_#_) {
	min-height: 42px;
}
:is(.mode-expert-view__span-12, #_#_#_) {
	font-size: 11px !important;
	text-transform: uppercase;
	line-height: 1.2;
}
:is(.mode-expert-view__span-13, #_#_#_) {
	font-size: 10.5px;
	color: #cbd5e1 !important;
	font-weight: 500;
	margin-left: 22px;
	line-height: 1.2;
}
:is(.mode-expert-view__span-14, #_#_#_) {
	font-size: 10px;
	flex-shrink: 0;
	align-self: flex-start;
	margin-top: 2px;
}
:is(.mode-expert-view__poi-matrix-scroll-wrapper, #_#_#_) {
	overflow-x: auto;
	overflow-y: visible;
	max-height: none;
}
:is(.mode-expert-view__th, #_#_#_) {
	min-width: 120px;
}
:is(.mode-expert-view__poi-info-icon, #_#_#_) {
	cursor: pointer;
	font-size: 12px;
}
:is(.mode-expert-view__div-36, #_#_#_) {
	flex-grow: 1;
	margin: 0;
	padding: 0;
}
:is(.mode-expert-view__div-37, #_#_#_) {
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 700;
	color: #0d6efd;
	margin-bottom: 4px;
}
:is(.mode-expert-view__i-4, #_#_#_) {
	color: #0d6efd;
	font-size: 26px;
	margin-bottom: 10px;
	line-height: 1;
}
:is(.mode-expert-view__btn-retour-simulation-normale, #_#_#_) {
	font-family: 'Albert Sans', 'Inter', sans-serif;
	font-size: 14px;
	border-radius: 8px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	max-width: 380px;
}
:is(.mode-expert-view__expert-info-card-popover, #_#_#_) {
	position: fixed;
	z-index: 999999;
	width: 460px;
	max-width: 94vw;
	max-height: 84vh;
	overflow-y: auto;
	background: #ffffff;
	border-radius: 10px;
	font-family: 'Albert Sans', 'Inter', sans-serif;
}
:is(.mode-expert-view__expert-info-card-header, #_#_#_) {
	background: linear-gradient(135deg, #01677d, #028fae);
	z-index: 10;
}
:is(.mode-expert-view__expert-info-card-title, #_#_#_) {
	font-size: 12.5px;
	letter-spacing: 0.3px;
	text-transform: uppercase;
}
:is(.expert-header-score-num, #_#_#_) {
	color: #38bdf8 !important;
	font-weight: 800 !important;
}
:is(.mode-expert-view__btn-close-expert-info-card, #_#_#_) {
	font-size: 11px;
	cursor: pointer;
}
:is(.mode-expert-view__expert-info-card-body, #_#_#_) {
	font-size: 11.5px;
	line-height: 1.45;
	color: #1e293b;
	background-color: #ffffff;
}
.btn-adequacy-badge:hover {
	transform: scale(1.05);
	box-shadow: 0 3px 8px rgba(0, 0, 0, 0.2) !important;
}
.btn-adequacy-badge:active {
	transform: scale(0.97);
}
.adequacy-explanation-box {
	animation: adequacyFadeIn 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes adequacyFadeIn {
	from {
		opacity: 0;
		transform: translateY(-4px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* simulateur/ongletVisuel/_visuelTab.html.twig */
:is(.visuel-tab__div, #_#_#_) {
	width: 100% !important;
	display: flex !important;
	justify-content: center !important;
	margin-top: 12px !important;
	margin-bottom: 8px !important;
}
:is(.visuel-tab__div-2, #_#_#_) {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 auto !important;
	box-sizing: border-box !important;
}
:is(.visuel-tab__btn-analyse-annonce, #_#_#_) {
	user-select: none !important;
}

/* simulateur/simulateur.html.twig */
.simu-main-title-banner,
:is(.simulateur__simu-main-title-banner, #_#_#_) {
	background-color: #18667c !important;
	border-radius: 7px !important;
	padding: 7px 20px !important;
	font-family: 'Albert Sans', sans-serif !important;
	font-size: 18px !important;
	font-weight: 800 !important;
	color: #ffffff !important;
	text-align: center !important;
	margin: 0 auto !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	text-transform: uppercase !important;
	box-shadow: 0 4px 10px rgba(0,0,0,0.15) !important;
	letter-spacing: -0.5px !important;
	white-space: nowrap !important;
	line-height: 1.15 !important;
}
.simu-main-title-banner img,
:is(.simulateur__img, #_#_#_) {
	height: 20px !important;
	width: auto !important;
	vertical-align: middle !important;
	filter: brightness(0) invert(1) !important;
}

/* Bascule des icônes du bandeau de titre en Mode Expert */
body:not(.mode-expert-active) .simu-banner-icon-expert,
:not(.simu-title-clickable) > .simu-banner-icon-expert,
.simu-banner-icon-expert {
	display: none !important;
}

.simu-banner-icon-normal {
	display: inline-block !important;
}

body.mode-expert-active .simu-banner-icon-normal,
.simu-title-clickable .simu-banner-icon-normal {
	display: none !important;
}

body.mode-expert-active .simu-banner-icon-expert,
.simu-title-clickable .simu-banner-icon-expert {
	display: inline-block !important;
}

:is(.simulateur__span, #_#_#_) {
	color: #ffffff !important;
}
/* Mode expert : le titre devient un bouton de retour vers la vue normale */
:is(.simu-title-clickable, #_#_#_) {
	cursor: pointer !important;
	transition: transform 0.15s ease, filter 0.15s ease !important;
}
:is(.simu-title-clickable:hover, .simu-title-clickable:focus-visible, #_#_#_) {
	transform: translateY(-1px) !important;
	filter: brightness(1.12) !important;
	outline: none;
}
:is(.simu-title-clickable:active, #_#_#_) {
	transform: translateY(1px) !important;
}

/* Mode expert : bouton d'arrêt du chargement POI au-dessus de la carte */
:is(.mode-expert-view__btn-stop-poi, #_#_#_) {
	border-radius: 6px !important;
	font-size: 0.82rem !important;
	cursor: pointer !important;
	transition: transform 0.15s ease, filter 0.15s ease, background-color 0.15s ease !important;
}
:is(.mode-expert-view__btn-stop-poi:hover, .mode-expert-view__btn-stop-poi:focus-visible, #_#_#_) {
	transform: translateY(-1px) !important;
	filter: brightness(1.12) !important;
	outline: none !important;
}
:is(.mode-expert-view__btn-stop-poi:active, #_#_#_) {
	transform: translateY(1px) !important;
}

/* simulateur/etapes/_0listes.html.twig : anciens attributs style= (spécificité de 3 id, comme le style inline remplacé) */
:is(.etape-0listes__content-sbase-calcul, #_#_#_) {
	position: relative !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
}
:is(.etape-0listes__calculer-indicateurs-2, #_#_#_) {
	background-color: #0077b6 !important;
	border: none !important;
	color: #ffffff !important;
	padding: 7px 24px !important;
	border-radius: 6px !important;
	cursor: pointer !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	white-space: nowrap !important;
	margin: 0 auto !important;
}

/* simulateur/etapes/_1typeAchat.html.twig : anciens attributs style= (spécificité de 3 id, comme le style inline remplacé) */
:is(.etape-1type-achat__input, #_#_#_) {
	margin: 0 8px 0 0 !important;
}
:is(.etape-1type-achat__div-5, #_#_#_) {
	flex-wrap: nowrap !important;
}

/* simulateur/etapes/_6fiscalite.html.twig : anciens attributs style= (spécificité de 3 id, comme le style inline remplacé) */
:is(.etape-6fiscalite__div, #_#_#_) {
	display: none;
}

/* simulateur/modeExpert/_modeExpertView.html.twig : anciens attributs style= (spécificité de 3 id, comme le style inline remplacé) */
:is(.mode-expert-view__btn-echeancier, #_#_#_) {
	margin: 0 !important;
	border-radius: 4px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	height: 28px !important;
	flex: 1 !important;
	font-family: 'Albert Sans', 'Inter', sans-serif !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	background-color: #626567 !important;
	color: #ffffff !important;
	border: none !important;
	line-height: normal !important;
	padding: 0 !important;
	cursor: pointer !important;
	box-shadow: 0 1px 3px rgba(0,0,0,0.15) !important;
}
:is(.mode-expert-view__btn-tri-analyse, #_#_#_) {
	margin: 0 !important;
	border-radius: 4px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	height: 28px !important;
	flex: 1 !important;
	font-family: 'Albert Sans', 'Inter', sans-serif !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	background-color: #01677d !important;
	color: #ffffff !important;
	border: none !important;
	text-decoration: none !important;
	line-height: 28px !important;
	padding: 0 !important;
	cursor: pointer !important;
	text-align: center !important;
	box-shadow: 0 1px 3px rgba(0,0,0,0.15) !important;
}
:is(.mode-expert-view__analyse-profils-block-2, #_#_#_) {
	border: 1px solid #000000 !important;
	border-left: 10px solid #000000 !important;
	border-radius: 12px !important;
	overflow: hidden !important;
	background: #ffffff !important;
	padding: 0 0 2px 0 !important;
}
:is(.mode-expert-view__analyse-profils-block-2 .mode-expert-view__div-14, #_#_#_) {
	border-radius: 0 !important;
}
:is(.mode-expert-view__analyse-profils-block-2 .mode-expert-view__div-17, #_#_#_) {
	border: none !important;
	border-radius: 0 !important;
}
:is(#analyseProfilsBlock .score-circle .score-num-top, .mode-expert-view__analyse-profils-block .score-num-top, #_#_#_) {
	color: #0d6efd !important;
}
:is(.mode-expert-view__div-3, .mode-expert-view__expert-recap-bien-card, .mode-expert-view__div-12, .mode-expert-view__s-poi-tableau-overlay-right, .mode-expert-view__poi-categories-collapsible-wrapper, .mode-expert-view__analyse-profils-block, .mode-expert-view__s-analyse-ville-card, #_#_#_) {
	box-shadow: none !important;
	filter: none !important;
}
:is(.mode-expert-view__button, #_#_#_) {
	display: flex;
}
:is(.mode-expert-view__div-38, #_#_#_) {
	margin: 0 auto 0 auto !important;
	display: flex;
}
:is(.mode-expert-view__s-carte-overlay-central-2, #_#_#_) {
	display: flex !important;
	position: relative !important;
	margin: 0 0 8px 0 !important;
	padding: 0 !important;
	height: calc(100% - 8px) !important;
	min-height: 0 !important;
	border: 1px solid #000000 !important;
	box-shadow: none !important;
	filter: none !important;
}
:is(.mode-expert-view__div-39, #_#_#_) {
	border-color: #cbd5e1 !important;
}
:is(.mode-expert-view__poi-categories-collapsible-wrapper-2, #_#_#_) {
	display: none;
}
:is(.mode-expert-view__btn-poi-select-all-badge-2, #_#_#_) {
	background-color: #f1f5f9 !important;
	border: 1.2px solid #94a3b8 !important;
	border-radius: 4px !important;
	padding: 0 4px !important;
}
:is(.mode-expert-view__label, #_#_#_) {
	border-radius: 4px !important;
	padding: 0 4px !important;
}
:is(.mode-expert-view__label-2, #_#_#_) {
	background-color: #ffc107 !important;
	color: #000000 !important;
	border: 1.2px solid #d39e00 !important;
	border-radius: 4px !important;
	font-weight: bold !important;
	padding: 0 4px !important;
}
:is(.mode-expert-view__input, #_#_#_) {
	border-color: #000000 !important;
}
:is(.mode-expert-view__label-3, #_#_#_) {
	background-color: #ffffff !important;
	color: #793d96 !important;
	border: 1.2px solid #793d96 !important;
	border-radius: 4px !important;
	font-weight: bold !important;
	padding: 0 4px !important;
}
:is(.mode-expert-view__input-2, #_#_#_) {
	border-color: #793d96 !important;
}
:is(.mode-expert-view__label-4, #_#_#_) {
	background-color: #ffff99 !important;
	color: #000000 !important;
	border: 1.2px solid #cccc7a !important;
	border-radius: 4px !important;
	font-weight: bold !important;
	padding: 0 4px !important;
}
:is(.mode-expert-view__label-5, #_#_#_) {
	background-color: #a6a6a6 !important;
	color: #000000 !important;
	border: 1.2px solid #808080 !important;
	border-radius: 4px !important;
	font-weight: bold !important;
	padding: 0 4px !important;
}
:is(.mode-expert-view__label-6, #_#_#_) {
	background-color: #948a54 !important;
	color: #000000 !important;
	border: 1.2px solid #7a7244 !important;
	border-radius: 4px !important;
	font-weight: bold !important;
	padding: 0 4px !important;
}
:is(.mode-expert-view__label-7, #_#_#_) {
	background-color: #215967 !important;
	border: 1.2px solid #215967 !important;
	border-radius: 4px !important;
	font-weight: bold !important;
	padding: 0 4px !important;
}
:is(.mode-expert-view__input-3, #_#_#_) {
	border-color: #ffffff !important;
}
:is(.mode-expert-view__label-8, #_#_#_) {
	background-color: #92cddc !important;
	color: #000000 !important;
	border: 1.2px solid #7abacb !important;
	border-radius: 4px !important;
	font-weight: bold !important;
	padding: 0 4px !important;
}
:is(.mode-expert-view__btn-retour-simulation-normale-2, #_#_#_) {
	background-color: #0d6efd !important;
	border-color: #0d6efd !important;
}
:is(.mode-expert-view__expert-info-card-popover-2, #_#_#_) {
	display: none;
	border: 2px solid #01677d !important;
	box-shadow: 0 16px 45px rgba(0,0,0,0.35) !important;
}

/* simulateur/ongletVisuel/_visuelTab.html.twig : anciens attributs style= (spécificité de 3 id, comme le style inline remplacé) */
:is(.visuel-tab__content-visuel, #_#_#_) {
	position: relative !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
}
:is(.visuel-tab__btn-analyse-annonce-2, #_#_#_) {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 38px !important;
	max-width: 38px !important;
	height: 26px !important;
	background-color: #777777 !important;
	color: #ffffff !important;
	font-weight: bold !important;
	font-size: 0.82em !important;
	border: 1px solid #ccc !important;
	border-right: none !important;
	border-radius: 4px 0 0 4px !important;
	box-sizing: border-box !important;
	line-height: 1 !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease-in-out !important;
}
:is(.visuel-tab__fiche-contact-url-annonce-copy, #_#_#_) {
	flex-grow: 1 !important;
	width: 0 !important;
	height: 26px !important;
	padding: 0 10px !important;
	line-height: 24px !important;
	font-size: 0.82em !important;
	box-sizing: border-box !important;
	border: 1px solid #ccc !important;
	border-right: none !important;
	border-radius: 0 !important;
	text-align: left !important;
	margin: 0 !important;
}
:is(.visuel-tab__btn-analyse-submit, #_#_#_) {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 32px !important;
	max-width: 32px !important;
	height: 26px !important;
	background: linear-gradient(to bottom, #fafcfd 0%, #d7dfe4 100%) !important;
	border: 1px solid #ccc !important;
	border-radius: 0 4px 4px 0 !important;
	box-sizing: border-box !important;
	cursor: pointer !important;
	padding: 0 !important;
	margin: 0 !important;
	line-height: 1 !important;
	transition: background 0.2s ease !important;
}
:is(.visuel-tab__i, #_#_#_) {
	color: #82aab8 !important;
	font-size: 1.3em !important;
	display: block !important;
}

/* simulateur/simulateur.html.twig : anciens attributs style= (spécificité de 3 id, comme le style inline remplacé) */
:is(.simulateur__div, #_#_#_) {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border-radius: 0 !important;
	width: 100% !important;
	margin: 1px auto 1px auto !important;
	padding: 0 !important;
	text-align: center !important;
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	box-shadow: none !important;
	min-height: 0 !important;
	height: auto !important;
}
:is(.simulateur__form-sbase-calcul, #_#_#_) {
	padding-top: 0px !important;
	margin-top: 0px !important;
	margin-bottom: 0px !important;
}
:is(.simulateur__s-mode-expert-view, #_#_#_) {
	display: none;
}

/* Colonne de gauche : espaces verticaux entre les blocs réduits de 2px chacun (5 espaces = -10px au total).
   INFOS SUR LA PAGE → URL et URL → Étape 1 : voir .visuel-tab__div (marges 12px / 8px) ; Étapes 1→2, 2→3, 3→4 : 10px → 8px */
#formSbaseCalcul #contentVisuel > #typeAchat,
#formSbaseCalcul #contentVisuel > #sBaseCalculPrincipal,
#formSbaseCalcul #contentVisuel > #ongletLoyer {
	margin-bottom: 3px !important;
}

/* Marqueur temporaire double-clic nouvelle adresse sur la carte */
.temp-marker-new-address {
	animation: pulseNewAddr 1.2s infinite ease-in-out;
}

@keyframes pulseNewAddr {
	0% {
		transform: scale(0.95);
		box-shadow: 0 0 0 0 rgba(13, 110, 253, 0.7);
	}
	70% {
		transform: scale(1.12);
		box-shadow: 0 0 0 10px rgba(13, 110, 253, 0);
	}
	100% {
		transform: scale(0.95);
		box-shadow: 0 0 0 0 rgba(13, 110, 253, 0);
	}
}

/* ==================== BOUTONS TRANSPORT EN SUPERPOSITION SUR LA CARTE ==================== */
.map-transport-overlay {
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(4px);
	padding: 4px 6px;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
	border: 1px solid rgba(203, 213, 225, 0.9);
	position: absolute;
	bottom: 10px;
	left: 10px;
	z-index: 500;
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	align-items: center;
	max-width: calc(100% - 20px);
	pointer-events: auto;
}

.btn-transport-layer {
	background-color: #ffffff !important;
	color: #334155 !important;
	border: 1px solid #cbd5e1 !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	padding: 3px 8px !important;
	border-radius: 6px !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	cursor: pointer !important;
	transition: all 0.15s ease-in-out !important;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
	line-height: 1.2 !important;
}

.btn-transport-layer:hover {
	background-color: #f8fafc !important;
	border-color: #94a3b8 !important;
	transform: translateY(-1px);
}

/* Métro Actif : Noir */
.btn-transport-layer.active-metro {
	background-color: #000000 !important;
	color: #ffffff !important;
	border-color: #000000 !important;
	box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.35) !important;
}

/* Tramway Actif : Rouge */
.btn-transport-layer.active-tramway {
	background-color: #dc3545 !important;
	color: #ffffff !important;
	border-color: #b02a37 !important;
	box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.4) !important;
}

/* Lignes Train Actif : Violet */
.btn-transport-layer.active-train {
	background-color: #7c3aed !important;
	color: #ffffff !important;
	border-color: #6d28d9 !important;
	font-weight: 700 !important;
	box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.4) !important;
}

/* Lignes Bus Actif : Jaune */
.btn-transport-layer.active-bus {
	background-color: #f59e0b !important;
	color: #000000 !important;
	border-color: #d97706 !important;
	font-weight: 700 !important;
	box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.45) !important;
}

.transport-dot-train {
	background-color: #7c3aed !important;
}

.transport-tooltip-train {
	border-left: 3px solid #7c3aed !important;
}

/* Badges et tooltips pour les futurs projets de travaux */
.transport-project-marker-wrapper {
	background: transparent !important;
	border: none !important;
}

.transport-project-badge-pill {
	transition: transform 0.2s ease, box-shadow 0.2s ease !important;
	user-select: none !important;
}

.transport-project-badge-pill:hover {
	transform: translate(-50%, -50%) scale(1.08) !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.45) !important;
	z-index: 10000 !important;
}

.transport-tooltip-project {
	background: #ffffff !important;
	border: 1.5px dashed #e11d48 !important;
	border-radius: 8px !important;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2) !important;
	padding: 8px 10px !important;
}

/* Mode expert (POI) : affichage empile sur mobile, sans hauteur fixe ni rognage */
@media (max-width: 767px) {
	#sModeExpertViewContent {
		height: auto !important;
		max-height: none !important;
		min-height: 0 !important;
		overflow: visible !important;
	}
	#sModeExpertViewContent > [class*="col-"] {
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
	}
	#sCarteOverlayCentral {
		height: auto !important;
		min-height: 420px !important;
		margin-bottom: 8px !important;
	}
	#poi-map-canvas {
		height: 360px !important;
		min-height: 360px !important;
		flex-grow: 0 !important;
	}
	#sPoiTableauOverlayRight {
		margin-bottom: 8px;
	}
}

/* Mode expert (POI) : bouton agrandir / réduire la carte (PC, portable, tablette uniquement) */
.poi-map-expand-control {
	display: none;
}
/* Bordure orange (couleur du bouton « POI à cocher / décocher ») pour détacher le bouton de la carte */
.leaflet-container .leaflet-bar.poi-map-expand-control {
	border: 2px solid #f1a30c;
	background-clip: padding-box;
}
.poi-map-expand-control .poi-map-expand-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	font-size: 15px;
	color: #212529;
	text-decoration: none;
	cursor: pointer;
}
@media (min-width: 768px) {
	#sModeExpertViewContent {
		position: relative;
	}
	.poi-map-expand-control {
		display: block;
	}
	/* Carte agrandie : recouvre les 3 colonnes (récapitulatif, analyses, tableau POI).
	   Triple id pour l'emporter sur les règles :is(.classe, #_#_#_) de la carte. */
	#sCarteOverlayCentral#sCarteOverlayCentral#sCarteOverlayCentral.is-map-expanded {
		position: absolute !important;
		top: 0;
		left: 0;
		width: 100%;
		height: 100% !important;
		margin: 0 !important;
		z-index: 100;
	}
}

/* Mode expert (POI) : étiquettes de durée des itinéraires à pied (bleu) et en voiture (rouge) */
.leaflet-tooltip.poi-route-label {
	padding: 1px 6px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	background: rgba(255, 255, 255, 0.88);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
	pointer-events: none;
}
/* Pas de flèche : l'étiquette est simplement posée sur la ligne */
.leaflet-tooltip.poi-route-label::before {
	display: none;
}
.leaflet-tooltip.poi-route-label--pied {
	color: #0d6efd;
	border: 1.5px solid #0d6efd;
}
.leaflet-tooltip.poi-route-label--voiture {
	color: #dc3545;
	border: 1.5px solid #dc3545;
}
/* Popup d'un POI placé sous le marqueur (pour ne pas masquer les itinéraires) : pointe retournée vers le haut */
.leaflet-popup.poi-popup--dessous .leaflet-popup-tip-container {
	top: -19px;
	margin-top: 0;
	transform: rotate(180deg);
}
