/* ================= BASE ================= */

h1.elementor-heading-title { margin-bottom: 2rem; }
h2.elementor-heading-title { margin-bottom: 1.5rem; }
h3.elementor-heading-title { margin-bottom: 1rem; }
h4.elementor-heading-title { margin-bottom: 1rem; }
h5.elementor-heading-title { margin-bottom: 1rem; }
h6.elementor-heading-title { margin-bottom: 1rem; }

.inner-section {
	padding-top: 5rem;
	padding-bottom: 5rem;
}

.inner-section.e-con > .e-con-inner {
	gap: 1rem 3rem;
}

.elementor-widget-text-editor + .elementor-widget-heading h2 {
	margin-top: 2rem;
}

.column-gap {
	gap: 3rem !important;
}


.rounded,
.rounded-img img {
	border-radius: 3.5rem !important;
}

.small-rounded,
.small-rounded-img img {
	border-radius: 1.875rem !important;
}

.btn-primary .elementor-button,
.btn-primary-alt .elementor-button,
.btn-secondary .elementor-button,
.btn-tertiary .elementor-button,
.btn-tertiary-alt .elementor-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;

	padding: 1.1rem 2rem;
	border-radius: 3.5rem;
	overflow: hidden;

	background: none;
	border: none;
	text-decoration: none;
	text-transform: uppercase;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;

	transition: color 0.3s ease;
}

/* Neutralise le style interne Elementor */
.btn-primary .elementor-button-content-wrapper,
.btn-primary-alt .elementor-button-content-wrapper,
.btn-secondary .elementor-button-content-wrapper,
.btn-tertiary .elementor-button-content-wrapper,
.btn-tertiary-alt .elementor-button-content-wrapper {
	padding: 0;
	background: none;
	border-radius: 0;
}

/* Centrage vertical du texte */
.btn-primary .elementor-button-text,
.btn-primary-alt .elementor-button-text,
.btn-secondary .elementor-button-text,
.btn-tertiary .elementor-button-text,
.btn-tertiary-alt .elementor-button-text {
	display: inline-flex;
	align-items: center;
	line-height: 1;
}

/* Texte + icône toujours visibles */
.btn-primary .elementor-button *,
.btn-primary-alt .elementor-button *,
.btn-secondary .elementor-button *,
.btn-tertiary .elementor-button *,
.btn-tertiary-alt .elementor-button * {
	position: relative;
	z-index: 2;
}

/* Calque animé */
.btn-primary .elementor-button::before,
.btn-primary-alt .elementor-button::before,
.btn-secondary .elementor-button::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;

	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s ease;
	border-radius: 3.5rem;
	box-sizing: border-box;
}

/* ================= PRIMARY ================= */

.btn-primary .elementor-button {
	border: 1.5px solid #18181B;
	color: #18181B !important;
	overflow: hidden;
	box-sizing: border-box;
}

.btn-primary .elementor-button::before {
	background: #18181B;
	inset: -1.5px;
}

.btn-primary .elementor-button:hover {
	color: #ffffff !important;
}

.btn-primary .elementor-button:hover::before {
	transform: scaleX(1);
}

/* ================= PRIMARY ALT ================= */

.btn-primary-alt .elementor-button {
	background: #ffffff !important;
	border: none;
	color: #18181B !important;
}

.btn-primary-alt .elementor-button::before {
	background: #18181B;
}

.btn-primary-alt .elementor-button:hover {
	color: #ffffff !important;
}

.btn-primary-alt .elementor-button:hover::before {
	transform: scaleX(1);
}

/* ================= SECONDARY ================= */

.btn-secondary .elementor-button {
	background: #009CDE;
	color: #ffffff !important;
}

.btn-secondary .elementor-button::before {
	background: #117AB7;
}

.btn-secondary .elementor-button:hover::before {
	transform: scaleX(1);
}

/* ================= TERTIARY ================= */

.btn-tertiary .elementor-button {
	padding: 1.0rem 2rem 1.0rem 1rem;
	background: #ffffff;
	color: #18181B !important;
	transition: background 0.6s ease, color 0.6s ease;
}

.btn-tertiary .elementor-button:hover {
	background: #009CDE;
	color: #ffffff !important;
}

.btn-tertiary .elementor-button-content-wrapper {
	gap: 1rem;
}

.btn-tertiary .elementor-button-content-wrapper svg {
	width: 50px;
}

/* ================= TERTIARY ALT ================= */

.btn-tertiary-alt .elementor-button {
	padding: 1.0rem 2rem 1.0rem 1rem;
	background: #F4F4F5;
	color: #18181B !important;
	transition: background 0.6s ease, color 0.6s ease;
}

.btn-tertiary-alt .elementor-button:hover {
	background: #009CDE;
	color: #ffffff !important;
}

