/*
Theme Name: Versusmind
Theme URI: https://versusmind.eu
Author: Versusmind
Description: Thème blocs (Full Site Editing) de Versusmind. Reconstruction propre et légère du site vitrine — remplace Divi. Iso-design de la version historique.
Version: 0.1.0
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: versusmind
*/

/* Le style du thème est piloté par theme.json + les styles de blocs.
   Ce fichier ne sert qu'à l'en-tête du thème et à des composants sur-mesure. */

/* Rendu de police plus fin (comme la prod) */
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Images de contenu (pages/articles reconstruits ou nettoyés de-Divi) : éviter les images géantes */
.wp-block-post-content img { max-width: 100%; height: auto; }
.wp-block-post-content .wp-block-image { text-align: center; margin-left: auto; margin-right: auto; }
.wp-block-post-content .wp-block-image img { max-height: 460px; width: auto; border-radius: 8px; }

/* Soulignement bleu sous les titres de section (H2) — style prod */
.wp-block-group > h2.wp-block-heading::after,
.entry-content h2.wp-block-heading::after,
main h2.wp-block-heading::after {
	content: ""; display: block; width: 64px; height: 4px;
	background: #00a1de; border-radius: 2px; margin-top: 14px;
}
main h2.wp-block-heading.has-text-align-center::after { margin-left: auto; margin-right: auto; }

