/************************************************
   GAVE Agency - Pages internes
   (offres, détail, simulateur, rendez-vous, forum,
    tutoriels, documents, contact, connexion, inscription)
*************************************************/

:root {
	--gv-blue: #263bd6;
	--gv-blue-2: #2563eb;
	--gv-blue-soft: rgba(38, 59, 214, 0.1);
	--gv-green: #17d27c;
	--gv-green-dark: #12b86b;
	--gv-ink: #0f172a;
	--gv-text: #475569;
	--gv-muted: #64748b;
	--gv-line: #e2e8f0;
	--gv-surface: #f4f6fb;
	--gv-radius: 20px;
	--gv-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
	--gv-shadow-lg: 0 20px 40px rgba(15, 23, 42, 0.1);
}

/* Gras rétabli (la remise à zéro du template l'annule) */
strong,
b {
	font-weight: 700;
}

/* ---------- Page hero ---------- */
.page-hero {
	padding: 50px 0 70px;
	text-align: center;
	background: radial-gradient(circle at 10% 20%, rgba(59, 130, 246, 0.12) 0%, rgba(59, 130, 246, 0) 45%),
		linear-gradient(135deg, #f0f9ff 0%, #f0fff4 45%, #ffffff 100%);
}
.page-hero-breadcrumb {
	justify-content: center;
	margin-bottom: 28px;
}
.page-hero .contact-badge {
	margin-bottom: 16px;
}
.page-hero h1 {
	font-family: 'Montserrat', sans-serif;
	font-size: 2.8rem;
	font-weight: 800;
	color: var(--gv-ink);
	margin-bottom: 12px;
}
.page-hero p {
	max-width: 680px;
	margin: 0 auto;
	font-size: 17px;
	line-height: 1.7;
	color: var(--gv-text);
}
.page-hero-search {
	display: flex;
	gap: 12px;
	max-width: 820px;
	margin: 32px auto 0;
	padding: 12px;
	background: #fff;
	border-radius: 22px;
	box-shadow: 0 20px 50px rgba(15, 23, 42, 0.1);
}
.page-hero-search .hero-field {
	flex: 1;
}
.page-hero-search--single .btn {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* ---------- Shared buttons ---------- */
.sol-btn-primary.btn-sm,
.sol-btn-outline.btn-sm,
.sol-btn-green.btn-sm {
	padding: 9px 18px;
	font-size: 14px;
}

/* ---------- Listing layout ---------- */
.listing-section {
	padding: 60px 0 90px;
}
.filter-panel,
.side-card {
	margin-bottom: 20px;
	padding: 24px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: var(--gv-radius);
}
.filter-panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
}
.filter-panel-head h2,
.side-card h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 17px;
	font-weight: 700;
	color: var(--gv-ink);
	margin: 0;
}
.side-card h3 {
	margin-bottom: 16px;
}
.filter-panel-head h2 i {
	margin-right: 6px;
	color: var(--gv-blue);
}
.filter-reset {
	padding: 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--gv-blue);
	background: none;
	border: 0;
}
.filter-group {
	padding: 18px 0 6px;
	border-top: 1px solid var(--gv-line);
	margin-top: 14px;
}
.filter-group h3 {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--gv-muted);
	margin-bottom: 12px;
}
.filter-check {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
	font-size: 15px;
	color: var(--gv-text);
	cursor: pointer;
}
.filter-check input {
	width: 18px;
	height: 18px;
	accent-color: var(--gv-blue);
	flex-shrink: 0;
}
.filter-check span:first-of-type {
	flex: 1;
}
.filter-count {
	min-width: 26px;
	padding: 2px 8px;
	font-size: 12px;
	font-weight: 700;
	text-align: center;
	color: var(--gv-muted);
	background: var(--gv-surface);
	border-radius: 999px;
}

.side-cta {
	margin-bottom: 20px;
	padding: 26px 24px;
	color: #fff;
	background: linear-gradient(135deg, var(--gv-blue) 0%, var(--gv-blue-2) 100%);
	border-radius: var(--gv-radius);
}
.side-cta-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin-bottom: 16px;
	font-size: 20px;
	background: rgba(255, 255, 255, 0.16);
	border-radius: 14px;
}
.side-cta h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 19px;
	font-weight: 700;
	color: #fff;
	margin-bottom: 8px;
}
.side-cta p {
	font-size: 14px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.85);
	margin-bottom: 18px;
}

.listing-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 18px;
}
.listing-toolbar p,
.listing-count {
	margin: 0;
	font-size: 15px;
	color: var(--gv-text);
}
.listing-toolbar strong,
.listing-count strong {
	color: var(--gv-ink);
}
.listing-count {
	margin-bottom: 18px;
}
.listing-sort {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--gv-muted);
}
.listing-sort .form-select {
	width: auto;
	border-radius: 12px;
}
.listing-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 24px;
}
.listing-search {
	flex: 0 1 340px;
}
.filter-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.filter-chip {
	padding: 9px 18px;
	font-size: 14px;
	font-weight: 600;
	color: var(--gv-blue);
	background: #fff;
	border: 1px solid var(--gv-blue);
	border-radius: 999px;
	transition: all 0.2s ease;
}
.filter-chip:hover {
	background: var(--gv-blue-soft);
}
.filter-chip.active {
	color: #fff;
	background: var(--gv-blue);
}

.empty-state {
	padding: 60px 24px;
	text-align: center;
	background: #fff;
	border: 1px dashed var(--gv-line);
	border-radius: var(--gv-radius);
}
.empty-state > i {
	font-size: 40px;
	color: var(--gv-blue);
	margin-bottom: 16px;
}
.empty-state h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: var(--gv-ink);
}
.empty-state p {
	color: var(--gv-text);
	margin-bottom: 20px;
}

.listing-pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 32px;
}
.listing-pagination a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	font-weight: 700;
	color: var(--gv-ink);
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: 12px;
	transition: all 0.2s ease;
}
.listing-pagination a:hover,
.listing-pagination a.active {
	color: #fff;
	background: var(--gv-blue);
	border-color: var(--gv-blue);
}
.listing-pagination a.disabled {
	pointer-events: none;
	opacity: 0.4;
}

/* ---------- Job rows ---------- */
.gv-job-list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.job-row {
	display: flex;
	align-items: center;
	gap: 22px;
	padding: 22px 24px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: var(--gv-radius);
	transition: all 0.25s ease;
}
.job-row:hover {
	border-color: transparent;
	box-shadow: var(--gv-shadow-lg);
	transform: translateY(-2px);
}
.job-row-logo {
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	padding: 8px;
	object-fit: contain;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 6px 18px rgba(15, 23, 42, 0.1);
}
.job-row-main {
	flex: 1;
	min-width: 0;
}
.job-row-top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
}
.job-row-date {
	font-size: 13px;
	color: var(--gv-muted);
}
.job-row h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 19px;
	font-weight: 700;
	margin-bottom: 4px;
}
.job-row h3 a {
	color: var(--gv-ink);
}
.job-row h3 a:hover {
	color: var(--gv-blue);
}
.job-row-company {
	font-size: 14px;
	font-weight: 600;
	color: var(--gv-text);
	margin-bottom: 10px;
}
.job-row-company i,
.job-row-meta i {
	color: var(--gv-blue);
	margin-right: 4px;
}
.job-row-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	margin: 0;
	padding: 0;
	font-size: 14px;
	color: var(--gv-text);
}
.job-row-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 12px;
	flex-shrink: 0;
}
.job-row-save {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	color: var(--gv-muted);
	background: var(--gv-surface);
	border: 0;
	border-radius: 50%;
	transition: all 0.2s ease;
}
.job-row-save:hover {
	color: #e11d48;
	background: #ffe4e6;
}

