/*
 * MindTech Academy — Elementor bridge
 * Maps native Elementor markup (containers .e-con, widgets .elementor-widget-*) onto the
 * design system in mindtech.css. Scoped to .mt-main (the "MindTech — Pleine largeur" template).
 *
 * Specificity rule: these selectors stay at 2–3 classes, so values set by hand in the
 * Elementor editor (.elementor-N .elementor-element.elementor-element-ID) always win.
 */

/* ---------- 1. Containers: neutral defaults inside mt layouts ---------- */
.mt-main .e-con {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	--container-max-width: var(--mt-container);
}
.mt-main .e-con.mt-section {
	--padding-top: var(--mt-section-y);
	--padding-bottom: var(--mt-section-y);
	--padding-left: var(--mt-gutter);
	--padding-right: var(--mt-gutter);
}
.mt-main .e-con.mt-hero {
	--padding-top: clamp(64px, 9vw, 120px);
	--padding-bottom: clamp(72px, 10vw, 128px);
	--padding-left: var(--mt-gutter);
	--padding-right: var(--mt-gutter);
}
.mt-main .e-con.mt-hero--page {
	--padding-top: clamp(56px, 7vw, 96px);
	--padding-bottom: clamp(56px, 7vw, 96px);
}
.mt-main .e-con.mt-hero > .e-con-inner { position: relative; }
/* Elementor puts block padding on the boxed .e-con-inner and inline padding on the outer box:
   drop the outer block padding also set by mindtech.css (.mt-section/.mt-hero) to avoid doubling it. */
.mt-main .e-con.e-con-boxed.mt-section,
.mt-main .e-con.e-con-boxed.mt-hero { padding-block: 0; }

/* Grid layouts */
.mt-main .e-con.mt-grid,
.mt-main .e-con.mt-split,
.mt-main .e-con.mt-hero__inner,
.mt-main .e-con.mt-cta { --display: grid; }
.mt-main .e-con.mt-grid {
	--gap: clamp(16px, 2.2vw, 24px);
	--row-gap: var(--gap);
	--column-gap: var(--gap);
}
.mt-main .e-con.mt-split { --row-gap: clamp(32px, 6vw, 80px); --column-gap: clamp(32px, 6vw, 80px); }
.mt-main .e-con.mt-hero__inner { --row-gap: clamp(40px, 6vw, 80px); --column-gap: clamp(40px, 6vw, 80px); }
.mt-main .e-con.mt-cta { --row-gap: 32px; --column-gap: 32px; --padding-top: clamp(32px, 5vw, 64px); --padding-bottom: clamp(32px, 5vw, 64px); --padding-left: clamp(24px, 5vw, 64px); --padding-right: clamp(24px, 5vw, 64px); }
.mt-main .e-con.mt-split--even { --align-items: center; }

/* Row layouts */
.mt-main .e-con.mt-btn-row,
.mt-main .e-con.mt-section__head--split,
.mt-main .e-con.mt-tile {
	--flex-direction: row;
	--flex-wrap: wrap;
}
.mt-main .e-con.mt-btn-row { --gap: 14px; --row-gap: 14px; --column-gap: 14px; }
.mt-main .e-con.mt-section__head--split { --justify-content: space-between; --align-items: flex-end; --gap: 24px; --row-gap: 24px; --column-gap: 24px; }
.mt-main .e-con.mt-section__head--split > .mt-stack { --width: auto; max-width: 680px; flex: 1 1 420px; }
.mt-main .e-con.mt-btn-row > .elementor-widget,
.mt-main .e-con.mt-section__head--split > .elementor-widget { width: auto; }
.mt-main .e-con.mt-tile { --flex-wrap: nowrap; --gap: 16px; --column-gap: 16px; --padding-top: 22px; --padding-bottom: 22px; --padding-left: 22px; --padding-right: 22px; }
.mt-main .e-con.mt-tile > .elementor-widget-shortcode { width: auto; flex: none; }
.mt-main .e-con.mt-tile > .e-con { --width: auto; flex: 1 1 0; }