.btn-tertiary-alt .elementor-button-content-wrapper {
	gap: 1rem;
}

.btn-tertiary-alt .elementor-button-content-wrapper svg {
	width: 50px;
}

/* ================= HEADER ================= */

.elementor-location-header {
	position: absolute;
	left: 0;
	top: 0;
}


/* ================= FOOTER ================= */

footer,
footer p,
footer span,
footer a,
footer li,
footer h1,
footer h2,
footer h3,
footer h4,
footer h5,
footer h6 {
	color: #ffffff !important;
}

.footer-agencies,
.footer-agencies * {
	text-align: left !important;
	padding-inline-start: 0 !important;
	justify-content: left !important;
	margin-top: 0 !important;
}

.footer-agencies .elementor-heading-title {
	font-family: Gotham;
	font-size: 1rem;
	font-style: normal;
	font-weight: 400;
	line-height: 1.3125rem; /* 131.25% */
}

.footer-agencies .elementor-widget-text-editor,
.footer-agencies .sneg-phone {
	font-family: Gotham;
	font-size: 1rem;
	font-style: normal;
	font-weight: 300;
	line-height: 1.3125rem; /* 131.25% */
}

.footer-agencies .elementor-icon-list-icon {
	display: none !important;
}

.sneg-social-networks .elementor-icon {
	padding: 8px;
	border-radius: 50%;
	background-color: #2D2D2D;
	transition: background-color 0.8s ease;
}

.sneg-social-networks .elementor-icon .circle,
.sneg-social-networks .elementor-icon .photobox,
.sneg-social-networks .elementor-icon .outline,
.sneg-social-networks .elementor-icon .centerpoint {
	transition: fill 0.8s ease;
}

.sneg-social-networks .elementor-icon:hover {
	background-color: #ffffff;
}

.sneg-social-networks .elementor-icon:hover .circle,
.sneg-social-networks .elementor-icon:hover .photobox,
.sneg-social-networks .elementor-icon:hover .outline,
.sneg-social-networks .elementor-icon:hover .centerpoint {
	fill: #000000;
}


/* ================= Plugin Job Openings ================= */

.awsm-job-form-inner {
	background: #ffffff;
	padding: 2rem;
	border: 1px solid rgba(24, 24, 27, 0.08);
	box-shadow: 0 24px 45px rgba(0, 0, 0, 0.06);
	border-radius: 1.5rem;
}

.awsm-job-form-inner input[type="text"],
.awsm-job-form-inner input[type="email"],
.awsm-job-form-inner input[type="tel"],
.awsm-job-form-inner input[type="url"],
.awsm-job-form-inner input[type="number"],
.awsm-job-form-inner input[type="date"],
.awsm-job-form-inner textarea,
.awsm-job-form-inner select {
	width: 100%;
	border: 1px solid #D4D4D8;
	border-radius: 0.9rem;
	padding: 1rem 1.25rem;
	background: #ffffff;
	font-size: 1rem;
	color: #18181B;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04);
}

.awsm-job-form-inner input:focus,
.awsm-job-form-inner textarea:focus,
.awsm-job-form-inner select:focus {
	border-color: #009CDE;
	outline: none;
	box-shadow: 0 0 0 4px rgba(0, 156, 222, 0.12);
}

.awsm-job-form-inner label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 500;
	color: #18181B;
}

.awsm-job-form-inner .awsm-job-form-field,
.awsm-job-form-inner .awsm-job-form-row,
.awsm-job-form-inner .awsm-job-form-column {
	margin-bottom: 1.25rem;
}

.awsm-job-form-inner .awsm-job-form-description,
.awsm-job-form-inner .awsm-job-form-note {
	color: #6B7280;
	font-size: 0.95rem;
	line-height: 1.5;
}

.awsm-job-form-inner button[type="submit"],
.awsm-job-form-inner input[type="submit"],
.awsm-job-form-inner .awsm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 1rem 2rem;
	min-width: 180px;
	border-radius: 3.5rem;
	border: none;
	background: #009CDE;
	color: #ffffff;
	font-weight: 500;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.3s ease, transform 0.2s ease;
}

.awsm-job-form-inner button[type="submit"]:hover,
.awsm-job-form-inner input[type="submit"]:hover,
.awsm-job-form-inner .awsm-btn:hover {
	background: #117AB7;
	transform: translateY(-1px);
}

/* Job listings styling */
.awsm-job-listings.awsm-lists{
	border: none;
}

.awsm-job-item {
	background: #ffffff !important;
	border: none !important;
	box-shadow: 0 24px 45px rgba(0, 0, 0, 0.06) !important;
	border-radius: 1.5rem !important;
	padding: 2rem !important;
	transition: all 0.3s ease !important;
	border: 1px solid rgba(24, 24, 27, 0.08) !important;
}