/* ---------- Job detail ---------- */
.job-head {
	padding: 30px 0 0;
	background: linear-gradient(180deg, #f0f9ff 0%, #ffffff 100%);
}
.job-head .sol-breadcrumb {
	margin-bottom: 24px;
}
.job-head-card {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 26px;
	padding: 32px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: 24px;
	box-shadow: var(--gv-shadow);
}
.job-head-logo {
	width: 88px;
	height: 88px;
	padding: 10px;
	object-fit: contain;
	border-radius: 20px;
	box-shadow: 0 6px 18px rgba(15, 23, 42, 0.12);
}
.job-head-main {
	flex: 1;
	min-width: 260px;
}
.job-head-badges {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
}
.job-head-ref {
	font-size: 13px;
	font-weight: 600;
	color: var(--gv-muted);
}
.job-head h1 {
	font-family: 'Montserrat', sans-serif;
	font-size: 2rem;
	font-weight: 800;
	color: var(--gv-ink);
	margin-bottom: 12px;
}
.job-head-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.job-head-secondary {
	display: flex;
	gap: 8px;
}
.job-body {
	padding: 50px 0 90px;
}
.job-content h2 {
	font-family: 'Montserrat', sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: var(--gv-ink);
	margin: 34px 0 14px;
}
.job-content h2:first-child {
	margin-top: 0;
}
.job-content p {
	font-size: 16px;
	line-height: 1.8;
	color: var(--gv-text);
}
.gv-job-list-check {
	padding: 0;
	margin: 0;
}
.gv-job-list-check li {
	position: relative;
	padding-left: 32px;
	margin-bottom: 12px;
	font-size: 16px;
	line-height: 1.7;
	color: var(--gv-text);
}
.gv-job-list-check li::before {
	content: "\f00c";
	position: absolute;
	left: 0;
	top: 3px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 11px;
	color: var(--gv-blue);
	background: var(--gv-blue-soft);
	border-radius: 50%;
}
.job-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.job-tags span {
	padding: 8px 16px;
	font-size: 14px;
	font-weight: 600;
	color: var(--gv-blue);
	background: var(--gv-blue-soft);
	border-radius: 999px;
}
.job-apply-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-top: 40px;
	padding: 28px 32px;
	background: var(--gv-surface);
	border-radius: var(--gv-radius);
}
.job-apply-banner h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: var(--gv-ink);
	margin-bottom: 4px;
}
.job-apply-banner p {
	margin: 0;
	font-size: 15px;
}
.job-summary {
	margin: 0;
}
.job-summary > div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--gv-line);
}
.job-summary > div:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}
.job-summary dt {
	font-size: 14px;
	font-weight: 500;
	color: var(--gv-muted);
}
.job-summary dt i {
	width: 18px;
	color: var(--gv-blue);
}
.job-summary dd {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	color: var(--gv-ink);
	text-align: right;
}
.side-card--company {
	text-align: center;
}
.side-card--company img {
	width: 72px;
	height: 72px;
	padding: 8px;
	margin-bottom: 14px;
	object-fit: contain;
	border-radius: 18px;
	box-shadow: 0 6px 18px rgba(15, 23, 42, 0.12);
}
.side-card--company h3 {
	margin-bottom: 8px;
}
.side-card--company p {
	font-size: 14px;
	line-height: 1.6;
	color: var(--gv-text);
}
.similar-jobs {
	padding: 80px 0;
}

/* ---------- Forms & modals ---------- */
.gave-form .form-label {
	font-size: 14px;
	font-weight: 600;
	color: var(--gv-ink);
}
.gave-form .form-control,
.gave-form .form-select {
	padding: 12px 16px;
	font-size: 15px;
	border: 1px solid var(--gv-line);
	border-radius: 12px;
	box-shadow: none;
}
.gave-form .form-control:focus,
.gave-form .form-select:focus {
	border-color: var(--gv-blue);
	box-shadow: 0 0 0 4px rgba(38, 59, 214, 0.12);
}
.gave-form .form-check-input:checked {
	background-color: var(--gv-blue);
	border-color: var(--gv-blue);
}
.gave-form .form-check-label {
	font-size: 14px;
	color: var(--gv-text);
}
.form-success {
	padding: 40px 24px;
	text-align: center;
}
.form-success > i {
	font-size: 54px;
	color: var(--gv-green);
	margin-bottom: 18px;
}
.form-success h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: var(--gv-ink);
}
.form-success p {
	max-width: 480px;
	margin: 0 auto 22px;
	color: var(--gv-text);
	line-height: 1.7;
}
.apply-modal {
	border: 0;
	border-radius: 24px;
}
.apply-modal .modal-header {
	align-items: flex-start;
	padding: 26px 30px 10px;
	border: 0;
}
.apply-modal .modal-title {
	font-family: 'Montserrat', sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: var(--gv-ink);
}
.apply-modal .modal-header p {
	margin: 4px 0 0;
	font-size: 14px;
	color: var(--gv-muted);
}
.apply-modal .modal-body {
	padding: 10px 30px 30px;
}
.apply-modal-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-top: 24px;
}
.apply-modal-footer p {
	margin: 0;
	font-size: 14px;
	color: var(--gv-muted);
}
.password-group .form-control {
	border-right: 0;
	border-top-right-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
}
.password-toggle {
	color: var(--gv-muted);
	background: #fff;
	border: 1px solid var(--gv-line);
	border-left: 0;
	border-radius: 0 12px 12px 0 !important;
}
.password-group .invalid-feedback {
	width: 100%;
}
.info-list {
	padding: 0;
	margin: 0;
}
.info-list li {
	display: flex;
	gap: 12px;
	margin-bottom: 12px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--gv-text);
}
.info-list li:last-child {
	margin-bottom: 0;
}
.info-list i {
	width: 18px;
	margin-top: 3px;
	color: var(--gv-blue);
}

/* ---------- Simulateur ---------- */
.sim-section {
	padding: 60px 0 90px;
}
.sim-card,
.rdv-card,
.contact-form-card {
	padding: 32px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: 24px;
	box-shadow: var(--gv-shadow);
}
.sim-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
	padding: 6px;
	margin-bottom: 28px;
	background: var(--gv-surface);
	border-radius: 16px;
}
.sim-tabs .nav-link {
	padding: 12px;
	font-weight: 700;
	color: var(--gv-text);
	border-radius: 12px;
}
.sim-tabs .nav-link i {
	margin-right: 6px;
}
.sim-tabs .nav-link.active {
	color: #fff;
	background: var(--gv-blue);
	box-shadow: 0 8px 20px rgba(38, 59, 214, 0.25);
}
.sim-amount .form-control {
	font-family: 'Montserrat', sans-serif;
	font-size: 22px;
	font-weight: 700;
	border-top-right-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
}
.sim-amount .input-group-text {
	font-weight: 600;
	color: var(--gv-muted);
	background: var(--gv-surface);
	border: 1px solid var(--gv-line);
	border-radius: 0 12px 12px 0;
}
.sim-amount .invalid-feedback {
	width: 100%;
}
.sim-parts {
	display: flex;
	align-items: center;
	gap: 6px;
	height: 50px;
	padding: 0 16px;
	font-size: 15px;
	color: var(--gv-text);
	background: var(--gv-surface);
	border-radius: 12px;
}
.sim-parts span {
	font-weight: 800;
	color: var(--gv-blue);
}
.sim-results {
	position: sticky;
	top: 20px;
	padding: 30px;
	color: #fff;
	background: linear-gradient(160deg, #0f172a 0%, #1e293b 100%);
	border-radius: 24px;
	box-shadow: var(--gv-shadow-lg);
}
.sim-results-empty {
	padding: 40px 10px;
	text-align: center;
	color: rgba(255, 255, 255, 0.7);
}
.sim-results-empty p {
	max-width: 340px;
	margin: 0 auto;
	font-size: 15px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.85);
}
.sim-results-empty i {
	font-size: 46px;
	margin-bottom: 18px;
	color: var(--gv-green);
}
.sim-results-content {
	display: none;
}
.sim-results.is-ready .sim-results-empty {
	display: none;
}
.sim-results.is-ready .sim-results-content {
	display: block;
	animation: simFade 0.4s ease;
}
@keyframes simFade {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: none; }
}
.sim-headline-label {
	font-size: 14px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.7);
}
.sim-headline {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 2.2rem;
	font-weight: 800;
	color: var(--gv-green);
	margin: 4px 0 18px;
}
.sim-bar {
	display: flex;
	height: 12px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.1);
	border-radius: 999px;
}
.sim-bar span {
	height: 100%;
	transition: width 0.5s ease;
}
.sim-bar-net { background: var(--gv-green); }
.sim-bar-its { background: #f59e0b; }
.sim-bar-retraite { background: #60a5fa; }
.sim-bar-cmu { background: #f472b6; }
.sim-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	padding: 0;
	margin: 12px 0 18px;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.75);
}
.sim-dot {
	display: inline-block;
	width: 10px;
	height: 10px;
	margin-right: 4px;
	border-radius: 50%;
}
.sim-lines {
	padding: 0;
	margin: 0;
}
.sim-lines li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 0;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.75);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.sim-lines strong {
	color: #fff;
	white-space: nowrap;
}
.sim-lines .is-plus strong {
	color: var(--gv-green);
}
.sim-lines .is-strong span,
.sim-lines .is-strong strong {
	font-weight: 800;
	color: #fff;
}
.sim-total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 16px;
	padding: 16px 18px;
	font-weight: 700;
	background: rgba(23, 210, 124, 0.14);
	border-radius: 14px;
}
.sim-total strong {
	font-size: 18px;
	color: var(--gv-green);
}
.sim-note {
	margin: 14px 0 0;
	font-size: 12px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.7);
}
.sim-help {
	padding: 80px 0;
}
.sim-help-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 18px;
	margin-top: 40px;
}
.sim-help-cta p {
	margin: 0;
	font-size: 17px;
	font-weight: 600;
	color: var(--gv-ink);
}

