.card_badgeVisites {
position:absolute;
display:inline-flex;
z-index:3;
align-items:center;
gap:7px;
background:var(--or);
border-radius:100px;
text-transform:uppercase;
font-family:var(--fonteTitre);
font-size:13px;
font-weight:700;
letter-spacing:.05em;
color:var(--marine);
top:12px;
left:12px;
padding:5px 13px
}

#stats_tuiles {
display:grid;
grid-template-columns:repeat(5, minmax(0, 1fr));
gap:12px;
margin:0 0 22px
}

a.stat_tuile {
text-decoration:none;
transition:transform var(--transition), box-shadow var(--transition)
}

a.stat_tuile:hover {
box-shadow:var(--ombreHaut);
transform:translateY(-4px)
}

.stat_tuile {
display:flex;
flex-direction:column;
align-items:center;
gap:8px;
background:linear-gradient(135deg, var(--marine) 0%, var(--marineClair) 100%);
border-radius:var(--rayon);
box-shadow:var(--ombre);
text-align:center;
padding:22px 10px
}

.stat_tuile i {
font-size:24px;
color:rgba(255,255,255,.5)
}

.stat_tuile strong {
font-family:var(--fonteTitre);
font-size:38px;
font-weight:700;
color:var(--or);
line-height:1;
font-variant-numeric:tabular-nums
}

.stat_tuile span {
text-transform:uppercase;
font-size:10px;
letter-spacing:.07em;
color:rgba(255,255,255,.75)
}

#stats_top {
display:flex;
flex-direction:column;
gap:8px
}

.stats_topLigne {
display:flex;
align-items:center;
gap:16px;
background:var(--blanc);
border-radius:var(--rayonPetit);
box-shadow:var(--ombre);
text-decoration:none;
transition:transform var(--transition), box-shadow var(--transition);
padding:13px 18px
}

.stats_topLigne:hover {
box-shadow:var(--ombreHaut);
transform:translateX(4px)
}

.stats_rang {
display:inline-flex;
align-items:center;
justify-content:center;
width:32px;
height:32px;
background:var(--marine);
border-radius:50%;
font-family:var(--fonteTitre);
font-size:16px;
font-weight:700;
color:var(--or);
flex-shrink:0
}

.stats_nom {
font-size:15px;
font-weight:700;
color:var(--marine)
}

.stats_nb {
text-transform:uppercase;
font-size:12px;
letter-spacing:.05em;
color:var(--gris);
margin:0 0 0 auto
}

@media (max-width:760px) {
#stats_tuiles {
	grid-template-columns:repeat(2, minmax(0, 1fr))
}
}

#medailles_progression {
width:100%;
height:12px;
overflow:hidden;
background:var(--ligne);
border-radius:100px;
margin:0 0 8px
}

#medailles_barre {
display:block;
height:100%;
background:linear-gradient(90deg, var(--or), var(--orClair));
border-radius:100px;
transition:width 1s cubic-bezier(.16,1,.3,1)
}

.medailles_grille {
display:grid;
grid-template-columns:repeat(4, minmax(0, 1fr));
gap:12px
}

.medaille_card {
display:flex;
flex-direction:column;
align-items:center;
gap:7px;
background:var(--blanc);
border:2px solid var(--ligne);
border-radius:var(--rayon);
text-align:center;
opacity:.55;
filter:grayscale(1);
transition:transform var(--transition), opacity var(--transition), filter var(--transition);
padding:20px 14px
}

.medaille_card.obtenue {
opacity:1;
filter:none
}

.medaille_card.obtenue:hover { transform:translateY(-4px) }

.medaille_picto { font-size:34px }

