/* =========================================================
   ANNUAIRE PUBLIC DES ATHLÈTES
   Shortcode : [athle_athletes]
   cartes athlètes
   ========================================================= */


/* Conteneur général */

.athle-athletes-directory {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
    box-sizing: border-box;
}


/* En-tête */

.athle-athletes-directory-header {
    margin-bottom: 30px;
    text-align: center;
}

.athle-athletes-directory-header h2 {
    margin: 0 0 8px;
    font-size: 34px;
    line-height: 1.2;
}

.athle-athletes-directory-header p {
    margin: 0;
    color: #646970;
}


/* =========================================================
   FILTRES
   ========================================================= */

.athle-athletes-filters {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
    gap: 20px;
    margin-bottom: 35px;
    padding: 20px;
    background: #fff;
    border: 1px solid #dcdcde;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
    box-sizing: border-box;
}

.athle-athletes-filter-field {
    min-width: 0;
}

.athle-athletes-filter-field label {
    display: block;
    margin-bottom: 7px;
    font-weight: 600;
}

.athle-athletes-filter-field input,
.athle-athletes-filter-field select {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 44px;
    padding: 8px 12px;
    box-sizing: border-box;
    color: #1d2327;
    background: #fff;
    border: 1px solid #c3c4c7;
    border-radius: 8px;
    font: inherit;
}

.athle-athletes-filter-field input:focus,
.athle-athletes-filter-field select:focus {
    border-color: #2271b1;
    outline: none;
    box-shadow: 0 0 0 1px #2271b1;
}


/* Aucun résultat */

.athle-athletes-no-result {
    margin: 25px 0;
    padding: 18px;
    text-align: center;
    background: #fff8e5;
    border: 1px solid #dba617;
    border-radius: 8px;
}


/* =========================================================
   BLOCS DES CATÉGORIES
   ========================================================= */

.athle-athletes-group {
    margin-bottom: 45px;
}

.athle-athletes-group-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid #d4af37;
}

.athle-athletes-group-title h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: 28px;
}

.athle-category-logo {
    width: 34px;
    height: 34px;
    object-fit: contain;
    flex-shrink: 0;
}

.athle-athletes-group-title span {
    color: #646970;
    font-size: 14px;
}


/* =========================================================
   GRILLE DES CARTES
   5 cartes sur grand écran
   ========================================================= */

.athle-athletes-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}


/* =========================================================
   CARTE ATHLÈTE
   ========================================================= */

.athle-athlete-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 18px;
    box-sizing: border-box;
    overflow: hidden;
    color: #1d2327;
    background: #fff;
    border: 1px solid #dcdcde;
    border-radius: 14px;
    box-shadow:
        0 6px 18px rgba(0,0,0,1),
        0 2px 6px rgba(0,0,0,.05);
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
	position: relative;
}

.athle-athlete-card-link{
	display:block;
	text-decoration:none;
	color:inherit;
}


/* Double trait aux couleurs du club */

.athle-athlete-card::before {
    content: "";
    position: absolute;
    top: 18px;
    left: 18px;
    width: 18px;
    height: 90px;
    border-radius: 4px;
    background: linear-gradient(
		to right,
		#f2c94c 0,
		#f2c94c 35%,
		transparent 35%,
		transparent 65%,
		#005baa 65%,
		#005baa 100%
	);
}



.athle-athlete-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.12);
}


/* Photo ronde en haut à gauche */

/*.athle-athlete-photo {
    flex: 0 0 90px;
    width: 90px;
    height: 90px;
    margin: 0 0 14px;
    overflow: hidden;
    background: #f0f0f1;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12);
	margin-left: 32px;
}*/

.athle-athlete-photo {

    width: 90px;
    height: 90px;

    margin: 0 auto 18px;

    overflow: hidden;

    border-radius: 50%;
    border: 2px solid #fff;

    background: #f0f0f1;

    box-shadow: 0 3px 12px rgba(0,0,0,.12);
}

.athle-athlete-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.athle-athlete-photo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #8c8f94;
    font-size: 42px;
}


/* Contenu */

.athle-athlete-content {
    min-width: 0;
    padding: 0;
	display: flex;
	flex-direction: column;
	width: 100%;
}


/* Catégorie */

/*.athle-athlete-category {
    margin: 0 0 7px;
    color: #646970;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}*/

.athle-athlete-category {

    margin-bottom: 18px;

    text-align: center;

    color: #777;

    font-size: 12px;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: .08em;
}

.athle-athlete-birthyear {

    color: #777;

    font-size: 12px;

    font-weight: 500;
}


/*.athle-athlete-name {
    margin: 0 0 16px;
    font-size: 19px;
    line-height: 1.3;
    overflow-wrap: anywhere;
}*/

/* familles disciplines */

.athle-athlete-families {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin: 0 0 16px;
}

.athle-athlete-family {
    display: inline-block;
    padding: 4px 9px;
    color: #3c434a;
    background: #f0f0f1;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
}

/* Nom et prénom */

.athle-athlete-name {

    margin: 0 0 6px;

    text-align: center;

    font-size: 20px;

    line-height: 1.3;
}

.athle-athlete-name strong {
    display: inline;
}


/* Records et titres */

.athle-athlete-info {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #ececec;
}

.athle-athlete-info h5 {
    margin: 0 0 7px;
    color: #1d2327;
    font-size: 14px;
    line-height: 1.4;
}

.athle-athlete-info div {
    color: #3c434a;
    font-size: 14px;
    line-height: 1.5;
    overflow-wrap: anywhere;
    word-break: normal;
}


/* Masquage utilisé par le filtre JavaScript */

.athle-athlete-card[hidden],
.athle-athletes-group[hidden],
.athle-athletes-no-result[hidden] {
    display: none !important;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */


/* 4 cartes */

@media screen and (max-width: 1300px) {

    .athle-athletes-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}


/* 3 cartes */

@media screen and (max-width: 1050px) {

    .athle-athletes-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}


/* Tablette : 2 cartes */

@media screen and (max-width: 780px) {

    .athle-athletes-filters {
        grid-template-columns: 1fr;
    }

    .athle-athletes-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .athle-athletes-directory-header h2 {
        font-size: 30px;
    }

    .athle-athletes-group-title h3 {
        font-size: 24px;
    }
}


/* Mobile : 1 carte */

@media screen and (max-width: 520px) {

    .athle-athletes-directory {
        padding-right: 4px;
        padding-left: 4px;
    }

    .athle-athletes-filters {
        gap: 15px;
        padding: 15px;
    }

    .athle-athletes-group-title {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .athle-athletes-grid {
        grid-template-columns: 1fr;
    }

    .athle-athlete-card {
        padding: 16px;
    }

    .athle-athlete-photo {
        width: 82px;
        height: 82px;
        flex-basis: 82px;
    }
}

/* =========================================================
   ANNUAIRE PUBLIC DES ENTRAÎNEURS
   Shortcode : [athle_coaches]
   ========================================================= */

.athle-coaches-directory {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
    box-sizing: border-box;
}


/* Titre */

.athle-coaches-directory-header {
    margin-bottom: 30px;
    text-align: center;
}

.athle-coaches-directory-header h2 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 0;
    font-size: 34px;
    line-height: 1.2;
}

.athle-coaches-title-logo {
    width: 42px;
    height: 42px;
    padding: 4px;
    box-sizing: border-box;
    object-fit: contain;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10);
}