/* ---------- Rendez-vous ---------- */
.rdv-section {
	padding: 50px 0 90px;
}
.rdv-progress {
	display: flex;
	justify-content: center;
	gap: 12px;
	padding: 0;
	margin: 0 0 34px;
	counter-reset: none;
}
.rdv-progress li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 18px 10px 10px;
	font-size: 15px;
	font-weight: 600;
	color: var(--gv-muted);
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: 999px;
}
.rdv-progress li span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	font-weight: 800;
	color: var(--gv-muted);
	background: var(--gv-surface);
	border-radius: 50%;
}
.rdv-progress li.active {
	color: var(--gv-blue);
	border-color: var(--gv-blue);
}
.rdv-progress li.active span {
	color: #fff;
	background: var(--gv-blue);
}
.rdv-progress li.done span,
.rdv-progress.is-complete li span {
	color: #fff;
	background: var(--gv-green);
}
.rdv-step {
	border: 0;
	padding: 0;
	margin: 0;
}
.rdv-step legend {
	font-family: 'Montserrat', sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: var(--gv-ink);
	margin-bottom: 22px;
}
.rdv-choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}
.rdv-choice {
	cursor: pointer;
}
.rdv-choice input,
.rdv-mode input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.rdv-choice-body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	height: 100%;
	padding: 20px;
	border: 2px solid var(--gv-line);
	border-radius: 18px;
	transition: all 0.2s ease;
}
.rdv-choice-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-bottom: 6px;
	font-size: 18px;
	color: var(--gv-blue);
	background: var(--gv-blue-soft);
	border-radius: 12px;
}
.rdv-choice strong {
	font-size: 16px;
	font-weight: 700;
	color: var(--gv-ink);
}
.rdv-choice small {
	font-size: 14px;
	line-height: 1.5;
	color: var(--gv-muted);
}
.rdv-choice:hover .rdv-choice-body {
	border-color: rgba(38, 59, 214, 0.4);
}
.rdv-choice input:checked + .rdv-choice-body {
	border-color: var(--gv-blue);
	background: rgba(38, 59, 214, 0.04);
	box-shadow: 0 10px 24px rgba(38, 59, 214, 0.12);
}
.rdv-choice input:checked + .rdv-choice-body .rdv-choice-icon {
	color: #fff;
	background: var(--gv-blue);
}
.rdv-choice input:focus-visible + .rdv-choice-body,
.rdv-mode input:focus-visible + span {
	outline: 3px solid rgba(38, 59, 214, 0.35);
	outline-offset: 2px;
}
.rdv-hint {
	margin: 8px 0 0;
	font-size: 13px;
	color: var(--gv-muted);
}
.rdv-modes {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}
.rdv-mode {
	cursor: pointer;
}
.rdv-mode span {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	text-align: center;
	gap: 10px;
	padding: 11px 14px;
	font-size: 14px;
	font-weight: 600;
	color: var(--gv-text);
	border: 1px solid var(--gv-line);
	border-radius: 12px;
	transition: all 0.2s ease;
}
.rdv-mode span i {
	color: var(--gv-blue);
}
.rdv-mode input:checked + span {
	color: var(--gv-blue);
	border-color: var(--gv-blue);
	background: rgba(38, 59, 214, 0.05);
}
.rdv-slots {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: 10px;
	min-height: 60px;
}
.rdv-slot {
	padding: 12px 8px;
	font-weight: 700;
	color: var(--gv-blue);
	background: #fff;
	border: 1px solid var(--gv-blue);
	border-radius: 12px;
	transition: all 0.2s ease;
}
.rdv-slot:hover:not(:disabled) {
	background: var(--gv-blue-soft);
}
.rdv-slot.active {
	color: #fff;
	background: var(--gv-blue);
}
.rdv-slot:disabled {
	color: #cbd5e1;
	border-color: var(--gv-line);
	text-decoration: line-through;
	cursor: not-allowed;
}
.rdv-error {
	margin: 18px 0 0;
	padding: 12px 16px;
	font-size: 14px;
	font-weight: 600;
	color: #b91c1c;
	background: #fef2f2;
	border-radius: 12px;
}
.rdv-nav {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid var(--gv-line);
}
.rdv-summary {
	position: sticky;
	top: 20px;
}

/* ---------- Forum ---------- */
.forum-cats {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 10px;
}
.forum-cat {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	font-size: 14px;
	font-weight: 600;
	text-align: left;
	color: var(--gv-text);
	background: none;
	border: 0;
	border-radius: 12px;
	transition: all 0.2s ease;
}
.forum-cat i {
	width: 18px;
	color: var(--gv-blue);
}
.forum-cat span {
	margin-left: auto;
	padding: 1px 8px;
	font-size: 12px;
	color: var(--gv-muted);
	background: var(--gv-surface);
	border-radius: 999px;
}
.forum-cat:hover,
.forum-cat.active {
	color: var(--gv-blue);
	background: var(--gv-blue-soft);
}
.forum-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.forum-topic {
	display: flex;
	gap: 18px;
	padding: 22px 24px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: var(--gv-radius);
	transition: all 0.25s ease;
}
.forum-topic:hover {
	border-color: transparent;
	box-shadow: var(--gv-shadow-lg);
}
.forum-topic-main {
	flex: 1;
	min-width: 0;
}
.forum-topic-cat {
	display: inline-block;
	margin-bottom: 8px;
	padding: 3px 12px;
	font-size: 12px;
	font-weight: 700;
	color: #047857;
	background: rgba(34, 197, 94, 0.12);
	border-radius: 999px;
}
.forum-topic h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 6px;
}
.forum-topic h3 a {
	color: var(--gv-ink);
}
.forum-topic h3 a:hover {
	color: var(--gv-blue);
}
.forum-topic p {
	font-size: 14px;
	line-height: 1.6;
	color: var(--gv-text);
	margin-bottom: 8px;
}
.forum-topic-meta {
	font-size: 13px;
	color: var(--gv-muted);
}
.forum-topic-stats {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex-shrink: 0;
	padding: 0;
	margin: 0;
	text-align: center;
}
.forum-topic-stats li {
	min-width: 84px;
	padding: 8px 10px;
	font-size: 12px;
	color: var(--gv-muted);
	background: var(--gv-surface);
	border-radius: 12px;
}
.forum-topic-stats strong {
	display: block;
	font-size: 16px;
	color: var(--gv-ink);
}
.forum-thread {
	padding: 10px 0 90px;
}
.forum-post {
	padding: 32px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: 24px;
	box-shadow: var(--gv-shadow);
}
.forum-post h1 {
	font-family: 'Montserrat', sans-serif;
	font-size: 1.9rem;
	font-weight: 800;
	color: var(--gv-ink);
	margin-bottom: 18px;
}
.forum-post-author {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--gv-line);
}
.forum-post-author div strong,
.forum-post-author div span {
	display: block;
}
.forum-post-author div span {
	font-size: 13px;
	color: var(--gv-muted);
}
.forum-post p {
	font-size: 16px;
	line-height: 1.8;
	color: var(--gv-text);
}
.forum-replies-title,
.forum-answer h2 {
	font-family: 'Montserrat', sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: var(--gv-ink);
	margin: 36px 0 16px;
}
.forum-replies {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.forum-reply {
	display: flex;
	gap: 16px;
	padding: 22px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: var(--gv-radius);
}
.forum-reply--staff {
	background: rgba(38, 59, 214, 0.03);
	border-color: rgba(38, 59, 214, 0.25);
}
.forum-reply-body {
	flex: 1;
}
.forum-reply-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}
.forum-reply-head strong {
	color: var(--gv-ink);
}
.forum-reply-head > span:last-child {
	font-size: 13px;
	color: var(--gv-muted);
}
.forum-staff {
	padding: 2px 10px;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
	background: var(--gv-blue);
	border-radius: 999px;
}
.forum-reply p {
	font-size: 15px;
	line-height: 1.7;
	color: var(--gv-text);
	margin-bottom: 10px;
}
.forum-like {
	padding: 5px 12px;
	font-size: 13px;
	font-weight: 600;
	color: var(--gv-muted);
	background: var(--gv-surface);
	border: 0;
	border-radius: 999px;
}
.forum-like:hover {
	color: var(--gv-blue);
}
.forum-answer-foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-top: 14px;
}
.forum-answer-foot p {
	margin: 0;
	font-size: 14px;
	color: var(--gv-muted);
}
.related-list {
	padding: 0;
	margin: 0;
}
.related-list li {
	padding: 12px 0;
	border-bottom: 1px solid var(--gv-line);
}
.related-list li:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}
.related-list a {
	display: block;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	color: var(--gv-ink);
}
.related-list a:hover {
	color: var(--gv-blue);
}
.related-list span {
	font-size: 13px;
	color: var(--gv-muted);
}

