/* ============================================================
   Organigramme Elementor — org-chart.css
   Developer: Web-studios | Version: 1.8.0
   ============================================================ */

/*
 * Empêche le conteneur Elementor de couper le contenu.
 */
.elementor-widget-org-chart-widget,
.elementor-widget-org-chart-widget > .elementor-widget-container {
	overflow: visible;
}

/* ── Variables + conteneur principal ──────────────────────── */
.org-chart-widget {
	position: relative;
	--org-line-color:    #555555;
	--org-line-width:    2px;
	--org-v-gap:         32px;
	--org-h-gap:         20px;
	--org-card-min-w:    175px;
	--org-card-max-w:    230px;
	--org-card-border-w: 2px;
	--org-card-radius:   0px;
	--org-photo-size:    70px;

	box-sizing:  border-box;
	width:       100%;
	/* overflow géré entièrement par JS */
	padding:     28px 20px 36px;
	font-family: inherit;
}

.org-chart-widget,
.org-chart-widget * {
	box-sizing: border-box;
}

/* ============================================================
   STRUCTURE
   ============================================================ */

.org-chart-widget .org-chart {
	display:         inline-flex   !important;
	flex-direction:  row           !important;
	flex-wrap:       nowrap        !important;
	align-items:     flex-start    !important;
	min-width:       100%;
	justify-content: center;
}

.org-chart-widget .org-branch {
	display:         flex          !important;
	flex-direction:  column        !important;
	flex-wrap:       nowrap        !important;
	align-items:     center        !important;
	flex-shrink:     0             !important;
}

/* ── Ligne verticale parent → groupe ─── */
.org-chart-widget .org-vc {
	display:    block              !important;
	flex-shrink: 0;
	width:      var(--org-line-width);
	height:     var(--org-v-gap);
	background: var(--org-line-color);
}

/* ── Groupe horizontal de frères ─── */
.org-chart-widget .org-group {
	display:        flex           !important;
	flex-direction: row            !important;
	flex-wrap:      nowrap         !important;
	align-items:    flex-start     !important;
}

/* ── Slot par enfant ─── */
.org-chart-widget .org-child-wrap {
	position:       relative;
	display:        flex           !important;
	flex-direction: column         !important;
	flex-wrap:      nowrap         !important;
	align-items:    center         !important;
	flex-shrink:    0              !important;
	padding-top:    var(--org-v-gap);
	padding-left:   var(--org-h-gap);
	padding-right:  var(--org-h-gap);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   CONNECTEURS
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

.org-chart-widget .org-child-wrap::before {
	content:      ''               !important;
	display:      block            !important;
	position:     absolute;
	top:          0;
	right:        50%;
	width:        50%;
	height:       var(--org-v-gap);
	border-top:   var(--org-line-width) solid var(--org-line-color);
	border-right: var(--org-line-width) solid var(--org-line-color);
}

.org-chart-widget .org-child-wrap::after {
	content:    ''                 !important;
	display:    block              !important;
	position:   absolute;
	top:        0;
	left:       50%;
	width:      50%;
	height:     var(--org-line-width);
	border-top: var(--org-line-width) solid var(--org-line-color);
}

.org-chart-widget .org-child-wrap:first-child::before {
	border-top: none !important;
}

.org-chart-widget .org-child-wrap:last-child::after {
	display: none !important;
}

.org-chart-widget .org-child-wrap:only-child::before {
	border-top: none !important;
}
.org-chart-widget .org-child-wrap:only-child::after {
	display: none !important;
}

/* ============================================================
   CARTE
   ============================================================ */

.org-chart-widget .org-card {
	min-width:     var(--org-card-min-w);
	max-width:     var(--org-card-max-w);
	border:        var(--org-card-border-w) solid #333;
	border-radius: var(--org-card-radius);
	background:    #fff;
	overflow:      hidden;
	text-align:    center;
	box-shadow:    0 2px 8px rgba(0,0,0,.1);
}

/* ── Photo ───────────────────────────────────── */
.org-chart-widget .org-card__photo {
	display:         flex;
	justify-content: center;
	align-items:     flex-end;
	padding-top:     12px;
	padding-bottom:  0;
}

.org-chart-widget .org-card__photo img {
	width:         var(--org-photo-size);
	height:        var(--org-photo-size);
	object-fit:    cover;
	display:       block;
	border:        3px solid #fff;
	border-radius: 50%;
	position:      relative;
	z-index:       1;
	box-shadow:    0 2px 6px rgba(0,0,0,.25);
}

/* Forme arrondie */
.org-photo-shape--rounded .org-card__photo img {
	border-radius: 12px;
}

/* Forme carrée */
.org-photo-shape--square .org-card__photo img {
	border-radius: 0;
}

/* ── Barre colorée ───────────────────────────── */
.org-chart-widget .org-card__sublabel {
	padding:        4px 10px 2px;
	font-size:      10px;
	font-weight:    700;
	text-transform: uppercase;
	letter-spacing: .6px;
	line-height:    1.3;
	opacity:        .85;
}

.org-chart-widget .org-card__sublabel:empty {
	display: none;
}

.org-chart-widget .org-card__name {
	padding:     7px 10px 8px;
	font-size:   13px;
	font-weight: 700;
	line-height: 1.35;
}

/* ── Corps ───────────────────────────────────── */
.org-chart-widget .org-card__body {
	padding:    10px 12px 14px;
	background: #fff;
}

.org-chart-widget .org-card__position {
	font-size:   11.5px;
	color:       #333;
	line-height: 1.45;
}

.org-chart-widget .org-card__time {
	font-size:  11px;
	font-style: italic;
	color:      #666;
	margin-top: 6px;
}

/* ============================================================
   IMPRESSION
   ============================================================ */
@media print {
	.org-chart-widget { overflow: visible; }
}