/* Cards */
.mt-main .e-con.mt-card {
	--padding-top: clamp(22px, 2.4vw, 30px);
	--padding-bottom: clamp(22px, 2.4vw, 30px);
	--padding-left: clamp(22px, 2.4vw, 30px);
	--padding-right: clamp(22px, 2.4vw, 30px);
	--position: relative;
}
.mt-main .e-con.mt-pillar { --padding-top: clamp(26px, 3vw, 36px); --padding-bottom: clamp(26px, 3vw, 36px); --padding-left: clamp(26px, 3vw, 36px); --padding-right: clamp(26px, 3vw, 36px); }
.mt-main .mt-card .elementor-widget { position: static; } /* lets the title link cover the whole card */
.mt-main .mt-card .mt-btnw { position: relative; z-index: 1; }

.mt-main .e-con.mt-section__head { --margin-block-end: clamp(32px, 5vw, 56px); margin-bottom: clamp(32px, 5vw, 56px); }
.mt-main .e-con.mt-section__head--center { --align-items: center; text-align: center; margin-inline: auto; }
.mt-main .mt-section__head--center .mt-stack { --align-items: center; }
.mt-main .mt-section__head--center .mt-eyebrow { justify-content: center; }

/* ---------- 2. Widgets ----------
 * Margin rules use exactly 3 classes: they beat Elementor's generic
 * `.e-con .elementor-widget.elementor-widget { margin-block-end: 0 }` (loaded earlier)
 * and still lose to per-element values from the editor (loaded later). */
.mt-main .elementor-widget.mt-eyebrow { margin-bottom: 14px; }
.mt-main .elementor-widget.mt-card__cat { margin-bottom: 8px; }
.mt-main .elementor-widget.mt-card__text { margin-bottom: 16px; }
.mt-main .elementor-widget.mt-card__text:last-child { margin-bottom: 0; }
.mt-main .elementor-heading-title { line-height: 1.18; }
.mt-main .elementor-heading-title a { color: inherit; text-decoration: none; }
.mt-main .elementor-widget-text-editor > :last-child { margin-bottom: 0; }

.mt-main .elementor-widget.mt-eyebrow .elementor-heading-title {
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
	line-height: 1.4;
}
.mt-main .elementor-widget.mt-title { margin-bottom: 16px; }
.mt-main .elementor-widget.mt-title .elementor-heading-title { font-size: var(--mt-fs-h2); }
.mt-main .mt-hero .elementor-widget.mt-title { margin-bottom: 24px; }
.mt-main .mt-hero .elementor-widget.mt-title .elementor-heading-title {
	font-size: var(--mt-fs-hero);
	color: var(--mt-white);
	letter-spacing: -0.035em;
	line-height: 1.08;
}
.mt-main .mt-hero--page .elementor-widget.mt-title .elementor-heading-title { font-size: clamp(2rem, 1.3rem + 2.8vw, 3.2rem); }
.mt-main .mt-hero .elementor-widget.mt-title span {
	background: var(--mt-grad-text-dark);
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	animation: mt-gradient-move 6s linear infinite;
}
.mt-main .mt-hero .elementor-widget.mt-lead { color: var(--mt-on-dark-muted); max-width: 620px; margin-bottom: 36px; }
.mt-main .mt-hero--page .mt-stack { max-width: 780px; }
.mt-main .mt-hero--page .elementor-widget.mt-lead:last-child { margin-bottom: 0; }

.mt-main .mt-section--dark .elementor-heading-title,
.mt-main .mt-cta .elementor-heading-title { color: var(--mt-white); }
.mt-main .mt-section--dark .elementor-widget.mt-card__cat .elementor-heading-title { color: var(--mt-gold); }