/* ---------- Tutoriels ---------- */
.tuto-card {
	height: 100%;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: var(--gv-radius);
	transition: all 0.3s ease;
}
.tuto-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--gv-shadow-lg);
}
.tuto-media {
	position: relative;
	display: block;
	width: 100%;
	height: 200px;
	padding: 0;
	overflow: hidden;
	border: 0;
	background: var(--gv-ink);
}
.tuto-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.85;
	transition: transform 0.6s ease, opacity 0.3s ease;
}
.tuto-card:hover .tuto-media img {
	transform: scale(1.06);
	opacity: 0.7;
}
.tuto-play {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	font-size: 20px;
	color: var(--gv-blue);
	background: #fff;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.25);
	transition: transform 0.3s ease;
}
.tuto-media:hover .tuto-play {
	transform: translate(-50%, -50%) scale(1.1);
}
.tuto-duration {
	position: absolute;
	right: 12px;
	bottom: 12px;
	padding: 3px 10px;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
	background: rgba(15, 23, 42, 0.75);
	border-radius: 8px;
}
.tuto-body {
	padding: 22px;
}
.tuto-body h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: var(--gv-ink);
	margin-bottom: 8px;
}
.tuto-body p {
	font-size: 14px;
	line-height: 1.6;
	color: var(--gv-text);
	margin: 0;
}
.gv-video-modal {
	overflow: hidden;
	border: 0;
	border-radius: 20px;
	background: var(--gv-ink);
}
.gv-video-modal .modal-header {
	border-color: rgba(255, 255, 255, 0.1);
}
.gv-video-modal .modal-title {
	font-size: 18px;
	font-weight: 700;
	color: #fff;
}
.gv-video-modal .btn-close {
	filter: invert(1);
}
.gv-video-modal .modal-body {
	padding: 0;
}
.video-frame iframe {
	border: 0;
}
.video-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.75);
}
.video-placeholder p {
	margin: 0;
	font-size: 16px;
	color: rgba(255, 255, 255, 0.85);
}
.video-placeholder i {
	font-size: 56px;
	margin-bottom: 14px;
	color: var(--gv-green);
}

/* ---------- Documents ---------- */
.doc-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.doc-item {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 20px 24px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: var(--gv-radius);
	transition: all 0.25s ease;
}
.doc-item:hover {
	border-color: transparent;
	box-shadow: var(--gv-shadow-lg);
}
.doc-icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	font-size: 24px;
	border-radius: 16px;
}
.doc-icon--pdf { color: #dc2626; background: #fef2f2; }
.doc-icon--docx { color: #2563eb; background: #eff6ff; }
.doc-icon--xlsx { color: #16a34a; background: #f0fdf4; }
.doc-main {
	flex: 1;
	min-width: 0;
}
.doc-main h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 17px;
	font-weight: 700;
	color: var(--gv-ink);
	margin-bottom: 4px;
}
.doc-main p {
	font-size: 14px;
	color: var(--gv-text);
	margin-bottom: 8px;
}
.doc-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	padding: 0;
	margin: 0;
	font-size: 13px;
	color: var(--gv-muted);
}
.doc-meta li:first-child {
	font-weight: 700;
	color: var(--gv-ink);
}
.doc-download {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* ---------- Contact ---------- */
.contact-info {
	padding: 60px 0 0;
}
.contact-info-card {
	height: 100%;
	padding: 28px 24px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: var(--gv-radius);
	transition: all 0.25s ease;
}
.contact-info-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--gv-shadow-lg);
}
.contact-info-card h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: var(--gv-ink);
	margin-bottom: 8px;
}
.contact-info-card p {
	margin: 0;
	font-size: 15px;
	line-height: 1.7;
	color: var(--gv-text);
}
.contact-info-card a {
	color: var(--gv-blue);
	word-break: break-word;
}
.contact-main {
	padding: 30px 0 90px;
}
.contact-form-card h2 {
	font-family: 'Montserrat', sans-serif;
	font-size: 24px;
	font-weight: 700;
	color: var(--gv-ink);
	margin-bottom: 6px;
}
.contact-form-card > p {
	color: var(--gv-text);
	margin-bottom: 24px;
}
.gv-contact-map {
	height: 320px;
	margin-bottom: 20px;
	overflow: hidden;
	border-radius: 24px;
	box-shadow: var(--gv-shadow);
}
.gv-contact-map iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

/* ---------- Connexion / Inscription ---------- */
.gv-auth-section {
	padding: 60px 0 90px;
	background: linear-gradient(135deg, #f0f9ff 0%, #f0fff4 45%, #ffffff 100%);
}
.gv-auth-card {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	max-width: 1040px;
	margin: 0 auto;
	overflow: hidden;
	background: #fff;
	border-radius: 28px;
	box-shadow: 0 30px 70px rgba(15, 23, 42, 0.12);
}
.gv-auth-aside {
	position: relative;
	padding: 48px 40px;
	overflow: hidden;
	color: #fff;
	background: linear-gradient(160deg, var(--gv-blue) 0%, var(--gv-blue-2) 100%);
}
.gv-auth-aside::after {
	content: '';
	position: absolute;
	right: -80px;
	bottom: -80px;
	width: 260px;
	height: 260px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
}
.gv-auth-logo {
	height: 48px;
	width: auto;
	padding: 8px 12px;
	margin-bottom: 36px;
	background: #fff;
	border-radius: 12px;
}
.gv-auth-aside h2 {
	font-family: 'Montserrat', sans-serif;
	font-size: 28px;
	font-weight: 800;
	color: #fff;
	margin-bottom: 12px;
}
.gv-auth-aside p {
	font-size: 16px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.85);
	margin-bottom: 26px;
}
.gv-auth-aside ul {
	position: relative;
	z-index: 1;
	padding: 0;
	margin: 0;
}
.gv-auth-aside li {
	display: flex;
	gap: 12px;
	margin-bottom: 14px;
	font-size: 15px;
	line-height: 1.5;
}
.gv-auth-aside li i {
	margin-top: 3px;
	color: var(--gv-green);
}
.gv-auth-main {
	padding: 48px 44px;
}
.gv-auth-main h1 {
	font-family: 'Montserrat', sans-serif;
	font-size: 2rem;
	font-weight: 800;
	color: var(--gv-ink);
	margin-bottom: 6px;
}
.gv-auth-lead {
	color: var(--gv-text);
	margin-bottom: 26px;
}
.gv-auth-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-size: 14px;
}
.gv-auth-row a {
	font-weight: 600;
	color: var(--gv-blue);
}
.gv-auth-divider {
	position: relative;
	margin: 24px 0;
	text-align: center;
}
.gv-auth-divider::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	border-top: 1px solid var(--gv-line);
}
.gv-auth-divider span {
	position: relative;
	padding: 0 14px;
	font-size: 13px;
	color: var(--gv-muted);
	background: #fff;
}
.gv-auth-google {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	padding: 12px;
	font-weight: 700;
	color: var(--gv-ink);
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: 999px;
	transition: all 0.2s ease;
}
.gv-auth-google:hover {
	background: var(--gv-surface);
}
.gv-auth-switch {
	margin: 22px 0 0;
	text-align: center;
	font-size: 15px;
	color: var(--gv-text);
}
.gv-auth-switch a {
	font-weight: 700;
	color: var(--gv-blue);
}
.gv-auth-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
	padding: 6px;
	margin-bottom: 24px;
	background: var(--gv-surface);
	border-radius: 16px;
}
.gv-auth-tabs .nav-link {
	padding: 11px;
	font-weight: 700;
	color: var(--gv-text);
	border-radius: 12px;
}
.gv-auth-tabs .nav-link i {
	margin-right: 6px;
}
.gv-auth-tabs .nav-link.active {
	color: #fff;
	background: var(--gv-blue);
}

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
	.page-hero h1 {
		font-size: 2.1rem;
	}
	.sim-results,
	.rdv-summary {
		position: static;
	}
	.job-head-actions {
		width: 100%;
	}
	.gv-auth-card {
		grid-template-columns: 1fr;
	}
	.gv-auth-aside {
		padding: 32px 28px;
	}
	.gv-auth-aside ul {
		display: none;
	}
	.gv-auth-logo {
		margin-bottom: 20px;
	}
}
@media (max-width: 767px) {
	.page-hero {
		padding: 36px 0 50px;
	}
	.page-hero h1 {
		font-size: 1.8rem;
	}
	.page-hero-search {
		flex-direction: column;
	}
	.page-hero-search .hero-submit {
		width: 100%;
	}
	.job-row,
	.doc-item {
		flex-wrap: wrap;
		align-items: flex-start;
	}
	.job-row-actions {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		width: 100%;
	}
	.doc-download {
		width: 100%;
		justify-content: center;
	}
	.forum-topic {
		flex-wrap: wrap;
	}
	.forum-topic-stats {
		flex-direction: row;
		width: 100%;
	}
	.forum-topic-stats li {
		flex: 1;
	}
	.rdv-choices {
		grid-template-columns: 1fr;
	}
	.rdv-progress {
		gap: 6px;
	}
	.rdv-progress li {
		padding: 6px;
		font-size: 0;
	}
	.rdv-progress li.active {
		padding-right: 14px;
		font-size: 14px;
	}
	.sim-card,
	.rdv-card,
	.contact-form-card,
	.forum-post,
	.job-head-card {
		padding: 22px;
	}
	.gv-auth-main {
		padding: 30px 22px;
	}
	.listing-search {
		flex: 1 1 100%;
	}
}