.niveau_stone .medaille_picto { color:#8a8d98 }

.niveau_copper .medaille_picto { color:#b87333 }

.niveau_bronze .medaille_picto { color:#cd7f32 }

.niveau_silver .medaille_picto { color:#9fa6b2 }

.niveau_gold .medaille_picto { color:var(--or) }

.niveau_platine .medaille_picto { color:#7de3e0 }

.medaille_titre {
font-size:15px;
font-weight:700;
color:var(--marine);
margin:0
}

.medaille_resume {
font-size:11px;
color:var(--gris);
line-height:1.5;
margin:0
}

.medaille_date {
display:flex;
align-items:center;
gap:6px;
text-transform:uppercase;
font-size:10px;
letter-spacing:.06em;
color:var(--or);
margin:auto 0 0
}

.medaille_verrou { color:var(--gris) }

.calendrier_liste {
display:flex;
flex-direction:column;
gap:8px;
margin:0 0 22px
}

.calendrier_compteur {
font-size:14px;
color:var(--gris)
}

.calendrier_ligne {
display:flex;
align-items:center;
gap:16px;
background:var(--blanc);
border-radius:var(--rayonPetit);
box-shadow:var(--ombre);
text-decoration:none;
transition:transform var(--transition);
padding:12px 18px
}

.calendrier_ligne:hover { transform:translateX(4px) }

.calendrier_date {
min-width:130px;
text-transform:uppercase;
font-family:var(--fonteTitre);
font-size:14px;
font-weight:600;
letter-spacing:.04em;
color:var(--or)
}

.calendrier_stade {
font-size:15px;
font-weight:700;
color:var(--marine)
}

.calendrier_stade em {
font-weight:400;
font-style:normal;
color:var(--gris)
}

.profil_bio {
background:var(--blanc);
border-left:4px solid var(--or);
border-radius:0 var(--rayonPetit) var(--rayonPetit) 0;
box-shadow:var(--ombre);
font-size:15px;
color:var(--encre);
line-height:1.7;
padding:16px 20px
}

@media (max-width:760px) {
.medailles_grille {
	grid-template-columns:repeat(2, minmax(0, 1fr))
}

.calendrier_date {
	min-width:100px;
	font-size:12px
}
}

.medaille_visuel {
display:block;
width:90px;
height:90px;
object-fit:contain;
margin:0 auto
}

.medaille_card:not(.obtenue) .medaille_visuel {
filter:grayscale(1);
opacity:.35
}

.media_deuxColonnes {
display:grid;
grid-template-columns:1.4fr .6fr;
align-items:start;
gap:clamp(18px, 3vw, 32px)
}

.media_aide {
background:var(--blanc);
border-left:4px solid var(--or);
border-radius:var(--rayonPetit);
box-shadow:var(--ombre);
padding:20px 22px
}

.media_aideTitre {
display:flex;
align-items:center;
gap:9px;
text-transform:uppercase;
font-family:var(--fonteTitre);
font-size:16px;
font-weight:700;
color:var(--marine);
margin:0 0 10px
}

.media_aideTitre i { color:var(--or) }

.media_aideListe {
list-style:none;
margin:0 0 22px;
padding:0
}

.media_aideListe:last-child { margin:0 }

.media_aideListe li {
display:flex;
align-items:center;
gap:10px;
font-size:14px;
color:var(--encre);
padding:5px 0
}

.media_aideListe i {
width:18px;
text-align:center;
color:var(--or)
}

#cal_nav {
display:flex;
align-items:center;
justify-content:space-between;
background:var(--marine);
border-radius:var(--rayon) var(--rayon) 0 0;
margin:18px 0 0;
padding:12px 18px
}

#cal_titre {
text-transform:uppercase;
font-family:var(--fonteTitre);
font-size:clamp(19px, 2.6vw, 25px);
font-weight:700;
color:var(--blanc);
margin:0
}

.cal_navBtn {
display:inline-flex;
align-items:center;
justify-content:center;
width:38px;
height:38px;
background:rgba(255,255,255,.1);
border-radius:50%;
text-decoration:none;
font-size:15px;
color:var(--blanc);
transition:background var(--transition)
}

.cal_navBtn:hover { background:var(--or) }

#cal_grille {
display:grid;
grid-template-columns:repeat(7, minmax(0, 1fr));
background:var(--blanc);
border:1px solid var(--ligne);
border-radius:0 0 var(--rayon) var(--rayon);
overflow:hidden;
box-shadow:var(--ombre)
}

.cal_enTete {
background:var(--papier);
border-bottom:2px solid var(--ligne);
text-align:center;
text-transform:uppercase;
font-family:var(--fonteTitre);
font-size:13px;
font-weight:700;
letter-spacing:.06em;
color:var(--gris);
margin:0;
padding:9px 4px
}

.cal_case {
position:relative;
display:flex;
flex-direction:column;
gap:4px;
min-height:88px;
border-top:1px solid var(--ligne);
border-left:1px solid var(--ligne);
padding:6px
}

.cal_caseVide { background:var(--papier) }

.cal_numero {
font-family:var(--fonteTitre);
font-size:14px;
font-weight:600;
color:var(--gris)
}

.cal_aujourdhui { background:#fff9e6 }

.cal_aujourdhui .cal_numero {
display:inline-flex;
align-items:center;
justify-content:center;
width:24px;
height:24px;
background:var(--or);
border-radius:50%;
color:var(--marine)
}

.cal_visite {
display:flex;
align-items:center;
gap:5px;
overflow:hidden;
background:var(--marine);
border-radius:5px;
text-decoration:none;
font-size:11px;
font-weight:700;
color:var(--blanc);
white-space:nowrap;
transition:background var(--transition);
padding:4px 7px
}

.cal_visite:hover { background:var(--marineClair) }

.cal_visite i {
font-size:10px;
color:var(--or);
flex-shrink:0
}

.cal_visite span {
overflow:hidden;
text-overflow:ellipsis
}

@media (max-width:760px) {
.media_deuxColonnes {
	grid-template-columns:1fr
}

.cal_case {
	min-height:56px;
	padding:4px
}

.cal_visite span {
	display:none
}

.cal_visite {
	width:20px;
	height:20px;
	justify-content:center;
	border-radius:50%;
	padding:0
}
}

.voyage_entetePage {
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:space-between;
gap:14px;
margin:0 0 8px
}

.voyage_boutons {
display:flex;
flex-wrap:wrap;
gap:10px
}

.voyage_grille {
display:grid;
grid-template-columns:repeat(3, minmax(0, 1fr));
gap:14px
}

.voyage_card {
display:flex;
flex-direction:column;
gap:9px;
background:var(--blanc);
border-radius:var(--rayon);
border-top:4px solid var(--ligne);
box-shadow:var(--ombre);
transition:transform var(--transition), box-shadow var(--transition);
padding:18px 20px
}

.voyage_card:hover {
box-shadow:var(--ombreHaut);
transform:translateY(-3px)
}

.voyage_futur { border-top-color:var(--or) }

.voyage_entete {
display:flex;
align-items:center;
gap:10px
}

.voyage_icone {
font-size:20px;
color:var(--or)
}

.voyage_titre {
flex:1;
font-family:var(--fonteTitre);
font-size:19px;
font-weight:700;
color:var(--marine);
margin:0
}

.voyage_badge {
background:var(--or);
border-radius:100px;
text-transform:uppercase;
font-family:var(--fonteTitre);
font-size:11px;
font-weight:700;
letter-spacing:.06em;
color:var(--marine);
padding:3px 10px
}

.voyage_lieu, .voyage_dates {
display:flex;
align-items:center;
gap:8px;
font-size:13px;
color:var(--gris);
margin:0
}

.voyage_lieu i, .voyage_dates i { color:var(--or) }

.voyage_resume {
flex:1;
font-size:13px;
color:var(--encre);
line-height:1.55;
margin:0
}

.voyage_actions {
display:flex;
gap:8px;
margin:4px 0 0
}

.voyage_actions .btn {
flex:1;
font-size:13px;
padding:7px 10px
}

@media (max-width:900px) {
.voyage_grille {
	grid-template-columns:repeat(2, minmax(0, 1fr))
}
}

@media (max-width:600px) {
.voyage_grille {
	grid-template-columns:1fr
}
}

#vUser_app {
width:min(960px, 92%);
margin:30px auto 60px
}

.vUser_hero {
position:relative;
min-height:230px;
overflow:hidden;
background:linear-gradient(135deg, var(--marine) 0%, var(--marineClair) 100%);
border-radius:var(--rayon) var(--rayon) 0 0
}

.vUser_heroImg {
position:absolute;
width:100%;
height:100%;
object-fit:cover;
top:0;
left:0
}

.vUser_hero::after {
position:absolute;
display:block;
content:"";
width:100%;
height:100%;
background:linear-gradient(180deg, rgba(20,21,46,.05) 0%, rgba(20,21,46,.55) 100%);
top:0;
left:0
}

.vUser_coverAttente {
position:absolute;
display:inline-flex;
z-index:2;
align-items:center;
gap:8px;
background:rgba(20,21,46,.75);
border-radius:100px;
font-size:12px;
font-weight:700;
color:#ffd34d;
top:12px;
right:12px;
padding:7px 14px
}

.vUser_barre {
position:relative;
display:flex;
flex-wrap:wrap;
align-items:flex-end;
gap:18px;
background:var(--blanc);
border-radius:0 0 var(--rayon) var(--rayon);
box-shadow:var(--ombre);
padding:0 clamp(18px, 3vw, 32px) 22px
}

.vUser_avatarWrap {
position:relative;
display:flex;
z-index:2;
border-radius:50%;
box-shadow:0 0 0 6px var(--blanc);
flex-shrink:0;
margin:-58px 0 0
}

.vUser_couronne {
position:absolute;
display:flex;
z-index:3;
align-items:center;
justify-content:center;
width:32px;
height:32px;
background:linear-gradient(135deg, #ffd34d, var(--or));
border:2px solid var(--blanc);
border-radius:50%;
box-shadow:0 4px 10px rgba(238,177,0,.5);
font-size:13px;
color:var(--marine);
top:-2px;
right:-2px
}

.vUser_infos {
flex:1;
min-width:0;
padding:12px 0 2px
}

.vUser_pseudo {
text-transform:uppercase;
font-family:var(--fonteTitre);
font-size:clamp(23px, 3vw, 32px);
font-weight:700;
color:var(--marine);
line-height:1.1;
margin:0 0 8px
}

.vUser_chips {
display:flex;
flex-wrap:wrap;
gap:8px
}

.vUser_chip {
display:inline-flex;
align-items:center;
gap:7px;
background:var(--papier);
border-radius:100px;
font-size:13px;
color:var(--gris);
white-space:nowrap;
padding:6px 14px
}

.vUser_chip i { color:var(--or) }

.vUser_chip strong { color:var(--marine) }

a.vUser_chip {
text-decoration:none;
transition:background var(--transition)
}

a.vUser_chip:hover { background:var(--ligne) }

.vUser_chipOr {
background:linear-gradient(135deg, var(--or), var(--orClair));
font-weight:700;
color:var(--marine)
}

.vUser_chipOr i, .vUser_chipOr strong { color:var(--marine) }

a.vUser_chipOr:hover { background:var(--orClair) }

.vUser_actions {
display:flex;
flex-wrap:wrap;
align-items:center;
width:100%;
gap:10px;
border-top:1px solid var(--ligne);
margin:16px 0 0;
padding:16px 0 0
}

.vUser_actions .btn {
font-size:14px;
padding:9px 18px
}

.vUser_actionPrincipale { margin:0 0 0 auto }

.vUser_amiBadge {
display:inline-flex;
align-items:center;
gap:8px;
background:var(--papier);
border-radius:100px;
font-size:13px;
font-weight:700;
color:var(--marine);
padding:9px 18px
}

.vUser_amiBadge i { color:var(--or) }

.vUser_amiBadgeOk {
background:#eaf7ec;
color:#2c7a3d
}

.vUser_amiBadgeOk i { color:#3d9950 }

.vUser_section { margin:44px 0 0 }

.vUser_sectionTitre {
display:flex;
align-items:center;
gap:10px;
text-transform:uppercase;
font-family:var(--fonteTitre);
font-size:18px;
font-weight:700;
letter-spacing:.06em;
color:var(--marine);
border-bottom:2px solid var(--or);
margin:0 0 14px;
padding:0 0 6px
}

.vUser_sectionTitre i { color:var(--or) }

.vUser_statsDates {
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:8px 24px;
font-size:13px;
color:var(--gris);
margin:14px 0 0
}

.vUser_statsDates strong { color:var(--marine) }

.vUser_medaillesNb {
font-size:14px;
color:var(--gris);
margin:0 0 10px
}

.vUser_medaillesNb strong {
font-family:var(--fonteTitre);
font-size:26px;
font-weight:700;
color:var(--or)
}

.vUser_galerie {
display:grid;
grid-template-columns:repeat(4, minmax(0, 1fr));
gap:14px;
padding:4px
}

.vUser_visiteCard {
min-width:0;
overflow:hidden;
background:var(--blanc);
border-radius:var(--rayonPetit);
box-shadow:var(--ombre)
}

.vUser_visitePhotoLien {
display:block;
aspect-ratio:4/3;
overflow:hidden
}

.vUser_visitePhoto {
display:block;
width:100%;
height:100%;
object-fit:cover;
transition:transform var(--transition)
}

.vUser_visiteCard:hover .vUser_visitePhoto { transform:scale(1.05) }

.vUser_visitePhotoVide {
display:flex;
align-items:center;
justify-content:center;
aspect-ratio:4/3;
background:var(--papier);
font-size:30px;
color:var(--ligne)
}

.vUser_visiteNom {
overflow:hidden;
font-size:14px;
font-weight:700;
color:var(--marine);
white-space:nowrap;
text-overflow:ellipsis;
margin:10px 12px 0
}

.vUser_visiteDate {
font-size:12px;
color:var(--gris);
margin:2px 12px 12px
}

.vUser_avisListe {
display:flex;
flex-direction:column;
gap:10px
}

.vUser_avisCard {
display:flex;
align-items:center;
gap:14px;
background:var(--blanc);
border-radius:var(--rayonPetit);
box-shadow:var(--ombre);
text-decoration:none;
color:inherit;
transition:transform var(--transition), box-shadow var(--transition);
padding:14px 18px
}

.vUser_avisCard:hover {
box-shadow:var(--ombreHaut);
transform:translateX(4px)
}

.vUser_avisNote {
display:flex;
align-items:center;
justify-content:center;
width:46px;
height:46px;
background:var(--marine);
border-radius:50%;
font-family:var(--fonteTitre);
font-size:16px;
font-weight:700;
color:var(--or);
flex-shrink:0
}

.vUser_avisInfos {
display:flex;
flex:1;
flex-direction:column;
min-width:0;
gap:2px
}

.vUser_avisInfos strong {
overflow:hidden;
font-size:15px;
color:var(--marine);
white-space:nowrap;
text-overflow:ellipsis
}

.vUser_avisInfos em {
font-size:12px;
font-style:normal;
color:var(--gris)
}

.vUser_avisFleche {
font-size:13px;
color:var(--ligne);
transition:color var(--transition)
}

.vUser_avisCard:hover .vUser_avisFleche { color:var(--or) }

.vUser_completer {
display:flex;
align-items:flex-start;
gap:16px;
background:linear-gradient(135deg, var(--marine) 0%, var(--marineClair) 100%);
border-radius:var(--rayon);
box-shadow:var(--ombre);
margin:26px 0 0;
padding:clamp(20px, 3vw, 28px)
}

.vUser_completerIcone {
font-size:30px;
color:var(--or);
margin:4px 0 0
}

.vUser_completerTitre {
text-transform:uppercase;
font-family:var(--fonteTitre);
font-size:clamp(18px, 2.4vw, 22px);
font-weight:700;
color:var(--blanc);
margin:0 0 6px
}

.vUser_completerTexte {
font-size:14px;
color:rgba(255,255,255,.8);
line-height:1.55;
margin:0 0 14px
}

.vUser_completerActions {
display:flex;
flex-wrap:wrap;
gap:10px
}

.vUser_completerActions .btn_ligne {
background:rgba(255,255,255,.08);
border-color:rgba(255,255,255,.3);
color:var(--blanc)
}

.vUser_completerActions .btn_ligne:hover { border-color:var(--or) }

.vUser_sectionLien {
text-align:center;
margin:16px 0 0
}

@media (max-width:760px) {
.vUser_barre {
	flex-direction:column;
	align-items:center;
	text-align:center
}

.vUser_avatarWrap {
	margin:-56px 0 0
}

.vUser_infos {
	padding:0
}

.vUser_chips {
	justify-content:center
}

.vUser_actions {
	justify-content:center
}

.vUser_actionPrincipale {
	margin:0
}

.vUser_galerie {
	display:flex;
	overflow-x:auto;
	scroll-snap-type:x mandatory;
	padding:4px 4px 14px
}

.vUser_visiteCard {
	width:156px;
	scroll-snap-align:start;
	flex-shrink:0
}

.vUser_completer {
	flex-direction:column;
	align-items:center;
	text-align:center
}

.vUser_statsDates {
	flex-direction:column;
	align-items:center;
	gap:4px
}
}

@media (max-width:760px) {
.vUser_pseudo { font-size:26px }

.vUser_sectionTitre,
.vUser_completerTitre {
	font-size:19px;
	line-height:1.25
}

.profil_bio,
.vUser_completerTexte {
	font-size:16px;
	line-height:1.6
}

.medaille_titre,
.vUser_avisNote {
	font-size:16px;
	line-height:1.25
}

.vUser_visiteNom,
.vUser_avisInfos strong {
	font-size:14.5px
}

.vUser_chip,
.vUser_amiBadge,
.vUser_statsDates,
.vUser_medaillesNb,
.vUser_avisFleche,
.vUser_couronne,
.vUser_sectionLien,
.vUser_actions .btn {
	font-size:13px
}

.vUser_visiteDate,
.vUser_coverAttente,
.vUser_avisInfos em,
.stat_tuile span,
.medaille_resume,
.medaille_date {
	font-size:11.5px;
	letter-spacing:.03em
}

.stat_tuile strong { font-size:30px }

.stat_tuile i { font-size:21px }

.stat_tuile { padding:16px 8px }

.vUser_medaillesNb strong { font-size:23px }

.medaille_picto { font-size:30px }

.vUser_completerIcone,
.vUser_visitePhotoVide { font-size:26px }
}

@media (max-width:400px) {
.vUser_pseudo { font-size:23px }

.vUser_sectionTitre,
.vUser_completerTitre { font-size:18px }

.stat_tuile strong { font-size:26px }
}