/* Grille : 4 cartes par ligne */

.athle-coaches-public-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}


/* Carte */

.athle-coach-public-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 20px;
    box-sizing: border-box;
    overflow: hidden;
    color: #1d2327;
    background: #fff;
    border: 1px solid #e3e5e8;
    border-radius: 14px;
	box-shadow:
        0 6px 18px rgba(0,0,0,1),
        0 2px 6px rgba(0,0,0,.05);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.athle-coach-card-link {
	display: block;
	width: 100%;
	height: 100%;
	color: inherit;
	text-decoration: none;
	box-sizing: border-box;
}

.athle-coach-public-card:hover {
    transform: translateY(-6px);
    box-shadow:
        0 18px 40px rgba(0, 0, 0, 0.16),
        0 6px 18px rgba(0, 0, 0, 0.08);
}


/* Deux traits verticaux */

.athle-coach-public-card::before,
.athle-coach-public-card::after {
    content: "";
    position: absolute;
    top: 20px;
    width: 3px;
    height: 90px;
    border-radius: 3px;
}

.athle-coach-public-card::before {
    left: 18px;
    background: #f2c94c;
}

.athle-coach-public-card::after {
    left: 25px;
    background: #005baa;
}


/* Photo ronde centrée */

.athle-coach-public-photo {
    flex: 0 0 90px;
    width: 90px;
    height: 90px;
    margin: 0 auto 18px;
    overflow: hidden;
    background: #f0f0f1;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12);
}

.athle-coach-public-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.athle-coach-photo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #8c8f94;
    font-size: 42px;
}


/* Contenu */

.athle-coach-public-content {
    display: flex;
    flex-direction: column;
    min-width: 0;
}


/* Nom */

.athle-coach-public-name {
    margin: 0 0 6px;
    text-align: center;
    font-size: 20px;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.athle-coach-public-name strong {
    display: inline;
}


/* Fonction */

.athle-coach-public-role {
    margin: 0 0 8px;
    text-align: center;
    color: #646970;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}


/* Catégorie et année */

.athle-coach-public-category {
    margin: 0 0 14px;
    text-align: center;
    color: #646970;
    font-size: 12px;
    font-weight: 600;
}

.athle-coach-public-category span {
    font-weight: 500;
}


/* Familles de disciplines */

.athle-coach-public-families {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin: 0 0 16px;
}

.athle-coach-public-families span {
    display: inline-block;
    padding: 4px 9px;
    color: #3c434a;
    background: #f0f0f1;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
}


/* Description */

.athle-coach-public-description {
    margin-top: 14px;
    padding-top: 14px;
    color: #3c434a;
    border-top: 1px solid #ececec;
    font-size: 14px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

/* 3 cartes */

@media screen and (max-width: 1200px) {

    .athle-coaches-public-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}


/* 2 cartes */

@media screen and (max-width: 850px) {

    .athle-coaches-public-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .athle-coaches-directory-header h2 {
        font-size: 30px;
    }
}


/* 1 carte */

@media screen and (max-width: 520px) {

    .athle-coaches-directory {
        padding-right: 4px;
        padding-left: 4px;
    }

    .athle-coaches-public-grid {
        grid-template-columns: 1fr;
    }

    .athle-coach-public-card {
        padding: 18px;
    }

    .athle-coach-public-photo {
        width: 84px;
        height: 84px;
        flex-basis: 84px;
    }
}

/* =========================================================
   ANNUAIRE PUBLIC DU BUREAU
   Shortcode : [athle_bureau]
   ========================================================= */

.athle-bureau-directory {
	width: 100%;
	max-width: 1500px;
	margin: 0 auto;
	box-sizing: border-box;
}


/* =========================================================
   TITRE
   ========================================================= */

.athle-bureau-directory-header {
	margin-bottom: 30px;
	text-align: center;
}

.athle-bureau-directory-header h2 {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: 0;
	font-size: 34px;
	line-height: 1.2;
}

.athle-bureau-title-logo {
	width: 42px;
	height: 42px;
	padding: 4px;
	box-sizing: border-box;
	object-fit: contain;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10);
}


/* =========================================================
   GRILLE : 3 CARTES PAR LIGNE
   ========================================================= */

.athle-bureau-public-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;

	width: 100%;
	box-sizing: border-box;

	align-items: stretch;
	justify-items: stretch;
}

/*
 * Force chaque enfant direct de la grille
 * à remplir entièrement sa colonne.
 */
.athle-bureau-public-grid > * {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}


/* =========================================================
   CARTE
   ========================================================= */

.athle-bureau-public-card {
	position: relative;

	display: flex;
	flex-direction: column;

	width: 100%;
	max-width: none;
	min-width: 0;
	height: 100%;

	padding: 20px;
	box-sizing: border-box;
	overflow: hidden;

	color: #1d2327;
	background: #fff;
	border: 1px solid #e3e5e8;
	border-radius: 14px;

	box-shadow:
		0 6px 18px rgba(0, 0, 0, 0.10),
		0 2px 6px rgba(0, 0, 0, 0.05);

	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.athle-bureau-public-card:hover {
	transform: translateY(-6px);

	box-shadow:
		0 18px 40px rgba(0, 0, 0, 0.16),
		0 6px 18px rgba(0, 0, 0, 0.08);
}


/* =========================================================
   LIEN SUR TOUTE LA CARTE
   ========================================================= */

.athle-bureau-card-link {
	display: flex;
	flex-direction: column;
	flex: 1;

	width: 100%;
	min-width: 0;
	height: 100%;

	color: inherit;
	text-decoration: none;
	box-sizing: border-box;
}

.athle-bureau-card-link:hover,
.athle-bureau-card-link:focus,
.athle-bureau-card-link:visited {
	color: inherit;
	text-decoration: none;
}


/* =========================================================
   DEUX TRAITS VERTICAUX
   ========================================================= */

.athle-bureau-public-card::before,
.athle-bureau-public-card::after {
	content: "";
	position: absolute;
	top: 20px;

	width: 3px;
	height: 90px;

	border-radius: 3px;
}

.athle-bureau-public-card::before {
	left: 18px;
	background: #f2c94c;
}

.athle-bureau-public-card::after {
	left: 25px;
	background: #005baa;
}


/* =========================================================
   PHOTO RONDE CENTRÉE
   ========================================================= */

.athle-bureau-public-photo {
	flex: 0 0 90px;

	width: 90px;
	height: 90px;
	margin: 0 auto 18px;

	overflow: hidden;

	background: #f0f0f1;
	border: 2px solid #fff;
	border-radius: 50%;

	box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12);
}

.athle-bureau-public-photo img {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;
}

.athle-bureau-photo-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	height: 100%;

	color: #8c8f94;
	font-size: 42px;
}


/* =========================================================
   CONTENU
   ========================================================= */

.athle-bureau-public-content {
	display: flex;
	flex: 1;
	flex-direction: column;

	width: 100%;
	min-width: 0;
}


/* =========================================================
   NOM
   ========================================================= */

.athle-bureau-public-name {
	margin: 0 0 6px;

	text-align: center;
	font-size: 20px;
	line-height: 1.3;

	overflow-wrap: anywhere;
}