/* ---------- Filtres repliables (mobile) ---------- */
.filter-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	margin-bottom: 16px;
	padding: 12px;
	font-weight: 700;
	color: var(--gv-blue);
	background: #fff;
	border: 1px solid var(--gv-blue);
	border-radius: 14px;
}
@media (max-width: 991px) {
	.listing-aside > .filter-panel,
	.listing-aside > .side-card,
	.listing-aside > .side-cta {
		display: none;
	}
	.listing-aside.is-open > .filter-panel,
	.listing-aside.is-open > .side-card {
		display: block;
	}
}

/* ---------- À propos ---------- */
.about-hero-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 28px;
}
.about-highlights {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 0;
	margin: 26px 0 0;
}
.about-highlights li {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 15px;
	color: var(--gv-text);
}
.about-highlights strong {
	display: block;
	font-weight: 700;
	font-size: 16px;
	color: var(--gv-ink);
}
.about-hl-icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	font-size: 18px;
	color: var(--gv-blue);
	background: var(--gv-blue-soft);
	border-radius: 14px;
}
.about-name-card {
	position: absolute;
	left: -24px;
	bottom: 48px;
	z-index: 2;
	max-width: 290px;
	padding: 22px 24px;
	background: #fff;
	border-radius: 18px;
	box-shadow: 0 20px 50px rgba(15, 23, 42, 0.18);
}
.about-name-word {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 24px;
	font-weight: 800;
	color: var(--gv-blue);
	margin-bottom: 6px;
}
.about-name-card p {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--gv-text);
}
.about-mission {
	padding: 90px 0;
	background: var(--gv-surface);
}
.about-mvv {
	height: 100%;
	padding: 34px 30px;
	background: #fff;
	border-radius: var(--gv-radius);
	box-shadow: var(--gv-shadow);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.about-mvv:hover {
	transform: translateY(-6px);
	box-shadow: var(--gv-shadow-lg);
}
.about-mvv h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 21px;
	font-weight: 700;
	color: var(--gv-ink);
	margin-bottom: 10px;
}
.about-mvv p {
	margin: 0;
	font-size: 15px;
	line-height: 1.75;
	color: var(--gv-text);
}
.about-values {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	padding: 0;
	margin: 40px 0 0;
}
.about-values li {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	font-weight: 700;
	color: var(--gv-ink);
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: 999px;
}
.about-values i {
	color: var(--gv-green);
}
.about-stats-section {
	padding: 50px 0;
	background: linear-gradient(135deg, var(--gv-blue) 0%, var(--gv-blue-2) 100%);
}
.about-stat {
	text-align: center;
	color: #fff;
}
.about-stat-value {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 2.6rem;
	font-weight: 800;
	line-height: 1.1;
}
.about-stat-label {
	font-size: 15px;
	color: rgba(255, 255, 255, 0.85);
}
.about-audiences {
	padding: 90px 0;
}
.about-aud {
	height: 100%;
	padding: 40px 36px;
	border-radius: 24px;
	color: #fff;
}
.about-aud--candidate {
	background: linear-gradient(135deg, var(--gv-blue) 0%, var(--gv-blue-2) 100%);
}
.about-aud--company {
	background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
}
.about-aud-tag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px;
	margin-bottom: 18px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	background: rgba(255, 255, 255, 0.14);
	border-radius: 999px;
}
.about-aud h3 {
	font-family: 'Montserrat', sans-serif;
	font-size: 26px;
	font-weight: 700;
	color: #fff;
	margin-bottom: 10px;
}
.about-aud > p {
	font-size: 16px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.85);
	margin-bottom: 22px;
}
.about-aud-list {
	padding: 0;
	margin: 0 0 28px;
}
.about-aud-list a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 0;
	font-size: 15px;
	font-weight: 600;
	color: #fff;
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	transition: padding 0.2s ease;
}
.about-aud-list a > i:first-child {
	width: 20px;
	color: var(--gv-green);
}
.about-aud-arrow {
	margin-left: auto;
	font-size: 13px;
	opacity: 0.6;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.about-aud-list a:hover {
	color: #fff;
	padding-left: 6px;
}
.about-aud-list a:hover .about-aud-arrow {
	opacity: 1;
	transform: translateX(4px);
}
.about-cta-section {
	padding: 60px 0 90px;
}
.about-cta-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	flex-shrink: 0;
}
.about-cta-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 4px;
}
.about-cta-link:hover {
	color: var(--gv-green);
}
@media (max-width: 991px) {
	.about-name-card {
		left: 16px;
		bottom: 40px;
	}
	.about-mission,
	.about-audiences {
		padding: 60px 0;
	}
	.about-aud {
		padding: 32px 26px;
	}
	.about-cta-section {
		padding: 40px 0 60px;
	}
}
@media (max-width: 575px) {
	.about-stat-value {
		font-size: 2rem;
	}
	.about-name-card {
		position: relative;
		left: 0;
		bottom: 0;
		max-width: none;
		margin-top: 16px;
	}
}

/* ---------- Rendez-vous : calendrier des disponibilités ---------- */
.rdv-quick {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 16px 18px;
	margin-bottom: 24px;
	background: rgba(23, 210, 124, 0.08);
	border: 1px solid rgba(23, 210, 124, 0.3);
	border-radius: 16px;
}
.rdv-quick-label {
	font-size: 14px;
	font-weight: 700;
	color: #047857;
}
.rdv-quick-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.rdv-quick-item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 7px 14px;
	line-height: 1.3;
	background: #fff;
	border: 1px solid rgba(23, 210, 124, 0.45);
	border-radius: 12px;
	transition: all 0.2s ease;
}
.rdv-quick-item strong {
	font-size: 13px;
	color: var(--gv-ink);
}
.rdv-quick-item span {
	font-size: 13px;
	font-weight: 700;
	color: var(--gv-green-dark);
}
.rdv-quick-item:hover {
	border-color: var(--gv-green);
	box-shadow: 0 6px 16px rgba(23, 210, 124, 0.2);
	transform: translateY(-1px);
}