.mt-main .elementor-widget.mt-card__cat .elementor-heading-title { font: inherit; color: inherit; letter-spacing: inherit; line-height: 1.4; }
.mt-main .elementor-widget.mt-card__title { margin-bottom: 10px; }
.mt-main .elementor-widget.mt-card__title .elementor-heading-title { font-size: var(--mt-fs-h3); }
.mt-main .mt-tile .elementor-widget.mt-card__title { margin-bottom: 6px; }
.mt-main .mt-tile .elementor-widget.mt-card__title .elementor-heading-title { font-size: 1.0625rem; }
.mt-main .mt-feature .elementor-widget.mt-card__title .elementor-heading-title { font-size: 1.125rem; }
.mt-main .mt-tile .mt-card__text p { margin: 0; font-size: var(--mt-fs-small); color: var(--mt-on-dark-muted); }
.mt-main .mt-feature .mt-card__text p { margin: 0; font-size: var(--mt-fs-small); color: var(--mt-muted); }
.mt-main .mt-card__iconw .mt-card__icon,
.mt-main .mt-feature .mt-card__icon { margin-bottom: 20px; }
.mt-main .mt-feature .mt-card__icon { margin-bottom: 14px; }
.mt-main .mt-tile .mt-icon { width: 26px; height: 26px; color: var(--mt-gold); margin-top: 2px; }
.mt-main .elementor-widget.mt-card__foot { margin-top: auto; }
.mt-main .mt-cta .elementor-widget.mt-title .elementor-heading-title { font-size: clamp(1.625rem, 1.2rem + 1.6vw, 2.25rem); }
.mt-main .mt-cta .elementor-widget.mt-title { margin-bottom: 10px; }
.mt-main .mt-cta p { margin: 0; max-width: 620px; color: var(--mt-on-dark-muted); }

/* Text lists with CSS check marks (editable in the Text Editor widget) */
.mt-checks ul {
	margin: 6px 0 22px;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}
.mt-checks li,
.mt-pillar .mt-checks li {
	position: relative;
	display: block;
	padding: 0 0 0 30px;
	font-size: var(--mt-fs-small);
	color: var(--mt-text);
	line-height: 1.55;
}
.mt-checks li::before {
	content: "";
	position: absolute;
	left: 0; top: 1px;
	width: 20px; height: 20px;
	border-radius: 50%;
	background: #fdf3df url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a5b00' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center / 12px;
}
.mt-checks--lg li { font-size: 1rem; }
.mt-checks li strong { color: var(--mt-ink); }
.mt-section--dark .mt-checks li { color: var(--mt-on-dark-muted); }
.mt-section--dark .mt-checks li strong { color: var(--mt-white); }

/* ---------- 3. Buttons (Elementor Button widget) ---------- */
.elementor-widget.mt-btnw .elementor-button {
	position: relative;
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 12px 26px;
	border: 2px solid transparent;
	border-radius: 999px;
	background: transparent;
	font-family: var(--mt-font-head);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	transition: background-color .25s var(--mt-ease), color .25s var(--mt-ease), border-color .25s var(--mt-ease), transform .25s var(--mt-ease), box-shadow .25s var(--mt-ease);
}
.elementor-widget.mt-btnw--primary .elementor-button { background: var(--mt-gold); color: var(--mt-navy); box-shadow: var(--mt-shadow-gold); }
.elementor-widget.mt-btnw--primary .elementor-button:hover,
.elementor-widget.mt-btnw--primary .elementor-button:focus-visible { background: var(--mt-gold-light); color: var(--mt-navy); transform: translateY(-2px); }
.elementor-widget.mt-btnw--steel .elementor-button { background: var(--mt-steel); color: var(--mt-white); }
.elementor-widget.mt-btnw--steel .elementor-button:hover,
.elementor-widget.mt-btnw--steel .elementor-button:focus-visible { background: var(--mt-steel-dark); color: var(--mt-white); transform: translateY(-2px); }
.elementor-widget.mt-btnw--outline .elementor-button { border-color: var(--mt-navy); color: var(--mt-navy); }
.elementor-widget.mt-btnw--outline .elementor-button:hover,
.elementor-widget.mt-btnw--outline .elementor-button:focus-visible { background: var(--mt-navy); color: var(--mt-white); }
.elementor-widget.mt-btnw--light .elementor-button { border-color: rgba(255, 255, 255, .35); color: var(--mt-white); }
.elementor-widget.mt-btnw--light .elementor-button:hover,
.elementor-widget.mt-btnw--light .elementor-button:focus-visible { border-color: var(--mt-white); background: rgba(255, 255, 255, .08); color: var(--mt-white); }
.elementor-widget.mt-btnw--link .elementor-button {
	min-height: 0;
	padding: 0;
	border: 0;
	gap: 6px;
	color: var(--mt-steel);
	font-size: .9375rem;
	box-shadow: none;
}
.elementor-widget.mt-btnw--link .elementor-button:hover { color: var(--mt-steel-dark); background: transparent; transform: none; }
.mt-section--dark .elementor-widget.mt-btnw--link .elementor-button { color: var(--mt-gold); }
.mt-card:hover .elementor-widget.mt-btnw--arrow .elementor-button-text::after { transform: translateX(4px); }
.elementor-widget.mt-btnw--link { margin-top: auto; }