.athle-bureau-public-name strong {
	display: inline;
}


/* =========================================================
   FONCTION
   ========================================================= */

.athle-bureau-public-role {
	margin: 0 0 14px;

	text-align: center;
	color: #646970;

	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}


/* =========================================================
   DESCRIPTION
   ========================================================= */

.athle-bureau-public-description {
	margin-top: 14px;
	padding-top: 14px;

	color: #3c434a;
	border-top: 1px solid #ececec;

	font-size: 14px;
	line-height: 1.6;

	overflow-wrap: anywhere;
}


/* =========================================================
   RESPONSIVE : 2 CARTES
   ========================================================= */

@media screen and (max-width: 850px) {

	.athle-bureau-public-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.athle-bureau-directory-header h2 {
		font-size: 30px;
	}

}


/* =========================================================
   RESPONSIVE : 1 CARTE
   ========================================================= */

@media screen and (max-width: 520px) {

	.athle-bureau-directory {
		padding-right: 4px;
		padding-left: 4px;
	}

	.athle-bureau-public-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.athle-bureau-public-card {
		padding: 18px;
	}

	.athle-bureau-public-photo {
		flex-basis: 84px;
		width: 84px;
		height: 84px;
	}

}

/* =========================================================
   ANNUAIRE PUBLIC DU COMITÉ
   Shortcode : [athle_comite]
   ========================================================= */

.athle-committee-directory {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
    box-sizing: border-box;
}

.athle-committee-directory-header {
    margin-bottom: 30px;
    text-align: center;
}

.athle-committee-directory-header h2 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 0;
    font-size: 34px;
    line-height: 1.2;
}

.athle-committee-title-logo {
    width: 42px;
    height: 42px;
    padding: 4px;
    box-sizing: border-box;
    object-fit: contain;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10);
}

.athle-committee-public-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.athle-committee-public-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 20px;
    box-sizing: border-box;
    overflow: hidden;
    color: #1d2327;
    background: #fff;
    border: 1px solid #e3e5e8;
    border-radius: 14px;
    box-shadow:
        0 6px 18px rgba(0, 0, 0, 1),
        0 2px 6px rgba(0, 0, 0, 0.05);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.athle-committee-card-link {
	display: block;
	width: 100%;
	height: 100%;
	color: inherit;
	text-decoration: none;
	box-sizing: border-box;
}

.athle-committee-card-link:hover,
.athle-committee-card-link:focus {
	color: inherit;
	text-decoration: none;
}

.athle-committee-public-card:hover {
    transform: translateY(-6px);
    box-shadow:
        0 18px 40px rgba(0, 0, 0, 0.16),
        0 6px 18px rgba(0, 0, 0, 0.08);
}

.athle-committee-public-card::before,
.athle-committee-public-card::after {
    content: "";
    position: absolute;
    top: 20px;
    width: 3px;
    height: 90px;
    border-radius: 3px;
}

.athle-committee-public-card::before {
    left: 18px;
    background: #f2c94c;
}

.athle-committee-public-card::after {
    left: 25px;
    background: #005baa;
}

.athle-committee-public-photo {
    flex: 0 0 90px;
    width: 90px;
    height: 90px;
    margin: 0 auto 18px;
    overflow: hidden;
    background: #f0f0f1;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12);
}

.athle-committee-public-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.athle-committee-photo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #8c8f94;
    font-size: 42px;
}