.rdv-cal {
	padding: 18px;
	border: 1px solid var(--gv-line);
	border-radius: 18px;
}
.rdv-cal-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}
.rdv-cal-title {
	margin: 0;
	font-family: 'Montserrat', sans-serif;
	font-size: 17px;
	font-weight: 700;
	color: var(--gv-ink);
}
.rdv-cal-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	color: var(--gv-blue);
	background: var(--gv-surface);
	border: 0;
	border-radius: 10px;
	transition: all 0.2s ease;
}
.rdv-cal-nav:hover:not(:disabled) {
	color: #fff;
	background: var(--gv-blue);
}
.rdv-cal-nav:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}
.rdv-cal-weekdays,
.rdv-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 6px;
}
.rdv-cal-weekdays {
	margin-bottom: 6px;
}
.rdv-cal-weekdays span {
	font-size: 12px;
	font-weight: 700;
	text-align: center;
	text-transform: uppercase;
	color: var(--gv-muted);
}
.rdv-cal-cell {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	min-height: 40px;
	padding: 0;
	font-weight: 700;
	color: var(--gv-ink);
	background: #fff;
	border: 1px solid transparent;
	border-radius: 12px;
	transition: all 0.15s ease;
}
.rdv-cal-cell.is-empty {
	background: none;
}
.rdv-cal-num {
	font-size: 15px;
	line-height: 1;
}
.rdv-cal-free {
	margin-top: 3px;
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
}
.rdv-cal-cell.is-ok {
	background: rgba(23, 210, 124, 0.12);
}
.rdv-cal-cell.is-ok .rdv-cal-free {
	color: var(--gv-green-dark);
}
.rdv-cal-cell.is-low {
	background: rgba(245, 158, 11, 0.14);
}
.rdv-cal-cell.is-low .rdv-cal-free {
	color: #b45309;
}
.rdv-cal-cell.is-full {
	color: #b91c1c;
	background: #fef2f2;
	text-decoration: line-through;
}
.rdv-cal-cell.is-off,
.rdv-cal-cell.is-past {
	color: #cbd5e1;
}
.rdv-cal-cell:disabled {
	cursor: not-allowed;
}
.rdv-cal-cell.is-today::after {
	content: '';
	position: absolute;
	bottom: 4px;
	width: 4px;
	height: 4px;
	background: var(--gv-blue);
	border-radius: 50%;
}
.rdv-cal-cell.is-ok:hover,
.rdv-cal-cell.is-low:hover {
	border-color: var(--gv-blue);
	transform: translateY(-1px);
}
.rdv-cal-cell.is-selected,
.rdv-cal-cell.is-selected:hover {
	color: #fff;
	background: var(--gv-blue);
	border-color: var(--gv-blue);
	box-shadow: 0 8px 18px rgba(38, 59, 214, 0.3);
}
.rdv-cal-cell.is-selected .rdv-cal-free {
	color: rgba(255, 255, 255, 0.85);
}
.rdv-cal-cell:focus-visible {
	outline: 3px solid rgba(38, 59, 214, 0.4);
	outline-offset: 2px;
}
.rdv-cal-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	padding: 14px 0 0;
	margin: 14px 0 0;
	font-size: 12px;
	color: var(--gv-muted);
	border-top: 1px solid var(--gv-line);
}
.rdv-cal-legend i {
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-right: 5px;
	vertical-align: -2px;
	border-radius: 4px;
}
.rdv-cal-legend .lg-ok { background: rgba(23, 210, 124, 0.35); }
.rdv-cal-legend .lg-low { background: rgba(245, 158, 11, 0.4); }
.rdv-cal-legend .lg-full { background: #fecaca; }
.rdv-cal-legend .lg-off { background: #e2e8f0; }

.rdv-day {
	height: 100%;
	padding: 18px;
	background: var(--gv-surface);
	border-radius: 18px;
}
.rdv-day-title {
	margin: 0;
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: var(--gv-ink);
}
.rdv-day .rdv-hint {
	margin: 4px 0 16px;
}
.rdv-day-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 30px 10px;
	text-align: center;
	font-size: 14px;
	color: var(--gv-muted);
}
.rdv-day-empty i {
	font-size: 30px;
	color: var(--gv-blue);
}
.rdv-slot-group + .rdv-slot-group {
	margin-top: 16px;
}
.rdv-slot-group-label {
	display: block;
	margin-bottom: 8px;
	font-size: 13px;
	font-weight: 700;
	color: var(--gv-muted);
}
.rdv-slot-group-label i {
	color: #f59e0b;
}
.rdv-day .rdv-slots {
	grid-template-columns: repeat(auto-fill, minmax(78px, 1fr));
	min-height: 0;
}
.rdv-day .rdv-slot {
	background: #fff;
}
.rdv-day .rdv-slot.active {
	background: var(--gv-blue);
}
@media (max-width: 575px) {
	.rdv-modes {
		grid-template-columns: 1fr;
	}
	.rdv-cal {
		padding: 12px;
	}
	.rdv-cal-weekdays,
	.rdv-cal-grid {
		gap: 4px;
	}
	.rdv-cal-num {
		font-size: 13px;
	}
}

/* ---------- Accueil v2 : bannière photo plein écran ---------- */
.hero-bg-v2 {
	position: relative;
	padding: 130px 0 120px;
	text-align: center;
	background: url(../images/hero-bg.jpg) center / cover no-repeat;
}
.hero-bg-v2::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 23, 42, 0.55) 0%, rgba(15, 23, 42, 0.35) 50%, rgba(15, 23, 42, 0.6) 100%);
}
.hero-bg-v2 .container {
	position: relative;
	z-index: 1;
}
.hero-bg-v2 .hero-badge {
	background: #fff;
	border-radius: 999px;
}
.hero-bg-v2 .hero-title {
	color: #fff;
	text-shadow: 0 4px 24px rgba(15, 23, 42, 0.35);
}
.hero-bg-v2 .hero-copy {
	max-width: 640px;
	margin: 0 auto 30px;
	color: rgba(255, 255, 255, 0.92);
}
.hero-bg-v2 .hero-search {
	max-width: 900px;
	margin: 0 auto;
}
.hero-bg-v2 .hero-actions {
	justify-content: center;
	margin-top: 28px;
}
.hero-bg-v2 .hero-links {
	justify-content: center;
}
.hero-bg-v2 .hero-link {
	color: #fff;
}
.hero-bg-v2 .hero-link:hover {
	color: var(--gv-green);
}
.hero-bg-v2 .hero-rdv-btn {
	box-shadow: 0 14px 30px rgba(15, 23, 42, 0.35);
}
.hero-bg-v2 .hero-rdv-icon::after {
	border-color: var(--gv-blue);
}
@media (min-width: 992px) {
	.hero-bg-v2 {
		background-attachment: fixed;
	}
}
@media (max-width: 991px) {
	.hero-bg-v2 {
		padding: 90px 0 80px;
	}
}

/* ---------- Menu "Nos technologies" ---------- */
.tech-menu .dropdown-item {
	display: flex;
	align-items: center;
	gap: 10px;
}
.tech-menu .dropdown-item i {
	width: 18px;
	color: var(--gv-blue);
}
.main-navbar .tech-menu .dropdown-item.active {
	color: var(--gv-blue);
	background: var(--gv-blue-soft);
}

/* ---------- Barème des salaires ---------- */
.bareme-hero {
	padding-bottom: 100px;
}
.bareme-ref {
	margin-top: 14px !important;
	font-size: 14px !important;
	font-weight: 600;
	color: var(--gv-muted) !important;
}
.bareme-ref i {
	margin-right: 6px;
	color: var(--gv-blue);
}
.bareme-stats {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: -50px;
}
.bareme-stat {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 22px 24px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: var(--gv-radius);
	box-shadow: var(--gv-shadow-lg);
}
.bareme-stat .sol-service-icon {
	flex-shrink: 0;
	margin: 0;
}
.bareme-stat strong {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 26px;
	font-weight: 800;
	line-height: 1.1;
	color: var(--gv-ink);
}
.bareme-stat span:not(.sol-service-icon) {
	font-size: 13px;
	color: var(--gv-muted);
}
.bareme-section {
	padding-top: 40px;
}
.bareme-select {
	margin-bottom: 4px;
	padding: 12px 16px;
	font-weight: 600;
	border-radius: 12px;
}
.bareme-aside .filter-panel {
	position: sticky;
	top: 20px;
	max-height: calc(100vh - 40px);
	overflow-y: auto;
}
.bareme-family + .bareme-family {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--gv-line);
}
.bareme-family-label {
	display: block;
	margin: 12px 0 6px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gv-muted);
}
.bareme-sector {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 9px 10px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	text-align: left;
	color: var(--gv-text);
	background: none;
	border: 0;
	border-radius: 10px;
	transition: all 0.15s ease;
}
.bareme-sector span {
	flex: 1;
}
.bareme-sector small {
	flex-shrink: 0;
	min-width: 30px;
	padding: 1px 8px;
	font-size: 11px;
	font-weight: 700;
	text-align: center;
	color: var(--gv-muted);
	background: var(--gv-surface);
	border-radius: 999px;
}
.bareme-sector:hover {
	color: var(--gv-blue);
	background: var(--gv-blue-soft);
}
.bareme-sector.active {
	color: #fff;
	background: var(--gv-blue);
}
.bareme-sector.active small {
	color: var(--gv-blue);
	background: #fff;
}