/* Bloc encadré (muted, arrondi) pour sections "au-delà / de l'expertise" */
.vsm-note { background: #f5f7fa; border-radius: 12px; padding: 32px 36px; }
.vsm-note h2 { margin-top: 0; }

/* ---- Bloc statistiques ---- */
.vsm-stats .wp-block-column { position: relative; }
.vsm-stats .wp-block-column + .wp-block-column::before {
	content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
	height: 56px; width: 1px; background: #e0e0e0;
}
.vsm-stats .vsm-stat-num { font-family: Poppins, sans-serif; font-weight: 700; font-size: 42px; line-height: 1.1; color: #1a1a1a; }
.vsm-stats .vsm-stat-label { font-size: 13px; text-transform: uppercase; letter-spacing: 1px; color: #666; margin-top: 4px; }

/* ---- Offres d'emploi (shortcode [vsm_jobs]) ---- */
.vsm-jobs-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
	margin-top: 28px;
}
@media (max-width: 1024px) { .vsm-jobs-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .vsm-jobs-grid { grid-template-columns: 1fr; } }

.vsm-job-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 18px;
	background: #ffffff;
	border: 1px solid #e5e9f0;
	border-radius: 8px;
	text-decoration: none;
	box-shadow: 0 2px 6px rgba(0, 29, 78, 0.04);
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.vsm-job-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(0, 29, 78, 0.10);
	border-color: #1a8fd1;
}
.vsm-job-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.vsm-badge {
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: #1a8fd1;
	background: #eaf4fb;
	padding: 3px 8px;
	border-radius: 999px;
	line-height: 1.4;
}
.vsm-badge--remote { color: #0b7a53; background: #e7f6ee; }
.vsm-job-title {
	font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	color: #1a1a1a;
}
.vsm-job-loc { font-size: 13px; color: #666666; }
.vsm-job-loc::before { content: "\1F4CD"; margin-right: 6px; }
.vsm-jobs-empty { color: #666; }

/* structure main/side (grille) */
.vsm-job-card .vsm-job-main { display: flex; flex-direction: column; gap: 10px; }
.vsm-job-card .vsm-job-main .vsm-job-badges { order: -1; }
.vsm-job-card .vsm-job-side { display: flex; flex-direction: column; gap: 3px; }
.vsm-job-salary { font-size: 13px; font-weight: 600; color: #1a1a1a; }

/* ---- Offres : layout liste (page /nos-offres/) ---- */
.vsm-jobs-count { font-family: Poppins, sans-serif; font-weight: 600; color: #1a1a1a; margin: 0 0 12px; }
.vsm-jobs-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 28px; }
.vsm-jobs-filter__label { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; color: #666; margin-right: 4px; }
.vsm-jobs-filter__btn { font-size: 13px; font-weight: 600; color: #444; background: #fff; border: 1px solid #e5e9f0; border-radius: 999px; padding: 7px 16px; cursor: pointer; transition: all .15s ease; }
.vsm-jobs-filter__btn:hover { border-color: #1a8fd1; color: #1a8fd1; }
.vsm-jobs-filter__btn.is-active { background: #1a8fd1; border-color: #1a8fd1; color: #fff; }
.vsm-jobs-list { display: flex; flex-direction: column; gap: 14px; }
.vsm-job-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 26px; background: #fff; border: 1px solid #e5e9f0; border-radius: 10px; text-decoration: none; box-shadow: 0 2px 6px rgba(0,29,78,.04); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.vsm-job-row:hover { transform: translateX(3px); box-shadow: 0 8px 20px rgba(0,29,78,.08); border-color: #1a8fd1; }
.vsm-job-row .vsm-job-main { display: flex; flex-direction: column; gap: 10px; }
.vsm-job-row .vsm-job-main .vsm-job-title { font-size: 18px; }
.vsm-job-row .vsm-job-side { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; text-align: right; white-space: nowrap; }
@media (max-width: 640px) { .vsm-job-row { flex-direction: column; align-items: flex-start; } .vsm-job-row .vsm-job-side { align-items: flex-start; text-align: left; } }
.vsm-job-card, .vsm-job-row { cursor: pointer; }
.vsm-job-more { font-size: 13px; font-weight: 600; color: #1a8fd1; margin-top: 2px; }
.vsm-job-card .vsm-job-more { margin-top: 8px; }

/* ---- Modale détail offre d'emploi ---- */
.vsm-jobmodal { position: fixed; inset: 0; z-index: 99999; display: none; }
.vsm-jobmodal.is-open { display: flex; align-items: flex-start; justify-content: center; }
.vsm-jobmodal__overlay { position: absolute; inset: 0; background: rgba(0,29,78,.55); backdrop-filter: blur(2px); }
.vsm-jobmodal__panel { position: relative; z-index: 1; width: min(760px, calc(100% - 32px)); max-height: calc(100vh - 64px); margin: 32px auto; background: #fff; border-radius: 14px; overflow: hidden auto; box-shadow: 0 24px 70px rgba(0,29,78,.35); display: flex; flex-direction: column; }
.vsm-jobmodal__close { position: absolute; top: 14px; right: 16px; z-index: 2; width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(255,255,255,.18); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; transition: background .15s ease; }
.vsm-jobmodal__close:hover { background: rgba(255,255,255,.32); }
.vsm-jobmodal__head { background: linear-gradient(135deg, #001d4e 0%, #1a8fd1 140%); color: #fff; padding: 34px 40px 26px; }
.vsm-jobmodal__eyebrow { font-family: Poppins, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: #7fd0ff; margin: 0 0 8px; }
.vsm-jobmodal__title { font-family: Poppins, sans-serif; font-size: 26px; font-weight: 700; color: #fff; margin: 0 0 16px; line-height: 1.25; }
.vsm-jobmodal__badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.vsm-jobmodal__badges .vsm-badge { background: rgba(255,255,255,.16); color: #fff; }
.vsm-jobmodal__badges .vsm-badge--remote { background: rgba(255,255,255,.16); color: #d5f3e5; }
.vsm-jobmodal__meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 26px; font-size: 13.5px; color: #dce6f4; }
.vsm-jobmodal__meta strong { color: #fff; font-weight: 600; }
.vsm-jobmodal__body { padding: 30px 40px; }
.vsm-jobmodal__body h3 { font-family: Poppins, sans-serif; font-size: 18px; font-weight: 600; color: #1a1a1a; margin: 26px 0 10px; padding-bottom: 8px; border-bottom: 2px solid #eaf0f6; }
.vsm-jobmodal__body h3:first-child { margin-top: 0; }
.vsm-jobmodal__body p { font-size: 15px; line-height: 1.7; color: #555; margin: 0 0 12px; }
.vsm-jobmodal__body ul { margin: 0 0 14px; padding-left: 22px; }
.vsm-jobmodal__body li { font-size: 15px; line-height: 1.65; color: #555; margin-bottom: 7px; }
.vsm-jobmodal__foot { position: sticky; bottom: 0; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; padding: 20px 40px; background: #fff; border-top: 1px solid #eaf0f6; }
.vsm-jobmodal__apply { display: inline-block; background: #1a8fd1; color: #fff; font-family: Poppins, sans-serif; font-weight: 600; font-size: 15px; text-decoration: none; padding: 13px 26px; border-radius: 8px; transition: background .15s ease; }
.vsm-jobmodal__apply:hover { background: #147ab8; color: #fff; }
.vsm-jobmodal__cancel { background: none; border: 0; color: #666; font-size: 14px; cursor: pointer; }
.vsm-jobmodal__cancel:hover { color: #1a1a1a; }
@media (max-width: 600px) { .vsm-jobmodal__head { padding: 30px 22px 22px; } .vsm-jobmodal__body { padding: 24px 22px; } .vsm-jobmodal__foot { padding: 16px 22px; } .vsm-jobmodal__title { font-size: 22px; } }

/* ---- Bandeau logos techno ---- */
.vsm-tech-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 30px 44px; }
.vsm-tech-logos .wp-block-image { margin: 0; }
.vsm-tech-logos img { height: 40px; width: auto; filter: grayscale(1); opacity: .6; transition: filter .2s ease, opacity .2s ease; }
.vsm-tech-logos img:hover { filter: none; opacity: 1; }

/* ---- Témoignages (carrousel) ---- */
.vsm-testi { position: relative; max-width: 820px; margin: 36px auto 0; text-align: center; }
.vsm-testi__viewport { position: relative; min-height: 220px; }
.vsm-testi__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .5s ease; pointer-events: none; display: flex; flex-direction: column; justify-content: center; gap: 18px; }
.vsm-testi__slide.is-active { position: relative; opacity: 1; pointer-events: auto; }
.vsm-testi__quote { font-size: 17px; line-height: 1.75; color: #444; margin: 0; }
.vsm-testi__author { font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 600; font-size: 14px; color: #001d4e; margin: 0; }
.vsm-testi__dots { display: flex; gap: 9px; justify-content: center; margin-top: 28px; }
.vsm-testi__dot { width: 9px; height: 9px; padding: 0; border: none; border-radius: 50%; background: #cdd6e0; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.vsm-testi__dot.is-active { background: #1a8fd1; transform: scale(1.2); }

/* ---- Icône maison sur le 1er item du menu (remplace "Accueil") ---- */
.vsm-header .wp-block-navigation__container > .wp-block-navigation-item:first-child .wp-block-navigation-item__content {
	font-size: 0;
	line-height: 0;
	display: inline-flex;
	align-items: center;
}
.vsm-header .wp-block-navigation__container > .wp-block-navigation-item:first-child .wp-block-navigation-item__content::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	background: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300a1de' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11.5 12 4l9 7.5'/%3E%3Cpath d='M5.5 10.2V20h13v-9.8'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3Cpath d='M17 7.2V4.6h2v4.2'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* ---- Cartes d'expertise (image + texte) ---- */
.vsm-expertise-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; margin-top: 36px; }
@media (max-width: 900px) { .vsm-expertise-grid { grid-template-columns: 1fr; } }
.vsm-expertise-item { background: transparent; }
.vsm-expertise-item .wp-block-image { margin: 0; overflow: hidden; border-radius: 12px; }
.vsm-expertise-item .wp-block-image img { width: 100%; height: 240px; object-fit: cover; display: block; }
/* L'illustration "Conseil et Expertise" a un sujet plus éloigné : léger zoom pour l'homogénéiser avec les 3 autres. */
.vsm-expertise-item--zoom .wp-block-image img { transform: scale(1.22); transform-origin: 62% 42%; }
.vsm-expertise-item .vsm-expertise-body { padding: 20px 4px 8px; }

/* Bouton "Voir toutes nos offres" (noir, comme prod) */
.vsm-jobs-strip .wp-block-button__link { background-color: #1a1a1a; border-color: #1a1a1a; }
.vsm-jobs-strip .wp-block-button__link:hover { background-color: #000; border-color: #000; }

/* Eyebrow de section (petit label majuscule) */
.vsm-eyebrow { font-size: 13px !important; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: #1a8fd1; }

/* ---- Positionnement (carte navy arrondie, contenue) ---- */
.vsm-positionnement { border-radius: 16px; position: relative; }
.vsm-positionnement .vsm-pos-icon { width: 54px; height: 54px; border-radius: 50%; background: rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; margin-bottom: 22px; }
.vsm-positionnement .vsm-pos-icon svg { width: 24px; height: 24px; stroke: #00a1de; }

/* ---- Technologies & partenaires ---- */
.vsm-partner { display: flex; gap: 40px; align-items: center; flex-wrap: wrap; justify-content: space-between; margin-top: 32px; padding: 28px 32px; border: 1px solid #e5e9f0; border-radius: 12px; background: #fff; }
.vsm-partner__left { display: flex; gap: 24px; align-items: center; flex: 1; min-width: 280px; }
.vsm-partner__left img { height: 54px; width: auto; }
.vsm-partner__left p { margin: 0; font-size: 14px; color: #666; max-width: 420px; }
.vsm-partner__text { display: flex; flex-direction: column; gap: 6px; }
.vsm-partner__title { font-family: Poppins, sans-serif; font-weight: 600; font-size: 17px; color: #1a1a1a !important; }
.vsm-partner__comp { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.vsm-partner__comp li { padding: 6px 14px; border: 1px solid #e5e9f0; border-radius: 6px; margin-bottom: 8px; color: #444; }
.vsm-partner__comp li b { color: #1a1a1a; }
.vsm-expertise-item .vsm-expertise-body h3 { margin: 0 0 10px; }
.vsm-expertise-item .vsm-expertise-body p { margin: 0; }

/* ---- Nos réalisations ---- */
.vsm-real-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 36px; }
@media (max-width: 900px) { .vsm-real-grid { grid-template-columns: 1fr; } }
.vsm-real-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #e5e9f0; border-radius: 10px; overflow: hidden; text-decoration: none; box-shadow: 0 2px 8px rgba(0,29,78,.05); transition: transform .15s ease, box-shadow .15s ease; }
.vsm-real-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,29,78,.10); }
.vsm-real-img { display: block; height: 190px; background-size: cover; background-position: center; }
.vsm-real-body { display: flex; flex-direction: column; gap: 8px; padding: 22px 24px 26px; }
.vsm-real-sector { font-size: 11px; font-weight: 700; letter-spacing: 1px; color: #1a8fd1; }
.vsm-real-title { font-family: Poppins, sans-serif; font-size: 18px; font-weight: 600; line-height: 1.35; color: #1a1a1a; }
.vsm-real-excerpt { font-size: 14px; color: #666; line-height: 1.6; }
.vsm-real-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.vsm-real-tag { font-size: 11px; color: #666; background: #f2f4f7; border: 1px solid #e5e9f0; padding: 2px 8px; border-radius: 4px; }

/* ---- Positionnement (bloc sombre) ---- */
.vsm-positionnement h2 { color: #fff; max-width: 620px; margin-left: 0 !important; margin-right: auto !important; }
.vsm-positionnement p { max-width: 620px; margin-left: 0 !important; margin-right: auto !important; }

/* ---- Cartes d'offres (page Offres) ---- */
.vsm-offer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 36px; }
.vsm-offer-grid--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 900px) { .vsm-offer-grid, .vsm-offer-grid--2 { grid-template-columns: 1fr; } }
.vsm-offer-card { display: flex; flex-direction: column; gap: 12px; padding: 26px; background: #fff; border: 1px solid #e5e9f0; border-radius: 10px; box-shadow: 0 2px 8px rgba(0,29,78,.05); text-decoration: none; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.vsm-offer-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,29,78,.10); border-color: #1a8fd1; }
.vsm-offer-badge { align-self: flex-start; font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #1a8fd1; background: #eaf4fb; padding: 4px 10px; border-radius: 999px; }
.vsm-offer-card .vsm-offer-title { font-family: Poppins, sans-serif; font-size: 20px; font-weight: 600; color: #1a1a1a; line-height: 1.3; }
.vsm-offer-card .vsm-offer-desc { font-size: 14px; color: #666; line-height: 1.6; flex: 1; }
.vsm-offer-card .vsm-offer-link { font-size: 14px; font-weight: 600; color: #1a8fd1; }

/* ---- Grille centres d'excellence ---- */
.vsm-ce-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 36px; }
@media (max-width: 900px) { .vsm-ce-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .vsm-ce-grid { grid-template-columns: 1fr; } }
.vsm-ce-card { padding: 22px 24px; background: #fff; border: 1px solid #e5e9f0; border-radius: 10px; box-shadow: 0 2px 8px rgba(0,29,78,.05); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.vsm-ce-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,29,78,.10); border-color: #1a8fd1; }
.vsm-ce-card h3 { font-family: Poppins, sans-serif; font-size: 17px; font-weight: 600; color: #1a1a1a; margin: 0 0 8px; padding-left: 14px; border-left: 3px solid #00a1de; }
.vsm-ce-card p { font-size: 13.5px; color: #666; line-height: 1.6; margin: 0; }

/* ---- Bande CTA sombre ---- */
.vsm-cta { text-align: center; }
.vsm-cta h2 { color: #fff; }

/* ---- Blog : partage ---- */
.vsm-share { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 18px 0 28px; }
.vsm-share__label { font-family: Poppins, sans-serif; font-weight: 600; font-size: 15px; color: #1a1a1a; margin-right: 4px; }
.vsm-share__btn { font-size: 13px; font-weight: 600; color: #fff; padding: 7px 16px; border-radius: 4px; text-decoration: none; }
.vsm-share__btn--fb { background: #1877f2; }
.vsm-share__btn--li { background: #0a66c2; }

/* ---- Blog : sidebar articles récents ---- */
.vsm-sidebar { position: sticky; top: 100px; }
.vsm-recent { list-style: none; margin: 20px 0 0; padding: 0; }
.vsm-recent__item { display: flex; flex-direction: column; gap: 4px; padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid #e5e9f0; }
.vsm-recent__title { font-family: Poppins, sans-serif; font-weight: 600; font-size: 15px; line-height: 1.35; color: #1a1a1a; text-decoration: none; }
.vsm-recent__title:hover { color: #1a8fd1; }
.vsm-recent__meta { font-size: 12px; color: #999; }
.vsm-recent__cat { align-self: flex-start; font-size: 10px; font-weight: 700; letter-spacing: .5px; color: #1a8fd1; background: #eaf4fb; padding: 2px 8px; border-radius: 4px; margin-top: 2px; }

/* ---- Blog : archive (liste d'articles) ---- */
.vsm-blog-list .wp-block-post { padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid #e5e9f0; }
.vsm-blog-list .wp-block-post-title { margin: 0 0 10px; }
.vsm-blog-list .wp-block-post-title a { color: #1a8fd1; text-decoration: none; font-family: Poppins, sans-serif; }
.vsm-blog-list .wp-block-post-terms { font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: #1a8fd1; margin-bottom: 10px; }
.vsm-blog-list .wp-block-post-excerpt { color: #555; }
.vsm-blog-list .wp-block-post-date, .vsm-blog-list .wp-block-post-author { font-size: 13px; color: #999; font-style: italic; }
.vsm-cat-widget ul { list-style: none; margin: 16px 0 0; padding: 0; columns: 1; }
.vsm-cat-widget li { padding: 7px 0; border-bottom: 1px solid #eef1f5; font-size: 14px; }
.vsm-cat-widget a { color: #444; text-decoration: none; }
.vsm-cat-widget a:hover { color: #1a8fd1; }

/* ---- Filtres archive réalisations ---- */
.vsm-real-filters { display: flex; flex-direction: column; gap: 14px; margin: 8px 0 34px; }
.vsm-real-filter-group { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.vsm-real-filter__label { font-family: Poppins, sans-serif; font-weight: 600; font-size: 12px; letter-spacing: .5px; text-transform: uppercase; color: #1a8fd1; margin-right: 6px; }
.vsm-real-filter__btn { font-size: 13px; color: #444; background: #f2f4f7; border: 1px solid #e5e9f0; border-radius: 999px; padding: 6px 15px; cursor: pointer; transition: all .15s ease; }
.vsm-real-filter__btn:hover { border-color: #1a8fd1; color: #1a8fd1; }
.vsm-real-filter__btn.is-active { background: #001d4e; border-color: #001d4e; color: #fff; }

/* ---- Blog : listes catégories / langues ---- */
.vsm-cat-list { list-style: none; margin: 14px 0 0; padding: 0; }
.vsm-cat-list li { padding: 7px 0; border-bottom: 1px solid #eef1f5; font-size: 14px; }
.vsm-cat-list a { color: #444; text-decoration: none; }
.vsm-cat-list a:hover { color: #1a8fd1; }
.vsm-lang-list { display: flex; flex-wrap: wrap; gap: 8px; }
.vsm-lang-list li { border: 0; padding: 0; }
.vsm-lang-list a { display: inline-block; font-size: 13px; color: #444; background: #f2f4f7; border: 1px solid #e5e9f0; border-radius: 999px; padding: 5px 14px; }
.vsm-lang-list a:hover { border-color: #1a8fd1; color: #1a8fd1; }

/* ---- Agences (grille de cartes) ---- */
.vsm-agency-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 40px; }
@media (max-width: 900px) { .vsm-agency-grid { grid-template-columns: 1fr; } }
.vsm-agency-card { position: relative; display: block; height: 280px; border-radius: 12px; overflow: hidden; text-decoration: none; background-size: cover; background-position: center; transition: transform .2s ease, box-shadow .2s ease; }
.vsm-agency-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(0,29,78,.18); }
.vsm-agency-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,29,78,0) 35%, rgba(0,29,78,.78) 100%); }
.vsm-agency-card__name { position: absolute; left: 26px; bottom: 22px; z-index: 2; color: #fff; font-family: Poppins, sans-serif; font-size: 26px; font-weight: 700; }
.vsm-agency-card__name::after { content: " →"; color: #00a1de; }

/* ---- Fiche réalisation (single) ---- */
.vsm-eyebrow--muted { color: #9aa4b2 !important; }
.vsm-real-taglist { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 8px; }
.vsm-real-techtag { font-size: 12px; color: #4a5563; background: #eef2f7; padding: 3px 12px; border-radius: 999px; }
.vsm-real-related { position: sticky; top: 100px; padding-left: 28px; border-left: 1px solid #e5e9f0; }
@media (max-width: 781px) { .vsm-real-related { position: static; padding-left: 0; border-left: 0; border-top: 1px solid #e5e9f0; padding-top: 24px; } }
.vsm-real-related__title { font-family: Poppins, sans-serif; font-size: 18px !important; font-weight: 600; color: #1a1a1a; margin: 0 0 20px; padding-bottom: 12px; border-bottom: 2px solid #00a1de; }
.vsm-real-related__title::after { display: none !important; }
.vsm-real-related__list { list-style: none; margin: 0; padding: 0; }
.vsm-real-related__item { padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid #eef1f5; display: flex; flex-direction: column; gap: 5px; }
.vsm-real-related__item:last-child { border-bottom: 0; }
.vsm-real-related__link { font-family: Poppins, sans-serif; font-weight: 600; font-size: 15px; line-height: 1.35; color: #1a1a1a; text-decoration: none; }
.vsm-real-related__link:hover { color: #1a8fd1; }
.vsm-real-related__excerpt { font-size: 13px; color: #777; line-height: 1.5; }

/* ---- Fiche agence (single) ---- */
.vsm-agency-spec { display: grid; gap: 30px; margin: 8px 0 10px; }
.vsm-agency-spec--3 { grid-template-columns: repeat(3, 1fr); }
.vsm-agency-spec--2 { grid-template-columns: repeat(2, 1fr); max-width: 760px; margin-left: auto; margin-right: auto; }
@media (max-width: 782px) { .vsm-agency-spec--3, .vsm-agency-spec--2 { grid-template-columns: 1fr; } }
.vsm-agency-spec__item { text-align: center; padding: 8px; }
.vsm-agency-spec__item img { width: 76px; height: 76px; object-fit: contain; margin: 0 auto 16px; display: block; }
.vsm-agency-spec__item h3 { font-family: Poppins, sans-serif; font-size: 19px; font-weight: 600; color: #1a8fd1; margin: 0 0 10px; }
.vsm-agency-spec__item p { font-size: 14px; color: #666; line-height: 1.6; margin: 0; }
.vsm-agency-info { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin: 34px 0; }
@media (max-width: 700px) { .vsm-agency-info { grid-template-columns: 1fr; } }
.vsm-agency-info__box { border: 1px solid #e5e9f0; border-radius: 10px; padding: 20px 24px; background: #fff; box-shadow: 0 2px 8px rgba(0,29,78,.05); }
.vsm-agency-info__box b { display: block; font-family: Poppins, sans-serif; font-size: 13px; letter-spacing: .3px; color: #1a1a1a; margin-bottom: 5px; }
.vsm-agency-info__box span { color: #555; font-size: 15px; }
.vsm-agency-map iframe { width: 100%; height: 430px; border: 0; border-radius: 12px; display: block; }
.vsm-agency-secteurs { columns: 2; column-gap: 40px; margin: 12px 0 0; padding-left: 18px; }
@media (max-width: 600px) { .vsm-agency-secteurs { columns: 1; } }
.vsm-agency-secteurs li { margin-bottom: 8px; color: #444; }

/* ---- Nous rejoindre : éditorial (mot du dirigeant) ---- */
.vsm-editorial { display: grid; grid-template-columns: 38% 1fr; gap: 40px; align-items: center; }
@media (max-width: 900px) { .vsm-editorial { grid-template-columns: 1fr; gap: 24px; } }
.vsm-editorial__title { font-family: Poppins, sans-serif; font-size: clamp(32px,3.5vw,46px); font-weight: 700; color: #001d4e; line-height: 1.1; margin: 8px 0 0; }
.vsm-editorial__quote { background: #f5f7fa; border-radius: 14px; padding: 34px 38px; }
.vsm-editorial__quote p { font-style: italic; font-size: 16px; line-height: 1.75; color: #444; margin: 0 0 16px; }
.vsm-editorial__sign { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 8px; padding-top: 16px; border-top: 1px solid #e5e9f0; flex-wrap: wrap; }
.vsm-editorial__sign b { font-family: Poppins, sans-serif; color: #1a1a1a; }
.vsm-editorial__sign span { color: #8a97a8; font-size: 14px; }

/* ---- Nous rejoindre : engagements ---- */
.vsm-engage-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; margin-top: 40px; }
@media (max-width: 980px) { .vsm-engage-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .vsm-engage-grid { grid-template-columns: 1fr; } }
.vsm-engage__item img { width: 52px; height: 52px; object-fit: contain; margin-bottom: 16px; }
.vsm-engage__item h3 { font-family: Poppins, sans-serif; font-size: 17px; font-weight: 600; color: #1a1a1a; margin: 0 0 10px; }
.vsm-engage__item p { font-size: 14px; color: #666; line-height: 1.6; margin: 0 0 8px; }

/* ---- Nous rejoindre : pourquoi nous choisir (cartes) ---- */
.vsm-why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 36px; }
@media (max-width: 980px) { .vsm-why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .vsm-why-grid { grid-template-columns: 1fr; } }
.vsm-why__card { background: #fff; border: 1px solid #e5e9f0; border-radius: 12px; padding: 26px 24px; box-shadow: 0 2px 8px rgba(0,29,78,.05); }
.vsm-why__card .vsm-why__emoji { font-size: 30px; display: block; margin-bottom: 12px; }
.vsm-why__card h3 { font-family: Poppins, sans-serif; font-size: 17px; font-weight: 600; color: #001d4e; margin: 0 0 12px; }
.vsm-why__card ul { list-style: none; margin: 0; padding: 0; }
.vsm-why__card li { font-size: 14px; color: #555; line-height: 1.5; padding: 6px 0 6px 18px; position: relative; border-bottom: 1px solid #f0f3f7; }
.vsm-why__card li:last-child { border-bottom: 0; }
.vsm-why__card li::before { content: "•"; position: absolute; left: 2px; color: #00a1de; }

/* ---- Nous rejoindre : témoignages collaborateurs ---- */
.vsm-nrtesti-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 36px; }
@media (max-width: 900px) { .vsm-nrtesti-grid { grid-template-columns: 1fr; } }
.vsm-nrtesti__card { background: #fff; border: 1px solid #e5e9f0; border-radius: 12px; padding: 28px; box-shadow: 0 2px 8px rgba(0,29,78,.05); display: flex; flex-direction: column; gap: 16px; }
.vsm-nrtesti__quote { font-size: 15px; font-style: italic; color: #444; line-height: 1.7; margin: 0; flex: 1; }
.vsm-nrtesti__who { display: flex; align-items: center; gap: 14px; }
.vsm-nrtesti__avatar { width: 46px; height: 46px; border-radius: 50%; background: #001d4e; color: #fff; font-family: Poppins, sans-serif; font-weight: 600; font-size: 15px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.vsm-nrtesti__name { font-family: Poppins, sans-serif; font-weight: 600; color: #1a1a1a; font-size: 15px; }
.vsm-nrtesti__role { font-size: 13px; color: #8a97a8; }

/* ---- Nous rejoindre : parcours (timeline) ---- */
.vsm-parcours-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 32px; }
@media (max-width: 900px) { .vsm-parcours-grid { grid-template-columns: 1fr; } }
.vsm-parcours__step { border-top: 3px solid #00a1de; padding-top: 18px; }
.vsm-parcours__label { font-family: Poppins, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #1a8fd1; margin: 0 0 8px; }
.vsm-parcours__step h3 { font-family: Poppins, sans-serif; font-size: 18px; font-weight: 600; color: #1a1a1a; margin: 0 0 10px; }
.vsm-parcours__step p { font-size: 14px; color: #666; line-height: 1.6; margin: 0; }

/* ---- Sous-pages offres : hero en pleine largeur ----
   .vm-offer-fullhero est du HTML brut, enfant direct du post-content "constrained"
   qui lui impose max-width + margin:auto. On force le full-bleed (breakout viewport). */
main .vm-offer-fullhero {
	max-width: none !important;
	width: auto !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}

/* ---- Correctifs responsive (mobile) ---- */
/* Blocs de code : scroll horizontal plutôt que débordement de page. */
pre.wp-block-code, .wp-block-code { overflow-x: auto; -webkit-overflow-scrolling: touch; }
/* Tableaux (sous-pages offres) : conteneur scrollable en mobile. */
.vsm-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 782px) {
	/* Formulaire de contact : champs pleine largeur (les inputs "medium/large"). */
	.wpforms-field-medium, .wpforms-field-large, .wpforms-form input.wpforms-field-medium { max-width: 100% !important; }
	/* Champs en colonnes (one-half, etc.) : empilement en pleine largeur. */
	.wpforms-form .wpforms-one-half, .wpforms-form .wpforms-two-fourths, .wpforms-form .wpforms-two-fifths,
	.wpforms-form .wpforms-three-fifths, .wpforms-form .wpforms-one-third, .wpforms-form .wpforms-two-thirds,
	.wpforms-form .wpforms-one-fourth, .wpforms-form .wpforms-three-fourths, .wpforms-form .wpforms-one-fifth,
	.wpforms-form .wpforms-four-fifths, .wpforms-form .wpforms-one-sixth, .wpforms-form .wpforms-five-sixths {
		width: 100% !important; float: none !important; margin-left: 0 !important; margin-right: 0 !important;
	}
}

/* ---- Footer ---- */
.vsm-footer a { color: #cfe3f5; text-decoration: none; }
.vsm-footer a:hover { color: #ffffff; text-decoration: underline; }
.vsm-footer h4 { margin-bottom: 12px; }
.vsm-footer .wp-block-site-logo img,
.vsm-footer .vsm-footer-logo img { max-width: 160px; height: auto; opacity: .95; }
