/**
 * LE PARCOURS DE COMMANDE — squelette et étapes 1 à 3.
 *
 * ALIGNEMENT FORCÉ PARTOUT, et ce n'est pas une précaution décorative : le
 * thème porte « div#primary > .product { text-align: center } » et
 * « h1..h6 { text-align: center } », et ce bloc s'affiche dans .product. Sans
 * ces règles, tout le parcours serait centré — c'est le défaut trouvé quatre
 * fois depuis le 20/09 (puces nues, titres sans text-align, intertitres des
 * fiches consulat, cellules de tableau). On ne compte donc pas sur la règle du
 * CSS additionnel, qui disparaîtra à la reconstruction du thème.
 *
 * Couleurs de la charte : rouge #D4323A pour les surfaces, #C02A32 pour le
 * texte et les liens (4,5 sur sable), noir #17161A, sable #F7F5F2, gris de
 * texte #6E6B72 (5,24 sur blanc). Aucune police n'est imposée : sur une fiche
 * produit, celle du thème s'applique.
 */

.vc-parc,
.vc-parc * {
	text-align: left;
	box-sizing: border-box;
}

.vc-parc {
	margin: 0 0 2.5rem;
	padding: 1.25rem;
	border: 1px solid #E4E0DB;
	border-radius: 12px;
	background: #FFF;
	color: #17161A;
	font-size: 1rem;
	line-height: 1.5;
}

.vc-parc h3,
.vc-parc .vc-parc__h {
	text-align: left;
	text-transform: none;
	margin: 0 0 .85rem;
	font-size: 1.15rem;
	line-height: 1.3;
}

.vc-parc__h em {
	font-style: normal;
	font-size: .8rem;
	color: #6E6B72;
}

/* --- le bandeau d'essai : il doit se voir, c'est une maquette ------------ */
.vc-parc__essai {
	margin: 0 0 1.1rem;
	padding: .6rem .8rem;
	border-left: 3px solid #D4323A;
	border-radius: 0 8px 8px 0;
	background: #F7F5F2;
	color: #4F4C53;
	font-size: .875rem;
}

/* --- le fil des étapes --------------------------------------------------- */
.vc-parc__fil {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem .5rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
}

.vc-parc__jalon {
	display: flex;
	align-items: center;
	gap: .4rem;
	padding: .3rem .7rem .3rem .35rem;
	border: 1px solid #E4E0DB;
	border-radius: 999px;
	color: #6E6B72;
	font-size: .8125rem;
	white-space: nowrap;
}

.vc-parc__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 999px;
	background: #F0EDE9;
	color: #6E6B72;
	font-size: .75rem;
	font-weight: 700;
}