.awsm-job-item:hover {
	box-shadow: 0 32px 60px rgba(0, 0, 0, 0.12) !important;
	transform: translateY(-2px);
}

.awsm-job-item h2.awsm-job-post-title {
	margin: 0 !important;
	font-size: 1.25rem !important;
	font-weight: 600 !important;
	color: #18181B !important;
}

.awsm-job-item h2.awsm-job-post-title a {
	color: #18181B !important;
	text-decoration: none !important;
	transition: color 0.3s ease !important;
}

.awsm-job-item h2.awsm-job-post-title a:hover {
	color: #009CDE !important;
}

.awsm-job-specification-item {
	color: #6B7280 !important;
	font-size: 0.95rem !important;
	margin-bottom: 0 !important;
	margin-right: 2rem !important;
}

.awsm-job-more-container .awsm-job-more {
	background: #009CDE !important;
	color: #ffffff !important;
	border-radius: 3.5rem !important;
	padding: 0.75rem 1.5rem !important;
	text-decoration: none !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	font-size: 0.9rem !important;
	transition: background 0.3s ease, transform 0.2s ease !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 140px !important;
}

.awsm-job-more-container .awsm-job-more:hover {
	background: #117AB7 !important;
	transform: translateY(-1px) !important;
}

/* Grid view specific adjustments */
.awsm-grid-item .awsm-job-item {
	margin-bottom: 2rem !important;
}

/* List view specific adjustments */
.awsm-list-item .awsm-job-item {
	margin-bottom: 1.5rem !important;
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 2rem !important;
}

.awsm-list-item .awsm-list-left-col {
	flex: 1 !important;
}

.awsm-list-item .awsm-list-right-col {
	flex: 1 !important;
	text-align: right !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {
	.awsm-list-item .awsm-job-item {
		flex-direction: column !important;
		text-align: center !important;
		gap: 1rem !important;
	}

	.awsm-list-item .awsm-list-right-col {
		text-align: center !important;
	}
}

/* ================= CARTE AGENCES ================= */

.carte-agences {
	width: 100%;
	height: auto;
	max-width: 521px;
}

.carte-agences .point path {
	fill: #009CDE;
	transition: transform 0.2s ease;
	transform-box: fill-box;
	transform-origin: center;
}

.carte-agences .label path {
	fill: #000;
	transition: stroke 0.2s ease, stroke-width 0.2s ease;
}

.carte-agences .ville:hover .point path {
	transform: scale(1.3);
}

.carte-agences .ville:hover .label path {
	stroke: #000;
	stroke-width: 1.2;
	paint-order: stroke;
}

.carte-agences .arrow path {
	fill: #000;
	opacity: 0;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.carte-agences .ville:hover .arrow path {
	opacity: 1;
	transform: translateX(3px);
}

.carte-agences a {
	cursor: pointer;
}

.carte-agences .ville {
  pointer-events: bounding-box;
}


/* ================= BREADCRUMB ================= */

.sneg-breadcrumb {
	font-size: 2rem !important;
	line-height: 2.2rem !important;
	text-align: center;
	margin-bottom: 1rem;
}

.sneg-breadcrumb a {
	color: #ffffff !important;
	text-decoration: none;
	font-size: 2rem !important;
	line-height: 2.2rem !important;
	transition: opacity 0.3s ease;
}

.sneg-breadcrumb a:hover {
	opacity: 0.7;
}

.sneg-breadcrumb .separator {
	color: #ffffff !important;
	margin: 0 0.5rem;
}

/* ================= Complianz ================= */



/* ================= RESPONSIVE < 1024px ================= */

@media (max-width: 1023px) {
	h1.elementor-heading-title { margin-bottom: 1.5rem; }
	h2.elementor-heading-title { margin-bottom: 1rem; }

	.inner-section {
		padding-top: 2rem;
		padding-bottom: 2rem;
	}
	
	.inner-section.e-con > .e-con-inner {
		gap: 1rem;
		padding-block-start: 1rem !important;
		padding-block-end: 1rem !important;
	}
	
	.sneg-breadcrumb {
		font-size: 1.5rem !important;
		line-height: 1.7rem !important;
	}

	.sneg-breadcrumb a {
		font-size: 1.5rem !important;
		line-height: 1.7rem !important;
	}
	
	.column-gap {
		gap: 1rem !important;
	}

	.btn-primary .elementor-button,
	.btn-primary-alt .elementor-button,
	.btn-secondary .elementor-button,
	.btn-tertiary .elementor-button,
	.btn-tertiary-alt .elementor-button {
		padding: 0.8rem 1.2rem;
		border-radius: 2.5rem;
		font-size: 0.875rem;
	}
	
	.footer-agencies,
	.footer-agencies * {
		text-align: center !important;
		justify-content: center !important;
	}
}