.bareme-panel {
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: 24px;
	box-shadow: var(--gv-shadow);
}
.bareme-panel-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 28px 30px 20px;
}
.bareme-panel-head h2 {
	font-family: 'Montserrat', sans-serif;
	font-size: 26px;
	font-weight: 800;
	color: var(--gv-ink);
	margin: 4px 0 6px;
}
.bareme-panel-head p {
	margin: 0;
	font-size: 14px;
	color: var(--gv-muted);
}
.bareme-count {
	padding: 9px 16px;
	font-size: 13px;
	font-weight: 700;
	color: var(--gv-blue);
	background: var(--gv-blue-soft);
	border-radius: 999px;
}
.bareme-tools {
	padding: 0 30px 20px;
}
.bareme-search {
	margin-bottom: 14px;
}
.bareme-tools .filter-chip {
	padding: 7px 14px;
	font-size: 13px;
}
.bareme-print-title {
	display: none;
}
.bareme-table-wrap {
	overflow-x: auto;
	border-top: 1px solid var(--gv-line);
}
.bareme-table {
	width: 100%;
	min-width: 640px;
	border-collapse: collapse;
}
.bareme-table thead th {
	position: sticky;
	top: 0;
	padding: 14px 18px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--gv-muted);
	background: var(--gv-surface);
}
.bareme-table td {
	padding: 14px 18px;
	font-size: 14px;
	color: var(--gv-text);
	border-top: 1px solid #edf0f4;
}
.bareme-table tbody tr:not(.bareme-group-row):hover td {
	background: #f8faff;
}
.bareme-group-row th {
	padding: 12px 18px;
	font-size: 13px;
	font-weight: 700;
	color: var(--gv-blue);
	background: rgba(38, 59, 214, 0.04);
	border-top: 1px solid var(--gv-line);
}
.bareme-cat {
	font-weight: 700;
	color: var(--gv-ink) !important;
}
.bareme-base,
.bareme-inc {
	white-space: nowrap;
}
.bareme-rate {
	display: inline-block;
	padding: 3px 10px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
	color: #047857;
	background: rgba(34, 197, 94, 0.12);
	border-radius: 999px;
}
.bareme-rate.is-smig {
	color: #b45309;
	background: rgba(245, 158, 11, 0.14);
}
.bareme-salary {
	white-space: nowrap;
}
.bareme-salary strong {
	font-size: 15px;
	font-weight: 800;
	color: var(--gv-green-dark);
}
.bareme-sim {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-left: 10px;
	padding: 3px 9px;
	font-size: 12px;
	font-weight: 700;
	color: var(--gv-blue);
	background: var(--gv-blue-soft);
	border-radius: 999px;
	opacity: 0.75;
	transition: all 0.2s ease;
}
.bareme-table tr:hover .bareme-sim,
.bareme-sim:focus-visible {
	opacity: 1;
}
.bareme-sim:hover {
	color: #fff;
	background: var(--gv-blue);
}
.bareme-empty {
	margin: 0 30px 24px;
}
.bareme-notes {
	display: flex;
	gap: 14px;
	margin: 0 30px 24px;
	padding: 18px 20px;
	font-size: 14px;
	line-height: 1.7;
	color: var(--gv-text);
	background: #fffbeb;
	border: 1px solid #fde68a;
	border-radius: 14px;
}
.bareme-notes i {
	margin-top: 4px;
	color: #d97706;
}
.bareme-notes ul {
	padding-left: 18px;
	margin: 0;
	list-style: disc;
}
.bareme-star-note {
	margin: 0;
	padding: 14px 30px;
	font-size: 12px;
	line-height: 1.7;
	color: var(--gv-muted);
	border-top: 1px solid var(--gv-line);
}
.bareme-panel-foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 18px 30px;
	border-top: 1px solid var(--gv-line);
	background: #fcfdff;
}
.bareme-panel-foot > span {
	font-size: 13px;
	color: var(--gv-muted);
}
.bareme-foot-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.bareme-foot-actions .btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.bareme-help {
	padding: 80px 0;
}
.bareme-help .about-mvv .gv-job-list-check li {
	font-size: 15px;
}

@media (max-width: 767px) {
	.bareme-stats {
		grid-template-columns: 1fr;
		gap: 10px;
		margin-top: -40px;
	}
	.bareme-stat {
		padding: 16px 18px;
	}
	.bareme-panel-head,
	.bareme-tools,
	.bareme-panel-foot,
	.bareme-star-note {
		padding-left: 18px;
		padding-right: 18px;
	}
	.bareme-notes,
	.bareme-empty {
		margin-left: 18px;
		margin-right: 18px;
	}
	.bareme-panel-head h2 {
		font-size: 22px;
	}
	/* Tableau en cartes sur mobile */
	.bareme-table {
		min-width: 0;
	}
	.bareme-table thead {
		display: none;
	}
	.bareme-table,
	.bareme-table tbody,
	.bareme-table tr,
	.bareme-table td {
		display: block;
		width: 100%;
	}
	.bareme-table tbody tr:not(.bareme-group-row) {
		padding: 12px 18px;
		border-top: 1px solid #edf0f4;
	}
	.bareme-group-row th {
		display: block;
	}
	.bareme-table td {
		display: flex;
		justify-content: space-between;
		gap: 12px;
		padding: 4px 0;
		border: 0;
		text-align: right;
	}
	.bareme-table td::before {
		content: attr(data-label);
		font-size: 12px;
		font-weight: 600;
		text-align: left;
		color: var(--gv-muted);
	}
	.bareme-table td.bareme-cat {
		display: block;
		padding-bottom: 6px;
		font-size: 15px;
		text-align: left;
	}
	.bareme-table td.bareme-cat::before {
		display: none;
	}
	.bareme-table td.bareme-salary {
		justify-content: flex-start;
		align-items: center;
		white-space: normal;
	}
	.bareme-salary strong {
		margin-left: auto;
	}
	.bareme-sim {
		opacity: 1;
	}
}

@media print {
	.header,
	.page-hero,
	.bareme-stats,
	.bareme-aside,
	.bareme-tools,
	.bareme-panel-foot,
	.bareme-help,
	.footer-modern,
	.bareme-sim {
		display: none !important;
	}
	.bareme-section {
		padding: 0;
	}
	.bareme-section .col-lg-8 {
		width: 100%;
	}
	.bareme-panel {
		border: 0;
		box-shadow: none;
	}
	.bareme-print-title {
		display: block;
		padding: 0 30px;
		font-size: 12px;
		color: #555;
	}
	.bareme-table thead th {
		position: static;
	}
}

/* ---------- Postuler en un clic ---------- */
.apply-quick {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	color: var(--gv-ink);
	background: rgba(38, 59, 214, 0.05);
	border: 2px solid var(--gv-blue);
	border-radius: 16px;
	transition: all 0.2s ease;
}
.apply-quick:hover {
	color: var(--gv-ink);
	background: rgba(38, 59, 214, 0.1);
}
.apply-quick > span:nth-child(2) {
	flex: 1;
}
.apply-quick strong,
.apply-quick small {
	display: block;
}
.apply-quick small {
	color: var(--gv-muted);
}
.apply-quick > i {
	color: var(--gv-blue);
}
.apply-quick .cand-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	font-family: 'Montserrat', sans-serif;
	font-size: 13px;
	font-weight: 800;
	color: #fff;
	background: linear-gradient(135deg, var(--gv-blue) 0%, var(--gv-green) 100%);
	border-radius: 50%;
}
.job-row-save.is-saved,
.latest-job-card .bookmark.is-saved {
	color: #e11d48;
}

