/* Matimim Jobs – search page, job cards, job page, application form. RTL, mobile first. */

.mj {
	--mj-primary: #3C758A;
	--mj-accent: #F19B76;
	--mj-soft: #AED9E0;
	--mj-radius: 14px;
	--mj-text: #272727;
	--mj-muted: #5d6a70;
	--mj-line: #e2e8ea;
	--mj-bg: #f5f8f9;
	--mj-danger: #c0392b;
	--mj-shadow: 0 1px 2px rgba(20, 50, 60, .06), 0 4px 16px rgba(20, 50, 60, .06);
	--mj-shadow-lg: 0 10px 30px rgba(20, 50, 60, .14);
	color: var(--mj-text);
	font-size: 16px;
	line-height: 1.5;
	direction: rtl;
	text-align: right;
}
.mj *, .mj *::before, .mj *::after { box-sizing: border-box; }
.mj [hidden] { display: none !important; }
.mj :where(button, input, select, textarea) { font: inherit; color: inherit; letter-spacing: normal; text-transform: none; }
.mj .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.mj-i { width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- buttons ---------- */
.mj-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 10px 20px; border: 1.5px solid var(--mj-primary); border-radius: 999px;
	background: var(--mj-primary); color: #fff; font-weight: 600; line-height: 1.2;
	cursor: pointer; text-decoration: none; transition: background .15s, color .15s, box-shadow .15s, transform .1s;
}
.mj-btn:hover { background: color-mix(in srgb, var(--mj-primary) 85%, #000); color: #fff; }
.mj-btn:active { transform: translateY(1px); }
.mj-btn:focus-visible, .mj :focus-visible { outline: 3px solid color-mix(in srgb, var(--mj-primary) 40%, transparent); outline-offset: 2px; }
.mj-btn--ghost { background: #fff; color: var(--mj-primary); }
.mj-btn--ghost:hover { background: color-mix(in srgb, var(--mj-soft) 35%, #fff); color: var(--mj-primary); }
.mj-btn--lg { min-height: 52px; padding: 12px 28px; font-size: 17px; }
.mj-btn--block { width: 100%; }
.mj-btn[disabled] { opacity: .6; cursor: progress; }

/* ---------- search bar ---------- */
.mj-bar {
	display: flex; align-items: stretch; gap: 0; margin: 0 0 14px;
	background: #fff; border: 1px solid var(--mj-line); border-radius: var(--mj-radius); box-shadow: var(--mj-shadow);
}
.mj-field { position: relative; display: flex; align-items: center; gap: 8px; padding: 0 14px; min-height: 58px; color: var(--mj-muted); }
.mj-field + .mj-field { border-inline-start: 1px solid var(--mj-line); }
.mj-field--q { flex: 1.6 1 0; }
.mj-field--loc { flex: 1.2 1 0; }
.mj-field--r { flex: 0 0 auto; }
.mj-field input, .mj-field select {
	width: 100%; min-width: 0; height: 56px; padding: 0; border: 0; background: transparent; color: var(--mj-text);
	font-size: 16px; outline: none; box-shadow: none;
}
.mj-field input::placeholder { color: #8a979c; }
.mj-field select { cursor: pointer; padding-inline-end: 4px; }
.mj-field input[type=search]::-webkit-search-cancel-button { cursor: pointer; }
.mj-field:focus-within { color: var(--mj-primary); }
.mj-locate { display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: transparent; color: var(--mj-primary); cursor: pointer; }
.mj-locate:hover { background: color-mix(in srgb, var(--mj-soft) 40%, #fff); }
.mj-locate.is-loading .mj-i { animation: mj-spin 1s linear infinite; }
@keyframes mj-spin { to { transform: rotate(360deg); } }

.mj-suggest {
	position: absolute; top: calc(100% + 6px); inset-inline: 0; z-index: 30; margin: 0; padding: 6px; list-style: none;
	background: #fff; border: 1px solid var(--mj-line); border-radius: 12px; box-shadow: var(--mj-shadow-lg); max-height: 300px; overflow: auto;
}
.mj-suggest li { display: flex; justify-content: space-between; gap: 10px; padding: 9px 10px; border-radius: 8px; cursor: pointer; color: var(--mj-text); }
.mj-suggest li small { color: var(--mj-muted); }
.mj-suggest li[aria-selected=true], .mj-suggest li:hover { background: var(--mj-bg); }

/* ---------- filters ---------- */
.mj-filters-row { position: relative; margin-bottom: 12px; }
.mj-open-filters { display: none; }
.mj-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.mj-sheet-head, .mj-sheet-foot { display: none; }
.mj-sheet-body { display: contents; }
.mj-group { position: relative; }
.mj-group-btn, .mj-open-filters {
	align-items: center; gap: 8px; min-height: 42px; padding: 8px 16px;
	background: #fff; border: 1px solid var(--mj-line); border-radius: 999px; cursor: pointer; font-weight: 500;
	transition: border-color .15s, background .15s;
}
.mj-group-btn { display: inline-flex; }
.mj-group-btn:hover, .mj-open-filters:hover { border-color: var(--mj-primary); }
.mj-group-btn.is-active { border-color: var(--mj-primary); background: color-mix(in srgb, var(--mj-soft) 30%, #fff); color: var(--mj-primary); }
.mj-group-btn .mj-i { transition: transform .15s; }
.mj-group.is-open .mj-group-btn .mj-i { transform: rotate(180deg); }
.mj-group-count {
	display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px;
	border-radius: 999px; background: var(--mj-primary); color: #fff; font-size: 12px; font-weight: 700;
}
.mj-pop {
	display: none; position: absolute; top: calc(100% + 8px); inset-inline-start: 0; z-index: 40;
	width: 290px; max-height: 360px; overflow: auto; padding: 8px;
	background: #fff; border: 1px solid var(--mj-line); border-radius: 14px; box-shadow: var(--mj-shadow-lg);
}
.mj-group.is-open .mj-pop { display: block; }

.mj-options { display: flex; flex-direction: column; gap: 2px; }
.mj-opt { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; cursor: pointer; }
.mj-opt:hover { background: var(--mj-bg); }
.mj-opt input, .mj-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.mj-opt-name { flex: 1; }
.mj-opt-n { color: var(--mj-muted); font-size: 13px; font-variant-numeric: tabular-nums; }
.mj-opt.is-zero { opacity: .45; }
.mj-opt-box {
	position: relative; flex: none; width: 20px; height: 20px; border: 1.5px solid #b7c3c7; border-radius: 6px; background: #fff; transition: all .12s;
}
.mj-group--select .mj-opt-box { border-radius: 50%; }
.mj-opt input:checked + .mj-opt-box, .mj-check input:checked + .mj-opt-box { background: var(--mj-primary); border-color: var(--mj-primary); }
.mj-opt input:checked + .mj-opt-box::after, .mj-check input:checked + .mj-opt-box::after {
	content: ""; position: absolute; inset: 3px 6px 5px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.mj-group--select .mj-opt input:checked + .mj-opt-box::after { inset: 5px; border: 0; border-radius: 50%; background: #fff; transform: none; }
.mj-opt input:focus-visible + .mj-opt-box, .mj-check input:focus-visible + .mj-opt-box { outline: 3px solid color-mix(in srgb, var(--mj-primary) 40%, transparent); outline-offset: 2px; }

/* chips-style filter */
.mj-group--chips .mj-options { flex-direction: row; flex-wrap: wrap; gap: 6px; padding: 4px; }
.mj-group--chips .mj-opt { padding: 7px 12px; border: 1px solid var(--mj-line); border-radius: 999px; }
.mj-group--chips .mj-opt-box { display: none; }
.mj-group--chips .mj-opt:has(input:checked) { background: var(--mj-primary); border-color: var(--mj-primary); color: #fff; }
.mj-group--chips .mj-opt:has(input:checked) .mj-opt-n { color: rgba(255, 255, 255, .8); }

/* ---------- status row ---------- */
.mj-status { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 4px 0 16px; }
.mj-actives { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.mj-active {
	display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px 5px 12px; border: 0; border-radius: 999px;
	background: color-mix(in srgb, var(--mj-soft) 45%, #fff); color: var(--mj-primary); font-size: 14px; font-weight: 500; cursor: pointer;
}
.mj-active .mj-i { width: 14px; height: 14px; }
.mj-active:hover { background: color-mix(in srgb, var(--mj-soft) 70%, #fff); }
.mj-clear-all { border: 0; background: none; color: var(--mj-muted); text-decoration: underline; cursor: pointer; font-size: 14px; }
.mj-status-end { display: flex; align-items: center; gap: 16px; margin-inline-start: auto; }
.mj-total { font-weight: 700; }
.mj-sort { display: inline-flex; align-items: center; gap: 6px; color: var(--mj-muted); font-size: 14px; }
.mj-sort select { padding: 6px 10px; border: 1px solid var(--mj-line); border-radius: 10px; background: #fff; color: var(--mj-text); cursor: pointer; }

/* ---------- results ---------- */
.mj-results { position: relative; min-height: 120px; }
.mj-results[aria-busy=true] .mj-grid { opacity: .45; transition: opacity .15s; pointer-events: none; }
.mj-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 18px; }
.mj-more-wrap { display: flex; justify-content: center; margin-top: 26px; }

.mj-card {
	position: relative; display: flex; flex-direction: column; gap: 12px; padding: 18px;
	background: #fff; border: 1px solid var(--mj-line); border-radius: var(--mj-radius); box-shadow: var(--mj-shadow);
	transition: border-color .15s, box-shadow .15s, transform .15s;
}
.mj-card:hover { border-color: color-mix(in srgb, var(--mj-primary) 45%, var(--mj-line)); box-shadow: var(--mj-shadow-lg); transform: translateY(-2px); }
.mj-card.is-hot { border-color: color-mix(in srgb, var(--mj-accent) 60%, var(--mj-line)); }
.mj-card-head { display: flex; gap: 12px; align-items: flex-start; }
.mj-card-titles { flex: 1; min-width: 0; }
.mj-card-title { margin: 0; font-size: 18px; line-height: 1.35; font-weight: 700; }
.mj-card-title a { color: var(--mj-text); text-decoration: none; }
.mj-stretch::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.mj-card:focus-within { border-color: var(--mj-primary); }
.mj-company { margin-top: 2px; color: var(--mj-muted); font-size: 14px; }

.mj-logo {
	display: grid; place-items: center; flex: none; width: 52px; height: 52px; overflow: hidden;
	border: 1px solid var(--mj-line); border-radius: 12px; background: #fff;
}
.mj-logo img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.mj-logo.is-empty { border-color: transparent; background: color-mix(in srgb, var(--mj-soft) 40%, #fff); color: var(--mj-primary); font-weight: 700; }
.mj-logo--lg { width: 84px; height: 84px; border-radius: 16px; font-size: 24px; }
.mj-logo--lg .mj-i { width: 34px; height: 34px; }

.mj-badges { display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.mj-badge { padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.mj-badge.is-hot { background: var(--mj-accent); color: #fff; }
.mj-badge.is-new { background: color-mix(in srgb, var(--mj-soft) 55%, #fff); color: var(--mj-primary); }

.mj-date { white-space: nowrap; }
.mj-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; color: var(--mj-muted); font-size: 14px; }
.mj-cities, .mj-date { display: inline-flex; align-items: center; gap: 5px; }
.mj-more { color: var(--mj-primary); font-weight: 600; }
.mj-distance { padding: 2px 8px; border-radius: 999px; background: var(--mj-bg); color: var(--mj-primary); font-weight: 600; font-size: 13px; }
.mj-excerpt { margin: 0; color: var(--mj-muted); font-size: 14px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

.mj-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.mj-chip { padding: 3px 10px; border-radius: 999px; background: var(--mj-bg); color: #3d4a4f; font-size: 13px; line-height: 1.6; }
.mj-chip a { color: inherit; text-decoration: none; }
.mj-chip a:hover { color: var(--mj-primary); }
.mj-chip--more { background: transparent; border: 1px dashed var(--mj-line); }

.mj-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--mj-line); font-size: 14px; }
.mj-card-foot .mj-date { color: var(--mj-muted); }
.mj-go { display: inline-flex; align-items: center; gap: 6px; color: var(--mj-primary); font-weight: 700; }
.mj-card:hover .mj-go .mj-i { transform: translateX(-3px); }
.mj-go .mj-i { transition: transform .15s; }

.mj-empty { padding: 40px 20px; text-align: center; background: var(--mj-bg); border-radius: var(--mj-radius); }
.mj-empty h3 { margin: 0 0 8px; font-size: 20px; }
.mj-empty p { margin: 0 auto 18px; max-width: 460px; color: var(--mj-muted); }
.mj-empty-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* ---------- mobile search ---------- */
@media (max-width: 767px) {
	.mj-bar { flex-wrap: wrap; }
	.mj-field { min-height: 52px; }
	.mj-field input, .mj-field select { height: 50px; }
	.mj-field--q { flex: 1 1 100%; }
	.mj-field--q + .mj-field { border-inline-start: 0; }
	.mj-field--loc, .mj-field--r { border-top: 1px solid var(--mj-line); }
	.mj-field--loc { flex: 1 1 0; min-width: 0; }
	.mj-field--r { padding: 0 10px; }
	.mj-open-filters { display: inline-flex; width: 100%; justify-content: center; }
	.mj-filters {
		position: fixed; inset: auto 0 0 0; z-index: 99990; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0;
		max-height: 88vh; background: #fff; border-radius: 20px 20px 0 0; box-shadow: 0 -10px 40px rgba(0, 0, 0, .2);
		transform: translateY(105%); transition: transform .25s ease; visibility: hidden;
	}
	.mj-filters.is-open { transform: none; visibility: visible; }
	.mj-sheet-head, .mj-sheet-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 18px; }
	.mj-sheet-head { border-bottom: 1px solid var(--mj-line); font-size: 18px; }
	.mj-sheet-close { display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--mj-bg); cursor: pointer; }
	.mj-sheet-body { display: block; flex: 1; overflow: auto; padding: 4px 18px 10px; overscroll-behavior: contain; }
	.mj-sheet-foot { border-top: 1px solid var(--mj-line); padding-bottom: max(14px, env(safe-area-inset-bottom)); }
	.mj-sheet-foot .mj-sheet-apply { flex: 1; }
	.mj-group { border-bottom: 1px solid var(--mj-line); }
	.mj-group-btn { width: 100%; justify-content: space-between; border: 0; border-radius: 0; padding: 14px 0; background: none !important; font-weight: 700; color: var(--mj-text) !important; }
	.mj-group-label { flex: 1; text-align: right; }
	.mj-pop { display: block; position: static; width: auto; max-height: none; padding: 0 0 12px; border: 0; box-shadow: none; }
	.mj-group.is-collapsed .mj-pop { display: none; }
	.mj-group.is-collapsed .mj-group-btn .mj-i { transform: rotate(90deg); }
	.mj-status-end { width: 100%; justify-content: space-between; }
	.mj-grid { grid-template-columns: 1fr; gap: 14px; }
	.mj-card { padding: 16px; }
	html.mj-lock, html.mj-lock body { overflow: hidden; }
}
.mj-backdrop { position: fixed; inset: 0; z-index: 99980; background: rgba(15, 30, 35, .45); }

/* ---------- single job ---------- */
.mj-single { max-width: 1140px; margin: 0 auto; padding-bottom: 20px; }
.mj-back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 14px; color: var(--mj-primary); font-weight: 600; text-decoration: none; }
.mj-hero {
	display: flex; align-items: center; gap: 20px; padding: 26px; margin-bottom: 24px;
	background: linear-gradient(135deg, color-mix(in srgb, var(--mj-soft) 35%, #fff), #fff 70%);
	border: 1px solid var(--mj-line); border-radius: calc(var(--mj-radius) + 4px);
}
.mj-hero-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.mj-hero .mj-badges { flex-direction: row; align-items: center; }
.mj-title { margin: 0; font-size: clamp(24px, 3vw, 34px); line-height: 1.25; font-weight: 700; color: var(--mj-text); }
.mj-hero .mj-company { font-size: 16px; font-weight: 600; }

.mj-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; align-items: start; }
.mj-section { margin-bottom: 28px; }
.mj-section h2, .mj-box h2, .mj-similar h2 { margin: 0 0 12px; font-size: 20px; font-weight: 700; color: var(--mj-primary); }
.mj-prose { font-size: 17px; line-height: 1.8; }
.mj-prose p { margin: 0 0 12px; }
.mj-prose ul, .mj-prose ol { margin: 0 0 12px; padding-inline-start: 22px; }
.mj-aside { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 16px; }
.mj-box { padding: 20px; background: #fff; border: 1px solid var(--mj-line); border-radius: var(--mj-radius); box-shadow: var(--mj-shadow); }
.mj-details { margin: 0 0 16px; }
.mj-details dt { margin: 0 0 6px; color: var(--mj-muted); font-size: 13px; font-weight: 600; }
.mj-details dd { margin: 0 0 14px; }
.mj-closed { margin: 0; padding: 12px; border-radius: 10px; background: var(--mj-bg); color: var(--mj-muted); text-align: center; }
.mj-share-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.mj-share-btns .mj-btn { flex: 1; min-height: 42px; padding: 8px 14px; font-size: 15px; }
.mj-similar { margin-top: 40px; }
.mj-sticky { display: none; }

@media (max-width: 900px) {
	.mj-layout { grid-template-columns: 1fr; }
	.mj-aside { position: static; }
}
@media (max-width: 767px) {
	.mj-hero { flex-wrap: wrap; padding: 20px; gap: 14px; }
	.mj-hero > .mj-apply-open { display: none; }
	.mj-sticky {
		display: block; position: fixed; inset: auto 0 0 0; z-index: 9990; padding: 10px 16px max(10px, env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, .96); backdrop-filter: blur(6px); border-top: 1px solid var(--mj-line);
		transition: transform .2s;
	}
	.mj-sticky.is-hidden { transform: translateY(110%); }
	.mj-single { padding-bottom: 90px; }
	.mj-prose { font-size: 16px; }
}

/* ---------- dialog + form ---------- */
.mj-dialog {
	width: min(560px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); padding: 0; overflow: auto;
	border: 0; border-radius: 20px; box-shadow: var(--mj-shadow-lg); color: var(--mj-text); direction: rtl; text-align: right;
	overflow-x: hidden;
}
.mj-dialog::backdrop { background: rgba(15, 30, 35, .5); }
.mj-dialog[open] { animation: mj-pop .18s ease-out; }
@keyframes mj-pop { from { opacity: 0; transform: translateY(12px) scale(.98); } }
@media (max-width: 767px) {
	.mj-dialog { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }
}
.mj-form { display: flex; flex-direction: column; min-height: 100%; }
.mj-form-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 20px 22px 14px; background: #fff; border-bottom: 1px solid var(--mj-line); }
.mj-form-head h2 { margin: 0; font-size: 22px; }
.mj-form-head p { margin: 2px 0 0; color: var(--mj-muted); font-size: 14px; }
.mj-dialog-close { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--mj-bg); cursor: pointer; }
.mj-success .mj-dialog-close { display: inline-flex; width: auto; height: auto; border-radius: 999px; }
.mj-form-body { flex: 1; display: flex; flex-direction: column; gap: 14px; padding: 18px 22px; }
.mj-form-foot { position: sticky; bottom: 0; padding: 14px 22px max(16px, env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--mj-line); }
.mj-f { display: flex; flex-direction: column; gap: 6px; }
.mj-f-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 520px) { .mj-f-row { grid-template-columns: 1fr; } }
.mj-f-label { font-weight: 600; font-size: 15px; }
.mj-f-label b { color: var(--mj-danger); }
.mj-f-label small { color: var(--mj-muted); font-weight: 400; }
.mj-f input:not([type=file]), .mj-f textarea {
	width: 100%; min-height: 48px; padding: 10px 14px; border: 1.5px solid #cfd8db; border-radius: 12px; background: #fff; font-size: 16px;
	transition: border-color .15s, box-shadow .15s;
}
.mj-f textarea { resize: vertical; min-height: 84px; }
.mj-f input:focus, .mj-f textarea:focus { outline: none; border-color: var(--mj-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-primary) 18%, transparent); }
.mj-f.is-invalid input, .mj-f.is-invalid textarea, .mj-f.is-invalid .mj-drop { border-color: var(--mj-danger); }
.mj-f-err { min-height: 0; color: var(--mj-danger); font-size: 13px; }
.mj-f-err:empty { display: none; }

.mj-drop {
	position: relative; display: block; padding: 18px; border: 2px dashed #c3cfd3; border-radius: 14px; background: var(--mj-bg);
	text-align: center; cursor: pointer; transition: border-color .15s, background .15s;
}
.mj-drop:hover, .mj-drop.is-over { border-color: var(--mj-primary); background: color-mix(in srgb, var(--mj-soft) 25%, #fff); }
.mj-drop input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.mj-drop-empty { display: flex; flex-direction: column; align-items: center; gap: 4px; color: var(--mj-primary); font-weight: 600; pointer-events: none; }
.mj-drop-empty .mj-i { width: 28px; height: 28px; }
.mj-drop-empty small { color: var(--mj-muted); font-weight: 400; }
.mj-drop-file { position: relative; z-index: 1; display: flex; align-items: center; gap: 10px; color: var(--mj-text); font-weight: 600; text-align: right; }
.mj-drop-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; direction: ltr; text-align: right; }
.mj-drop.has-file { border-style: solid; border-color: var(--mj-primary); background: #fff; }
.mj-drop-clear { display: grid; place-items: center; width: 32px; height: 32px; border: 0; border-radius: 50%; background: var(--mj-bg); cursor: pointer; }

.mj-checks { display: flex; flex-direction: column; gap: 10px; margin-top: 2px; }
.mj-check { position: relative; display: flex; align-items: flex-start; gap: 10px; font-size: 14px; cursor: pointer; }
.mj-check .mj-opt-box { margin-top: 1px; }
.mj-check a { color: var(--mj-primary); }
.mj-check.is-invalid .mj-opt-box { border-color: var(--mj-danger); }
/* Honeypot: invisible but kept in place, so it can't widen the dialog (an offset pushed it off-screen and caused horizontal scroll). */
.mj-hp { position: absolute !important; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; clip-path: inset(50%); opacity: 0; pointer-events: none; }
.mj-form-error { padding: 12px 14px; border-radius: 12px; background: #fdecea; color: var(--mj-danger); font-weight: 600; }

.mj-success { padding: 40px 26px 34px; text-align: center; }
.mj-success-icon { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 14px; border-radius: 50%; background: color-mix(in srgb, var(--mj-soft) 50%, #fff); color: var(--mj-primary); }
.mj-success-icon .mj-i { width: 36px; height: 36px; stroke-width: 2.5; }
.mj-success h2 { margin: 0 0 8px; font-size: 24px; }
.mj-success p { margin: 0 auto 20px; max-width: 380px; color: var(--mj-muted); }

@media (prefers-reduced-motion: reduce) {
	.mj *, .mj *::before, .mj *::after { transition: none !important; animation: none !important; }
}

/* ---------- carousel ---------- */
.mj-carousel { --mj-cv: var(--mj-cv-d, 4); --mj-gap: 20px; }
@media (max-width: 1024px) { .mj-carousel { --mj-cv: var(--mj-cv-t, 2); } }
@media (max-width: 767px) { .mj-carousel { --mj-cv: var(--mj-cv-m, 1); --mj-gap: 14px; } }
.mj-car-viewport { position: relative; display: flex; align-items: center; gap: 12px; }
.mj-car-track {
	flex: 1; min-width: 0; display: grid; grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--mj-cv) - 1) * var(--mj-gap)) / var(--mj-cv));
	gap: var(--mj-gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	padding: 6px 0 10px; scrollbar-width: none;
}
.mj-car-track::-webkit-scrollbar { display: none; }
.mj-car-track:focus-visible { outline: 3px solid color-mix(in srgb, var(--mj-primary) 40%, transparent); outline-offset: 4px; border-radius: var(--mj-radius); }
.mj-car-item { scroll-snap-align: start; display: flex; min-width: 0; }
.mj-car-item .mj-card { width: 100%; }
.mj-car-btn {
	display: grid; place-items: center; flex: none; width: 46px; height: 46px; padding: 0;
	border: 1px solid var(--mj-line); border-radius: 50%; background: #fff; color: var(--mj-primary);
	box-shadow: var(--mj-shadow); cursor: pointer; transition: background .15s, opacity .15s, transform .1s;
}
.mj-car-btn:hover:not([disabled]) { background: var(--mj-primary); color: #fff; border-color: var(--mj-primary); }
.mj-car-btn:active:not([disabled]) { transform: scale(.95); }
.mj-car-btn[disabled] { opacity: .35; cursor: default; box-shadow: none; }
.mj-carousel.is-static .mj-car-btn, .mj-carousel.is-static .mj-car-dots { display: none; }
.mj-car-foot { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: 14px; }
.mj-car-dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.mj-car-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px; background: #cdd7da; cursor: pointer; transition: width .2s, background .2s; }
.mj-car-dots button.is-active { width: 22px; background: var(--mj-primary); }
@media (max-width: 767px) {
	/* One card fills the width: arrows move under the track, next to the dots. */
	.mj-car-viewport { display: block; }
	.mj-car-btn { position: absolute; bottom: -52px; width: 40px; height: 40px; z-index: 2; }
	.mj-car-prev { right: 0; }
	.mj-car-next { left: 0; }
	.mj-car-foot { min-height: 40px; justify-content: center; }
	.mj-car-dots { max-width: calc(100% - 110px); margin-top: 16px; }
}

/* ---------- theme-proofing ----------
   The theme (Hello Biz / Elementor kit) styles every <button> and <a> on the site: black text, a
   #c36 red hover/focus fill, borders, nowrap. These rules pin every plugin control, in every state,
   to the brand colours. Scoped with ".mj" so they outrank ".elementor-kit-N button:hover". */
.mj button { text-transform: none; letter-spacing: normal; white-space: normal; font-weight: inherit; line-height: 1.2; }

.mj .mj-btn, .mj .mj-btn:is(:hover, :focus, :active, :visited) { color: #fff; border: 1.5px solid var(--mj-primary); border-radius: 999px; font-weight: 600; text-decoration: none; }
.mj .mj-btn { background: var(--mj-primary); padding: 10px 20px; }
.mj .mj-btn--lg { padding: 12px 28px; }
.mj .mj-btn:is(:hover, :focus-visible, :active) { background: color-mix(in srgb, var(--mj-primary) 82%, #000); border-color: color-mix(in srgb, var(--mj-primary) 82%, #000); }
.mj .mj-btn:focus:not(:focus-visible) { background: var(--mj-primary); }
.mj .mj-btn--ghost, .mj .mj-btn--ghost:is(:hover, :focus, :active, :visited) { color: var(--mj-primary); }
.mj .mj-btn--ghost { background: #fff; }
.mj .mj-btn--ghost:is(:hover, :focus-visible, :active) { background: color-mix(in srgb, var(--mj-soft) 35%, #fff); border-color: var(--mj-primary); }
.mj .mj-btn--ghost:focus:not(:focus-visible) { background: #fff; }

.mj .mj-group-btn, .mj .mj-open-filters,
.mj .mj-group-btn:is(:hover, :focus, :active), .mj .mj-open-filters:is(:hover, :focus, :active) {
	background: #fff; color: var(--mj-text); border: 1px solid var(--mj-line); border-radius: 999px; padding: 8px 16px;
}
.mj .mj-group-btn:hover, .mj .mj-open-filters:hover, .mj .mj-group-btn:focus-visible, .mj .mj-open-filters:focus-visible { border-color: var(--mj-primary); color: var(--mj-primary); }
.mj .mj-group.is-open .mj-group-btn, .mj .mj-group-btn.is-active, .mj .mj-group-btn.is-active:is(:hover, :focus, :active) {
	background: color-mix(in srgb, var(--mj-soft) 30%, #fff); border-color: var(--mj-primary); color: var(--mj-primary);
}

.mj .mj-locate, .mj .mj-locate:is(:hover, :focus, :active) { background: transparent; color: var(--mj-primary); border: 0; padding: 0; border-radius: 50%; }
.mj .mj-locate:is(:hover, :focus-visible) { background: color-mix(in srgb, var(--mj-soft) 40%, #fff); }

.mj .mj-active, .mj .mj-active:is(:focus, :active) { background: color-mix(in srgb, var(--mj-soft) 45%, #fff); color: var(--mj-primary); border: 0; border-radius: 999px; padding: 5px 10px 5px 12px; }
.mj .mj-active:hover, .mj .mj-active:focus-visible { background: color-mix(in srgb, var(--mj-soft) 70%, #fff); color: var(--mj-primary); }
.mj .mj-clear-all, .mj .mj-clear-all:is(:hover, :focus, :active) { background: none; border: 0; padding: 0; color: var(--mj-muted); }
.mj .mj-clear-all:hover { color: var(--mj-accent); }

.mj .mj-sheet-close, .mj .mj-dialog-close, .mj .mj-drop-clear,
.mj .mj-sheet-close:is(:hover, :focus, :active), .mj .mj-dialog-close:is(:hover, :focus, :active), .mj .mj-drop-clear:is(:hover, :focus, :active) {
	background: var(--mj-bg); color: var(--mj-text); border: 0; padding: 0; border-radius: 50%;
}
.mj .mj-sheet-close:hover, .mj .mj-dialog-close:hover, .mj .mj-drop-clear:hover { background: color-mix(in srgb, var(--mj-soft) 45%, #fff); color: var(--mj-primary); }
.mj .mj-success .mj-dialog-close, .mj .mj-success .mj-dialog-close:is(:hover, :focus, :active) { border-radius: 999px; padding: 10px 20px; background: #fff; color: var(--mj-primary); border: 1.5px solid var(--mj-primary); }

.mj .mj-car-btn, .mj .mj-car-btn:is(:focus, :active) { background: #fff; color: var(--mj-primary); border: 1px solid var(--mj-line); padding: 0; border-radius: 50%; }
.mj .mj-car-btn:is(:hover, :focus-visible):not([disabled]) { background: var(--mj-primary); color: #fff; border-color: var(--mj-primary); }
.mj .mj-car-btn[disabled], .mj .mj-car-btn[disabled]:hover { background: #fff; color: var(--mj-primary); }
.mj .mj-car-dots button, .mj .mj-car-dots button:is(:hover, :focus, :active) { background: #cdd7da; border: 0; padding: 0; min-height: 0; border-radius: 999px; }
.mj .mj-car-dots button:hover { background: var(--mj-soft); }
.mj .mj-car-dots button.is-active, .mj .mj-car-dots button.is-active:hover { background: var(--mj-primary); }

.mj a:not(.mj-btn):is(:hover, :focus) { color: var(--mj-primary); }
.mj .mj-card-title a, .mj .mj-card-title a:visited { color: var(--mj-text); }
.mj .mj-card:hover .mj-card-title a, .mj .mj-card-title a:is(:hover, :focus) { color: var(--mj-primary); }
.mj .mj-back:hover { color: var(--mj-accent); }
.mj .mj-check a:hover { color: var(--mj-accent); }

@media (max-width: 767px) {
	.mj .mj-group-btn, .mj .mj-group-btn:is(:hover, :focus, :active), .mj .mj-group.is-open .mj-group-btn, .mj .mj-group-btn.is-active {
		background: none; border: 0; border-radius: 0; padding: 14px 0; color: var(--mj-text); font-weight: 700;
	}
}

/* Layout of plugin buttons, also pinned against the theme's `[type=button]{display:inline-block}`. */
.mj .mj-btn, .mj .mj-group-btn, .mj .mj-active { display: inline-flex; align-items: center; justify-content: center; }
.mj .mj-group-btn, .mj .mj-active { justify-content: flex-start; }
.mj .mj-btn--block { display: flex; width: 100%; }
.mj .mj-locate, .mj .mj-dialog-close, .mj .mj-drop-clear, .mj .mj-car-btn, .mj .mj-sheet-close { display: grid; place-items: center; }
.mj .mj-sheet-close { display: none; }
.mj .mj-open-filters { display: none; }
.mj .mj-clear-all { display: inline; }
.mj .mj-car-dots button { display: block; }
.mj .mj-success .mj-dialog-close { display: inline-flex; }
@media (max-width: 767px) {
	.mj .mj-open-filters { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; }
	.mj .mj-sheet-close { display: grid; }
	.mj .mj-group-btn { display: flex; width: 100%; justify-content: space-between; }
	.mj .mj-hero > .mj-apply-open { display: none; }
}
.mj.mj-carousel.is-static .mj-car-btn { display: none; }

/* Discreet hiring: the site's placeholder image fills the logo box, and a quiet label replaces the company name. */
.mj .mj-logo.is-fallback { background: #fff; border-color: var(--mj-line); }
.mj .mj-logo.is-fallback img { padding: 2px; object-fit: contain; }
.mj .mj-company.is-discreet { display: inline-flex; align-items: center; gap: 6px; color: var(--mj-muted); font-style: normal; }
.mj .mj-company.is-discreet::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--mj-accent); }
