Duathlon de Rabat 2026 — Ocean Rabat Triathlon
Championnat du Maroc de Duathlon — Étape 1
DUATHLONDE RABAT
Ocean Rabat Triathlon
26 · 04 · 2026 — Rabat, Maroc
-- Jours
-- Heures
-- Min
-- Sec
L'événement
Une première historique
L'Ocean Rabat Triathlon (ORT) a l'honneur d'accueillir la première étape du Championnat du Maroc de Duathlon 2026 . Un événement fondateur pour le sport multidisciplinaire marocain, organisé dans la capitale du Royaume, face à l'Atlantique.
Fondé à Rabat, l'ORT rassemble des athlètes passionnés autour d'une vision commune : développer le triathlon et le duathlon au Maroc, en organisant des compétitions de haut niveau accessibles à tous.
Les inscriptions à la compétition sont gérées directement par la Fédération Royale Marocaine de Triathlon (FRMTri) . Retrouvez toutes les informations sur les modalités de participation sur le site officiel de la fédération.
🏆
Championnat officiel
Étape 1 / 2026
Championnats du Maroc de Duathlon
📍
Lieu
Rabat — Marina Bouregreg
Capitale du Royaume du Maroc
🚴
Format
Run — Bike — Run
5 km · 20 km · 2.5 km
🎽
Catégories
Seniors · U23 · U19 · U17 · U15 · U13
Hommes & Femmes
📅
Date
26 avril 2026
Départ officiel à 07:00
Parcours
Run — Bike — Run
🏃
5 km
Course à pied — S1
Départ · Zone de transition T1
🚴
20 km
Cyclisme
Boucle Atlantique · T2
🏃
2.5 km
Course à pied — S2
Arrivée · Ligne finale
🗺
Carte interactive du parcours
Intégration Strava / Google Maps — disponible prochainement
25.04 avant 21:00
Accueil & retrait des dossards
Zone d'accueil ouverte — zone de transition accessible aux athlètes pour installation du matériel vélo.
25.04 vers 19:00
Briefing technique officiel
Obligatoire pour tous les participants. Règlements, consignes de sécurité, présentation du parcours.
26.04 — 07:00
🏁 Départ officiel
Seniors · U23 · U19 · U17 · U15 · U13 — Hommes & Femmes
11:30
Remise des prix & podium
Cérémonie officielle du Championnat du Maroc — podium par catégorie, médailles et distinctions.
12:30
Village ORT
Espace animation, nutrition et récupération, stands partenaires, photos officielles.
Restez informé
Suivre l'événement
Recevez toutes les actualités du Duathlon de Rabat directement dans votre boîte mail.
Ouverture des inscriptions FRMTri
Détails du parcours & logistique
Résultats en avant-première
Photos & vidéos post-course
Actualités de l'ORT Rabat
Classement
Résultats en direct
Résultats en temps réel — Activation le 26 avril 2026 à 07:00
Classement général · Classement par catégorie · Temps de passage T1 & T2 · Chronométrage officiel
Le classement sera affiché ici en temps réel le jour de la course
🏃 Course à pied
🚴 Cyclisme
🏅 Podium
🌊 Atlantique
⚡ Transition
🤝 Équipe ORT
Photos & vidéos de l'événement — mises à jour après la course · 26 avril 2026
Participez
La communauté ORT
Quel segment redoutez-vous le plus ?
🏃 Le sprint final Run 2 31%
143 participants ont répondu
Mur de motivation
#DuathlonRabat2026
@Youssef_ORT
Première étape nationale à Rabat, quel honneur ! Bravo à l'ORT 💪 #DuathlonRabat2026
@Fatima_Benali
Hâte de voir le parcours vélo le long de l'Atlantique 🌊 L'ORT au sommet !
@Karim_Endurance
Entraînement du jour : 2h30 vélo + 40min run. Je serai prêt en avril ! #DuathlonRabat2026
@Sara_Multi
Mon premier championnat national, trop hâte de vivre ça à Rabat ! 🇲🇦
Envoyer
--sand: #F5F0E8;
--sand-dark: #E8E0CF;
--white: #FFFFFF;
--ink: #0D1B2A;
--ink-mid: #2C4157;
--ink-light: #7A8FA3;
--accent: #E8500A;
--accent-light: #FF7043;
--gold: #C9A84C;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', sans-serif; background: var(--sand); color: var(--ink); overflow-x: hidden; }
/* NAV */
nav {
position: fixed; top: 0; left: 0; right: 0; z-index: 100;
background: rgba(10,61,107,0.97); backdrop-filter: blur(8px);
border-bottom: 1px solid rgba(93,202,165,0.2);
padding: 0 2rem; display: flex; align-items: center; justify-content: space-between; height: 58px;
}
.nav-logo { font-family: 'Bebas Neue', sans-serif; font-size: 22px; letter-spacing: 2px; color: var(--white); display: flex; align-items: center; gap: 10px; }
.nav-logo-wave { width: 32px; height: 32px; background: var(--wave); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 16px; }
.nav-links { display: flex; gap: 28px; list-style: none; }
.nav-links a { font-size: 12px; font-weight: 500; letter-spacing: 1px; text-transform: uppercase; color: rgba(255,255,255,0.65); text-decoration: none; transition: color 0.2s; }
.nav-links a:hover { color: var(--wave-light); }
.nav-cta { background: var(--wave); color: var(--white) !important; padding: 7px 16px; border-radius: 4px; font-size: 11px !important; font-weight: 500 !important; }
.nav-cta:hover { background: var(--wave-light); color: var(--ink) !important; }
.nav-burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; }
.nav-burger span { width: 22px; height: 2px; background: white; border-radius: 2px; }
/* HERO — IMAGE DE FOND */
#hero {
min-height: 100vh;
/*
* ══════════════════════════════════════════════════════════════
* REMPLACEZ "VOTRE_IMAGE_ICI.jpg" par l'URL de votre photo :
*
https://oceanrabattriathlon.com/wp-content/uploads/2026/04/Duathlon_Rabat_ORT
* WordPress → url('/wp-content/uploads/2026/04/hero.jpg')
* Relatif → url('images/hero-duathlon.jpg')
* Absolu → url('https://monsite.ma/images/hero.jpg')
*
* Si l'image ne charge pas, le fond bleu --ocean s'affiche.
* ══════════════════════════════════════════════════════════════
*/
background:
linear-gradient(to bottom,
rgba(5,18,35,0.50) 0%,
rgba(5,18,35,0.35) 45%,
rgba(5,18,35,0.70) 100%
),
url('ici-image.jpg') center center / cover no-repeat;
background-color: var(--ocean);
position: relative; display: flex; flex-direction: column;
align-items: center; justify-content: center;
text-align: center; overflow: hidden; padding: 80px 2rem 4rem;
}
.hero-bg-grid {
position: absolute; inset: 0; pointer-events: none;
background-image:
linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
background-size: 60px 60px;
}
.hero-bg-diag {
position: absolute; bottom: -2px; left: 0; right: 0; height: 120px;
background: var(--sand); clip-path: polygon(0 60%, 100% 0%, 100% 100%, 0% 100%);
}
.hero-eyebrow {
display: inline-flex; align-items: center; gap: 8px;
background: rgba(93,202,165,0.18); border: 1px solid rgba(93,202,165,0.45);
color: var(--wave-light); font-size: 11px; font-weight: 500;
letter-spacing: 1.5px; text-transform: uppercase;
padding: 6px 16px; border-radius: 20px; margin-bottom: 1.5rem;
animation: fadeUp 0.8s ease both;
}
.eyebrow-dot { width: 6px; height: 6px; background: var(--wave-light); border-radius: 50%; animation: blink 2s infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0.3} }
/* TITRE : plus grand + entièrement blanc */
.hero h1 {
font-family: 'Bebas Neue', sans-serif;
font-size: clamp(90px, 16vw, 168px); /* était clamp(64px,12vw,130px) */
line-height: 0.88;
color: #FFFFFF;
letter-spacing: 3px;
text-shadow: 0 4px 32px rgba(0,0,0,0.45);
animation: fadeUp 0.8s 0.1s ease both;
position: relative;
}
.hero h1 span { color: #FF0000; } /* "DE RABAT" en blanc comme "DUATHLON" */
.hero-subtitle { font-size: 15px; font-weight: 300; color: rgba(255,255,255,0.70); letter-spacing: 3px; text-transform: uppercase; margin-top: 1rem; margin-bottom: 0.5rem; animation: fadeUp 0.8s 0.2s ease both; }
.hero-date { font-family: 'DM Mono', monospace; font-size: 13px; color: var(--wave-light); letter-spacing: 2px; animation: fadeUp 0.8s 0.3s ease both; margin-bottom: 2.5rem; }
.countdown { display: flex; gap: 12px; justify-content: center; margin-bottom: 3rem; animation: fadeUp 0.8s 0.4s ease both; }
.cd-unit { background: rgba(5,18,35,0.75); border: 1px solid rgba(255,255,255,0.18); border-radius: 6px; width: 80px; padding: 14px 8px 10px; text-align: center; }
.cd-num { font-family: 'Bebas Neue', sans-serif; font-size: 42px; line-height: 1; color: var(--white); display: block; }
.cd-lbl { font-size: 9px; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,0.45); margin-top: 4px; display: block; }
.hero-btns { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; animation: fadeUp 0.8s 0.5s ease both; }
.btn-primary { background: var(--wave); color: var(--white); padding: 13px 28px; border-radius: 4px; font-size: 13px; font-weight: 500; letter-spacing: 0.5px; border: none; cursor: pointer; font-family: 'DM Sans', sans-serif; transition: background 0.2s, transform 0.15s; text-decoration: none; display: inline-block; }
.btn-primary:hover { background: var(--wave-light); color: var(--ink); transform: translateY(-1px); }
.btn-outline { background: transparent; color: var(--white); padding: 13px 28px; border-radius: 4px; font-size: 13px; font-weight: 400; border: 1px solid rgba(255,255,255,0.35); cursor: pointer; font-family: 'DM Sans', sans-serif; transition: border-color 0.2s, transform 0.15s; text-decoration: none; display: inline-block; }
.btn-outline:hover { border-color: var(--wave-light); color: var(--wave-light); transform: translateY(-1px); }
.hero-stats { position: absolute; bottom: 130px; right: 2rem; display: flex; flex-direction: column; gap: 10px; animation: fadeUp 0.8s 0.6s ease both; }
.hero-stat { text-align: right; }
.hero-stat-n { font-family: 'Bebas Neue', sans-serif; font-size: 28px; color: var(--wave-light); line-height: 1; }
.hero-stat-l { font-size: 10px; color: rgba(255,255,255,0.4); letter-spacing: 1px; text-transform: uppercase; }
@keyframes fadeUp { from { opacity:0; transform: translateY(20px); } to { opacity:1; transform: translateY(0); } }
/* SECTIONS */
section { padding: 90px 2rem; }
.container { max-width: 1100px; margin: 0 auto; }
.section-label { font-family: 'DM Mono', monospace; font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: var(--wave); margin-bottom: 0.5rem; display: flex; align-items: center; gap: 10px; }
.section-label::after { content: ''; flex: 1; height: 1px; background: var(--wave); opacity: 0.3; max-width: 60px; }
.section-title { font-family: 'Bebas Neue', sans-serif; font-size: clamp(38px, 5vw, 62px); letter-spacing: 1px; line-height: 0.95; margin-bottom: 1rem; }
/* PRÉSENTATION */
#presentation { background: var(--sand); }
.about-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
.about-text-block p { font-size: 16px; line-height: 1.8; color: var(--ink-mid); margin-bottom: 1rem; }
.about-text-block strong { color: var(--ocean); font-weight: 500; }
.about-highlight { background: var(--ocean); color: var(--white); padding: 2rem; border-radius: 6px; margin-top: 2rem; }
.about-highlight p { font-size: 14px; line-height: 1.7; color: rgba(255,255,255,0.8); margin: 0; }
.about-highlight strong { color: var(--wave-light); }
.about-cards { display: flex; flex-direction: column; gap: 14px; }
.about-card { background: var(--white); border: 1px solid var(--sand-dark); border-left: 3px solid var(--wave); padding: 1.25rem 1.5rem; border-radius: 4px; display: flex; align-items: center; gap: 16px; }
.about-card-icon { font-size: 26px; width: 50px; height: 50px; background: var(--sand); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.about-card-title { font-size: 13px; font-weight: 500; color: var(--ocean); margin-bottom: 2px; }
.about-card-val { font-family: 'Bebas Neue', sans-serif; font-size: 28px; color: var(--ink); letter-spacing: 0.5px; }
.about-card-sub { font-size: 12px; color: var(--ink-light); }
/* PARCOURS */
#parcours { background: var(--ocean); color: var(--white); }
#parcours .section-label { color: var(--wave-light); }
#parcours .section-label::after { background: var(--wave-light); }
#parcours .section-title { color: var(--white); }
.seg-visual { display: flex; align-items: center; gap: 0; margin: 3rem 0; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; overflow: hidden; }
.seg-block { flex: 1; padding: 2rem 1.5rem; text-align: center; position: relative; }
.seg-block:not(:last-child)::after { content: '→'; position: absolute; right: -12px; top: 50%; transform: translateY(-50%); font-size: 20px; color: rgba(255,255,255,0.3); z-index:1; }
.seg-block.run-1 { background: rgba(29,158,117,0.15); border-right: 1px solid rgba(255,255,255,0.08); }
.seg-block.bike { background: rgba(21,96,160,0.3); border-right: 1px solid rgba(255,255,255,0.08); }
.seg-block.run-2 { background: rgba(29,158,117,0.15); }
.seg-icon { font-size: 32px; margin-bottom: 0.75rem; display: block; }
.seg-dist { font-family: 'Bebas Neue', sans-serif; font-size: 48px; line-height: 1; color: var(--white); display: block; }
.seg-km { font-size: 16px; color: var(--wave-light); vertical-align: super; }
.seg-name { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-top: 4px; }
.seg-detail { font-size: 12px; color: rgba(255,255,255,0.4); margin-top: 8px; }
.map-embed { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); border-radius: 8px; height: 280px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px; color: rgba(255,255,255,0.4); font-size: 13px; position: relative; overflow: hidden; }
.map-grid-bg { position: absolute; inset: 0; background-image: linear-gradient(rgba(93,202,165,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(93,202,165,0.06) 1px, transparent 1px); background-size: 30px 30px; }
.map-content { position: relative; z-index: 1; text-align: center; }
.map-content p { font-size: 12px; color: rgba(255,255,255,0.35); margin-top: 6px; }
/* PROGRAMME */
#programme { background: var(--white); }
.timeline { display: grid; grid-template-columns: auto 1fr; gap: 0 24px; margin-top: 2.5rem; position: relative; }
.tl-time { font-family: 'DM Mono', monospace; font-size: 13px; font-weight: 500; color: var(--ocean); text-align: right; padding-top: 22px; white-space: nowrap; }
.tl-right { border-left: 2px solid var(--sand-dark); padding: 0 0 2.5rem 28px; position: relative; }
.tl-right::before { content: ''; position: absolute; left: -7px; top: 24px; width: 12px; height: 12px; border-radius: 50%; background: var(--sand-dark); border: 2px solid var(--white); }
.tl-right.go::before { background: var(--wave); box-shadow: 0 0 0 4px rgba(29,158,117,0.2); }
.tl-right.end::before { background: var(--ocean); }
.tl-card { background: var(--sand); border-radius: 6px; padding: 1rem 1.25rem; margin-top: 10px; }
.tl-card-title { font-size: 14px; font-weight: 500; color: var(--ink); }
.tl-card-desc { font-size: 12px; color: var(--ink-light); margin-top: 3px; line-height: 1.5; }
.tl-card.highlight { background: var(--wave); }
.tl-card.highlight .tl-card-title { color: var(--white); }
.tl-card.highlight .tl-card-desc { color: rgba(255,255,255,0.75); }
.tl-right:last-of-type { border-left-color: transparent; }
/* NEWSLETTER */
#newsletter { background: var(--sand); }
.nl-wrapper { background: var(--ocean); border-radius: 10px; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; }
.nl-left { padding: 3.5rem; position: relative; }
.nl-left-bg { position: absolute; inset: 0; background-image: linear-gradient(rgba(93,202,165,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(93,202,165,0.04) 1px, transparent 1px); background-size: 40px 40px; }
.nl-left-content { position: relative; z-index: 1; }
.nl-left .section-label { color: var(--wave-light); }
.nl-left .section-label::after { background: var(--wave-light); }
.nl-left .section-title { color: var(--white); font-size: 42px; }
.nl-left p { font-size: 14px; color: rgba(255,255,255,0.65); line-height: 1.7; margin-top: 1rem; }
.nl-perks { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 8px; }
.nl-perk { display: flex; align-items: center; gap: 10px; font-size: 13px; color: rgba(255,255,255,0.75); }
.nl-perk-dot { width: 6px; height: 6px; background: var(--wave-light); border-radius: 50%; flex-shrink: 0; }
.nl-right { background: var(--white); padding: 3.5rem; display: flex; flex-direction: column; justify-content: center; }
.nl-right h3 { font-size: 22px; font-weight: 500; color: var(--ink); margin-bottom: 0.5rem; }
.nl-right p { font-size: 13px; color: var(--ink-light); margin-bottom: 1.75rem; }
.nl-form { display: flex; flex-direction: column; gap: 12px; }
.nl-input { width: 100%; padding: 12px 14px; border: 1.5px solid var(--sand-dark); border-radius: 5px; font-size: 14px; font-family: 'DM Sans', sans-serif; color: var(--ink); background: var(--sand); outline: none; transition: border-color 0.2s; }
.nl-input:focus { border-color: var(--wave); }
.nl-submit { background: var(--wave); color: var(--white); border: none; padding: 13px; border-radius: 5px; font-size: 14px; font-weight: 500; font-family: 'DM Sans', sans-serif; cursor: pointer; transition: background 0.2s; }
.nl-submit:hover { background: var(--ocean); }
.nl-success { display: none; background: #E1F5EE; color: #0F6E56; border-radius: 5px; padding: 14px; font-size: 14px; font-weight: 500; text-align: center; }
.nl-frmtri-note { font-size: 11px; color: var(--ink-light); margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--sand-dark); line-height: 1.6; }
.nl-frmtri-note a { color: var(--ocean); font-weight: 500; }
/* RÉSULTATS LIVE */
#resultats { background: var(--ink); color: var(--white); }
#resultats .section-label { color: var(--wave-light); }
#resultats .section-label::after { background: var(--wave-light); }
#resultats .section-title { color: var(--white); }
.live-banner { background: rgba(29,158,117,0.12); border: 1px solid rgba(29,158,117,0.3); border-radius: 8px; padding: 2rem; display: flex; align-items: center; gap: 20px; margin: 2rem 0; }
.live-pulse { width: 14px; height: 14px; border-radius: 50%; background: var(--wave); flex-shrink: 0; animation: livePulse 1.5s infinite; }
@keyframes livePulse { 0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(29,158,117,0.4)} 50%{opacity:0.7;box-shadow:0 0 0 10px rgba(29,158,117,0)} }
.live-text h3 { font-size: 16px; font-weight: 500; color: var(--white); margin-bottom: 3px; }
.live-text p { font-size: 13px; color: rgba(255,255,255,0.5); }
.results-table-ph { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 8px; overflow: hidden; }
.rt-header { display: grid; grid-template-columns: 50px 1fr 120px 120px; padding: 12px 20px; background: rgba(255,255,255,0.06); font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,0.4); font-family: 'DM Mono', monospace; }
.rt-activation { text-align: center; padding: 2rem; font-size: 13px; color: rgba(255,255,255,0.35); }
/* GALERIE */
#galerie { background: var(--sand); }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: 200px 200px; gap: 8px; margin-top: 2.5rem; }
.gal-item { border-radius: 6px; overflow: hidden; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; font-size: 32px; position: relative; cursor: pointer; transition: transform 0.2s; }
.gal-item:hover { transform: scale(0.98); }
.gal-item:nth-child(1) { grid-column: span 2; background: #B5D4F4; }
.gal-item:nth-child(2) { background: #9FE1CB; }
.gal-item:nth-child(3) { background: #FAC775; }
.gal-item:nth-child(4) { background: #EEEDFE; }
.gal-item:nth-child(5) { grid-column: span 2; background: #F5C4B3; }
.gal-label { font-size: 11px; color: rgba(0,0,0,0.4); letter-spacing: 1px; text-transform: uppercase; }
.gal-note { font-size: 12px; color: var(--ink-light); text-align: center; margin-top: 12px; }
/* COMMUNAUTÉ */
#communaute { background: var(--white); }
.comm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 2.5rem; }
.poll-block { background: var(--sand); border-radius: 8px; padding: 1.75rem; }
.poll-title { font-size: 16px; font-weight: 500; color: var(--ink); margin-bottom: 1.25rem; }
.poll-opt { display: flex; align-items: center; justify-content: space-between; border: 1.5px solid var(--sand-dark); border-radius: 6px; padding: 11px 14px; cursor: pointer; margin-bottom: 8px; font-size: 13px; color: var(--ink-mid); transition: border-color 0.15s, background 0.15s; position: relative; overflow: hidden; }
.poll-opt:hover { border-color: var(--wave); }
.poll-opt.voted { border-color: var(--wave); background: white; }
.poll-opt-fill { position: absolute; left: 0; top: 0; bottom: 0; background: rgba(29,158,117,0.1); width: 0; transition: width 0.6s ease; }
.poll-opt-label { position: relative; z-index: 1; display: flex; align-items: center; gap: 8px; }
.poll-opt-pct { position: relative; z-index: 1; font-family: 'DM Mono', monospace; font-size: 12px; color: var(--wave); display: none; }
.poll-total { font-size: 11px; color: var(--ink-light); margin-top: 6px; }
.wall-block { background: var(--sand); border-radius: 8px; padding: 1.75rem; display: flex; flex-direction: column; }
.wall-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.wall-title { font-size: 16px; font-weight: 500; color: var(--ink); }
.hashtag-pill { background: var(--ocean); color: white; font-size: 10px; font-weight: 500; letter-spacing: 0.5px; padding: 4px 10px; border-radius: 12px; }
.wall-feed { flex: 1; display: flex; flex-direction: column; gap: 8px; margin-bottom: 1rem; max-height: 220px; overflow-y: auto; }
.wall-post { background: var(--white); border-radius: 6px; padding: 10px 12px; font-size: 13px; color: var(--ink-mid); line-height: 1.5; transition: background 0.4s; }
.wall-post-user { font-size: 11px; font-weight: 500; color: var(--wave); margin-bottom: 3px; }
.wall-input-row { display: flex; gap: 8px; }
.wall-input { flex: 1; padding: 9px 12px; border-radius: 5px; border: 1.5px solid var(--sand-dark); font-size: 13px; font-family: 'DM Sans', sans-serif; color: var(--ink); background: var(--white); outline: none; transition: border-color 0.2s; }
.wall-input:focus { border-color: var(--wave); }
.wall-send { padding: 9px 16px; background: var(--ocean); color: white; border: none; border-radius: 5px; font-size: 13px; cursor: pointer; font-family: 'DM Sans', sans-serif; transition: background 0.2s; }
.wall-send:hover { background: var(--ocean-mid); }
/* SPONSORS */
#sponsors { background: var(--sand); }
.spon-tiers { display: flex; flex-direction: column; gap: 28px; margin-top: 2.5rem; }
.spon-tier-label { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; font-family: 'DM Mono', monospace; color: var(--ink-light); margin-bottom: 10px; }
.spon-grid-or { display: flex; gap: 12px; }
.spon-box { background: var(--white); border: 1px solid var(--sand-dark); border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--ink-light); font-weight: 500; letter-spacing: 0.5px; }
.spon-or { height: 90px; flex: 1; }
.spon-ag { height: 70px; }
.spon-br { height: 55px; }
.spon-grid-ag { display: flex; gap: 10px; }
.spon-grid-br { display: flex; gap: 8px; }
.spon-grid-ag .spon-box { flex: 1; }
.spon-grid-br .spon-box { flex: 1; }
.spon-cta { margin-top: 1.75rem; background: var(--white); border: 1px solid var(--sand-dark); border-radius: 8px; padding: 1.25rem 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.spon-cta p { font-size: 13px; color: var(--ink-mid); }
.spon-cta strong { color: var(--ink); font-weight: 500; }
.btn-sm { background: var(--ocean); color: white; padding: 9px 18px; border-radius: 4px; font-size: 12px; font-weight: 500; letter-spacing: 0.5px; border: none; cursor: pointer; font-family: 'DM Sans', sans-serif; white-space: nowrap; text-decoration: none; display: inline-block; transition: background 0.2s; }
.btn-sm:hover { background: var(--ocean-mid); }
/* CONTACT & FAQ */
#contact { background: var(--white); }
.contact-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
.contact-info p { font-size: 15px; color: var(--ink-mid); line-height: 1.7; margin-bottom: 2rem; }
.contact-cards { display: flex; flex-direction: column; gap: 10px; }
.contact-card { background: var(--sand); border-radius: 6px; padding: 1rem 1.25rem; display: flex; align-items: center; gap: 14px; }
.cc-icon { font-size: 20px; width: 40px; height: 40px; background: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.cc-label { font-size: 11px; color: var(--ink-light); }
.cc-val { font-size: 13px; font-weight: 500; color: var(--ink); }
.frmtri-box { background: var(--ocean); color: white; border-radius: 8px; padding: 1.25rem 1.5rem; margin-top: 1.5rem; }
.frmtri-box h4 { font-size: 14px; font-weight: 500; color: var(--wave-light); margin-bottom: 6px; }
.frmtri-box p { font-size: 13px; color: rgba(255,255,255,0.7); line-height: 1.6; }
.frmtri-box a { color: var(--wave-light); font-weight: 500; }
.faq-list { display: flex; flex-direction: column; gap: 0; }
.faq-item { border-bottom: 1px solid var(--sand-dark); padding: 0; }
.faq-item:first-child { border-top: 1px solid var(--sand-dark); }
.faq-q { display: flex; align-items: center; justify-content: space-between; padding: 1rem 0; cursor: pointer; font-size: 14px; font-weight: 500; color: var(--ink); gap: 16px; }
.faq-icon { width: 24px; height: 24px; border-radius: 50%; background: var(--sand); border: 1px solid var(--sand-dark); display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; transition: background 0.2s; color: var(--ocean); }
.faq-item.open .faq-icon { background: var(--wave); border-color: var(--wave); color: white; }
.faq-a { font-size: 13px; color: var(--ink-light); line-height: 1.7; padding-bottom: 1rem; display: none; }
.faq-item.open .faq-a { display: block; }
/* FOOTER */
footer { background: var(--ink); color: rgba(255,255,255,0.5); padding: 3rem 2rem 2rem; }
.footer-inner { max-width: 1100px; margin: 0 auto; }
.footer-top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 2rem; flex-wrap: wrap; gap: 2rem; }
.footer-logo { font-family: 'Bebas Neue', sans-serif; font-size: 28px; letter-spacing: 2px; color: var(--white); margin-bottom: 4px; }
.footer-tagline { font-size: 12px; color: rgba(255,255,255,0.4); letter-spacing: 1px; }
.footer-links { display: flex; gap: 40px; }
.footer-col h4 { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,0.6); margin-bottom: 12px; font-weight: 500; }
.footer-col a { display: block; font-size: 13px; color: rgba(255,255,255,0.35); text-decoration: none; margin-bottom: 8px; transition: color 0.2s; }
.footer-col a:hover { color: var(--wave-light); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 1.5rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
.footer-bottom p { font-size: 12px; }
.footer-social { display: flex; gap: 10px; }
.social-btn { width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; font-size: 13px; cursor: pointer; transition: background 0.2s; text-decoration: none; color: rgba(255,255,255,0.5); }
.social-btn:hover { background: var(--wave); border-color: var(--wave); color: white; }
/* SCROLL REVEAL */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
/* RESPONSIVE */
@media (max-width: 768px) {
nav { padding: 0 1rem; }
.nav-links { display: none; }
.nav-burger { display: flex; }
.nav-links.open { display: flex; flex-direction: column; position: absolute; top: 58px; left: 0; right: 0; background: var(--ocean); padding: 1rem 2rem 1.5rem; gap: 16px; border-bottom: 1px solid rgba(255,255,255,0.1); }
#hero { padding: 90px 1.25rem 3rem; }
.hero-stats { display: none; }
.countdown { gap: 8px; }
.cd-unit { width: 64px; }
.cd-num { font-size: 32px; }
section { padding: 60px 1.25rem; }
.about-layout { grid-template-columns: 1fr; gap: 2rem; }
.nl-wrapper { grid-template-columns: 1fr; }
.nl-left { display: none; }
.comm-grid { grid-template-columns: 1fr; }
.contact-layout { grid-template-columns: 1fr; gap: 2rem; }
.footer-links { flex-direction: column; gap: 1.5rem; }
.rt-header { grid-template-columns: 40px 1fr 100px; }
.rt-header span:last-child { display: none; }
.seg-visual { flex-direction: column; }
.seg-block:not(:last-child)::after { content: '↓'; right: auto; bottom: -14px; top: auto; left: 50%; transform: translateX(-50%); }
.gallery-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
.gal-item:nth-child(1), .gal-item:nth-child(5) { grid-column: span 1; }
}
Championnat du Maroc de Duathlon — Étape 1
DUATHLONDE RABAT
Ocean Rabat Triathlon
26 · 04 · 2026 — Rabat, Maroc
L’événement
Une première historique
L’Ocean Rabat Triathlon (ORT) a l’honneur d’accueillir la première étape du Championnat du Maroc de Duathlon 2026 . Un événement fondateur pour le sport multidisciplinaire marocain, organisé dans la capitale du Royaume, face à l’Atlantique.
Fondé à Rabat, l’ORT rassemble des athlètes passionnés autour d’une vision commune : développer le triathlon et le duathlon au Maroc, en organisant des compétitions de haut niveau accessibles à tous.
Les inscriptions à la compétition sont gérées directement par la Fédération Royale Marocaine de Triathlon (FRMTri) . Retrouvez toutes les informations sur les modalités de participation sur le site officiel de la fédération.
🏆
Championnat officiel
Étape 1 / 2026
Championnats du Maroc de Duathlon
📍
Lieu
Rabat — Marina Bouregreg
Capitale du Royaume du Maroc
🚴
Format
Run — Bike — Run
5 km · 20 km · 2.5 km
🎽
Catégories
Seniors · U23 · U19 · U17 · U15 · U13
Hommes & Femmes
📅
Date
26 avril 2026
Départ officiel à 07:00
Parcours
Run — Bike — Run
🏃
5 km
Course à pied — S1
Départ · Zone de transition T1
🚴
20 km
Cyclisme
Boucle Atlantique · T2
🏃
2.5 km
Course à pied — S2
Arrivée · Ligne finale
🗺
Carte interactive du parcours
Intégration Strava / Google Maps — disponible prochainement
25.04 avant 21:00
Accueil & retrait des dossards
Zone d’accueil ouverte — zone de transition accessible aux athlètes pour installation du matériel vélo.
25.04 vers 19:00
Briefing technique officiel
Obligatoire pour tous les participants. Règlements, consignes de sécurité, présentation du parcours.
26.04 — 07:00
🏁 Départ officiel
Seniors · U23 · U19 · U17 · U15 · U13 — Hommes & Femmes
11:30
Remise des prix & podium
Cérémonie officielle du Championnat du Maroc — podium par catégorie, médailles et distinctions.
12:30
Village ORT
Espace animation, nutrition et récupération, stands partenaires, photos officielles.
Restez informé
Suivre l’événement
Recevez toutes les actualités du Duathlon de Rabat directement dans votre boîte mail.
Ouverture des inscriptions FRMTri
Détails du parcours & logistique
Résultats en avant-première
Photos & vidéos post-course
Actualités de l’ORT Rabat
Classement
Résultats en direct
Résultats en temps réel — Activation le 26 avril 2026 à 07:00
Classement général · Classement par catégorie · Temps de passage T1 & T2 · Chronométrage officiel
Le classement sera affiché ici en temps réel le jour de la course
🏃 Course à pied
🚴 Cyclisme
🏅 Podium
🌊 Atlantique
⚡ Transition
🤝 Équipe ORT
Photos & vidéos de l’événement — mises à jour après la course · 26 avril 2026
Participez
La communauté ORT
Quel segment redoutez-vous le plus ?
🏃 Le sprint final Run 2 31%
143 participants ont répondu
Mur de motivation
#DuathlonRabat2026
@Youssef_ORT
Première étape nationale à Rabat, quel honneur ! Bravo à l’ORT 💪 #DuathlonRabat2026
@Fatima_Benali
Hâte de voir le parcours vélo le long de l’Atlantique 🌊 L’ORT au sommet !
@Karim_Endurance
Entraînement du jour : 2h30 vélo + 40min run. Je serai prêt en avril ! #DuathlonRabat2026
@Sara_Multi
Mon premier championnat national, trop hâte de vivre ça à Rabat ! 🇲🇦
Envoyer