.athle-committee-public-content {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.athle-committee-public-name {
    margin: 0 0 6px;
    text-align: center;
    font-size: 20px;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.athle-committee-public-name strong {
    display: inline;
}

.athle-committee-public-role {
    margin: 0 0 14px;
    text-align: center;
    color: #646970;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.athle-committee-public-description {
    margin-top: 14px;
    padding-top: 14px;
    color: #3c434a;
    border-top: 1px solid #ececec;
    font-size: 14px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

@media screen and (max-width: 1200px) {

    .athle-committee-public-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media screen and (max-width: 850px) {

    .athle-committee-public-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .athle-committee-directory-header h2 {
        font-size: 30px;
    }
}

@media screen and (max-width: 520px) {

    .athle-committee-directory {
        padding-right: 4px;
        padding-left: 4px;
    }

    .athle-committee-public-grid {
        grid-template-columns: 1fr;
    }

    .athle-committee-public-card {
        padding: 18px;
    }

    .athle-committee-public-photo {
        width: 84px;
        height: 84px;
        flex-basis: 84px;
    }
}


/* =========================================================
   ESPACE ADHÉRENT
   ========================================================= */


.athle-public-wrapper {
    width: 100%;
    max-width: none;
    margin: 40px 0;
    padding: 0 20px;
    box-sizing: border-box;
}

.athle-account-layout {
    display: grid;
    grid-template-columns: minmax(210px, 1fr) minmax(0, 4fr);
    gap: 28px;
    align-items: start;
}


/* Menu latéral */

.athle-account-sidebar {
    position: sticky;
    top: 30px;
    overflow: hidden;
    border: 1px solid #dcdcde;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
}

.athle-account-sidebar-header {
    padding: 22px 20px;
    border-bottom: 1px solid #dcdcde;
    background: #f6f7f7;
}

.athle-account-sidebar-header h2 {
    margin: 0 0 5px;
    font-size: 21px;
    line-height: 1.2;
}

.athle-account-sidebar-header p {
    margin: 0;
    opacity: 0.7;
    font-size: 14px;
}

.athle-account-menu {
    display: flex;
    flex-direction: column;
    padding: 10px;
    gap: 5px;
}

.athle-account-menu-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 46px;
    padding: 9px 12px;
    border: 1px solid transparent;
    border-radius: 8px;
    color: #1d2327;
    text-decoration: none;
    box-sizing: border-box;
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}

.athle-account-menu-item:hover {
    border-color: #c3c4c7;
    background: #f6f7f7;
    color: #1d2327;
    transform: translateX(2px);
}

.athle-account-menu-item.is-active {
    border-color: var(--athle-primary-color);
	background: color-mix(
		in srgb,
		var(--athle-primary-color) 10%,
		white
	);
	color: var(--athle-primary-color);
	font-weight: 600;
}

.athle-account-menu-icon {
    display: inline-flex;
    flex: 0 0 30px;
    align-items: center;
    justify-content: center;
    font-size: 23px;
    line-height: 1;
}

.athle-account-menu-label {
    line-height: 1.3;
}


/* Zone de contenu */

.athle-account-main {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dcdcde;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
}

.athle-account-content-header {
    padding: 25px 30px;
    border-bottom: 4px solid var(--athle-primary-color);
    background: #f6f7f7;
}

.athle-account-content-header h1 {
    margin: 0 0 8px;
    font-size: 28px;
    line-height: 1.25;
	color: var(--athle-primary-color);
}

.athle-account-content-header p {
    margin: 0;
    opacity: 0.75;
    font-size: 16px;
}

.athle-account-content-body {
    min-height: 400px;
    padding: 30px;
    box-sizing: border-box;
}

.athle-account-welcome {
    max-width: 680px;
    margin: 50px auto;
    text-align: center;
}

.athle-account-welcome-icon {
    display: block;
    margin-bottom: 15px;
    font-size: 52px;
}

.athle-account-welcome h2 {
    margin: 0 0 15px;
    font-size: 27px;
}

.athle-account-welcome p {
    margin: 0;
    font-size: 17px;
    line-height: 1.65;
}


/* =========================================================
   TABLETTES ET SMARTPHONES
   ========================================================= */

@media screen and (max-width: 900px) {

    .athle-public-wrapper {
        margin: 0px auto;
        padding: 0 12px;
    }

    .athle-account-layout {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .athle-account-sidebar {
        position: static;
        width: 100%;
        overflow: visible;
    }

    .athle-account-sidebar-header {
        display: none;
    }

    .athle-account-menu {
        display: flex;
        flex-direction: row;
        width: 100%;
        padding: 8px;
        gap: 5px;
        overflow-x: auto;
        box-sizing: border-box;
        scrollbar-width: thin;
    }

    .athle-account-menu-item {
        flex: 1 0 52px;
        min-width: 52px;
        min-height: 50px;
        padding: 8px;
        justify-content: center;
    }

    .athle-account-menu-item:hover {
        transform: none;
    }

    .athle-account-menu-icon {
        flex-basis: auto;
        font-size: 24px;
    }

    .athle-account-menu-label {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .athle-account-main {
        width: 100%;
    }

    .athle-account-content-header {
        padding: 20px;
    }

    .athle-account-content-header h1 {
        font-size: 23px;
    }

    .athle-account-content-header p {
        font-size: 15px;
    }

    .athle-account-content-body {
        min-height: 300px;
        padding: 20px;
    }

    .athle-account-welcome {
        margin: 25px auto;
    }

}


/* Très petits smartphones */

@media screen and (max-width: 480px) {

    .athle-public-wrapper {
        padding: 0 8px;
    }

    .athle-account-menu {
        justify-content: flex-start;
    }

    .athle-account-menu-item {
        flex: 0 0 48px;
        min-width: 48px;
        min-height: 48px;
    }

    .athle-account-menu-icon {
        font-size: 22px;
    }

    .athle-account-content-header {
        padding: 17px;
    }

    .athle-account-content-header h1 {
        font-size: 21px;
    }

    .athle-account-content-body {
        padding: 17px;
    }

}

/*message accès refusé*/
/**********************/

.athle-public-message {
    max-width: 650px;
    margin: 60px auto;
    padding: 35px;
    border: 1px solid #dcdcde;
    border-radius: 12px;
    background: #fff;
    text-align: center;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
}

.athle-public-message h2 {
    margin-top: 0;
}

.athle-public-button {
    display: inline-block;
    padding: 11px 18px;
    border-radius: 7px;
    background: #2271b1;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
}

.athle-public-button:hover {
    background: #135e96;
    color: #fff;
}

/*page de connexion*/
/*******************/

.athle-login-box {
	max-width: 520px;
	margin: 50px auto;
	padding: 30px;
	border: 1px solid #dcdcde;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
}

.athle-login-box h2 {
	margin-top: 0;
}

.athle-login-box label {
	display: block;
	margin-bottom: 7px;
	font-weight: 600;
}

.athle-login-box input[type="email"],
.athle-login-box input[type="password"] {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid #c3c4c7;
	border-radius: 6px;
	box-sizing: border-box;
}

.athle-login-box form p {
	margin-bottom: 20px;
}

.athle-login-error {
	margin: 0 0 20px;
	padding: 12px 15px;
	border: 1px solid #d63638;
	border-radius: 6px;
	background: #fcf0f1;
	color: #8a2424;
}

.athle-password-field {
	display: flex;
	align-items: stretch;
	width: 100%;
}

.athle-password-field input {
	flex: 1;
	min-width: 0;
	border-radius: 6px 0 0 6px !important;
}

.athle-toggle-password {
	width: 46px;
	padding: 0;
	border: 1px solid #c3c4c7;
	border-left: 0;
	border-radius: 0 6px 6px 0;
	background: #f6f7f7;
	cursor: pointer;
	font-size: 18px;
}

.athle-toggle-password:hover {
	background: #e9eaeb;
}

/*espace perso*/
/*contenu de droite*/

.athle-profile-header {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-bottom: 30px;
	padding-bottom: 25px;
	border-bottom: 1px solid #dcdcde;
}

.athle-profile-photo img,
.athle-profile-photo-placeholder {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	border: 4px solid var(--athle-primary-color);
	object-fit: cover;
	display: block;
}

.athle-profile-photo-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f6f7f7;
	font-size: 55px;
}

.athle-profile-photo {
	width: 130px;
	height: 130px;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0;

	display: flex;
	align-items: center;
	justify-content: center;
}

.athle-mobile-only{
	display:none;
}

.athle-profile-identity h2 {
	margin: 0 0 5px;
	font-size: 27px;
	color : var(--athle-primary-color);
	padding-top : 10px;
}

.athle-profile-identity p {
	margin: 0;
	font-size: 17px;
	opacity: 0.75;
	
}

.athle-profile-section {
	margin-top: 28px;
	padding: 22px;
	border: 1px solid #dcdcde;
	border-radius: 10px;
	background: #fff;
	border-left: 5px solid var(--athle-primary-color);
}

.athle-profile-section > h2 {
	margin: 0 0 20px;
	padding-bottom: 10px;
	border-bottom: 1px solid #dcdcde;
	font-size: 21px;
	color: var(--athle-primary-color);
}

.athle-profile-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 25px;
}

.athle-profile-field {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.athle-profile-label {
	font-size: 13px;
	font-weight: 600;
	color: var(--athle-primary-color);
	opacity: 1;
}

.athle-profile-value {
	font-size: 16px;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.athle-guardians-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.athle-guardian-card {
	padding: 20px;
	border: 1px solid #dcdcde;
	border-radius: 8px;
	background: #f9f9f9;
}

.athle-guardian-card h3 {
	margin: 0 0 18px;
	font-size: 19px;
}

.athle-profile-list {
	display: grid;
	grid-template-columns: minmax(120px, 1fr) 2fr;
	gap: 10px 15px;
	margin: 0;
}

.athle-profile-list dt {
	font-weight: 600;
	opacity: 0.7;
}

.athle-profile-list dd {
	margin: 0;
	overflow-wrap: anywhere;
}

@media screen and (max-width: 700px) {

	.athle-profile-header {
		flex-direction: column;
		text-align: center;
	}

	.athle-profile-grid,
	.athle-guardians-grid {
		grid-template-columns: 1fr;
	}

	.athle-profile-list {
		grid-template-columns: 1fr;
		gap: 3px;
	}

	.athle-profile-list dd {
		margin-bottom: 12px;
	}
	
	.athle-mobile-only{
		display:flex;
	}

}

/*2 barres devant les sous titres*/

.athle-section-title{
	display:flex;
	align-items:center;
	gap:12px;
	margin:0 0 20px;
	padding-bottom:10px;
	border-bottom:1px solid #dcdcde;
	font-size:21px;
	color:var(--athle-primary-color);
}

.athle-section-soustitle{
	margin:-10px 0 20px 24px;
	font-size:12px;
	font-style:italic;
	color:#777;
}

.athle-title-bars{
	display:flex;
	gap:4px;
	flex-shrink:0;
}

.athle-title-bars::before,
.athle-title-bars::after{
	content:"";
	display:block;
	width:5px;
	height:24px;
	border-radius:3px;
}

.athle-title-bars::before{
	background:var(--athle-primary-color);
}

.athle-title-bars::after{
	background:var(--athle-secondary-color);
}
/****************************************************/

/*logo dans page accueil espace perso*/
.athle-club-logo {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin-bottom: 25px;
}

.athle-club-logo img {
	display: block;
	max-width: 140px;
	max-height: 140px;
	width: auto;
	height: auto;
}

/*account : info sportives*/
.athle-profile-help {
	margin-top: 4px;
	font-size: 13px;
	opacity: 0.7;
}

.athle-sport-description {
	line-height: 1.7;
}

.athle-sport-coaches {
	display: grid;
	gap: 12px;
}

.athle-sport-coach {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	padding: 14px 16px;
	border: 1px solid #dcdcde;
	border-radius: 8px;
	background: #f9f9f9;
}

.athle-sport-coach strong {
	color: var(--athle-primary-color);
	font-size: 13px;
}

.athle-sport-discipline-families {
	display: grid;
	gap: 18px;
}

.athle-sport-discipline-family {
	padding: 18px;
	border: 1px solid #dcdcde;
	border-left: 5px solid var(--athle-primary-color);
	border-radius: 8px;
	background: #fff;
}

.athle-sport-discipline-family h3 {
	margin: 0 0 14px;
	color: var(--athle-primary-color);
	font-size: 18px;
}

.athle-sport-discipline-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.athle-sport-discipline {
	display: inline-block;
	padding: 7px 11px;
	border-radius: 20px;
	background: color-mix(
		in srgb,
		var(--athle-secondary-color) 18%,
		white
	);
	font-size: 14px;
}

@media screen and (max-width: 700px) {

	.athle-sport-coach {
		align-items: flex-start;
		flex-direction: column;
	}

}

.athle-health-question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 14px 0;
	border-bottom: 1px solid #e2e4e7;
}

.athle-health-question:last-child {
	border-bottom: 0;
}

.athle-health-question-label {
	margin: 0;
	line-height: 1.5;
}

.athle-health-answer {
	flex: 0 0 auto;
	min-width: 70px;
	padding: 6px 12px;
	border-radius: 20px;
	text-align: center;
	font-weight: 600;
}

.athle-health-answer.is-yes {
	background: #fcf0f1;
	color: #b32d2e;
}

.athle-health-answer.is-no {
	background: #edfaef;
	color: #1e7e34;
}

.athle-health-answer.is-empty {
	background: #f0f0f1;
	color: #646970;
}

.athle-health-status {
	margin-top: 20px;
	padding: 14px 16px;
	border-radius: 8px;
	font-weight: 600;
}

.athle-health-status.is-required {
	border: 1px solid #d63638;
	background: #fcf0f1;
	color: #8a2424;
}

.athle-health-status.is-valid {
	border: 1px solid #46b450;
	background: #edfaef;
	color: #1e6330;
}

@media screen and (max-width: 700px) {

	.athle-health-question {
		align-items: flex-start;
		flex-direction: column;
		gap: 10px;
	}

}

.athle-documents-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.athle-document-card {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px;
	border: 1px solid #dcdcde;
	border-left: 5px solid var(--athle-primary-color);
	border-radius: 8px;
	background: #fff;
}

.athle-document-card-icon {
	flex: 0 0 auto;
	font-size: 32px;
}

.athle-document-card-content h3 {
	margin: 0 0 6px;
	color: var(--athle-primary-color);
	font-size: 17px;
}

.athle-document-card-content p {
	margin: 0;
	font-size: 14px;
	opacity: 0.7;
}

@media screen and (max-width: 700px) {

	.athle-documents-list {
		grid-template-columns: 1fr;
	}

}

.athle-fee-status {
	margin-bottom: 22px;
	padding: 14px 16px;
	border-radius: 8px;
	font-weight: 600;
}

.athle-fee-status.is-paid {
	border: 1px solid #46b450;
	background: #edfaef;
	color: #1e6330;
}

.athle-fee-status.is-unpaid {
	border: 1px solid #d63638;
	background: #fcf0f1;
	color: #8a2424;
}

.athle-legal-item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 16px 0;
	border-bottom: 1px solid #e2e4e7;
}

.athle-legal-item:last-child {
	border-bottom: 0;
}

.athle-legal-status {
	flex: 0 0 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	font-size: 20px;
}

.athle-legal-status.is-accepted {
	background: #edfaef;
}

.athle-legal-status.is-refused {
	background: #fcf0f1;
}

.athle-legal-content p {
	margin: 0 0 7px;
	line-height: 1.55;
}

.athle-legal-content strong {
	font-size: 14px;
}

.athle-legal-content strong.is-accepted {
	color: #1e6330;
}

.athle-legal-content strong.is-refused {
	color: #8a2424;
}

@media screen and (max-width: 700px) {

	.athle-legal-item {
		flex-direction: column;
	}

}


.athle-account-actions{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:25px;
}

.athle-account-action-card{
	padding:25px;
	border:1px solid #dcdcde;
	border-left:5px solid var(--athle-primary-color);
	border-radius:10px;
	background:#fff;
	text-align:center;
}

.athle-account-action-icon{
	font-size:42px;
	margin-bottom:15px;
}

.athle-account-action-card h3{
	margin:0 0 10px;
	color:var(--athle-primary-color);
}

.athle-account-action-card p{
	min-height:55px;
	margin-bottom:20px;
	line-height:1.5;
}

@media screen and (max-width:700px){

	.athle-account-actions{
		grid-template-columns:1fr;
	}

}

.athle-password-form {
	max-width: 600px;
}

.athle-password-form p {
	margin: 0 0 20px;
}

.athle-password-form label {
	display: block;
	margin-bottom: 7px;
	font-weight: 600;
	color: var(--athle-primary-color);
}

.athle-password-field {
	display: flex;
	align-items: stretch;
	width: 100%;
}

.athle-password-form input[type="password"],
.athle-password-form input[type="text"] {
	flex: 1;
	min-width: 0;
	width: auto;
	padding: 11px 12px;
	border: 1px solid #c3c4c7;
	border-right: 0;
	border-radius: 6px 0 0 6px;
	box-sizing: border-box;
}

.athle-toggle-password {
	flex: 0 0 52px;
	width: 52px;
	padding: 0;
	border: 1px solid #c3c4c7;
	border-radius: 0 6px 6px 0;
	background: #f6f7f7;
	cursor: pointer;
	font-size: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.athle-toggle-password:hover,
.athle-toggle-password:focus {
	background: #e9eaeb;
}

.athle-password-info {
	margin: 20px 0;
	padding: 12px 16px;
	border-left: 4px solid var(--athle-primary-color);
	background: #f8f9fb;
	font-size: 14px;
	border-radius: 6px;
}

.athle-password-message {
	margin-bottom: 20px;
	padding: 13px 16px;
	border-radius: 7px;
	font-weight: 600;
}

.athle-password-message.is-success {
	border: 1px solid #46b450;
	background: #edfaef;
	color: #1e6330;
}

.athle-password-message.is-error {
	border: 1px solid #d63638;
	background: #fcf0f1;
	color: #8a2424;
}


.athle-member-roles{
	display:grid;
	grid-template-columns:repeat(2, minmax(180px, 1fr));
	gap:12px 30px;
	margin-top:8px;
}

.athle-member-role{
	display:flex;
	align-items:center;
	gap:8px;
}

.athle-member-role-icon{
	flex:0 0 auto;
	font-size:16px;
}

@media (max-width:768px){

	.athle-member-roles{
		grid-template-columns:1fr;
	}

}

/*popup carte*/
/*************/
.athle-athlete-social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin: 6px auto 14px;
	border: 1px solid #dcdcde;
	border-radius: 50%;
	background: #f6f7f7;
	color: inherit;
	text-decoration: none;
	font-size: 20px;
	transition:
		transform 0.2s ease,
		background 0.2s ease;
}

.athle-athlete-social-link:hover,
.athle-athlete-social-link:focus {
	transform: translateY(-2px);
	background: #e9eaeb;
	text-decoration: none;
}

.athle-athlete-card-description {
	display: -webkit-box;
	margin-top: 14px;
	overflow: hidden;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.athle-athlete-more-button {
	display: flex;
	align-items: center;
	justify-content: center;

	width: fit-content;
	margin: 18px auto 0;

	padding: 9px 18px;
	border: 0;
	border-radius: 7px;

	background: var(--athle-primary-color, #005baa);
	color: #fff;

	font-weight: 600;
	cursor: pointer;
}

.athle-athlete-more-button:hover,
.athle-athlete-more-button:focus {
	opacity: 0.88;
}


/* Popup */

.athle-athlete-modal[hidden] {
	display: none;
}

.athle-athlete-modal {
	position: fixed;
	z-index: 999999;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 25px;
	box-sizing: border-box;
}

.athle-athlete-modal-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.65);
}

.athle-athlete-modal-dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 850px;
	max-height: calc(100vh - 50px);
	overflow-y: auto;
	padding: 30px;
	box-sizing: border-box;
	background: #fff;
	border-radius: 15px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.28);
}

.athle-athlete-modal-close {
	position: absolute;
	top: 12px;
	right: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #f0f0f1;
	color: #1d2327;
	cursor: pointer;
	font-size: 30px;
	line-height: 1;
}

.athle-athlete-modal-header {
	display: flex;
	align-items: center;
	gap: 25px;
	padding-right: 45px;
	padding-bottom: 25px;
	border-bottom: 1px solid #dcdcde;
}

.athle-athlete-modal-photo {
	flex: 0 0 140px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 140px;
	height: 140px;
	overflow: hidden;
	border: 4px solid var(--athle-primary-color, #005baa);
	border-radius: 50%;
	background: #f0f0f1;
	font-size: 55px;
}

.athle-athlete-modal-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.athle-athlete-modal-identity h2 {
	margin: 0 0 8px;
	color: var(--athle-primary-color, #005baa);
}

.athle-athlete-modal-identity p {
	margin: 0 0 12px;
}

.athle-athlete-modal-social {
	color: var(--athle-primary-color, #005baa);
	font-weight: 600;
	text-decoration: none;
}

.athle-athlete-modal-body {
	display: grid;
	gap: 22px;
	padding-top: 25px;
}

.athle-athlete-modal-section {
	padding: 20px;
	border: 1px solid #dcdcde;
	border-left: 5px solid var(--athle-primary-color, #005baa);
	border-radius: 9px;
}

.athle-athlete-modal-section h3 {
	margin: 0 0 15px;
	color: var(--athle-primary-color, #005baa);
}

.athle-athlete-modal-disciplines {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.athle-athlete-modal-disciplines span {
	padding: 7px 11px;
	border-radius: 20px;
	background: #f0f0f1;
}

body.athle-modal-open {
	overflow: hidden;
}

@media screen and (max-width: 650px) {

	.athle-athlete-modal {
		padding: 10px;
	}

	.athle-athlete-modal-dialog {
		max-height: calc(100vh - 20px);
		padding: 22px 18px;
	}

	.athle-athlete-modal-header {
		flex-direction: column;
		padding-right: 0;
		text-align: center;
	}

	.athle-athlete-modal-photo {
		flex-basis: 110px;
		width: 110px;
		height: 110px;
	}

}

.athle-athlete-modal-coaches {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.athle-athlete-modal-coach {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px;
	border: 1px solid #dcdcde;
	border-radius: 9px;
	background: #f9f9f9;
}

.athle-athlete-modal-coach-photo {
	flex: 0 0 52px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	overflow: hidden;
	border-radius: 50%;
	background: #f0f0f1;
	font-size: 24px;
}

.athle-athlete-modal-coach-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.athle-athlete-modal-coach-content {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.athle-athlete-modal-coach-content strong {
	overflow-wrap: anywhere;
}

.athle-athlete-modal-coach-primary {
	color: var(--athle-primary-color, #005baa);
	font-size: 13px;
	font-weight: 600;
}

@media screen and (max-width: 650px) {

	.athle-athlete-modal-coaches {
		grid-template-columns: 1fr;
	}

}

/*modification fiche depuis account*/

.athle-profile-edit-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 12px;
	padding: 10px 17px;
	border-radius: 7px;
	background: var(--athle-primary-color);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}

.athle-profile-edit-button:hover,
.athle-profile-edit-button:focus {
	color: #fff;
	opacity: 0.88;
	text-decoration: none;
}

.athle-profile-edit-mode {
	display: inline-block;
	margin-top: 12px;
	padding: 10px 15px;
	border-left: 4px solid var(--athle-secondary-color);
	border-radius: 6px;
	background: #fff8db;
	font-weight: 600;
}

.athle-profile-input{
	width:100%;
	padding:10px 12px;
	border:1px solid #c3c4c7;
	border-radius:6px;
	font-size:14px;
	box-sizing:border-box;
}

.athle-profile-message{
	margin-bottom:20px;
	padding:13px 16px;
	border:1px solid #46b450;
	border-radius:7px;
	background:#edfaef;
	color:#1e6330;
	font-weight:600;
}

.athle-sport-textarea {
	display: block;
	width: 100%;
	min-height: 130px;
	padding: 12px 14px;
	border: 1px solid #c3c4c7;
	border-radius: 7px;
	box-sizing: border-box;
	font: inherit;
	line-height: 1.55;
	resize: vertical;
}

.athle-sport-coach-selection {
	display: grid;
	gap: 12px;
}

.athle-sport-coach-choice {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 14px 16px;
	border: 1px solid #dcdcde;
	border-radius: 8px;
	background: #f9f9f9;
}

.athle-primary-coach-choice {
	flex: 0 0 auto;
	color: var(--athle-primary-color);
	font-size: 13px;
	font-weight: 600;
}

.athle-sport-discipline-editor {
	display: grid;
	gap: 12px;
}

.athle-profile-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 25px;
}

@media screen and (max-width: 700px) {

	.athle-sport-coach-choice {
		align-items: flex-start;
		flex-direction: column;
	}

	.athle-profile-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.athle-profile-actions .button {
		text-align: center;
	}

}

.athle-document-upload-form {
	width: 100%;
}

.athle-document-upload-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.athle-document-upload-field {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.athle-document-upload-field label {
	color: var(--athle-primary-color);
	font-weight: 600;
}

.athle-document-upload-field input[type="text"],
.athle-document-upload-field select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #c3c4c7;
	border-radius: 6px;
	box-sizing: border-box;
}

.athle-document-upload-file {
	grid-column: 1 / -1;
}

.athle-document-upload-file input[type="file"] {
	width: 100%;
	padding: 12px;
	border: 1px dashed #a7aaad;
	border-radius: 7px;
	background: #f9f9f9;
	box-sizing: border-box;
}

.athle-document-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}

@media screen and (max-width: 700px) {

	.athle-document-upload-grid {
		grid-template-columns: 1fr;
	}

	.athle-document-upload-file {
		grid-column: auto;
	}

}

.athle-social-link{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	margin-left:8px;
	color:var(--athle-primary-color);
	font-size:16px;
	text-decoration:none;
	transition:transform .2s ease;
}

.athle-social-link:hover{
	transform:scale(1.15);
	text-decoration:none;
}

/*changement de photo*/
.athle-profile-photo-editor{
	display:flex;
	align-items:center;
	gap:30px;
}

.athle-profile-photo-current{
	flex:0 0 130px;
	display:flex;
	align-items:center;
	justify-content:center;
	width:130px;
	height:130px;
	overflow:hidden;
	border-radius:50%;
	background:#f0f0f1;
	border:3px solid var(--athle-primary-color);
}

.athle-profile-photo-current img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
}

.athle-profile-photo-current .athle-profile-photo-placeholder{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	height:100%;
	font-size:52px;
}

.athle-profile-photo-form{
	display:flex;
	flex:1;
	flex-direction:column;
	align-items:flex-start;
	gap:10px;
}

.athle-profile-photo-section{
	margin-left:30px;
	margin-right:30px;
	margin-bottom:-30px;
}

@media screen and (max-width:650px){

	.athle-profile-photo-editor{
		flex-direction:column;
		align-items:center;
	}

	.athle-profile-photo-form{
		width:100%;
		align-items:stretch;
	}

}

/* =========================================================
   PARCOURS D'INSCRIPTION PUBLIC
   Shortcode : [athle_register]
   ========================================================= */

.athle-registration{
	width:100%;
	max-width:1000px;
	margin:0 auto;
	box-sizing:border-box;
}


/* =========================================================
   PROGRESSION
   ========================================================= */

.athle-registration-progress{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:space-between;
	max-width:760px;
	margin:0 auto 35px;
}

.athle-registration-progress::before{
	content:"";
	position:absolute;
	top:50%;
	left:25px;
	right:25px;
	height:3px;
	background:#dcdcde;
	transform:translateY(-50%);
	z-index:0;
}

.athle-registration-progress-step{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	z-index:1;
}

.athle-registration-progress-number{
	display:flex;
	align-items:center;
	justify-content:center;
	width:42px;
	height:42px;
	box-sizing:border-box;

	background:#fff;
	border:3px solid #dcdcde;
	border-radius:50%;

	color:#646970;
	font-size:15px;
	font-weight:700;

	transition:
		background .2s ease,
		border-color .2s ease,
		color .2s ease;
}

.athle-registration-progress-step.is-active
.athle-registration-progress-number{
	background:var(--athle-primary-color);
	border-color:var(--athle-primary-color);
	color:#871477;
}


/* =========================================================
   CONTENEUR D'UNE ÉTAPE
   ========================================================= */

.athle-registration-step{
	width:100%;
	box-sizing:border-box;

	background:#fff;
	border:1px solid #e3e5e8;
	border-radius:14px;

	overflow:hidden;

	box-shadow:
		0 6px 18px rgba(0,0,0,.08),
		0 2px 6px rgba(0,0,0,.04);
}


/* =========================================================
   ENTÊTE
   ========================================================= */

.athle-registration-header{
	padding:28px 32px;

	border-bottom:1px solid #ececec;

	text-align:center;
}

.athle-registration-header h1{
	margin:0 0 10px;

	color:var(--athle-primary-color);

	font-size:30px;
	line-height:1.25;
}

.athle-registration-header p{
	max-width:700px;
	margin:0 auto;

	color:#646970;

	font-size:15px;
	line-height:1.6;
}


/* =========================================================
   CONTENU
   ========================================================= */

.athle-registration-content{
	padding:30px 35px 35px;
	box-sizing:border-box;
}

.athle-registration-intro{
	margin-bottom:25px;
}

.athle-registration-intro h2{
	margin:0 0 15px;

	color:#1d2327;

	font-size:22px;
}

.athle-registration-intro p{
	margin:0 0 12px;

	color:#3c434a;

	font-size:15px;
	line-height:1.65;
}


/* =========================================================
   BLOC INFORMATION
   ========================================================= */

.athle-registration-information{
	margin:25px 0 30px;
	padding:18px 20px;

	border-left:5px solid var(--athle-secondary-color);
	border-radius:7px;

	background:#f7f8fa;
}

.athle-registration-information strong{
	display:block;
	margin-bottom:8px;

	color:var(--athle-primary-color);

	font-size:16px;
}

.athle-registration-information p{
	margin:6px 0;

	color:#3c434a;

	font-size:14px;
	line-height:1.6;
}


/* =========================================================
   FORMULAIRE
   ========================================================= */

.athle-registration-form{
	width:100%;
}

.athle-registration-field{
	margin-top:25px;
}

.athle-registration-field h3{
	margin:0 0 6px;

	color:#1d2327;

	font-size:19px;
}

.athle-registration-help{
	margin:0 0 18px;

	color:#646970;

	font-size:14px;
	line-height:1.5;
}


/* =========================================================
   CHOIX PREMIÈRE INSCRIPTION / RENOUVELLEMENT
   ========================================================= */

.athle-registration-choice{
	display:flex;
	align-items:flex-start;
	gap:14px;

	width:100%;
	margin-bottom:12px;
	padding:18px 20px;

	box-sizing:border-box;

	border:2px solid #dcdcde;
	border-radius:10px;

	background:#fff;

	cursor:pointer;

	transition:
		border-color .2s ease,
		background .2s ease,
		transform .2s ease;
}

.athle-registration-choice:hover{
	border-color:var(--athle-primary-color);
	background:#f8fafc;
}

.athle-registration-choice:has(input:checked){
	border-color:var(--athle-primary-color);
	background:rgba(0,91,170,.05);
}

.athle-registration-choice input[type="radio"]{
	flex:0 0 auto;
	margin:4px 0 0;
}

.athle-registration-choice > span{
	display:flex;
	flex-direction:column;
	gap:4px;
	min-width:0;
}

.athle-registration-choice strong{
	color:#1d2327;
	font-size:16px;
}

.athle-registration-choice small{
	color:#646970;
	font-size:13px;
	line-height:1.45;
}


/* =========================================================
   ACTIONS
   ========================================================= */

.athle-registration-actions{
	display:flex;
	align-items:center;
	justify-content:center;

	margin-top:30px;
	padding-top:25px;

	border-top:1px solid #ececec;
}

.athle-registration-actions .athle-public-button{
	min-width:240px;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media screen and (max-width:768px){

	.athle-registration{
		padding:0 10px;
	}

	.athle-registration-progress{
		margin-bottom:25px;
	}

	.athle-registration-progress-number{
		width:36px;
		height:36px;
		font-size:13px;
	}

	.athle-registration-progress::before{
		left:18px;
		right:18px;
	}

	.athle-registration-header{
		padding:22px 20px;
	}

	.athle-registration-header h1{
		font-size:25px;
	}

	.athle-registration-content{
		padding:24px 20px 28px;
	}

	.athle-registration-choice{
		padding:15px;
	}

}


@media screen and (max-width:480px){

	.athle-registration{
		padding:0 5px;
	}

	.athle-registration-progress-number{
		width:31px;
		height:31px;

		border-width:2px;

		font-size:12px;
	}

	.athle-registration-progress::before{
		left:15px;
		right:15px;
		height:2px;
	}

	.athle-registration-header{
		padding:20px 15px;
	}

	.athle-registration-header h1{
		font-size:22px;
	}

	.athle-registration-content{
		padding:20px 15px 24px;
	}

	.athle-registration-intro h2{
		font-size:19px;
	}

	.athle-registration-information{
		padding:15px;
	}

	.athle-registration-choice{
		gap:10px;
		padding:14px;
	}

	.athle-registration-actions{
		align-items:stretch;
		flex-direction:column;
	}

	.athle-registration-actions .athle-public-button{
		width:100%;
		min-width:0;
	}

}

.athle-registration-block{
	margin-top:30px;
	padding-top:25px;
	border-top:1px solid #ececec;
}

.athle-registration-block:first-of-type{
	margin-top:0;
	padding-top:0;
	border-top:0;
}

.athle-registration-block h2{
	margin:0 0 20px;
	color:var(--athle-primary-color);
	font-size:21px;
}

.athle-registration-block h3{
	margin:25px 0 15px;
	font-size:17px;
}

.athle-registration-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:18px 20px;
}

.athle-registration-control{
	display:flex;
	flex-direction:column;
	gap:7px;
}

.athle-registration-control label{
	font-weight:600;
	color:#1d2327;
}

.athle-registration-control input,
.athle-registration-control select{
	width:100%;
	padding:10px 12px;
	box-sizing:border-box;
	border:1px solid #c3c4c7;
	border-radius:7px;
	background:#fff;
	font:inherit;
}

.athle-registration-control input:focus,
.athle-registration-control select:focus{
	border-color:var(--athle-primary-color);
	outline:1px solid var(--athle-primary-color);
}

.athle-registration-full{
	grid-column:1 / -1;
}

@media screen and (max-width:700px){

	.athle-registration-grid{
		grid-template-columns:1fr;
	}

	.athle-registration-full{
		grid-column:auto;
	}

}

.athle-photo-name{
	display:block;
	margin-top:8px;
	font-size:14px;
	font-weight:600;
	color:#28a745;
}

.athle-registration-optional{
	margin-left:6px;
	color:#646970;
	font-size:13px;
	font-weight:400;
}

#athle-registration-guardians{
	animation:athleGuardiansAppear .2s ease;
}

@keyframes athleGuardiansAppear{

	from{
		opacity:0;
		transform:translateY(-5px);
	}

	to{
		opacity:1;
		transform:translateY(0);
	}

}

/*informations légales*/

.athle-registration-authorization{
	margin-top:18px;
	padding:18px;
	border:1px solid #e3e5e8;
	border-radius:9px;
	background:#fafafa;
}

.athle-registration-authorization p{
	margin:0 0 14px;
	line-height:1.6;
}

.athle-registration-yes-no{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:12px;
}

.athle-registration-yes-no label{
	display:flex;
	align-items:center;
	gap:7px;
	min-width:100px;
	padding:9px 14px;
	box-sizing:border-box;

	border:1px solid #dcdcde;
	border-radius:7px;

	background:#fff;

	cursor:pointer;
}

.athle-registration-yes-no label:has(input:checked){
	border-color:var(--athle-primary-color);
	background:rgba(0,91,170,.05);
	font-weight:600;
}

.athle-registration-document-link{
	display:inline-flex;
	align-items:center;
	gap:6px;

	color:var(--athle-primary-color);
	font-weight:600;
	text-decoration:none;
}

.athle-registration-document-link:hover{
	text-decoration:underline;
}

/* =========================================================
   QUESTIONNAIRE DE SANTÉ - INSCRIPTION
   ========================================================= */

.athle-registration-health-list{
	display:flex;
	flex-direction:column;
	gap:12px;
}

.athle-registration-health-question{
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	align-items:center;
	gap:20px;

	padding:16px 18px;

	border:1px solid #e3e5e8;
	border-radius:9px;

	background:#fafafa;
}

.athle-registration-health-text{
	color:#1d2327;
	font-size:14px;
	line-height:1.55;
}

.athle-registration-health-question
.athle-registration-yes-no{
	flex-wrap:nowrap;
}


/* Responsive */

@media screen and (max-width:700px){

	.athle-registration-health-question{
		grid-template-columns:1fr;
		gap:12px;
	}

	.athle-registration-health-question
	.athle-registration-yes-no{
		justify-content:flex-start;
	}

}

/* =========================================================
   DOCUMENTS - INSCRIPTION
   ========================================================= */

.athle-registration-document-link{
	display:inline-flex;
	align-items:center;
	gap:7px;

	color:var(--athle-primary-color);
	font-weight:600;
	text-decoration:none;
}

.athle-registration-document-link:hover{
	text-decoration:underline;
}

.athle-registration-file-existing{
	margin-top:12px;
	padding:10px 12px;

	border-radius:7px;

	background:#edf8ef;

	color:#267a32;

	font-size:14px;
	font-weight:600;
}

.athle-registration-block input[type="file"]{
	width:100%;
	padding:12px;
	box-sizing:border-box;

	border:1px dashed #a7aaad;
	border-radius:7px;

	background:#f9f9f9;
}

/* =========================================================
   RÉCAPITULATIF - INSCRIPTION
   ========================================================= */

.athle-registration-summary{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:10px 25px;
}

.athle-registration-summary p{
	margin:0;
	padding:10px 0;
	border-bottom:1px solid #ececec;
	line-height:1.5;
}

.athle-registration-summary strong{
	color:#1d2327;
}

@media screen and (max-width:700px){

	.athle-registration-summary{
		grid-template-columns:1fr;
	}

}

.athle-registration-current-photo{
	margin-bottom:20px;
	padding:18px;

	border:1px solid #e3e5e8;
	border-radius:10px;

	background:#fafafa;

	text-align:center;
}

.athle-registration-current-photo img{
	display:block;

	width:140px;
	height:140px;

	margin:12px auto;

	object-fit:cover;

	border-radius:50%;

	border:3px solid #fff;

	box-shadow:0 2px 8px rgba(0,0,0,.12);
}

.athle-registration-renewal-closed{
	margin-bottom:30px;
	padding:22px 24px;

	border:1px solid #e0b4b4;
	border-left:5px solid #b32d2e;
	border-radius:10px;

	background:#fff5f5;
}

.athle-registration-renewal-closed h3{
	margin:0 0 12px;

	color:#b32d2e;

	font-size:19px;
}

.athle-registration-renewal-closed p{
	margin:8px 0;

	color:#3c434a;
	line-height:1.6;
}