/* ---------- Menu « Rechercher » ---------- */
.main-navbar .search-menu {
	min-width: 300px;
	padding: 8px !important;
}
.search-menu-item {
	display: flex !important;
	align-items: center;
	gap: 12px;
	padding: 10px 12px !important;
	border-radius: 12px;
	white-space: normal;
}
.search-menu-icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	font-size: 16px;
	color: var(--gv-blue);
	background: var(--gv-blue-soft);
	border-radius: 12px;
	transition: all 0.2s ease;
}
.search-menu-item strong,
.search-menu-item small {
	display: block;
	line-height: 1.45;
}
.search-menu-item strong {
	font-size: 15px;
	color: var(--gv-ink);
}
.search-menu-item small {
	font-size: 13px;
	font-weight: 400;
	color: var(--gv-muted);
}
.search-menu-item:hover .search-menu-icon,
.search-menu-item.active .search-menu-icon {
	color: #fff;
	background: var(--gv-blue);
}
.main-navbar .search-menu-item.active {
	background: var(--gv-blue-soft);
}
@media (max-width: 991px) {
	.search-menu-item small {
		display: none;
	}
	.search-menu-icon {
		width: 32px;
		height: 32px;
		font-size: 14px;
	}
}

/* ---------- Cartes recruteur ---------- */
.rec-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 24px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: var(--gv-radius);
	transition: all 0.25s ease;
}
.rec-card:hover {
	border-color: transparent;
	transform: translateY(-4px);
	box-shadow: var(--gv-shadow-lg);
}
.rec-logo {
	width: 64px;
	height: 64px;
	padding: 8px;
	margin-bottom: 16px;
	object-fit: contain;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 6px 18px rgba(15, 23, 42, 0.1);
}
.rec-card h3 {
	margin-bottom: 6px;
	font-family: 'Montserrat', sans-serif;
	font-size: 18px;
	font-weight: 700;
}
.rec-card h3 a {
	color: var(--gv-ink);
}
.rec-card h3 a:hover {
	color: var(--gv-blue);
}
.rec-card > p {
	margin-bottom: 12px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--gv-text);
}
.rec-card .job-row-meta {
	flex-direction: column;
	gap: 4px;
	margin-bottom: 16px;
}
.rec-jobs {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-top: auto;
	padding: 12px 14px;
	font-size: 14px;
	font-weight: 600;
	color: var(--gv-blue);
	background: var(--gv-surface);
	border-radius: 12px;
	transition: all 0.2s ease;
}
.rec-jobs strong {
	margin-right: 4px;
	font-size: 16px;
}
.rec-jobs:hover {
	color: #fff;
	background: var(--gv-blue);
}
.rec-jobs i {
	margin-left: auto;
}

/* ---------- Fiche entreprise ---------- */
.co-hero {
	padding: 30px 0 10px;
	background: linear-gradient(180deg, #f0f9ff 0%, #f8fafc 100%);
}
.co-hero .sol-breadcrumb {
	margin-bottom: 20px;
}
.co-card {
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: 24px;
	box-shadow: 0 20px 50px rgba(15, 23, 42, 0.08);
}
.co-cover {
	height: 140px;
	background:
		radial-gradient(circle at 1px 1px, rgba(38, 59, 214, 0.18) 1px, transparent 0) 0 0 / 18px 18px,
		radial-gradient(circle at 85% 0%, rgba(23, 210, 124, 0.35) 0%, rgba(23, 210, 124, 0) 45%),
		linear-gradient(120deg, #e0e7ff 0%, #eef6ff 55%, #e8fbf2 100%);
}
.co-head {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	padding: 0 32px 24px;
}
.co-head > .co-logo {
	margin-top: -56px;
}
.co-id,
.co-actions {
	padding-top: 20px;
}
.co-logo {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 120px;
	font-family: 'Montserrat', sans-serif;
	font-size: 38px;
	font-weight: 800;
	color: #fff;
	background: linear-gradient(135deg, #0f172a 0%, var(--gv-blue) 100%);
	border: 6px solid #fff;
	border-radius: 28px;
	box-shadow: 0 14px 30px rgba(15, 23, 42, 0.15);
}
.co-logo--sm {
	width: 64px;
	height: 64px;
	font-size: 20px;
	border-width: 0;
	border-radius: 16px;
	box-shadow: none;
}
.co-id {
	flex: 1;
	min-width: 0;
	padding-bottom: 2px;
}
.co-name {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 6px;
	font-family: 'Montserrat', sans-serif;
	font-size: 28px;
	font-weight: 800;
	color: var(--gv-ink);
}
.co-verified {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 10px;
	font-family: 'Open Sans', sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: #047857;
	background: rgba(23, 210, 124, 0.14);
	border-radius: 999px;
}
.co-tagline {
	margin: 0 0 12px;
	font-size: 16px;
	color: var(--gv-text);
}
.co-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0;
	margin: 0;
}
.co-meta li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 6px 12px;
	font-size: 13px;
	font-weight: 600;
	color: var(--gv-text);
	background: var(--gv-surface);
	border-radius: 999px;
}
.co-meta i {
	color: var(--gv-blue);
}
.co-meta a {
	color: var(--gv-blue);
}
.co-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex-shrink: 0;
}
.co-actions .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}
.co-follow.is-following {
	color: #fff;
	background: var(--gv-blue);
}
.co-kpis {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--gv-line);
}
.co-kpis li {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px 24px;
}
.co-kpis li + li {
	border-left: 1px solid var(--gv-line);
}
.co-kpi-icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	font-size: 17px;
	color: var(--gv-blue);
	background: var(--gv-blue-soft);
	border-radius: 12px;
}
.co-kpis strong,
.co-kpis small {
	display: block;
	line-height: 1.25;
}
.co-kpis strong {
	font-family: 'Montserrat', sans-serif;
	font-size: 22px;
	font-weight: 800;
	color: var(--gv-ink);
}
.co-kpis small {
	font-size: 13px;
	color: var(--gv-muted);
}
.co-body {
	padding: 30px 0 90px;
	background: #f8fafc;
}
.co-section {
	padding: 28px 30px;
	background: #fff;
	border: 1px solid var(--gv-line);
	border-radius: var(--gv-radius);
}
.co-section + .co-section {
	margin-top: 20px;
}
.co-title {
	margin: 0 0 14px;
	font-family: 'Montserrat', sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: var(--gv-ink);
}
.co-title-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}
.co-more {
	font-size: 14px;
	font-weight: 700;
	color: var(--gv-blue);
}
.co-section > p {
	margin-bottom: 12px;
	font-size: 15px;
	line-height: 1.8;
	color: var(--gv-text);
}
.co-section > p:last-child {
	margin-bottom: 0;
}
.co-perks {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}
.co-perk {
	display: flex;
	gap: 14px;
	padding: 16px;
	background: var(--gv-surface);
	border-radius: 16px;
}
.co-perk .sol-service-icon {
	flex-shrink: 0;
	width: 46px;
	height: 46px;
	margin: 0;
	font-size: 18px;
	background: #fff;
}
.co-perk h4 {
	margin: 0 0 4px;
	font-size: 15px;
	font-weight: 700;
	color: var(--gv-ink);
}
.co-perk p {
	margin: 0;
	font-size: 13px;
	line-height: 1.6;
	color: var(--gv-muted);
}
.co-job {
	padding: 18px 20px;
}
.co-job:hover {
	transform: none;
}
.co-preview > * + * {
	margin-top: 20px;
}

@media (max-width: 991px) {
	.co-head {
		flex-wrap: wrap;
	}
	.co-actions {
		flex-direction: row;
		width: 100%;
		padding-top: 0;
	}
	.co-actions .btn {
		flex: 1;
	}
	.co-kpis {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.co-kpis li:nth-child(3) {
		border-left: 0;
	}
	.co-kpis li:nth-child(n+3) {
		border-top: 1px solid var(--gv-line);
	}
}
@media (max-width: 767px) {
	.co-cover {
		height: 100px;
	}
	.co-head {
		padding: 0 20px 20px;
	}
	.co-head > .co-logo {
		margin-top: -44px;
	}
	.co-head {
		flex-direction: column;
		gap: 14px;
	}
	.co-id {
		padding-top: 0;
	}
	.co-logo:not(.co-logo--sm) {
		width: 92px;
		height: 92px;
		font-size: 30px;
		border-radius: 22px;
	}
	.co-name {
		font-size: 22px;
	}
	.co-kpis li {
		padding: 16px;
	}
	.co-section {
		padding: 22px 20px;
	}
	.co-perks {
		grid-template-columns: 1fr;
	}
}