.vc-parc__jalon--vif { color: #17161A; }
.vc-parc__jalon--vif .vc-parc__num { background: #17161A; color: #FFF; }

.vc-parc__jalon--ici {
	border-color: #D4323A;
	color: #17161A;
	font-weight: 600;
}
.vc-parc__jalon--ici .vc-parc__num { background: #D4323A; color: #FFF; }

.vc-parc__jalon--fait { cursor: pointer; }
.vc-parc__jalon--fait .vc-parc__num { background: #17161A; color: #FFF; }

/* --- la mise en colonnes ------------------------------------------------- */
.vc-parc__corps {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

@media ( min-width: 860px ) {
	.vc-parc__corps { grid-template-columns: minmax(0, 1fr) 20rem; }
}

/* --- les étapes ---------------------------------------------------------- */
.vc-parc__etape { min-width: 0; }

.vc-parc__etape--venir {
	padding: 1rem;
	border: 1px dashed #DCD8D3;
	border-radius: 10px;
	background: #FBFAF9;
	color: #6E6B72;
}

.vc-parc__champ {
	display: flex;
	flex-direction: column;
	gap: .3rem;
	margin: 0 0 1rem;
}

.vc-parc__champ label {
	font-weight: 600;
	font-size: .9375rem;
}

.vc-parc__select,
.vc-parc__date {
	max-width: 22rem;
	padding: .55rem .7rem;
	border: 1px solid #CFCAC4;
	border-radius: 10px;
	background: #FFF;
	color: #17161A;
	font: inherit;
	font-size: 1rem;   /* 16 px : en dessous, les navigateurs mobiles zooment au focus */
}

.vc-parc__select:focus,
.vc-parc__date:focus {
	outline: 2px solid #C02A32;
	outline-offset: 1px;
}

.vc-parc__aide {
	color: #6E6B72;
	font-size: .8125rem;
}

.vc-parc__dates {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0 1rem;
}

@media ( min-width: 560px ) {
	.vc-parc__dates { grid-template-columns: 1fr 1fr; }
	.vc-parc__dates .vc-parc__date { max-width: none; }
}

.vc-parc__sejour {
	margin: 0 0 .75rem;
	font-weight: 600;
}

/* --- les messages -------------------------------------------------------- */
.vc-parc__msg {
	margin: 0 0 .6rem;
	padding: .6rem .8rem;
	border-radius: 10px;
	font-size: .9375rem;
}

.vc-parc__msg--alerte {
	border-left: 3px solid #C02A32;
	background: #FDF2F2;
	color: #17161A;
}

.vc-parc__msg--avis {
	border-left: 3px solid #B8860B;
	background: #FDF8EC;
	color: #17161A;
}

/* --- la navigation ------------------------------------------------------- */
.vc-parc__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem;
	margin: 1.25rem 0 0;
}

.vc-parc__bouton {
	padding: .7rem 1.4rem;
	border: 0;
	border-radius: 10px;
	background: #D4323A;
	color: #FFF;          /* 4,86 sur le rouge */
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.vc-parc__bouton:hover:not( [disabled] ) { background: #B9272F; }

.vc-parc__bouton[disabled] {
	background: #E4E0DB;
	color: #6E6B72;
	cursor: not-allowed;
}

.vc-parc__lien {
	padding: .4rem 0;
	border: 0;
	background: none;
	color: #C02A32;
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

/* --- le récapitulatif ---------------------------------------------------- */
.vc-parc__recap {
	/* sur téléphone, le récapitulatif replié passe EN HAUT, avant l'étape :
	   c'est ce que prévoit le cahier des charges. Au-delà de 860 px il repasse
	   en colonne de droite (order: 2, plus bas). */
	order: -1;
	align-self: start;
	border: 1px solid #E4E0DB;
	border-radius: 12px;
	background: #F7F5F2;
}

.vc-parc__recap-bascule {
	display: flex;
	justify-content: space-between;
	gap: .5rem;
	width: 100%;
	padding: .8rem 1rem;
	border: 0;
	border-radius: 12px;
	background: none;
	color: #17161A;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.vc-parc__recap-total { color: #C02A32; }

.vc-parc__recap-corps { padding: 0 1rem 1rem; }
.vc-parc__recap-h { display: none; }

.vc-parc__recap-lignes {
	margin: 0;
	padding: 0;
	list-style: none;
}

.vc-parc__recap-lignes li {
	display: flex;
	justify-content: space-between;
	gap: .5rem;
	padding: .4rem 0;
	border-bottom: 1px solid #E4E0DB;
	font-size: .9375rem;
}

.vc-parc__recap-prix { white-space: nowrap; font-weight: 600; }

.vc-parc__recap-rien,
.vc-parc__recap-note {
	margin: .5rem 0 0;
	color: #6E6B72;
	font-size: .8125rem;
}

.vc-parc__recap-pied {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: .2rem .5rem;
	margin: .75rem 0 0;
}

.vc-parc__recap-pied dt { color: #6E6B72; font-size: .8125rem; }
.vc-parc__recap-pied dd { margin: 0; text-align: right; font-size: .8125rem; }

.vc-parc__recap-pied dt:last-of-type,
.vc-parc__recap-pied dd:last-of-type {
	padding-top: .3rem;
	border-top: 1px solid #CFCAC4;
	color: #17161A;
	font-size: 1.125rem;
	font-weight: 700;
}

/* Sur téléphone le récapitulatif se replie en haut ; sur ordinateur il est
   toujours ouvert dans sa colonne, et sa bascule disparaît. */
.vc-parc__recap-corps { display: none; }
.vc-parc--recap-ouvert .vc-parc__recap-corps { display: block; }

@media ( min-width: 860px ) {
	.vc-parc__recap { order: 2; }
	.vc-parc__recap-bascule { display: none; }
	.vc-parc__recap-corps { display: block; padding: 1rem; }
	.vc-parc__recap-h {
		display: block;
		margin: 0 0 .75rem;
		font-size: 1.0625rem;
	}
}

/* --- étape 3 : les cartes de formule et de délai ------------------------- */
.vc-parc__intro3 { margin: 0 0 .85rem; color: #4F4C53; }

.vc-parc__groupe {
	margin: .9rem 0 .4rem;
	font-weight: 700;
	font-size: .9375rem;
}

.vc-parc__carte {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin: 0 0 .5rem;
	padding: .8rem .9rem;
	border: 1px solid #CFCAC4;
	border-radius: 10px;
	background: #FFF;
	cursor: pointer;
}

.vc-parc__carte:hover { border-color: #8E8A86; }

.vc-parc__carte--choisie {
	border-color: #D4323A;
	box-shadow: 0 0 0 1px #D4323A;
}

.vc-parc__radio {
	flex: 0 0 auto;
	width: 1.1rem;
	height: 1.1rem;
	margin: 0;
	accent-color: #D4323A;
}

.vc-parc__radio:focus-visible { outline: 2px solid #C02A32; outline-offset: 2px; }

.vc-parc__carte-txt {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: .15rem;
	min-width: 0;
}

.vc-parc__carte-titre { font-weight: 600; overflow-wrap: anywhere; }
.vc-parc__carte-detail { color: #6E6B72; font-size: .8125rem; }

.vc-parc__carte-prix {
	flex: 0 0 auto;
	font-weight: 700;
	white-space: nowrap;
}

.vc-parc__delais {
	margin: 1.1rem 0 0;
	padding: 0;
	border: 0;
}

.vc-parc__delais legend {
	margin: 0 0 .4rem;
	padding: 0;
	font-weight: 700;
	font-size: .9375rem;
}

.vc-parc__delai-unique { margin: 1rem 0 0; color: #4F4C53; }

.vc-parc__envoi { margin: 1rem 0 0; font-size: .875rem; }
.vc-parc__envoi em { font-style: normal; color: #6E6B72; font-size: .8rem; }
.vc-parc__lien[disabled] { color: #6E6B72; cursor: not-allowed; }

/* --- l'étape 1 accueille le sélecteur ----------------------------------- */
.vc-parc__etape--1 .vc-nat {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}

.vc-parc__etape--1 .vc-nat__titre { display: none; }   /* le cadre porte déjà « 1. Votre situation » */

/* --- étape 4 : les voyageurs ---------------------------------------------- */
.vc-parc__intro4 { margin: 0 0 1rem; }

.vc-parc__voy-liste {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	margin: 0 0 1rem;
}

.vc-parc__voy-ligne {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: .75rem;
	width: 100%;
	padding: .6rem .8rem;
	border: 1px solid #CFCAC4;
	border-radius: 10px;
	background: #FFF;
	color: #17161A;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.vc-parc__voy-ligne--actif { border-color: #D4323A; box-shadow: 0 0 0 1px #D4323A inset; cursor: default; }
.vc-parc__voy-num { font-weight: 700; }
.vc-parc__voy-nom { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #4F4C53; }
.vc-parc__voy-etat { font-size: .8125rem; color: #8A5A00; }   /* 5,6 sur blanc */
.vc-parc__voy-etat--ok { color: #2E6B3A; }                    /* 6,3 sur blanc */

.vc-parc__voy {
	min-width: 0;
	margin: 0;
	padding: 1rem;
	border: 1px solid #E4E0DB;
	border-radius: 12px;
}

.vc-parc__voy-titre { padding: 0 .3rem; font-weight: 700; }

.vc-parc__voy-nat {
	margin: 0 0 1rem;
	color: #4F4C53;
	font-size: .875rem;
}

.vc-parc__civ { display: flex; gap: 1.25rem; margin: 0 0 1rem; }
.vc-parc__civ label { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; cursor: pointer; }

.vc-parc__grille { display: grid; grid-template-columns: 1fr; gap: 0 1rem; }

@media ( min-width: 560px ) {
	.vc-parc__grille { grid-template-columns: 1fr 1fr; }
	.vc-parc__grille--adresse { grid-template-columns: 2fr 1fr 1.5fr; }
}

.vc-parc__saisie {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	padding: .55rem .7rem;
	border: 1px solid #CFCAC4;
	border-radius: 10px;
	background: #FFF;
	color: #17161A;
	font: inherit;
	font-size: 1rem;   /* 16 px : pas de zoom au focus sur téléphone */
}

.vc-parc__saisie:focus { outline: 2px solid #C02A32; outline-offset: 1px; }

.vc-parc__aide-passeport { margin: -.4rem 0 1rem; }

.vc-parc__sous-titre { margin: .5rem 0 .6rem; font-weight: 700; }
.vc-parc__recopier-p,
.vc-parc__voy-suivant-p { margin: 0; }
.vc-parc__voy-msgs:empty { display: none; }
.vc-parc__voy-msgs { margin: .5rem 0 0; }

/* --- étape 5 : les documents ---------------------------------------------- */
.vc-parc__mode { margin: 0 0 1rem; padding: 0; border: 0; }
.vc-parc__mode legend { margin: 0 0 .6rem; font-weight: 700; }
.vc-parc__mode-liste { display: flex; flex-direction: column; gap: .5rem; }

.vc-parc__pieces-groupe { margin: 0 0 1.25rem; }

.vc-parc__piece {
	margin: 0 0 .6rem;
	padding: .8rem 1rem;
	border: 1px solid #E4E0DB;
	border-radius: 10px;
	background: #FFF;
}

.vc-parc__piece-titre { margin: 0 0 .2rem; font-weight: 600; }
.vc-parc__piece .vc-parc__aide { margin: 0 0 .5rem; }

/* le vrai champ de fichier reste dans la page (accessible au clavier), mais
   c'est son libellé qui fait office de bouton */
.vc-parc__fichier {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect( 0 0 0 0 );
	white-space: nowrap;
}

.vc-parc__deposer {
	display: inline-block;
	padding: .45rem .9rem;
	border: 1px solid #C02A32;
	border-radius: 10px;
	color: #C02A32;
	font-weight: 600;
	font-size: .9375rem;
	cursor: pointer;
}

.vc-parc__fichier:focus-visible + .vc-parc__deposer { outline: 2px solid #C02A32; outline-offset: 2px; }

.vc-parc__fichiers {
	margin: 0 0 .5rem;
	padding: 0;
	list-style: none;
	font-size: .875rem;
	text-align: left;
	overflow-wrap: anywhere;
}

.vc-parc__fichiers li { padding: .15rem 0; }
.vc-parc__fichiers li::before { content: "✓ "; color: #2E6B3A; }
.vc-parc__envoi-fichier { color: #6E6B72; }
.vc-parc__fichiers li.vc-parc__en-route::before { content: "… "; color: #6E6B72; }
.vc-parc__retirer { padding: 0; font-size: .8125rem; }

.vc-parc__a-preparer ul { margin: 0 0 1rem; padding-left: 1.2rem; text-align: left; }
.vc-parc__a-preparer li { margin: 0 0 .3rem; text-align: left; }

.vc-parc__pieces-regle { margin: .5rem 0; }
.vc-parc__pieces-msgs:empty { display: none; }
.vc-parc__fournies:empty { display: none; }
.vc-parc__fournies { margin: 0 0 1rem; }

/* --- étape 6 : les options ------------------------------------------------ */
.vc-parc__opt-annexes,
.vc-parc__opt-assurance,
.vc-parc__opt-services,
.vc-parc__opt-envoi { display: flex; flex-direction: column; gap: .5rem; margin: 0 0 1.25rem; }
.vc-parc__opt-annexes:empty,
.vc-parc__opt-assurance:empty,
.vc-parc__opt-services:empty,
.vc-parc__opt-msgs:empty { display: none; }
.vc-parc__envois { display: flex; flex-direction: column; gap: .5rem; margin: 0 0 1rem; padding: 0; border: 0; }
.vc-parc__envois legend { margin: 0 0 .4rem; font-weight: 600; }
.vc-parc__envoi-evisa { margin: 0; color: #4F4C53; }

/* --- étape 7 : le paiement ------------------------------------------------ */
.vc-parc__synthese {
	margin: 0 0 1.25rem;
	padding: .9rem 1rem;
	border: 1px solid #E4E0DB;
	border-radius: 12px;
	background: #F7F5F2;
}
.vc-parc__synthese .vc-parc__sous-titre { margin-top: 0; }
.vc-parc__synth-l {
	display: grid;
	grid-template-columns: 8rem minmax(0, 1fr);
	gap: .75rem;
	margin: 0 0 .35rem;
	font-size: .9375rem;
	text-align: left;
	overflow-wrap: anywhere;
}
.vc-parc__synth-dt { color: #4F4C53; }
.vc-parc__synth-l:last-child { margin-top: .5rem; padding-top: .5rem; border-top: 1px solid #CFCAC4; font-weight: 700; }
.vc-parc__synth-l:last-child .vc-parc__synth-dt { color: #17161A; }

.vc-parc__qui,
.vc-parc__paie { margin: 0 0 1rem; padding: 0; border: 0; }
.vc-parc__qui legend,
.vc-parc__paie legend { margin: 0 0 .6rem; font-weight: 700; }
.vc-parc__qui-liste,
.vc-parc__paie-liste { display: flex; flex-direction: column; gap: .5rem; }
.vc-parc__societe { margin: 0 0 1rem; }

.vc-parc__coche {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	margin: 0 0 .8rem;
	font-size: .9375rem;
	text-align: left;
	cursor: pointer;
}
.vc-parc__coche input { margin-top: .25rem; flex: none; }
.vc-parc__coche[hidden] { display: none; }
.vc-parc__compte { margin: 0 0 .5rem; }

.vc-parc__msg--ok { border-left: 3px solid #2E6B3A; background: #EEF6F0; color: #17161A; }
.vc-parc__societe-msgs:empty,
.vc-parc__paie-msgs:empty { display: none; }

.vc-parc .vc-parc__bouton--inactif,
.vc-parc .vc-parc__bouton--inactif:hover { background: #E4E0DB; color: #6E6B72; cursor: not-allowed; }
.vc-parc__payer-p { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: .5rem 0 0; }
.vc-parc__fin { color: #6E6B72; font-size: .875rem; }

@media ( max-width: 420px ) {
	.vc-parc__synth-l { grid-template-columns: 1fr; gap: 0; }
}

/* Le parcours vend pour de bon (tunnel-commande.php) : l'ancien formulaire du
   thème est masqué (décision du 28/10/2026). Seuls ses blocs de formulaire —
   le texte de la fiche et la liste des pièces restent, ils servent au client
   et au référencement. Relevé sur la page servie le 28/10 : dans
   .checkout-step-content-1, .visa-options, .delay-of-treatment et
   .checkout-steps-buttons ; les étapes 2 et 3 du thème ; leur fil d'étapes. */
.vc-parc-reel .product-content-container > ul.checkout-steps,
.vc-parc-reel .checkout-step-content-1 > .visa-options,
.vc-parc-reel .checkout-step-content-1 > .delay-of-treatment,
.vc-parc-reel .checkout-step-content-1 > .checkout-steps-buttons,
.vc-parc-reel .checkout-step-content:not(.checkout-step-content-1),
/* son récapitulatif « Votre commande » (colonne de droite ; au-dessus du
   parcours sur téléphone), figé sur le prix de l'ancien formulaire — relevé en
   production le 28/10/2026, seul contenu de .product-sidebar */
.vc-parc-reel .product-sidebar { display: none !important; }

.vc-parc__envoi-cours { color: #6E6B72; font-size: .875rem; }

/* une formule trop courte pour le séjour : visible, grisée, non choisissable
   (Laurent, 29/10/2026) */
.vc-parc__carte--exclue { opacity: .55; cursor: not-allowed; }
.vc-parc__carte--exclue .vc-parc__carte-detail { color: #C02A32; }
