RACE

Live you extreme. Be HUEX
var $ = jQuery, clickLock = false, currentIndexes = [], movingAnimations = [], bottomOffset = 200, hash = true // Align the circle to the center of the icon function getCenter(el){ return el.position().left + el.width()/2 } // Move the circle function moveCircle(parent, el){ var centerDiff = getCenter(el) - getCenter(parent.find('.elementor-widget-icon-box').eq(0)) leftOffset = parent.find('.elementor-widget-icon-box').eq(0).offset().left - parent.offset().left parent.find('.elementor-widget-divider').css('transform', 'translateX(' + (centerDiff+leftOffset) + 'px)') } // Make the icon highlighted function setActive(menu, index, i){ menu.addClass('bubbling') movingAnimations[i] = true setTimeout(function(){ if(movingAnimations[i]){ menu.addClass('bubble') } },50) menu.find('.elementor-widget-icon-box').removeClass('active') menu.find('.elementor-widget-icon-box').eq(index).addClass('active') moveCircle(menu, menu.find('.elementor-widget-icon-box').eq(index)) } // Remove highlighted if needed function removeActive(menu, i){ movingAnimations[i] = false menu.removeClass('bubbling bubble') menu.find('.elementor-widget-icon-box').removeClass('active') } $(document).ready(function(){ $('.icon-menu').each(function(i){ var $this = $(this) currentIndexes.push(-1) movingAnimations.push(false) // Hover Effect $this.find('.elementor-widget-icon-box').on('mousemove mouseenter', function(){ setActive($this, $(this).index(), i) }) // Back to current item on mouse leave $this.on('mouseleave', function(){ if(currentIndexes[i] == -1){ removeActive($this, i) }else{ setActive($this, currentIndexes[i]) } }) // Click Effect $this.find('.elementor-widget-icon-box').on('click', function(e){ if( !hash ){ var link = $(this).find('a').attr('href') if( link == '' || link[0] == '#' ){ return } } setActive($this, $(this).index(), i) currentIndexes[i] = $(this).index() clickLock = true setTimeout(function(){ clickLock = false },1500) }) }) }) function removeSlash(str){ return str.replace(/^\/+|\/+$/g, '') } function getPath(url){ return removeSlash((new URL(url, location.protocol+'//'+location.hostname)).pathname) } $(window).on('load', function(){ $('.icon-menu').each(function(i){ var $this = $(this) $this.find('.elementor-widget-icon-box').each(function(index){ // Add # in case of empty link var span1 = $(this).find('span.elementor-icon'), span2 = $(this).find('.elementor-icon-box-title span') if( span1.length ){ span1.replaceWith($('' + span1.html() + '')) } if( span2.length ){ span2.replaceWith($('' + span2.html() + '')) } // Hightlight icon in case of page URL var link = $(this).find('a').eq(0).attr('href') if(link){ if(link[0] != '#'){ hash = false if(getPath(link) == removeSlash(location.pathname)){ setActive($this, index, i) currentIndexes[i] = index } } } }) // Avoid initial animation setTimeout(function(){ $this.addClass('transition') },400) }) }) // Title overflow fixing for v2 $(window).on('load resize', function(){ $('.icon-menu').each(function(i){ var $this = $(this) $this.find('.elementor-widget-icon-box').each(function(index){ if($this.hasClass('v2')){ var offset = 20, title = $(this).find('.elementor-icon-box-title'), titleLeft = title.offset().left, menuLeft = $this.offset().left, titleRight = titleLeft + title.outerWidth(), menuRight = menuLeft + $this.outerWidth(), translateLeft = titleLeft - menuLeft, translateRight = menuRight - titleRight if($(window).width() < 768){ offset = 4 } // Right fix if(translateRight < offset){ title.css('transform', 'translateX(' + (translateRight-offset) + 'px)') } // Left fix if(translateLeft *:not(.icon-menu)') selector.each(function(){ if($(window).scrollTop() + $(window).height() - 350 > $(this).offset().top){ topIds.push($(this).attr('id')) } }) topIds = topIds.filter(element => element !== undefined) $('.icon-menu').each(function(i){ var $this = $(this), menuIndex // Hide menu near window bottom if( $('body').height() > $(window).height()+bottomOffset+100 ){ if($('body').height() -1 ) return var menuId = topIds[topIds.length - 1 - index] menuIndex = $this.find('[href="#'+ menuId +'"]').closest('.elementor-widget-icon-box').index() currentIndexes[i] = menuIndex }) if( menuIndex==undefined || menuIndex == -1 ){ currentIndexes[i] = -1 removeActive($(this), i) }else{ setActive($(this), menuIndex, i) } }) delay = 0 },delay) })

Description

+132,7 km | +1.492 m+ | 60% unpaved

The HUEX Gravel Race is the competitive portion of the event, starting and finishing in El Rompido.
A gravel race designed for those seeking speed, strategy, and adrenaline.

This isn’t just about finishing the race.
It’s about competing.

It is the spirit of the HUEX MTB, transferred to the gravel universe: intensity, high pace and fight for victory.

HUEX GRAVEL RACE

+132,7K · 1.492M+

14-NOV-2026

Download the Tracks DIRECTLY :

CONCEPT

The HUEX Gravel Race +132K is the competitive version of the event.

A gravel race designed for those looking for intensity, high pace and the adrenaline of crossing the finish line in first position.

It’s the spirit of HUEX MTB brought to gravel racing:
a fast start, an open race, constant strategy, and a real battle right down to the last kilometer.

The HUEX Gravel Race will start and finish in the town of El Rompido, Cartaya, Huelva.

The race will start at 9:00 a.m., and the finish line will close at 5:00 p.m.

The course is designed so that the race is defined in movement, where the high pace, the ability to ride in a group and the power in the key sectors will make the difference. Fast sections, technical zones and strategic points where the race can break at any moment.

A selective, dynamic route designed for real competition.

There will be three official refreshment posts strategically distributed along the course.

They will be located at key points of the race and will provide hydration, food and basic assistance to ensure the performance and safety of the participants.

Refreshments and CP

AV1 – VILLANUEVA DE LOS CASTILLEJOS

AV2 – SAN SILVESTRE DE GUZMÁN

AV3 – CARTAYA

FINISH – EL ROMPIDO

km

44,5 K

86 K

116 K

132 K

PRODUCTS SUPPLIES

LIQUIDS + FRUIT + BASIC SOLIDS

LIQUIDS + COLA + FRUIT +BASIC SOLID

LIQUIDS + COLA + FRUIT +BASIC SOLID

LIQUIDS + COLA + FRUIT +BASIC SOLID

Refreshments and CP

AV1 – VILLANUEVA DE LOS CASTILLEJOS

AV2 – SAN SILVESTRE DE GUZMÁN

AV3 – CARTAYA

FINISH – EL ROMPIDO

km

44.5 K

86 K

116 K

132k

closing time for refreshments

11:30 H

14:00 H

15:30 H

17:00H

The HUEX Gravel Race withdrawal schedule will be as follows:

All cyclists who withdraw or do not pass the closing of each checkpoint in the established time may make use of the broom vehicles and withdrawn that will be along the route. These vehicles will transport the withdrawn riders to the next refreshment post. When the last refreshment station closes, the bus will leave after the cut-off to the finish line.

Required materials

Recommended materials

FRIDAY

SATURDAY

THURSDAY

FRIDAY

SUNDAY

SUNDAY