.elementor-widget.mt-btnw--arrow .elementor-button-content-wrapper { display: inline-flex; align-items: center; gap: 10px; }
.elementor-widget.mt-btnw--arrow .elementor-button-text::after {
	content: "";
	display: inline-block;
	width: 1.1em;
	height: 1.1em;
	margin-left: 8px;
	vertical-align: -0.2em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") no-repeat center / contain;
	transition: transform .2s var(--mt-ease);
}
.elementor-widget.mt-btnw--arrow .elementor-button:hover .elementor-button-text::after { transform: translateX(3px); }

/* ---------- 4. Misc ---------- */
.mt-main .elementor-widget.mt-mb-32 { margin-bottom: 32px; }
.mt-checks--spaced ul { margin: 24px 0 0; gap: 14px; }
.mt-main .elementor-widget.mt-checks--spaced { margin-bottom: 32px; }
.mt-main .elementor-widget.mt-checks--spaced:last-child { margin-bottom: 0; }
.mt-main .mt-service .elementor-widget.mt-card__cat { margin: 10px 0 6px; }
.mt-main .mt-service .elementor-widget.mt-card__cat:first-of-type { margin-top: 4px; }
.mt-main .mt-service .mt-checks ul { margin-bottom: 20px; }
.mt-main .e-con.mt-card--accent { background: var(--mt-navy); border-color: var(--mt-navy); }
.mt-main .mt-card--accent .elementor-heading-title { color: var(--mt-white); }
.mt-main .mt-card--accent p { color: var(--mt-on-dark-muted); }
.mt-main .mt-card--accent .elementor-widget.mt-btnw--link .elementor-button { color: var(--mt-gold); }
.mt-main .e-con.mt-card--accent { background: linear-gradient(135deg, var(--mt-navy) 0%, var(--mt-steel-dark) 100%); }

/* Marquee band & hero visual inside Elementor */
.mt-main .e-con.mt-marquee-band { --padding-top: 34px; --padding-bottom: 34px; --padding-left: var(--mt-gutter); --padding-right: var(--mt-gutter); }
.mt-main .e-con.e-con-boxed.mt-marquee-band { padding-block: 0; }
.mt-main .elementor-widget-html:has(> .mt-hero__visual) { width: 100%; }
.mt-main .e-con.mt-form-slot { margin-top: 24px; }
.mt-main .mt-meta + * { margin-top: 0; }
.mt-main .mt-card .elementor-widget-html:has(.mt-meta) { margin-bottom: 4px; }
.mt-demo-notice {
	padding: 12px 16px;
	border-left: 4px solid #d97706;
	border-radius: 6px;
	background: #fef3c7;
	color: #78350f;
}
.mt-empty {
	padding: 28px;
	border: 1px dashed #c5d2e3;
	border-radius: var(--mt-radius);
	background: var(--mt-white);
	color: var(--mt-muted);
	text-align: center;
}

/* ---------- 5. Responsive ---------- */
@media (max-width: 1024px) {
	.mt-main .e-con.mt-cta { --align-items: start; }
}
@media (max-width: 767px) {
	.mt-main .e-con.mt-btn-row > .elementor-widget,
	.mt-main .e-con.mt-btn-row .elementor-button { width: 100%; }
	.mt-main .e-con.mt-section__head--split > .elementor-widget { width: 100%; }
	.mt-main .e-con.mt-section__head--split .elementor-button { width: 100%; }
}
