{"id":7595,"date":"2026-07-17T19:19:55","date_gmt":"2026-07-17T17:19:55","guid":{"rendered":"https:\/\/franceletour.com\/?p=7595"},"modified":"2026-07-18T10:09:03","modified_gmt":"2026-07-18T08:09:03","slug":"tour-de-france-2026-stage-14","status":"publish","type":"post","link":"https:\/\/franceletour.com\/fr\/tour-de-france-2026-stage-14\/","title":{"rendered":"Tour de France 2026, 14e \u00e9tape : de Mulhouse au Markstein \u2014 Le pi\u00e8ge vosgien que personne ne voit venir"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" style=\"padding-top:var(--wp--preset--spacing--60);text-transform:uppercase\">Tour de France 2026 Stage 14: Mulhouse to Le Markstein \u2014 The Vosges Trap Nobody Sees Coming<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Last Updated: 10:09 am CEST - Saturday,\u00a018 July 2026<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stage 14 of the Tour de France 2026 is a 155.3 km mountain stage from Mulhouse to Le Markstein Fellering in the Vosges mountains, scheduled for Saturday 18 July 2026 at 13:10 CEST. Seven climbs, 3,800 metres of elevation gain, and a Col du Haag that no GC team has power-file data for make this the most tactically uncertain stage of Week 2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On paper, it doesn&#8217;t look like a race-defining day. The Vosges are not the Alps. No summit tops 1,424 metres. The stage is just 155 kilometres. That&#8217;s exactly why it&#8217;s dangerous. Seven climbs inside 155 kilometres means the peloton never stops climbing long enough to recover, the Col du Haag is the first time any professional race has ever gone up that road, and Stage 14 lands between Stage 13, the longest day of the entire 2026 Tour at 205 kilometres, and Stage 15, which finishes on the steepest summit average of the whole race. Saturday, July 18, is when GC scenarios start breaking open.<\/p>\n\n\n\n<style>\n.bahrain-tldr-wrap {\n  max-width: 960px;\n  margin: 2rem auto;\n  font-family: 'DM Sans', sans-serif;\n}\n\n.bahrain-tldr-card {\n  background: #f6fbee;\n  border-radius: 20px;\n  border: 1px solid rgba(99,153,34,0.25);\n  overflow: hidden;\n}\n\n.bahrain-tldr-header {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  padding: 1.2rem 1.5rem 0.9rem;\n  border-bottom: 1px solid rgba(99,153,34,0.15);\n}\n\n.bahrain-tldr-title {\n  font-family: 'Galibier', sans-serif !important;\n  font-size: 1.3rem !important;\n  font-weight: 700 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 1.5px !important;\n  color: #111 !important;\n  margin: 0 !important;\n  line-height: 1.2 !important;\n  padding: 0 !important;\n  border: none !important;\n}\n\n.bahrain-tldr-badge {\n  font-size: 0.65rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.8px;\n  background: #EAF3DE;\n  color: #27500A;\n  padding: 4px 10px;\n  border-radius: 12px;\n  border: 1px solid rgba(99,153,34,0.3);\n  white-space: nowrap;\n}\n\n.bahrain-tldr-body {\n  padding: 1.2rem 1.5rem 1.5rem;\n}\n\n.tldr-list {\n  list-style: none;\n  padding: 0;\n  margin: 0;\n  display: flex;\n  flex-direction: column;\n  gap: 1rem;\n}\n\n.tldr-item {\n  display: flex;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.tldr-icon {\n  width: 24px;\n  height: 24px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n  color: #27500A;\n  margin-top: 2px;\n}\n\n.tldr-icon svg {\n  width: 20px;\n  height: 20px;\n  stroke: #27500A;\n}\n\n.tldr-text {\n  font-size: 0.9rem;\n  color: #1a1a1a;\n  line-height: 1.6;\n  margin: 0;\n}\n\n.tldr-text strong {\n  font-weight: 600;\n  color: #000;\n}\n\n.highlight-note {\n  margin-top: 1rem;\n  padding: 0.8rem 1rem;\n  background: #fffdee;\n  border-left: 3px solid #FFC72C;\n  border-radius: 8px;\n  font-size: 0.85rem;\n  color: #4a3b00;\n  line-height: 1.5;\n}\n\n@media (max-width: 600px) {\n  .bahrain-tldr-body {\n    padding: 1rem 1.2rem 1.2rem;\n  }\n}\n<\/style>\n\n<div class=\"bahrain-tldr-wrap\">\n  <div class=\"bahrain-tldr-card\">\n    \n    <div class=\"bahrain-tldr-header\">\n      <h2 class=\"bahrain-tldr-title\">TL;DR<\/h2>\n      <span class=\"bahrain-tldr-badge\">Stage 14<\/span>\n    <\/div>\n\n    <div class=\"bahrain-tldr-body\">\n      <ul class=\"tldr-list\">\n        <!-- What is Stage 14 -->\n        <li class=\"tldr-item\">\n          <div class=\"tldr-icon\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"8 14 12 10 16 14\"\/>\n            <\/svg>\n          <\/div>\n          <p class=\"tldr-text\">\n            <strong>What is Stage 14?<\/strong> A 155.3 km mountain stage on <strong>Saturday 18 July 2026<\/strong>, starting in Mulhouse and finishing at Le Markstein Fellering. Seven climbs including four categorised, with <strong>3,800m of total elevation gain<\/strong>. Race start: <strong>13:10 CEST<\/strong>.\n          <\/p>\n        <\/li>\n\n        <!-- Why it matters -->\n        <li class=\"tldr-item\">\n          <div class=\"tldr-icon\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87L18.18 21 12 17.77 5.82 21 7 14.14 2 9.27l6.91-1.01L12 2z\"\/>\n            <\/svg>\n          <\/div>\n          <p class=\"tldr-text\">\n            <strong>Why does it matter?<\/strong> The <strong>Col du Haag<\/strong> \u2014 making its first ever Tour de France appearance \u2014 has irregular gradients hitting <strong>15%<\/strong>, and not one GC team has professional race data on how it climbs under race conditions. That uncertainty, combined with explosive Vosges-style efforts rather than predictable alpine grinds, makes this the most likely stage in Week 2 to produce a <strong>surprise GC result<\/strong>.\n          <\/p>\n        <\/li>\n\n        <!-- When to watch -->\n        <li class=\"tldr-item\">\n          <div class=\"tldr-icon\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/>\n            <\/svg>\n          <\/div>\n          <p class=\"tldr-text\">\n            <strong>When to watch?<\/strong> Start <strong>13:10 CEST<\/strong> \/ 12:10 BST \/ 07:10 EDT. Estimated finish <strong>17:38\u201317:40 CEST<\/strong>. See the full world time zone table below.\n          <\/p>\n        <\/li>\n      <\/ul>\n      \n      <div class=\"highlight-note\">\n        <strong>\ud83d\udd25 A debut climb with no race data. 15% ramps. Vosges explosiveness. No team has a playbook for the Col du Haag \u2014 Stage 14 is Week 2&#8217;s wildcard.<\/strong>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n\n<style>\n.bahrain-tldr-wrap {\n  max-width: 960px;\n  margin: 2rem auto;\n  font-family: 'DM Sans', sans-serif;\n}\n\n.bahrain-tldr-card {\n  background: #f6fbee;\n  border-radius: 20px;\n  border: 1px solid rgba(99,153,34,0.25);\n  overflow: hidden;\n}\n\n.bahrain-tldr-header {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  padding: 1.2rem 1.5rem 0.9rem;\n  border-bottom: 1px solid rgba(99,153,34,0.15);\n}\n\n.bahrain-tldr-title {\n  font-family: 'Galibier', sans-serif !important;\n  font-size: 1.3rem !important;\n  font-weight: 700 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 1.5px !important;\n  color: #111 !important;\n  margin: 0 !important;\n  line-height: 1.2 !important;\n  padding: 0 !important;\n  border: none !important;\n}\n\n.bahrain-tldr-badge {\n  font-size: 0.65rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.8px;\n  background: #EAF3DE;\n  color: #27500A;\n  padding: 4px 10px;\n  border-radius: 12px;\n  border: 1px solid rgba(99,153,34,0.3);\n  white-space: nowrap;\n}\n\n.bahrain-tldr-body {\n  padding: 1.2rem 1.5rem 1.5rem;\n}\n\n.tldr-list {\n  list-style: none;\n  padding: 0;\n  margin: 0;\n  display: flex;\n  flex-direction: column;\n  gap: 1rem;\n}\n\n.tldr-item {\n  display: flex;\n  align-items: flex-start;\n  gap: 12px;\n}\n\n.tldr-icon {\n  width: 24px;\n  height: 24px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n  color: #27500A;\n  margin-top: 2px;\n}\n\n.tldr-icon svg {\n  width: 20px;\n  height: 20px;\n  stroke: #27500A;\n}\n\n.tldr-text {\n  font-size: 0.9rem;\n  color: #1a1a1a;\n  line-height: 1.6;\n  margin: 0;\n}\n\n.tldr-text strong {\n  font-weight: 600;\n  color: #000;\n}\n\n.highlight-note {\n  margin-top: 1rem;\n  padding: 0.8rem 1rem;\n  background: #fffdee;\n  border-left: 3px solid #FFC72C;\n  border-radius: 8px;\n  font-size: 0.85rem;\n  color: #4a3b00;\n  line-height: 1.5;\n}\n\n@media (max-width: 600px) {\n  .bahrain-tldr-body {\n    padding: 1rem 1.2rem 1.2rem;\n  }\n}\n<\/style>\n\n<div class=\"bahrain-tldr-wrap\">\n  <div class=\"bahrain-tldr-card\">\n    \n    <div class=\"bahrain-tldr-header\">\n      <h2 class=\"bahrain-tldr-title\">TDF 2026 Stage 14 Key Facts<\/h2>\n      <span class=\"bahrain-tldr-badge\">Mulhouse \u2192 Le Markstein<\/span>\n    <\/div>\n\n    <div class=\"bahrain-tldr-body\">\n      <ul class=\"tldr-list\">\n        <!-- Stage & Date -->\n        <li class=\"tldr-item\">\n          <div class=\"tldr-icon\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/>\n            <\/svg>\n          <\/div>\n          <p class=\"tldr-text\">\n            <strong>Stage 14 of 21<\/strong> \u2014 Saturday, 18 July 2026\n          <\/p>\n        <\/li>\n\n        <!-- Route -->\n        <li class=\"tldr-item\">\n          <div class=\"tldr-icon\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"8 14 12 10 16 14\"\/>\n            <\/svg>\n          <\/div>\n          <p class=\"tldr-text\">\n            <strong>Mulhouse \u2192 Le Markstein Fellering<\/strong> \u2014 155.3 km, mountain stage\n          <\/p>\n        <\/li>\n\n        <!-- Climbing -->\n        <li class=\"tldr-item\">\n          <div class=\"tldr-icon\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <polyline points=\"3 17 9 11 13 15 21 7\"\/><polyline points=\"17 7 21 7 21 11\"\/>\n            <\/svg>\n          <\/div>\n          <p class=\"tldr-text\">\n            <strong>3,800m total climbing<\/strong> \u2014 7 climbs (4 categorised + 3 uncategorised)\n          <\/p>\n        <\/li>\n\n        <!-- Timing -->\n        <li class=\"tldr-item\">\n          <div class=\"tldr-icon\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/>\n            <\/svg>\n          <\/div>\n          <p class=\"tldr-text\">\n            <strong>Start 13:10 CEST<\/strong> \u2014 estimated finish 17:38\u201317:40 CEST\n          <\/p>\n        <\/li>\n\n        <!-- Sprint -->\n        <li class=\"tldr-item\">\n          <div class=\"tldr-icon\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/>\n            <\/svg>\n          <\/div>\n          <p class=\"tldr-text\">\n            <strong>Intermediate sprint<\/strong> \u2014 Wattwiller (km 12.6)\n          <\/p>\n        <\/li>\n      <\/ul>\n      \n      <div class=\"highlight-note\">\n        <strong>\ud83d\udd25 155.3 km. 3,800m of climbing. 7 ascents. The Col du Haag makes its Tour debut \u2014 and no team has race data on it.<\/strong>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_370519-26 .kt-block-spacer{height:40px;}.wp-block-kadence-spacer.kt-block-spacer-7595_370519-26 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_370519-26\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n<style>.kb-row-layout-id7595_52138d-3a > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id7595_52138d-3a > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id7595_52138d-3a > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);max-width:500px;margin-left:auto;margin-right:auto;padding-top:var(--global-kb-spacing-xs, 1rem);grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id7595_52138d-3a > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id7595_52138d-3a > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id7595_52138d-3a > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id7595_52138d-3a alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column7595_69ac8a-5d > .kt-inside-inner-col{padding-top:0px;padding-bottom:0px;}.kadence-column7595_69ac8a-5d > .kt-inside-inner-col,.kadence-column7595_69ac8a-5d > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column7595_69ac8a-5d > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column7595_69ac8a-5d > .kt-inside-inner-col{flex-direction:column;}.kadence-column7595_69ac8a-5d > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column7595_69ac8a-5d > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column7595_69ac8a-5d{text-align:left;}.kadence-column7595_69ac8a-5d{position:relative;}.kadence-column7595_69ac8a-5d, .kt-inside-inner-col > .kadence-column7595_69ac8a-5d:not(.specificity){margin-top:0px;margin-bottom:0px;}@media all and (max-width: 1024px){.kadence-column7595_69ac8a-5d > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column7595_69ac8a-5d > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column7595_69ac8a-5d\"><div class=\"kt-inside-inner-col\"><style>.kb-table-of-content-nav.kb-table-of-content-id7595_397113-23 .kb-table-of-content-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-left:8px solid #ffff00;}.kb-table-of-content-nav.kb-table-of-content-id7595_397113-23 .kb-table-of-contents-title-wrap{padding-top:var(--global-kb-spacing-xxs, 0.5rem);padding-right:var(--global-kb-spacing-xs, 1rem);padding-bottom:var(--global-kb-spacing-xxs, 0.5rem);padding-left:var(--global-kb-spacing-xs, 1rem);border-top:0px solid var(--global-palette5, #4A5568);border-right:0px solid var(--global-palette5, #4A5568);border-bottom:0px solid var(--global-palette5, #4A5568);border-left:0px solid var(--global-palette5, #4A5568);}.kb-table-of-content-nav.kb-table-of-content-id7595_397113-23 .kb-table-of-contents-title{font-size:25px;letter-spacing:6px;font-family:\"Lucida Console\", Monaco, monospace;font-weight:inherit;font-style:normal;text-transform:uppercase;}.kb-table-of-content-nav.kb-table-of-content-id7595_397113-23 .kb-table-of-content-wrap .kb-table-of-content-list{font-family:Courier, monospace;font-weight:inherit;font-style:normal;margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-right:var(--global-kb-spacing-xs, 1rem);margin-bottom:var(--global-kb-spacing-xs, 1rem);margin-left:var(--global-kb-spacing-xs, 1rem);}.kb-table-of-content-nav.kb-table-of-content-id7595_397113-23 .kb-table-of-content-list li{margin-bottom:15px;}.kb-table-of-content-nav.kb-table-of-content-id7595_397113-23 .kb-table-of-content-list li .kb-table-of-contents-list-sub{margin-top:15px;}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id7595_397113-23 .kb-table-of-content-wrap{border-left:8px solid #ffff00;}}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id7595_397113-23 .kb-table-of-contents-title-wrap{border-top:0px solid var(--global-palette5, #4A5568);border-right:0px solid var(--global-palette5, #4A5568);border-bottom:0px solid var(--global-palette5, #4A5568);border-left:0px solid var(--global-palette5, #4A5568);}}@media all and (max-width: 767px){.kb-table-of-content-nav.kb-table-of-content-id7595_397113-23 .kb-table-of-content-wrap{border-left:8px solid #ffff00;}.kb-table-of-content-nav.kb-table-of-content-id7595_397113-23 .kb-table-of-contents-title-wrap{border-top:0px solid var(--global-palette5, #4A5568);border-right:0px solid var(--global-palette5, #4A5568);border-bottom:0px solid var(--global-palette5, #4A5568);border-left:0px solid var(--global-palette5, #4A5568);}.kb-table-of-content-nav.kb-table-of-content-id7595_397113-23 .kb-table-of-contents-title{font-size:22px;}}<\/style><\/div><\/div>\n\n<\/div><\/div>\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_9041b1-f9 .kt-block-spacer{height:49px;}.wp-block-kadence-spacer.kt-block-spacer-7595_9041b1-f9 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_9041b1-f9\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Stage 13 belonged to the break in the purest sense \u2014 nearly 40 riders went clear inside the first hour, and by the Ballon d&#8217;Alsace the gap had swollen past eight minutes.<\/strong> Jayco AlUla played it perfectly, planting numbers up front before unleashing Mauro Schmid at exactly the right moment; he beat Harold Tejada in a two-up sprint after outlasting him on patience alone. The bigger story sat one place back: Tom Pidcock rode the strongest legs of anyone on the Ballon d&#8217;Alsace, finished third at 2 seconds, and vaulted to fourth overall, a genuine podium mover on a day nobody expected the GC picture to shift. Poga\u010dar&#8217;s yellow never came under threat; the peloton finished 7:32 down and called it a controlled loss.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stage 14 offers no such controlled loss for anyone. At 155.3 km with 3,800 m of climbing packed into seven ascents and barely a flat kilometre all day, this is the Tour&#8217;s first genuine high-mountain reckoning, the kind of profile where being slightly off doesn&#8217;t cost seconds, it costs minutes. The Grand Ballon opens the account just 36 km in, the Ballon d&#8217;Alsace returns for a second straight day, and the Col du Haag&#8217;s irregular, forest-shaded ramps close things out barely 6 km from the line. Poga\u010dar has ridden his own race all Tour regardless of what Vingegaard says publicly. Today, for the first time, riding his own race and riding away from everyone else might be the exact same thing.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_253ddf-4e .kt-block-spacer{height:48px;}.wp-block-kadence-spacer.kt-block-spacer-7595_253ddf-4e .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_253ddf-4e\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">How &amp; When to Watch Stage 14<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Stage 14 key timings (Local, UK, US &amp; Australia)<\/h3>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\" style=\"font-size:16px\"><table><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Key Point<\/th><th class=\"has-text-align-left\" data-align=\"left\">Distance to Finish<\/th><th class=\"has-text-align-left\" data-align=\"left\">Fast Schedule<\/th><th class=\"has-text-align-left\" data-align=\"left\">Slow Schedule<\/th><th class=\"has-text-align-left\" data-align=\"left\">UK (BST)<\/th><th class=\"has-text-align-left\" data-align=\"left\">US (EDT)<\/th><th class=\"has-text-align-left\" data-align=\"left\">Australia (AEST)<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Mulhouse (official start)<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">155.3 km<\/td><td class=\"has-text-align-left\" data-align=\"left\">13:10 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">13:10 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">12:10<\/td><td class=\"has-text-align-left\" data-align=\"left\">07:10<\/td><td class=\"has-text-align-left\" data-align=\"left\">21:10<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Grand Ballon (Cat. 2)<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">118.7 km<\/td><td class=\"has-text-align-left\" data-align=\"left\">14:35 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">14:44 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">13:35\u201313:44<\/td><td class=\"has-text-align-left\" data-align=\"left\">08:35\u201308:44<\/td><td class=\"has-text-align-left\" data-align=\"left\">22:35\u201322:44<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Le Markstein (1st passage)<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">111.4 km<\/td><td class=\"has-text-align-left\" data-align=\"left\">14:42 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">14:52 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">13:42\u201313:52<\/td><td class=\"has-text-align-left\" data-align=\"left\">08:42\u201308:52<\/td><td class=\"has-text-align-left\" data-align=\"left\">22:42\u201322:52<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Col d&#8217;Oderen (Cat. 2)<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">87.0 km<\/td><td class=\"has-text-align-left\" data-align=\"left\">15:15 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">15:29 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">14:15\u201314:29<\/td><td class=\"has-text-align-left\" data-align=\"left\">09:15\u201309:29<\/td><td class=\"has-text-align-left\" data-align=\"left\">23:15\u201323:29<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Ballon d&#8217;Alsace (Cat. 1)<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">60.9 km<\/td><td class=\"has-text-align-left\" data-align=\"left\">15:57 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">16:17 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">14:57\u201315:17<\/td><td class=\"has-text-align-left\" data-align=\"left\">09:57\u201310:17<\/td><td class=\"has-text-align-left\" data-align=\"left\">23:57\u201300:17 <em>(next day)<\/em><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Col du Hundsruck (Cat. 2)<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">30.1 km<\/td><td class=\"has-text-align-left\" data-align=\"left\">16:35 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">16:57 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">15:35\u201315:57<\/td><td class=\"has-text-align-left\" data-align=\"left\">10:35\u201310:57<\/td><td class=\"has-text-align-left\" data-align=\"left\">00:35\u201300:57 <em>(next day)<\/em>The <\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Geishouse climb begins<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">13.0 km<\/td><td class=\"has-text-align-left\" data-align=\"left\">17:01 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">17:26 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">16:01\u201316:26<\/td><td class=\"has-text-align-left\" data-align=\"left\">11:01\u201311:26<\/td><td class=\"has-text-align-left\" data-align=\"left\">01:01\u201301:26 <em>(next day)<\/em><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Col du Haag (Cat. 1)<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">5.9 km<\/td><td class=\"has-text-align-left\" data-align=\"left\">17:17 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">17:44 CEST<\/td><td class=\"has-text-align-left\" data-align=\"left\">16:17\u201316:44<\/td><td class=\"has-text-align-left\" data-align=\"left\">11:17\u201311:44<\/td><td class=\"has-text-align-left\" data-align=\"left\">01:17\u201301:44 <em>(next day)<\/em><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Le Markstein summit finish<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>0 km<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>17:24 CEST<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>17:52 CEST<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>16:24\u201316:52<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>11:24\u201311:52<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>01:24\u201301:52 <em>(next day)<\/em><\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Best times to tune in<\/h3>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\" style=\"font-size:17px\"><table><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Viewer Type<\/th><th class=\"has-text-align-left\" data-align=\"left\">UK (BST)<\/th><th class=\"has-text-align-left\" data-align=\"left\">US (EDT)<\/th><th class=\"has-text-align-left\" data-align=\"left\">Australia (AEST)<\/th><th class=\"has-text-align-left\" data-align=\"left\">What You&#8217;ll Catch<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Full-stage viewer<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>12:10<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>07:10<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>21:10<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Every major climb from Mulhouse to the summit finish<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Mountain action viewer<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>13:30<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>08:30<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>22:30<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Grand Ballon, first passage of Le Markstein and Col d&#8217;Oderen<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Queen stage showdown<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>14:50<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>09:50<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>23:50<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Ballon d&#8217;Alsace, Col du Hundsruck and the decisive final climbs<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Final climb viewer<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>16:00<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>11:00<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>01:00 <em>(next day)<\/em><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Geishouse ascent, Col du Haag and the summit finish at Le Markstein<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Last-minute viewer<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>16:15<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>11:15<\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\"><strong>01:15 <em>(next day)<\/em><\/strong><\/td><td class=\"has-text-align-left\" data-align=\"left\">Final 6 km from Col du Haag to the finish<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_5a94a2-0f .kt-block-spacer{height:50px;}.wp-block-kadence-spacer.kt-block-spacer-7595_5a94a2-0f .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_5a94a2-0f\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Why Stage 14 is harder than it looks<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Vosges mountain range is not the Alps. The highest point on Stage 14, the Grand Ballon summit, sits at 1,424 metres, while the Galibier tops out at 2,642 metres. On paper, the comparison makes Stage 14 look like a recovery day tucked between harder terrain. It isn&#8217;t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Seven climbs in 155 kilometres means the climbing-per-kilometre ratio on Stage 14 is one of the highest of any day in the 2026 race. The efforts fall consistently in the four-to-eight-minute explosive range rather than the fifteen-to-twenty-five-minute sustained grind that defines the Alps. That difference matters. Riders who produce explosive short-power above their GC ranking thrive in the Vosges. Pure diesel climbers, the ones built for Galibier or Tourmalet, can find themselves unable to respond to attacks they would comfortably cover on a longer climb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Narrow forested roads, technical descents, and irregular surface changes add to the difficulty. The Vosges is the kind of terrain where a race blows apart not because one rider is stronger, but because the rhythm changes every twelve minutes and nobody can sit on the front and control the tempo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then add the context around Stage 14. Stage 13, the day before, is 205 kilometres from Dole to Belfort across the Jura \u2014 the longest single day in the entire 2026 Tour. Riders arrive at Mulhouse on Saturday with legs already taxed. Stage 15, the day after, is Champagnole to Plateau de Solaison: 184 kilometres with a summit finish that averages 9.1% across 11.3 kilometres, the steepest HC summit average of the whole race. Stage 14 sits in the middle of that three-day gauntlet. The Vosges trap doesn&#8217;t need to finish the race. It just needs to crack someone.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_3fda2a-69 .kt-block-spacer{height:49px;}.wp-block-kadence-spacer.kt-block-spacer-7595_3fda2a-69 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_3fda2a-69\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Mulhouse: where Stage 14 begins<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Stage 14 rolls out from Mulhouse at 13:10 CEST on Saturday, 18 July. This is the city&#8217;s 18th appearance as a Tour de France stage host, and Alsace&#8217;s largest city needs no introduction to cycling. What it does need, for first-time visitors catching the race here, is a note on timing. The Grand Ballon starts climbing at kilometre 15. There is no flat warm-up. The peloton is racing from the flag.<\/p>\n\n\n<style>.kb-row-layout-id7595_9ecb0d-c2 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id7595_9ecb0d-c2 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id7595_9ecb0d-c2 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);max-width:900px;margin-left:auto;margin-right:auto;padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id7595_9ecb0d-c2 > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id7595_9ecb0d-c2 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id7595_9ecb0d-c2 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id7595_9ecb0d-c2 alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column7595_4dd907-a7 > .kt-inside-inner-col,.kadence-column7595_4dd907-a7 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column7595_4dd907-a7 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column7595_4dd907-a7 > .kt-inside-inner-col{flex-direction:column;}.kadence-column7595_4dd907-a7 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column7595_4dd907-a7 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column7595_4dd907-a7{position:relative;}@media all and (max-width: 1024px){.kadence-column7595_4dd907-a7 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column7595_4dd907-a7 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column7595_4dd907-a7\"><div class=\"kt-inside-inner-col\">\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Tour de France 2026 Stage 14 Route Animation | Mulhouse to Le Markstein \u2014 Col du Haag&amp;apos;s Tour Debut\" width=\"720\" height=\"405\" src=\"https:\/\/www.youtube.com\/embed\/t_z_RgRUEgM?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n<\/div><\/div>\n\n<\/div><\/div>\n\n\n<p class=\"wp-block-paragraph\">Mulhouse is worth arriving a day early if the budget allows. The Cit\u00e9 de l&#8217;Automobile \u2014 the world&#8217;s largest car museum, home to the entire Schlumpf Collection, including the Bugatti Royale, sits ten minutes from the race start. The old town, the city&#8217;s medieval core, is walkable from most central accommodation. The race village opens to the public on the morning of the 18th near the Place de la R\u00e9publique.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Intermediate sprint: Wattwiller (km 12.6)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The intermediate sprint at Wattwiller lands at kilometre 12.6 and it isn&#8217;t flat. It&#8217;s an uphill drag, which means the fast men chasing bonus seconds on the points classification will have to burn real matches just thirteen kilometres in. For GC teams, this is a small tactical note: if the sprinters go hard here, the pace spikes before the Grand Ballon ascent begins. The smart move for anyone targeting the overall is to sit, let the points riders do the damage, and conserve for the climb.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_374f5e-e7 .kt-block-spacer{height:50px;}.wp-block-kadence-spacer.kt-block-spacer-7595_374f5e-e7 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_374f5e-e7\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Grand Ballon (km 36.6) \u2014 the opener nobody fully solves<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Category 1 | 21.5 km | 4.8% average | summit 1,424m<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Grand Ballon is the highest point in the Vosges range, the second-longest climb in the 2026 Tour, and the first major obstacle of Stage 14. It begins at kilometre 15, meaning riders are climbing from almost the moment the flag drops in Mulhouse, and crests at kilometre 36.6.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The 4.8% average doesn&#8217;t tell the full story. A seven-kilometre plateau sits roughly mid-climb, which flattens the headline number significantly. The first section and the final six kilometres are both substantially harder, with the last section averaging close to eight percent. That split matters tactically. A rider who paces the full 21.5 kilometres at 4.8% will arrive at the summit with enough left to contest the next several climbs. A rider who goes too hard chasing the early ramps will be in trouble by the time the Col du Haag arrives 113 kilometres later.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The breakaway forms here. It almost always does on the first major climb of a Vosges stage. The peloton, specifically the GC squads, will let a group of eight to fifteen climbers go after the sprint, manage their gap through the Grand Ballon, and begin assessing which riders are dangerous when the Ballon d&#8217;Alsace arrives. What makes the Grand Ballon unusual in 2026 is that the peloton passes the finish line at Le Markstein on the descent. Riders see the finish on the way out. They won&#8217;t touch it again for another 115 kilometres.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_17a4fd-c6 .kt-block-spacer{height:50px;}.wp-block-kadence-spacer.kt-block-spacer-7595_17a4fd-c6 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_17a4fd-c6\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">The 111 km loop: Col du Page, Ballon d&#8217;Alsace, and the quiet accumulation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After the Grand Ballon summit, the race drops 16.5 kilometres to the town of Kruth. A fast, technical Vosges descent on narrow forested roads. Then the loop begins. From Kruth to the foot of the Col du Haag is 78 kilometres of continuous climbing, brief descent, and more climbing. This section doesn&#8217;t produce the stage&#8217;s defining moments. It produces the fatigue that makes those moments possible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Col du Page (km 71.3) \u2014 Tour debut<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Category 2 | 9.8 km | 4.7% | First ever Tour de France ascent<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Col du Page is making its Tour debut in 2026. That means no historical professional race data, no power files, no benchmark times from previous editions. It&#8217;s the easiest classified climb of the day and GC teams will manage tempo through it. The importance of the Col du Page is cumulative rather than immediate: nine kilometres of threshold effort on legs that already have the Grand Ballon in them, two hours before the Col du Haag.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ballon d&#8217;Alsace (km 94.4) \u2014 the oldest mountain in Tour history<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Category 1 | 8.9 km | 6.9% | summit 1,173m | 29th Tour appearance<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Ballon d&#8217;Alsace made its first Tour de France appearance in 1905. It was the first categorised mountain ever climbed in the race&#8217;s history. In 2026, it makes its 29th appearance. That&#8217;s a fact worth putting in the context of what the climb actually feels like: 8.9 kilometres, averaging 6.9%, with sections brushing nine percent. It&#8217;s not the hardest climb of Stage 14 by a long margin. But it appears at kilometre 94.4, with sixty-one kilometres still to race, and those 8.9 kilometres at 6.9% feel very different at that point of the stage than they would fresh.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stage 13 uses the Ballon d&#8217;Alsace as part of its own parcours the day before \u2014 ascending from the other side. Riders and team directors who planned to use Stage 13&#8217;s descent to gather intelligence on the 2026 approach will have had that chance. It won&#8217;t make the climb shorter.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Col du Schirm and Col du Hundsruck \u2014 the quiet danger zone<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Two uncategorised climbs, Col du Schirm (3.7 km at 5.3%) and Col du Hundsruck (3.6 km at 5.2%), appear at kilometres 103 and 107. Neither will split the race. Both compound forty-five minutes of threshold effort that doesn&#8217;t appear in the headline statistics and doesn&#8217;t get discussed by commentators until someone cracks unexpectedly in the final twenty kilometres. At this point of Stage 14, a rider who isn&#8217;t already on the limit approaches the Geishouse ascent. A rider who is on the limit becomes a passenger.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_d19737-0b .kt-block-spacer{height:50px;}.wp-block-kadence-spacer.kt-block-spacer-7595_d19737-0b .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_d19737-0b\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Geishouse: the warning shot before the Haag<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Uncategorised | 10.9 km | 7.3% average | final 3.6 km at 9.1%<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Geishouse feeds directly into the Col du Haag with no valley recovery in between. Ten point nine kilometres at 7.3% average, with the final 3.6 kilometres ramping to 9.1%. By the time a rider crests Geishouse and sees the first kilometre of the Col du Haag beginning immediately, every decision made about effort management over the previous 135 kilometres is rendered irrelevant. What matters now is what&#8217;s left.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The breakaway, if it&#8217;s survived to this point, will be down to its strongest members. The GC group, if it hasn&#8217;t already fragmented, is about to.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_623f5b-6b .kt-block-spacer{height:50px;}.wp-block-kadence-spacer.kt-block-spacer-7595_623f5b-6b .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_623f5b-6b\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Col du Haag \u2014 the wildcard that defines Stage 14<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Category 1 | 11.2 km | 7.3% average | final 1.6 km at 10.3% | max ramps 15% | summit 1,233m | km 149.4<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Col du Haag is making its first appearance in Tour de France history. Not as a debutant climb in the usual sense \u2014 a road that exists but hasn&#8217;t featured in the race before. As a road that was, until recently, a forest path. It was converted into a dedicated cycle route, which is the reason it can appear in the 2026 Tour at all and the reason Tour director Christian Prudhomme called it &#8220;one of the discoveries of the year.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That conversion is also the reason no GC team has professional race data for it. The Col du Haag has never been ridden in a major stage race before 2026. Power-meter files from training rides exist, some riders will have done reconnaissance, but there is no reference point for how the climb behaves under race conditions: how the gradient changes feel at race pace, where the wind funnels through the trees, which corners require braking. For a climb at kilometre 149.4, that uncertainty is significant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The gradient profile is irregular. The Haag doesn&#8217;t settle into a steady rhythm like the Ballon d&#8217;Alsace or even the Grand Ballon. It fluctuates between three percent and fifteen percent within the same kilometre, demanding repeated micro-efforts that punish riders trying to pace by feel rather than power data. The final 1.6 kilometres average 10.3%. It is the climb&#8217;s hardest section and it sits at the moment when every rider&#8217;s glycogen reserves and mental reserves are at their lowest.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prudhomme went further when the route was announced. He described the Col du Haag as &#8220;emblematic of what the Tour de France of the future might look like,&#8221; specifically because it runs entirely under tree cover. The entire ascent is shaded. In the context of rising summer temperatures and ASO&#8217;s deliberate pivot toward shaded climbs for heat management, the Col du Haag is both a difficult finish and a signal about how the race is being designed in the 2030s. It&#8217;s a climb chosen partly because its forest canopy provides a cooler ascent on a July afternoon.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The six-kilometre tactical problem<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">From the Col du Haag summit at 1,233 metres, the finish line at Le Markstein sits six kilometres away. Unlike a conventional summit finish where the winning attack needs to reach the line, the Haag requires a different calculation: attack with enough time advantage at the summit to hold it across a fast ridge run. Anyone who crests the Haag with less than twenty seconds of daylight will be caught before the finish. Anyone with thirty seconds or more stands a real chance. That six-kilometre gap dictates when and how aggressively riders attack on the Haag&#8217;s slopes \u2014 and it&#8217;s the most important tactical detail of Stage 14 that almost nobody is discussing.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_367168-ff .kt-block-spacer{height:49px;}.wp-block-kadence-spacer.kt-block-spacer-7595_367168-ff .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_367168-ff\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Le Markstein Fellering \u2014 the finish<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le Markstein Fellering sits at 1,192 metres, six kilometres beyond the Col du Haag summit along a ridge road. This is the second time the Tour de France has finished here. The first was in 2023, when Tadej Poga\u010dar won a sprint from a select group and Jonas Vingegaard confirmed his overall victory. That day is also remembered for Thibaut Pinot, racing on home roads in the Haute-Sa\u00f4ne for what everyone already knew was his final Tour, attacking from the front of the race and finishing to a standing ovation on a stage that broke several thousand people&#8217;s hearts simultaneously.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The 2026 approach to Le Markstein is from the opposite side. The road is different. The atmosphere won&#8217;t be.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Annemiek van Vleuten connection is also worth knowing: Le Markstein was where she confirmed the yellow jersey in the inaugural Tour de France Femmes avec Zwift in 2022, an image that&#8217;s become part of the mountain&#8217;s identity. By the time the 2026 men&#8217;s peloton arrives, this is already a finish with a history.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_e8aaf4-4f .kt-block-spacer{height:49px;}.wp-block-kadence-spacer.kt-block-spacer-7595_e8aaf4-4f .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_e8aaf4-4f\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">All Stage 14 Climbs &amp; Profiles<\/h2>\n\n\n\n<style>\n.bahrain-tldr-wrap {\n  max-width: 960px;\n  margin: 2rem auto;\n  font-family: 'DM Sans', sans-serif;\n}\n\n.bahrain-tldr-card {\n  background: #f6fbee;\n  border-radius: 20px;\n  border: 1px solid rgba(99,153,34,0.25);\n  overflow: hidden;\n}\n\n.bahrain-tldr-header {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  padding: 1.2rem 1.5rem 0.9rem;\n  border-bottom: 1px solid rgba(99,153,34,0.15);\n}\n\n.bahrain-tldr-title {\n  font-family: 'Galibier', sans-serif !important;\n  font-size: 1.3rem !important;\n  font-weight: 700 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 1.5px !important;\n  color: #111 !important;\n  margin: 0 !important;\n  line-height: 1.2 !important;\n  padding: 0 !important;\n  border: none !important;\n}\n\n.bahrain-tldr-badge {\n  font-size: 0.65rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.8px;\n  background: #EAF3DE;\n  color: #27500A;\n  padding: 4px 10px;\n  border-radius: 12px;\n  border: 1px solid rgba(99,153,34,0.3);\n  white-space: nowrap;\n}\n\n.bahrain-tldr-body {\n  padding: 1.2rem 1.5rem 1.5rem;\n}\n\n\/* Summary stats row *\/\n.climb-summary {\n  display: flex;\n  gap: 1rem;\n  margin-bottom: 1.4rem;\n  flex-wrap: wrap;\n}\n\n.summary-stat {\n  flex: 1;\n  min-width: 100px;\n  background: #fff;\n  border-radius: 12px;\n  padding: 0.8rem 1rem;\n  text-align: center;\n  border: 1px solid rgba(99,153,34,0.2);\n}\n\n.summary-stat .stat-num {\n  font-family: 'Galibier', sans-serif;\n  font-size: 1.5rem;\n  font-weight: 700;\n  color: #27500A;\n  line-height: 1;\n}\n\n.summary-stat .stat-label {\n  font-size: 0.65rem;\n  text-transform: uppercase;\n  letter-spacing: 0.6px;\n  color: #555;\n  margin-top: 4px;\n}\n\n\/* Climb table *\/\n.climb-table-wrap {\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.climb-table {\n  width: 100%;\n  border-collapse: collapse;\n  font-size: 0.85rem;\n}\n\n.climb-table thead th {\n  text-align: left;\n  font-size: 0.65rem;\n  text-transform: uppercase;\n  letter-spacing: 0.8px;\n  color: #666;\n  padding: 0.6rem 0.7rem;\n  border-bottom: 2px solid rgba(99,153,34,0.2);\n  white-space: nowrap;\n}\n\n.climb-table tbody td {\n  padding: 0.7rem;\n  border-bottom: 1px solid rgba(99,153,34,0.1);\n  vertical-align: top;\n  line-height: 1.4;\n}\n\n.climb-table tbody tr {\n  cursor: pointer;\n  transition: background 0.15s ease;\n}\n\n.climb-table tbody tr:hover {\n  background: rgba(99,153,34,0.06);\n}\n\n.climb-table tbody tr.active {\n  background: rgba(99,153,34,0.1);\n  box-shadow: inset 3px 0 0 #27500A;\n}\n\n.climb-name {\n  font-weight: 600;\n  color: #111;\n  white-space: nowrap;\n}\n\n.climb-cat {\n  display: inline-block;\n  font-size: 0.65rem;\n  font-weight: 700;\n  padding: 2px 7px;\n  border-radius: 10px;\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n}\n\n.cat-1 {\n  background: #ffe0e0;\n  color: #b71c1c;\n}\n\n.cat-2 {\n  background: #ffe8cc;\n  color: #b85c00;\n}\n\n.cat-uncat {\n  background: #e8e8e8;\n  color: #555;\n}\n\n.climb-km {\n  font-variant-numeric: tabular-nums;\n  font-family: 'DM Sans', monospace;\n  color: #27500A;\n  font-weight: 600;\n}\n\n\/* Detail panel *\/\n.climb-detail {\n  display: none;\n  margin-top: 1rem;\n  padding: 1rem 1.2rem;\n  background: #fff;\n  border-radius: 12px;\n  border: 1px solid rgba(99,153,34,0.2);\n  font-size: 0.85rem;\n  line-height: 1.6;\n  color: #1a1a1a;\n}\n\n.climb-detail.visible {\n  display: block;\n}\n\n.climb-detail-header {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  margin-bottom: 0.6rem;\n}\n\n.climb-detail-name {\n  font-family: 'Galibier', sans-serif;\n  font-size: 1.1rem;\n  font-weight: 700;\n  color: #111;\n}\n\n.climb-detail-stats {\n  display: flex;\n  gap: 1.5rem;\n  flex-wrap: wrap;\n  margin: 0.6rem 0;\n}\n\n.climb-detail-stat {\n  font-size: 0.8rem;\n}\n\n.climb-detail-stat span {\n  font-weight: 600;\n  color: #27500A;\n}\n\n.climb-detail-note {\n  margin-top: 0.5rem;\n  padding: 0.6rem 0.8rem;\n  background: #fffdee;\n  border-left: 3px solid #FFC72C;\n  border-radius: 6px;\n  font-size: 0.8rem;\n  color: #4a3b00;\n}\n\n.highlight-note {\n  margin-top: 1rem;\n  padding: 0.8rem 1rem;\n  background: #fffdee;\n  border-left: 3px solid #FFC72C;\n  border-radius: 8px;\n  font-size: 0.85rem;\n  color: #4a3b00;\n  line-height: 1.5;\n}\n\n.muted-note {\n  margin-top: 0.6rem;\n  font-size: 0.75rem;\n  color: #888;\n}\n\n@media (max-width: 600px) {\n  .bahrain-tldr-body {\n    padding: 1rem 1.2rem 1.2rem;\n  }\n  .climb-table {\n    font-size: 0.75rem;\n  }\n  .climb-table thead th,\n  .climb-table tbody td {\n    padding: 0.5rem;\n  }\n  .climb-detail-stats {\n    gap: 0.8rem;\n  }\n}\n<\/style>\n\n<div class=\"bahrain-tldr-wrap\">\n  <div class=\"bahrain-tldr-card\">\n    \n    <div class=\"bahrain-tldr-header\">\n      <h2 class=\"bahrain-tldr-title\">Stage 14 Climb-by-Climb Profile<\/h2>\n      <span class=\"bahrain-tldr-badge\">7 Climbs \u00b7 3,800m<\/span>\n    <\/div>\n\n    <div class=\"bahrain-tldr-body\">\n      \n      <!-- Summary stats -->\n      <div class=\"climb-summary\">\n        <div class=\"summary-stat\">\n          <div class=\"stat-num\">7<\/div>\n          <div class=\"stat-label\">Total Climbs<\/div>\n        <\/div>\n        <div class=\"summary-stat\">\n          <div class=\"stat-num\">4<\/div>\n          <div class=\"stat-label\">Categorised<\/div>\n        <\/div>\n        <div class=\"summary-stat\">\n          <div class=\"stat-num\">3,800m<\/div>\n          <div class=\"stat-label\">Elevation Gain<\/div>\n        <\/div>\n        <div class=\"summary-stat\">\n          <div class=\"stat-num\">2<\/div>\n          <div class=\"stat-label\">Tour Debuts<\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Climb table -->\n      <div class=\"climb-table-wrap\">\n        <table class=\"climb-table\">\n          <thead>\n            <tr>\n              <th>#<\/th>\n              <th>Climb<\/th>\n              <th>Cat<\/th>\n              <th>Km<\/th>\n              <th>Dist<\/th>\n              <th>Avg<\/th>\n              <th>Summit<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody>\n            <tr data-climb=\"grand-ballon\">\n              <td>1<\/td>\n              <td class=\"climb-name\">Grand Ballon<\/td>\n              <td><span class=\"climb-cat cat-1\">Cat 1<\/span><\/td>\n              <td class=\"climb-km\">36.6<\/td>\n              <td>21.5 km<\/td>\n              <td>4.8%<\/td>\n              <td>1,424m<\/td>\n            <\/tr>\n            <tr data-climb=\"col-du-page\">\n              <td>2<\/td>\n              <td class=\"climb-name\">Col du Page \ud83c\udd95<\/td>\n              <td><span class=\"climb-cat cat-2\">Cat 2<\/span><\/td>\n              <td class=\"climb-km\">71.3<\/td>\n              <td>9.8 km<\/td>\n              <td>4.7%<\/td>\n              <td>\u2014<\/td>\n            <\/tr>\n            <tr data-climb=\"ballon-alsace\">\n              <td>3<\/td>\n              <td class=\"climb-name\">Ballon d&#8217;Alsace<\/td>\n              <td><span class=\"climb-cat cat-1\">Cat 1<\/span><\/td>\n              <td class=\"climb-km\">94.4<\/td>\n              <td>8.9 km<\/td>\n              <td>6.9%<\/td>\n              <td>1,173m<\/td>\n            <\/tr>\n            <tr data-climb=\"schirm\">\n              <td>4<\/td>\n              <td class=\"climb-name\">Col du Schirm<\/td>\n              <td><span class=\"climb-cat cat-uncat\">Uncat<\/span><\/td>\n              <td class=\"climb-km\">~103<\/td>\n              <td>3.7 km<\/td>\n              <td>5.3%<\/td>\n              <td>\u2014<\/td>\n            <\/tr>\n            <tr data-climb=\"hundsruck\">\n              <td>5<\/td>\n              <td class=\"climb-name\">Col du Hundsruck<\/td>\n              <td><span class=\"climb-cat cat-uncat\">Uncat<\/span><\/td>\n              <td class=\"climb-km\">~107<\/td>\n              <td>3.6 km<\/td>\n              <td>5.2%<\/td>\n              <td>\u2014<\/td>\n            <\/tr>\n            <tr data-climb=\"geishouse\">\n              <td>6<\/td>\n              <td class=\"climb-name\">Geishouse<\/td>\n              <td><span class=\"climb-cat cat-uncat\">Uncat<\/span><\/td>\n              <td class=\"climb-km\">~135<\/td>\n              <td>10.9 km<\/td>\n              <td>7.3%<\/td>\n              <td>\u2014<\/td>\n            <\/tr>\n            <tr data-climb=\"col-du-haag\">\n              <td>7<\/td>\n              <td class=\"climb-name\">Col du Haag \ud83c\udd95<\/td>\n              <td><span class=\"climb-cat cat-1\">Cat 1<\/span><\/td>\n              <td class=\"climb-km\">149.4<\/td>\n              <td>11.2 km<\/td>\n              <td>7.3%<\/td>\n              <td>1,233m<\/td>\n            <\/tr>\n            <tr style=\"background:#f9faf7; cursor:default;\" data-climb=\"finish\">\n              <td>\ud83c\udfc1<\/td>\n              <td class=\"climb-name\" style=\"color:#27500A;\">Le Markstein<\/td>\n              <td>\u2014<\/td>\n              <td class=\"climb-km\">155.3<\/td>\n              <td>\u2014<\/td>\n              <td>\u2014<\/td>\n              <td>1,192m<\/td>\n            <\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n\n      <!-- Detail panels -->\n      <div class=\"climb-detail\" id=\"detail-grand-ballon\">\n        <div class=\"climb-detail-header\">\n          <span class=\"climb-cat cat-1\">Cat 1<\/span>\n          <span class=\"climb-detail-name\">Grand Ballon<\/span>\n        <\/div>\n        <div class=\"climb-detail-stats\">\n          <div class=\"climb-detail-stat\">Distance: <span>21.5 km<\/span><\/div>\n          <div class=\"climb-detail-stat\">Avg gradient: <span>4.8%<\/span><\/div>\n          <div class=\"climb-detail-stat\">Summit: <span>1,424m<\/span><\/div>\n        <\/div>\n        <div class=\"climb-detail-note\">\n          <strong>The long opener.<\/strong> Final 6 km ramp up to ~8%. Features a 7 km plateau mid-climb that could lure early attackers into a false sense of rhythm before the sting in the tail.\n        <\/div>\n      <\/div>\n\n      <div class=\"climb-detail\" id=\"detail-col-du-page\">\n        <div class=\"climb-detail-header\">\n          <span class=\"climb-cat cat-2\">Cat 2<\/span>\n          <span class=\"climb-detail-name\">Col du Page \ud83c\udd95<\/span>\n        <\/div>\n        <div class=\"climb-detail-stats\">\n          <div class=\"climb-detail-stat\">Distance: <span>9.8 km<\/span><\/div>\n          <div class=\"climb-detail-stat\">Avg gradient: <span>4.7%<\/span><\/div>\n        <\/div>\n        <div class=\"climb-detail-note\">\n          <strong>Tour debut 2026.<\/strong> A steady, unspectacular climb on paper \u2014 but positioned between two Cat 1s, it&#8217;s a prime launchpad for a breakaway or a fatigue test for anyone already on the limit.\n        <\/div>\n      <\/div>\n\n      <div class=\"climb-detail\" id=\"detail-ballon-alsace\">\n        <div class=\"climb-detail-header\">\n          <span class=\"climb-cat cat-1\">Cat 1<\/span>\n          <span class=\"climb-detail-name\">Ballon d&#8217;Alsace<\/span>\n        <\/div>\n        <div class=\"climb-detail-stats\">\n          <div class=\"climb-detail-stat\">Distance: <span>8.9 km<\/span><\/div>\n          <div class=\"climb-detail-stat\">Avg gradient: <span>6.9%<\/span><\/div>\n          <div class=\"climb-detail-stat\">Summit: <span>1,173m<\/span><\/div>\n        <\/div>\n        <div class=\"climb-detail-note\">\n          <strong>History meets hostility.<\/strong> The first mountain ever climbed in Tour de France history (1905). This is its 29th appearance. At 6.9% average, it&#8217;s no relic \u2014 it&#8217;s a legitimate GC selection point midway through the stage.\n        <\/div>\n      <\/div>\n\n      <div class=\"climb-detail\" id=\"detail-schirm\">\n        <div class=\"climb-detail-header\">\n          <span class=\"climb-cat cat-uncat\">Uncategorised<\/span>\n          <span class=\"climb-detail-name\">Col du Schirm<\/span>\n        <\/div>\n        <div class=\"climb-detail-stats\">\n          <div class=\"climb-detail-stat\">Distance: <span>3.7 km<\/span><\/div>\n          <div class=\"climb-detail-stat\">Avg gradient: <span>5.3%<\/span><\/div>\n        <\/div>\n        <div class=\"climb-detail-note\">\n          <strong>Fatigue accumulator.<\/strong> Short and uncategorised, but wedged between two bigger climbs at a point in the stage where legs are starting to scream. No points, no glory \u2014 just cumulative damage.\n        <\/div>\n      <\/div>\n\n      <div class=\"climb-detail\" id=\"detail-hundsruck\">\n        <div class=\"climb-detail-header\">\n          <span class=\"climb-cat cat-uncat\">Uncategorised<\/span>\n          <span class=\"climb-detail-name\">Col du Hundsruck<\/span>\n        <\/div>\n        <div class=\"climb-detail-stats\">\n          <div class=\"climb-detail-stat\">Distance: <span>3.6 km<\/span><\/div>\n          <div class=\"climb-detail-stat\">Avg gradient: <span>5.2%<\/span><\/div>\n        <\/div>\n        <div class=\"climb-detail-note\">\n          <strong>Fatigue accumulator.<\/strong> Back-to-back with Schirm, this pair acts as a silent eliminator. Riders who&#8217;ve burned matches early will feel it here \u2014 especially with Geishouse and Haag still to come.\n        <\/div>\n      <\/div>\n\n      <div class=\"climb-detail\" id=\"detail-geishouse\">\n        <div class=\"climb-detail-header\">\n          <span class=\"climb-cat cat-uncat\">Uncategorised<\/span>\n          <span class=\"climb-detail-name\">Geishouse Ascent<\/span>\n        <\/div>\n        <div class=\"climb-detail-stats\">\n          <div class=\"climb-detail-stat\">Distance: <span>10.9 km<\/span><\/div>\n          <div class=\"climb-detail-stat\">Avg gradient: <span>7.3%<\/span><\/div>\n        <\/div>\n        <div class=\"climb-detail-note\">\n          <strong>The trap before the trap.<\/strong> Uncategorised but brutal \u2014 final 3.6 km at 9.1%. Feeds directly into the Col du Haag with no recovery. Anyone dropped here won&#8217;t see the front group again.\n        <\/div>\n      <\/div>\n\n      <div class=\"climb-detail\" id=\"detail-col-du-haag\">\n        <div class=\"climb-detail-header\">\n          <span class=\"climb-cat cat-1\">Cat 1<\/span>\n          <span class=\"climb-detail-name\">Col du Haag \ud83c\udd95<\/span>\n        <\/div>\n        <div class=\"climb-detail-stats\">\n          <div class=\"climb-detail-stat\">Distance: <span>11.2 km<\/span><\/div>\n          <div class=\"climb-detail-stat\">Avg gradient: <span>7.3%<\/span><\/div>\n          <div class=\"climb-detail-stat\">Max ramps: <span>15%<\/span><\/div>\n          <div class=\"climb-detail-stat\">Summit: <span>1,233m<\/span><\/div>\n        <\/div>\n        <div class=\"climb-detail-note\">\n          <strong>Tour debut. Zero race data. Maximum chaos.<\/strong> Irregular gradients with ramps hitting 15%. No GC team has professional race data on how this climb rides under race conditions. Summit is just 6 km from the finish \u2014 this is where the stage will be won or lost.\n        <\/div>\n      <\/div>\n\n      <div class=\"climb-detail\" id=\"detail-finish\">\n        <div class=\"climb-detail-header\">\n          <span class=\"climb-detail-name\" style=\"color:#27500A;\">\ud83c\udfc1 Le Markstein Finish<\/span>\n        <\/div>\n        <div class=\"climb-detail-stats\">\n          <div class=\"climb-detail-stat\">Distance: <span>6 km from Haag summit<\/span><\/div>\n          <div class=\"climb-detail-stat\">Elevation: <span>1,192m<\/span><\/div>\n        <\/div>\n        <div class=\"climb-detail-note\">\n          <strong>Ridge road run-in.<\/strong> A fast, exposed 6 km from the Haag summit to the line. No time to recover \u2014 whoever crests the Haag first will have the advantage, but a small chase group can still close gaps on this terrain.\n        <\/div>\n      <\/div>\n\n      <p class=\"muted-note\">Click any climb row above to see full details. \ud83c\udd95 = Tour de France debut in 2026.<\/p>\n\n      <div class=\"highlight-note\">\n        <strong>\ud83d\udd25 7 climbs. 2 Tour debuts. 3,800m of climbing. The Haag&#8217;s 15% ramps with 6 km to go \u2014 and not a single team has raced it before.<\/strong>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  const rows = document.querySelectorAll('.climb-table tbody tr[data-climb]');\n  const details = document.querySelectorAll('.climb-detail');\n  \n  function hideAllDetails() {\n    details.forEach(d => d.classList.remove('visible'));\n  }\n  \n  function deactivateAllRows() {\n    rows.forEach(r => r.classList.remove('active'));\n  }\n  \n  rows.forEach(row => {\n    row.addEventListener('click', function() {\n      const climbId = this.getAttribute('data-climb');\n      const detail = document.getElementById('detail-' + climbId);\n      \n      if (!detail) return;\n      \n      \/\/ Toggle: if already active, hide it\n      if (this.classList.contains('active')) {\n        deactivateAllRows();\n        hideAllDetails();\n        return;\n      }\n      \n      deactivateAllRows();\n      hideAllDetails();\n      \n      this.classList.add('active');\n      detail.classList.add('visible');\n      \n      \/\/ Smooth scroll detail into view on mobile\n      detail.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n    });\n  });\n})();\n<\/script>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_c39035-3a .kt-block-spacer{height:48px;}.wp-block-kadence-spacer.kt-block-spacer-7595_c39035-3a .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_c39035-3a\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">GC implications \u2014 what Stage 14 could change<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Stage 14 arrives on race day, eleven of twenty-one. At this point in the 2026 Tour, the GC has already been tested in the Pyrenees (Stage 6, Gavarnie-G\u00e8dre after the Tourmalet), the Massif Central (Stage 10, Le Lioran), and the Jura (Stage 13, the long one). By Saturday, July 18, the field knows roughly where everyone stands. The question Stage 14 answers is whether that positioning holds under conditions that nobody has fully prepared for.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The two-day sequence from Stage 14 to Stage 15 is the GC weekend of Week 2. Stage 14&#8217;s Vosges explosion, then Stage 15&#8217;s Plateau de Solaison (the race&#8217;s hardest summit finish at 9.1% average), then Stage 16&#8217;s individual time trial over 26 kilometres along Lake Geneva. Three stages that test three entirely different physical qualities in succession. A rider who handles Stage 14 well goes into Solaison with morale. A rider who loses time in the Vosges has to recover that deficit on a climb where the GC favourites will be ready to hit hard.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Poga\u010dar (UAE Team Emirates-XRG)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The defending champion&#8217;s profile \u2014 explosive, able to shift from tempo to attack in single pedal strokes \u2014 suits the Vosges almost perfectly. He won at Le Markstein in 2023 from a sprint in a select group. He had recon time on the 2026 Tour route. If the GC arrives at the Col du Haag together, Poga\u010dar is the most dangerous attacker in the field.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Vingegaard (Visma-Lease a Bike)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The 2026 Giro d&#8217;Italia winner comes in as a genuine co-favourite. What&#8217;s changed since previous editions: Wout van Aert is missing from the squad, ruled out by an elbow infection. Van Aert&#8217;s job in chaotic mountain stages was reading the race for Vingegaard \u2014 identifying attacks, managing positioning in the final kilometres before the decisive climb. Davide Piganzoli replaced him. Piganzoli is a strong climber but not a road captain. The tactical complexity of the Vosges \u2014 where the race can blow apart at any point in the final sixty kilometres \u2014 is harder to manage without that experience in the leader&#8217;s ear.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Evenepoel (Red Bull-BORA-hansgrohe)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">An exceptionally powerful rider on consistent gradients. The irregular profile of the Col du Haag \u2014 three percent to fifteen percent to seven percent within the same kilometre \u2014 is harder to pace from power data than a steady climb. Evenepoel&#8217;s time trial ability gives him options in Stage 16, but if gaps open on Stage 14 the Haag&#8217;s exploding rhythm could be a problem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Seixas (Decathlon CMA CGM)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nineteen years old. First Grand Tour. Explosive climbing profile that maps almost exactly to what Stage 14 demands. Racing on home soil in Alsace. Had recon time on Tour stages. If there is a stage in the 2026 Tour built for Paul Seixas to announce himself to a global audience, Stage 14 is it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>del Toro (UAE Team Emirates-XRG)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Seixas&#8217;s nearest rival for the white jersey is also a co-leader at the UAE and already won stage 2. At twenty, he&#8217;s a similarly explosive climber. UAE arriving with two riders capable of attacking on the Haag gives them more cards to play than any other team.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_3ecfdb-71 .kt-block-spacer{height:48px;}.wp-block-kadence-spacer.kt-block-spacer-7595_3ecfdb-71 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_3ecfdb-71\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Stage 14 winner prediction \u2014 breakaway or GC?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Two scenarios. One of them happens. Knowing which is the question.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Scenario A: The breakaway survives<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A group of eight to fifteen riders including established classics-style climbers, second-tier GC candidates, and possibly a satellite rider from one of the big teams goes clear on the Grand Ballon. By the Col du Page and Ballon d&#8217;Alsace, the gap is managed \u2014 the peloton isn&#8217;t chasing aggressively because the GC threat inside the break is minimal. The Col du Haag shatters the break to two or three riders. The stage winner solo-rides the final six kilometres. This is the most common pattern for a day like this and the one that produces the best racing aesthetics.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Scenario B: GC battle on the Haag<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The break is caught or never went clear. The GC group hits the Col du Haag together, already depleted by the Geishouse ascent. Someone attacks at the hardest gradient section, the final 1.6 kilometres at 10.3%. Six kilometres to the finish means the attacker needs to build a gap fast enough to hold the ridge. If it&#8217;s Poga\u010dar, he probably holds it. If it&#8217;s Seixas or del Toro, it depends entirely on how much Poga\u010dar saved.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The prediction:<\/strong> <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A select break goes on the Grand Ballon and holds through the Col du Page and Ballon d&#8217;Alsace. The Haag destroys it. One to two riders make it to Le Markstein alone or in a very small group. The GC group arrives 90\u2013150 seconds back, intact or with minor time splits.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Recon advantage: who pre-rode the route<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Paul Seixas did reconnaissance on Tour de France stage routes in May and June, including confirmed Strava data from the Col du Tourmalet approach. Poga\u010dar and Ayuso are also listed among riders who scouted 2026 Tour terrain. The Col du Haag, as a newly converted forest path making its Tour debut, was a priority recon target for squads planning their Col du Haag pacing strategy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On an unknown climb like the Haag, pre-riding the route matters more than it does on a classic like the Tourmalet, where every rider has been up it fifty times. The rider who knows which kilometre the fifteen-percent ramp appears on has an advantage over the rider discovering it at race pace.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_80cf57-6e .kt-block-spacer{height:49px;}.wp-block-kadence-spacer.kt-block-spacer-7595_80cf57-6e .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_80cf57-6e\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Stage 14 start times around the world<\/h2>\n\n\n\n<style>\n.bahrain-tldr-wrap {\n  max-width: 960px;\n  margin: 2rem auto;\n  font-family: 'DM Sans', sans-serif;\n}\n\n.bahrain-tldr-card {\n  background: #f6fbee;\n  border-radius: 20px;\n  border: 1px solid rgba(99,153,34,0.25);\n  overflow: hidden;\n}\n\n.bahrain-tldr-header {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  padding: 1.2rem 1.5rem 0.9rem;\n  border-bottom: 1px solid rgba(99,153,34,0.15);\n}\n\n.bahrain-tldr-title {\n  font-family: 'Galibier', sans-serif !important;\n  font-size: 1.3rem !important;\n  font-weight: 700 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 1.5px !important;\n  color: #111 !important;\n  margin: 0 !important;\n  line-height: 1.2 !important;\n  padding: 0 !important;\n  border: none !important;\n}\n\n.bahrain-tldr-badge {\n  font-size: 0.65rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.8px;\n  background: #EAF3DE;\n  color: #27500A;\n  padding: 4px 10px;\n  border-radius: 12px;\n  border: 1px solid rgba(99,153,34,0.3);\n  white-space: nowrap;\n}\n\n.bahrain-tldr-body {\n  padding: 1.2rem 1.5rem 1.5rem;\n}\n\n\/* Time zone table *\/\n.tz-table-wrap {\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.tz-table {\n  width: 100%;\n  border-collapse: collapse;\n  font-size: 0.85rem;\n}\n\n.tz-table thead th {\n  text-align: left;\n  font-size: 0.65rem;\n  text-transform: uppercase;\n  letter-spacing: 0.8px;\n  color: #666;\n  padding: 0.6rem 0.7rem;\n  border-bottom: 2px solid rgba(99,153,34,0.2);\n  white-space: nowrap;\n}\n\n.tz-table tbody td {\n  padding: 0.7rem;\n  border-bottom: 1px solid rgba(99,153,34,0.1);\n  vertical-align: middle;\n  line-height: 1.4;\n}\n\n.tz-table tbody tr {\n  transition: background 0.15s ease;\n}\n\n.tz-table tbody tr:hover {\n  background: rgba(99,153,34,0.06);\n}\n\n.tz-table tbody tr.highlight-row {\n  background: rgba(99,153,34,0.08);\n}\n\n.tz-name {\n  font-weight: 600;\n  color: #111;\n  white-space: nowrap;\n}\n\n.tz-offset {\n  font-size: 0.7rem;\n  color: #888;\n  margin-left: 4px;\n}\n\n.tz-region {\n  font-size: 0.8rem;\n  color: #555;\n}\n\n.tz-time {\n  font-variant-numeric: tabular-nums;\n  font-family: 'DM Sans', monospace;\n  font-weight: 600;\n  color: #27500A;\n  white-space: nowrap;\n}\n\n.tz-finish {\n  font-variant-numeric: tabular-nums;\n  font-family: 'DM Sans', monospace;\n  color: #444;\n  white-space: nowrap;\n}\n\n.tz-next-day {\n  font-size: 0.65rem;\n  font-weight: 600;\n  color: #b85c00;\n  margin-left: 3px;\n  white-space: nowrap;\n}\n\n\/* Live now pulse *\/\n.live-indicator {\n  display: inline-block;\n  width: 7px;\n  height: 7px;\n  background: #e53935;\n  border-radius: 50%;\n  margin-right: 5px;\n  animation: pulse 1.5s ease-in-out infinite;\n}\n\n@keyframes pulse {\n  0%, 100% { opacity: 1; transform: scale(1); }\n  50% { opacity: 0.5; transform: scale(1.3); }\n}\n\n.highlight-note {\n  margin-top: 1rem;\n  padding: 0.8rem 1rem;\n  background: #fffdee;\n  border-left: 3px solid #FFC72C;\n  border-radius: 8px;\n  font-size: 0.85rem;\n  color: #4a3b00;\n  line-height: 1.5;\n}\n\n.muted-note {\n  margin-top: 0.6rem;\n  font-size: 0.75rem;\n  color: #888;\n}\n\n@media (max-width: 600px) {\n  .bahrain-tldr-body {\n    padding: 1rem 1.2rem 1.2rem;\n  }\n  .tz-table {\n    font-size: 0.75rem;\n  }\n  .tz-table thead th,\n  .tz-table tbody td {\n    padding: 0.5rem;\n  }\n}\n<\/style>\n\n<div class=\"bahrain-tldr-wrap\">\n  <div class=\"bahrain-tldr-card\">\n    \n    <div class=\"bahrain-tldr-header\">\n      <h2 class=\"bahrain-tldr-title\">Stage 14 World Time Zones<\/h2>\n      <span class=\"bahrain-tldr-badge\">Sat 18 July<\/span>\n    <\/div>\n\n    <div class=\"bahrain-tldr-body\">\n      \n      <div class=\"tz-table-wrap\">\n        <table class=\"tz-table\">\n          <thead>\n            <tr>\n              <th>Time Zone<\/th>\n              <th>Region<\/th>\n              <th>Start<\/th>\n              <th>Est. Finish<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody>\n            <!-- Europe \u2014 race local -->\n            <tr class=\"highlight-row\">\n              <td><span class=\"tz-name\">CEST<\/span><span class=\"tz-offset\">UTC+2<\/span><\/td>\n              <td class=\"tz-region\">France, Germany, Italy \ud83c\uddeb\ud83c\uddf7<\/td>\n              <td class=\"tz-time\">13:10<\/td>\n              <td class=\"tz-finish\">~17:38\u201317:40<\/td>\n            <\/tr>\n            <tr>\n              <td><span class=\"tz-name\">BST<\/span><span class=\"tz-offset\">UTC+1<\/span><\/td>\n              <td class=\"tz-region\">UK, Ireland \ud83c\uddec\ud83c\udde7<\/td>\n              <td class=\"tz-time\">12:10<\/td>\n              <td class=\"tz-finish\">~16:38\u201316:40<\/td>\n            <\/tr>\n\n            <!-- North America -->\n            <tr>\n              <td><span class=\"tz-name\">EDT<\/span><span class=\"tz-offset\">UTC-4<\/span><\/td>\n              <td class=\"tz-region\">New York, Miami \ud83c\uddfa\ud83c\uddf8<\/td>\n              <td class=\"tz-time\">07:10<\/td>\n              <td class=\"tz-finish\">~11:38\u201311:40<\/td>\n            <\/tr>\n            <tr>\n              <td><span class=\"tz-name\">CDT<\/span><span class=\"tz-offset\">UTC-5<\/span><\/td>\n              <td class=\"tz-region\">Chicago, Dallas \ud83c\uddfa\ud83c\uddf8<\/td>\n              <td class=\"tz-time\">06:10<\/td>\n              <td class=\"tz-finish\">~10:38\u201310:40<\/td>\n            <\/tr>\n            <tr>\n              <td><span class=\"tz-name\">MDT<\/span><span class=\"tz-offset\">UTC-6<\/span><\/td>\n              <td class=\"tz-region\">Denver, Phoenix \ud83c\uddfa\ud83c\uddf8<\/td>\n              <td class=\"tz-time\">05:10<\/td>\n              <td class=\"tz-finish\">~09:38\u201309:40<\/td>\n            <\/tr>\n            <tr>\n              <td><span class=\"tz-name\">PDT<\/span><span class=\"tz-offset\">UTC-7<\/span><\/td>\n              <td class=\"tz-region\">LA, Seattle \ud83c\uddfa\ud83c\uddf8<\/td>\n              <td class=\"tz-time\">04:10<\/td>\n              <td class=\"tz-finish\">~08:38\u201308:40<\/td>\n            <\/tr>\n\n            <!-- Asia-Pacific -->\n            <tr>\n              <td><span class=\"tz-name\">IST<\/span><span class=\"tz-offset\">UTC+5:30<\/span><\/td>\n              <td class=\"tz-region\">India \ud83c\uddee\ud83c\uddf3<\/td>\n              <td class=\"tz-time\">16:40<\/td>\n              <td class=\"tz-finish\">~21:08\u201321:10<\/td>\n            <\/tr>\n            <tr>\n              <td><span class=\"tz-name\">JST<\/span><span class=\"tz-offset\">UTC+9<\/span><\/td>\n              <td class=\"tz-region\">Japan \ud83c\uddef\ud83c\uddf5<\/td>\n              <td class=\"tz-time\">20:10<\/td>\n              <td class=\"tz-finish\">~00:38\u201300:40<span class=\"tz-next-day\">+1 day<\/span><\/td>\n            <\/tr>\n            <tr>\n              <td><span class=\"tz-name\">AEST<\/span><span class=\"tz-offset\">UTC+10<\/span><\/td>\n              <td class=\"tz-region\">Sydney, Melbourne \ud83c\udde6\ud83c\uddfa<\/td>\n              <td class=\"tz-time\">21:10<\/td>\n              <td class=\"tz-finish\">~01:38\u201301:40<span class=\"tz-next-day\">+1 day<\/span><\/td>\n            <\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n\n      <p class=\"muted-note\">CEST row highlighted \u2014 race local time. JST &amp; AEST finishes spill into Sunday 19 July.<\/p>\n\n      <div class=\"highlight-note\">\n        <strong>\ud83d\udd25 Europe: Saturday afternoon. Americas: Saturday morning. Asia-Pacific: late evening into Sunday. Set your alarms accordingly.<\/strong>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Finish time is estimated. Mountain stages vary by 10\u201315 minutes depending on race pace, weather, and attacks. The official ASO estimate is 17:38 CEST. Australian SBS On Demand replay is available within a few hours of the stage finish \u2014 typically by 06:00 AEST the morning of Sunday 19 July.<\/em><\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_a63b39-5d .kt-block-spacer{height:49px;}.wp-block-kadence-spacer.kt-block-spacer-7595_a63b39-5d .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_a63b39-5d\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">How to watch Stage 14 live<\/h2>\n\n\n\n<style>\n.bahrain-tldr-wrap {\n  max-width: 960px;\n  margin: 2rem auto;\n  font-family: 'DM Sans', sans-serif;\n}\n\n.bahrain-tldr-card {\n  background: #f6fbee;\n  border-radius: 20px;\n  border: 1px solid rgba(99,153,34,0.25);\n  overflow: hidden;\n}\n\n.bahrain-tldr-header {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  padding: 1.2rem 1.5rem 0.9rem;\n  border-bottom: 1px solid rgba(99,153,34,0.15);\n}\n\n.bahrain-tldr-title {\n  font-family: 'Galibier', sans-serif !important;\n  font-size: 1.3rem !important;\n  font-weight: 700 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 1.5px !important;\n  color: #111 !important;\n  margin: 0 !important;\n  line-height: 1.2 !important;\n  padding: 0 !important;\n  border: none !important;\n}\n\n.bahrain-tldr-badge {\n  font-size: 0.65rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.8px;\n  background: #EAF3DE;\n  color: #27500A;\n  padding: 4px 10px;\n  border-radius: 12px;\n  border: 1px solid rgba(99,153,34,0.3);\n  white-space: nowrap;\n}\n\n.bahrain-tldr-body {\n  padding: 1.2rem 1.5rem 1.5rem;\n}\n\n\/* Broadcast table *\/\n.bcast-table-wrap {\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.bcast-table {\n  width: 100%;\n  border-collapse: collapse;\n  font-size: 0.85rem;\n}\n\n.bcast-table thead th {\n  text-align: left;\n  font-size: 0.65rem;\n  text-transform: uppercase;\n  letter-spacing: 0.8px;\n  color: #666;\n  padding: 0.6rem 0.7rem;\n  border-bottom: 2px solid rgba(99,153,34,0.2);\n  white-space: nowrap;\n}\n\n.bcast-table thead th:first-child {\n  width: 18%;\n}\n\n.bcast-table thead th:nth-child(2) {\n  width: 42%;\n}\n\n.bcast-table thead th:last-child {\n  width: 40%;\n}\n\n.bcast-table tbody td {\n  padding: 0.7rem;\n  border-bottom: 1px solid rgba(99,153,34,0.1);\n  vertical-align: top;\n  line-height: 1.5;\n}\n\n.bcast-table tbody tr {\n  transition: background 0.15s ease;\n}\n\n.bcast-table tbody tr:hover {\n  background: rgba(99,153,34,0.06);\n}\n\n.bcast-region {\n  font-weight: 600;\n  color: #111;\n  white-space: nowrap;\n}\n\n.bcast-flag {\n  margin-right: 4px;\n}\n\n.bcast-free {\n  color: #27500A;\n}\n\n.bcast-free strong {\n  color: #1a4d00;\n}\n\n.bcast-none {\n  color: #999;\n  font-style: italic;\n}\n\n.bcast-paid {\n  color: #444;\n}\n\n.bcast-paid strong {\n  color: #b85c00;\n  font-weight: 600;\n}\n\n\/* Free tag pill *\/\n.tag-free {\n  display: inline-block;\n  font-size: 0.6rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n  background: #EAF3DE;\n  color: #27500A;\n  padding: 2px 7px;\n  border-radius: 8px;\n  margin-left: 4px;\n  white-space: nowrap;\n}\n\n.tag-paid {\n  display: inline-block;\n  font-size: 0.6rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n  background: #fff3e0;\n  color: #b85c00;\n  padding: 2px 7px;\n  border-radius: 8px;\n  margin-left: 4px;\n  white-space: nowrap;\n}\n\n.tag-highlight {\n  display: inline-block;\n  font-size: 0.6rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n  background: #fffdee;\n  color: #7a6200;\n  padding: 2px 7px;\n  border-radius: 8px;\n  margin-left: 4px;\n  white-space: nowrap;\n}\n\n\/* NordVPN CTA Banner *\/\n.nord-cta {\n  margin-top: 1.2rem;\n  padding: 1.2rem 1.5rem;\n  background: linear-gradient(135deg, #1a1f2e 0%, #2a3550 100%);\n  border-radius: 14px;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 1.5rem;\n  flex-wrap: wrap;\n  border: 1px solid rgba(255,255,255,0.08);\n}\n\n.nord-cta-content {\n  flex: 1;\n  min-width: 200px;\n}\n\n.nord-cta-eyebrow {\n  font-size: 0.6rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 1.2px;\n  color: #8bb8f7;\n  margin-bottom: 4px;\n}\n\n.nord-cta-headline {\n  font-family: 'Galibier', sans-serif;\n  font-size: 1.1rem;\n  font-weight: 700;\n  color: #fff;\n  line-height: 1.3;\n  margin-bottom: 4px;\n}\n\n.nord-cta-sub {\n  font-size: 0.78rem;\n  color: #bcc6d6;\n  line-height: 1.4;\n}\n\n.nord-cta-btn {\n  display: inline-block;\n  background: #5b8def;\n  color: #fff;\n  font-weight: 700;\n  font-size: 0.85rem;\n  padding: 12px 28px;\n  border-radius: 10px;\n  text-decoration: none;\n  white-space: nowrap;\n  transition: background 0.2s ease, transform 0.15s ease;\n  flex-shrink: 0;\n  letter-spacing: 0.3px;\n}\n\n.nord-cta-btn:hover {\n  background: #4a7de0;\n  transform: translateY(-1px);\n}\n\n.nord-cta-btn::after {\n  content: \" \u2192\";\n  font-size: 0.9rem;\n}\n\n.highlight-note {\n  margin-top: 1rem;\n  padding: 0.8rem 1rem;\n  background: #fffdee;\n  border-left: 3px solid #FFC72C;\n  border-radius: 8px;\n  font-size: 0.85rem;\n  color: #4a3b00;\n  line-height: 1.5;\n}\n\n.muted-note {\n  margin-top: 0.6rem;\n  font-size: 0.75rem;\n  color: #888;\n  line-height: 1.5;\n}\n\n@media (max-width: 600px) {\n  .bahrain-tldr-body {\n    padding: 1rem 1.2rem 1.2rem;\n  }\n  .bcast-table {\n    font-size: 0.75rem;\n  }\n  .bcast-table thead th,\n  .bcast-table tbody td {\n    padding: 0.5rem;\n  }\n  .nord-cta {\n    flex-direction: column;\n    text-align: center;\n    padding: 1rem 1.2rem;\n  }\n  .nord-cta-btn {\n    width: 100%;\n    text-align: center;\n  }\n}\n<\/style>\n\n<div class=\"bahrain-tldr-wrap\">\n  <div class=\"bahrain-tldr-card\">\n    \n    <div class=\"bahrain-tldr-header\">\n      <h2 class=\"bahrain-tldr-title\">How to Watch Stage 14<\/h2>\n      <span class=\"bahrain-tldr-badge\">Global Broadcast Guide<\/span>\n    <\/div>\n\n    <div class=\"bahrain-tldr-body\">\n      \n      <!-- NordVPN CTA \u2014 top placement -->\n      <div class=\"nord-cta\">\n        <div class=\"nord-cta-content\">\n          <div class=\"nord-cta-eyebrow\">Partner Spotlight<\/div>\n          <div class=\"nord-cta-headline\">Watch Any Broadcast, From Anywhere<\/div>\n          <div class=\"nord-cta-sub\">Stream free coverage from SBS (Australia), France TV, or Sporza \u2014 no matter where you are. NordVPN unlocks every broadcast in this table.<\/div>\n        <\/div>\n        <a href=\"https:\/\/franceletour.com\/go\/nordvpn\" class=\"nord-cta-btn\" target=\"_blank\" rel=\"nofollow sponsored\">Get NordVPN<\/a>\n      <\/div>\n\n      <div class=\"bcast-table-wrap\" style=\"margin-top:1.2rem;\">\n        <table class=\"bcast-table\">\n          <thead>\n            <tr>\n              <th>Region<\/th>\n              <th>Free Option<\/th>\n              <th>Paid \/ Full Coverage<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody>\n            <!-- France -->\n            <tr>\n              <td class=\"bcast-region\"><span class=\"bcast-flag\">\ud83c\uddeb\ud83c\uddf7<\/span>France<\/td>\n              <td class=\"bcast-free\"><strong>France T\u00e9l\u00e9visions<\/strong> (France 2 \/ France 3) \u2014 all stages<span class=\"tag-free\">Free<\/span><\/td>\n              <td class=\"bcast-paid\">France.tv streaming, L&#8217;\u00c9quipe TV<\/td>\n            <\/tr>\n\n            <!-- UK -->\n            <tr>\n              <td class=\"bcast-region\"><span class=\"bcast-flag\">\ud83c\uddec\ud83c\udde7<\/span>United Kingdom<\/td>\n              <td class=\"bcast-free\"><strong>Channel 5<\/strong> \u2014 daily highlights at 7pm<span class=\"tag-highlight\">Highlights only<\/span><\/td>\n              <td class=\"bcast-paid\"><strong>TNT Sports \/ HBO Max<\/strong> \u2014 live every stage (\u00a330.99\/month)<br><span style=\"font-size:0.75rem;color:#999;\">ITV no longer holds cycling rights from 2026.<\/span><\/td>\n            <\/tr>\n\n            <!-- Australia -->\n            <tr>\n              <td class=\"bcast-region\"><span class=\"bcast-flag\">\ud83c\udde6\ud83c\uddfa<\/span>Australia<\/td>\n              <td class=\"bcast-free\"><strong>SBS<\/strong> \u2014 all 21 stages live, full English commentary<span class=\"tag-free\">Free<\/span><\/td>\n              <td class=\"bcast-paid\"><strong>SBS On Demand<\/strong> \u2014 free, register online, live stream and replay within hours<span class=\"tag-free\">Free<\/span><\/td>\n            <\/tr>\n\n            <!-- USA -->\n            <tr>\n              <td class=\"bcast-region\"><span class=\"bcast-flag\">\ud83c\uddfa\ud83c\uddf8<\/span>USA<\/td>\n              <td class=\"bcast-free\"><strong>NBC<\/strong> \u2014 Grand D\u00e9part and Paris finale only<span class=\"tag-highlight\">2 stages only<\/span><\/td>\n              <td class=\"bcast-paid\"><strong>Peacock Premium<\/strong> \u2014 live every stage ($10.99\/month or $109.99\/year)<span class=\"tag-paid\">Paid<\/span><\/td>\n            <\/tr>\n\n            <!-- Canada -->\n            <tr>\n              <td class=\"bcast-region\"><span class=\"bcast-flag\">\ud83c\udde8\ud83c\udde6<\/span>Canada<\/td>\n              <td class=\"bcast-none\">\u2014<\/td>\n              <td class=\"bcast-paid\"><strong>FloBikes \/ FloSports<\/strong> \u2014 live every stage (CAD $49.99\/month)<span class=\"tag-paid\">Paid<\/span><\/td>\n            <\/tr>\n\n            <!-- Germany -->\n            <tr>\n              <td class=\"bcast-region\"><span class=\"bcast-flag\">\ud83c\udde9\ud83c\uddea<\/span>Germany<\/td>\n              <td class=\"bcast-free\"><strong>ARD<\/strong> \u2014 select stages<span class=\"tag-highlight\">Select stages<\/span><\/td>\n              <td class=\"bcast-paid\">Eurosport<\/td>\n            <\/tr>\n\n            <!-- Belgium -->\n            <tr>\n              <td class=\"bcast-region\"><span class=\"bcast-flag\">\ud83c\udde7\ud83c\uddea<\/span>Belgium<\/td>\n              <td class=\"bcast-free\"><strong>RTBF \/ Sporza<\/strong> \u2014 free<span class=\"tag-free\">Free<\/span><\/td>\n              <td class=\"bcast-none\">\u2014<\/td>\n            <\/tr>\n\n            <!-- Italy -->\n            <tr>\n              <td class=\"bcast-region\"><span class=\"bcast-flag\">\ud83c\uddee\ud83c\uddf9<\/span>Italy<\/td>\n              <td class=\"bcast-free\"><strong>RAI Sport<\/strong> \u2014 free<span class=\"tag-free\">Free<\/span><\/td>\n              <td class=\"bcast-none\">\u2014<\/td>\n            <\/tr>\n\n            <!-- Spain -->\n            <tr>\n              <td class=\"bcast-region\"><span class=\"bcast-flag\">\ud83c\uddea\ud83c\uddf8<\/span>Spain<\/td>\n              <td class=\"bcast-free\"><strong>RTVE Play<\/strong> \u2014 free<span class=\"tag-free\">Free<\/span><\/td>\n              <td class=\"bcast-none\">\u2014<\/td>\n            <\/tr>\n\n            <!-- Netherlands -->\n            <tr>\n              <td class=\"bcast-region\"><span class=\"bcast-flag\">\ud83c\uddf3\ud83c\uddf1<\/span>Netherlands<\/td>\n              <td class=\"bcast-free\"><strong>NOS<\/strong> \u2014 free<span class=\"tag-free\">Free<\/span><\/td>\n              <td class=\"bcast-none\">\u2014<\/td>\n            <\/tr>\n\n            <!-- Rest of world -->\n            <tr>\n              <td class=\"bcast-region\">\ud83c\udf0d Rest of World<\/td>\n              <td class=\"bcast-free\"><strong>Eurosport<\/strong> \u2014 check local availability<\/td>\n              <td class=\"bcast-paid\">Discovery+ \/ Max in select markets<\/td>\n            <\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n\n      <p class=\"muted-note\">Free = no subscription required. <span class=\"tag-free\">Free<\/span> = full live coverage at no cost. <span class=\"tag-highlight\">Highlights\/Select<\/span> = partial free coverage. <span class=\"tag-paid\">Paid<\/span> = subscription required. Verify local listings closer to race day \u2014 schedules can shift.<\/p>\n\n      <div class=\"highlight-note\">\n        <strong>\ud83d\udd25 Best free coverage: Australia (SBS \u2014 all stages live). Best value: France (France TV \u2014 all stages). UK viewers lose ITV coverage in 2026 \u2014 TNT Sports\/HBO Max now the only live option at \u00a330.99\/month.<\/strong>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>UK note<\/strong>: ITV&#8217;s Tour de France coverage ended after the 2025 race. From 2026, TNT Sports and HBO Max hold exclusive UK rights under the Warner Bros. Discovery deal. There is no free full-stage coverage in the UK \u2014 Channel 5 shows only highlights. UK cycling fans using a VPN to access SBS On Demand (Australia) report this is the most practical free English-language option, though this falls under the viewer&#8217;s own responsibility to check the broadcaster&#8217;s terms. View our <a href=\"https:\/\/franceletour.com\/\">free full-stage coverage guide<\/a> for any region.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_84927f-02 .kt-block-spacer{height:48px;}.wp-block-kadence-spacer.kt-block-spacer-7595_84927f-02 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_84927f-02\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Spectator guide \u2014 watching Stage 14 in person<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Best viewing spots along the route<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Grand Ballon summit (km 36.6):<\/strong> The highest point in the Vosges at 1,424 metres. Panoramic views across the Rhine plain into Germany on a clear July day. Road access closes by mid-morning \u2014 arrive the evening before or very early. The atmosphere at the Grand Ballon tends to be festive rather than intense because it&#8217;s early in the stage and the race hasn&#8217;t exploded yet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ballon d&#8217;Alsace summit (km 94.4):<\/strong> The mountain that started everything in 1905. By the time the peloton crests it in 2026, the racing should have sharpened. Manageable crowds relative to the finish, accessible enough for spectators who don&#8217;t want to hike to the Haag.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Col du Haag forest section (km 149.4):<\/strong> The most interesting viewing experience on Stage 14. Fully shaded, forest atmosphere, irregular gradients that mean the riders are visibly suffering in ways that don&#8217;t appear on flat climbs. This is where Stage 14 is won or lost. Sections of the Haag have gradients above twelve percent \u2014 riders will be out of the saddle, burning everything. Get here the morning of the 18th. Once the access road closes, there&#8217;s no getting in.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Le Markstein finish area:<\/strong> The most logistically complex spot. The resort is fully closed to vehicles on race day. Access is on foot or by bicycle from Cernay or Guebwiller. The finish area fills several hours before the riders arrive. Take food and water; the vendor queues get long.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Road closures and access<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Progressive closures begin Wednesday 15 July on roads feeding the main summits. Grand Ballon, Ballon d&#8217;Alsace, Col du Haag, Col du Page, and Le Markstein summit are all closed on race day with parking restrictions in place. The race caravan passes roughly two hours before the riders. Roads reopen approximately one hour after the last rider crosses.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Access to individual climb summits varies. Check the Haut-Rhin departmental authority and ASO&#8217;s official site for stage-specific road closure maps, which are typically published in the week before the stage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Where to stay and how to get there<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Colmar<\/strong> (approximately 30 minutes from Le Markstein) and <strong>Mulhouse<\/strong> (approximately 45 minutes) are the two practical base options for accommodation. Both cities have rail connections and full hotel availability.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Parking for the finish:<\/strong> Cernay and Guebwiller are outside the closure zone and accessible to the Le Markstein finish area on foot or by bicycle. Both towns are in the Thur valley below the Vosges ridge. Local shuttle services sometimes operate on race day \u2014 confirm details with the Alsace Tourisme office closer to the date.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Public transport:<\/strong> The Saint-Amarin valley below the Vosges (served by TER rail from Mulhouse) is the most practical public-transport corridor for Stage 14 viewing, giving access to the lower slopes of several climbs.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_e2b7d9-8a .kt-block-spacer{height:50px;}.wp-block-kadence-spacer.kt-block-spacer-7595_e2b7d9-8a .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_e2b7d9-8a\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">The Vosges in Tour de France history<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Ballon d&#8217;Alsace&#8217;s 1905 appearance was not a stage designed around the mountain. It was a stage designed as a test of whether bicycles could survive the road at all. The Tour was four years old. Nobody was sure the peloton would make it over a col at all, let alone at race pace. Ren\u00e9 Pottier climbed it faster than anyone expected, and categorised mountain climbing became part of the race&#8217;s identity from that day forward.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Vosges range has appeared in the Tour intermittently since, always generating less pre-race attention than the Alps or Pyrenees and consistently punishing the teams that treated it that way. The 2023 Le Markstein stage was expected to be the week&#8217;s least significant mountain day. Vingegaard used it to confirm yellow. The 2026 edition has the same narrative setup. One significant difference: in 2023, Le Markstein was the final weekend of the race. In 2026, Stage 14 lands with a full week of Alps still to come, including the historic double Alpe d&#8217;Huez finish on Stages 19 and 20. If Stage 14 cracks someone, they have seven more days to survive.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_4262f2-a8 .kt-block-spacer{height:48px;}.wp-block-kadence-spacer.kt-block-spacer-7595_4262f2-a8 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_4262f2-a8\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Mulhouse and Alsace \u2014 what to eat, drink, and see around Stage 14<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Alsace is the most distinctive food culture in France, shaped by centuries of alternating French and German sovereignty that produced a cuisine unlike either. If you&#8217;re visiting for Stage 14 and have time before or after the race, this is what you eat here.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tarte flamb\u00e9e<\/strong> (Flammekueche in Alsatian): a thin-crust bread base spread with cr\u00e8me fra\u00eeche, onion, and lardons, baked at high heat. The Alsatian answer to pizza and genuinely better than most pizzas you&#8217;ve eaten. Order it the first evening.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Choucroute garnie<\/strong>: braised sauerkraut with various pork cuts \u2014 smoked sausage, ham knuckle, belly pork \u2014 served with potatoes. A winter dish by instinct but served year-round here. Heavy. Correct before a day of spectating in the mountains.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Munster cheese<\/strong>: the washed-rind cheese from the valley immediately adjacent to Stage 14&#8217;s route. It has a strong smell and a mild, creamy flavour that surprises most people who hesitate. The real version, AOC-labelled, is the one worth finding at the morning markets in Colmar or Munster town.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kougelhopf<\/strong>: a ring-shaped yeasted cake with almonds and raisins, glazed with icing sugar. The Alsatian morning pastry. Buy one from a boulangerie the morning of the race.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Alsatian wines<\/strong>: Riesling is the flagship \u2014 dry, precise, and mineral in a way that French Chardonnay doesn&#8217;t match. Gewurztraminer is aromatic and can be too sweet for food pairing, though it&#8217;s spectacular with the Munster cheese. Cr\u00e9mant d&#8217;Alsace is the sparkling wine and costs roughly a third of what Champagne does for a similar experience. The wine route (Route des Vins) runs along the eastern foothills of the Vosges, visible from some sections of Stage 14&#8217;s upper descent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Mulhouse specific:<\/strong> The Cit\u00e9 de l&#8217;Automobile is non-negotiable if you have three hours to spare. The Schlumpf Collection \u2014 400 vehicles including two Bugatti Royales and one of the finest collections of pre-war racing cars in the world \u2014 is displayed in a single enormous hall. The Cit\u00e9 du Train is directly adjacent and covers the history of French rail from steam to TGV.<\/p>\n\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-7595_59c194-63 .kt-block-spacer{height:48px;}.wp-block-kadence-spacer.kt-block-spacer-7595_59c194-63 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-7595_59c194-63\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><hr class=\"kt-divider\"\/><\/div><\/div>\n\n\n\n<style>\n.decathlon-faq-wrap {\n  max-width: 960px;\n  margin: 2rem auto;\n  font-family: 'DM Sans', sans-serif;\n}\n\n.decathlon-faq-card {\n  background: #f6fbee;\n  border-radius: 20px;\n  border: 1px solid rgba(99,153,34,0.25);\n  overflow: hidden;\n}\n\n.decathlon-faq-header {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  padding: 1.2rem 1.5rem 0.9rem;\n  border-bottom: 1px solid rgba(99,153,34,0.15);\n}\n\n.decathlon-faq-title {\n  font-family: 'Galibier', sans-serif !important;\n  font-size: 1.2rem !important;\n  font-weight: 700 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 1.5px !important;\n  color: #111 !important;\n  margin: 0 !important;\n  line-height: 1.2 !important;\n  padding: 0 !important;\n  border: none !important;\n  flex: 1;\n}\n\n.decathlon-faq-badge {\n  font-size: 0.65rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.8px;\n  background: #EAF3DE;\n  color: #27500A;\n  padding: 4px 10px;\n  border-radius: 12px;\n  border: 1px solid rgba(99,153,34,0.3);\n  white-space: nowrap;\n}\n\n.decathlon-faq-list {\n  padding: 0.8rem 1.5rem 1.5rem;\n  display: flex;\n  flex-direction: column;\n  gap: 0.55rem;\n}\n\n.decathlon-faq-item {\n  background: rgba(255,255,255,0.45);\n  border: 1px solid rgba(99,153,34,0.12);\n  border-radius: 12px;\n  overflow: hidden;\n  transition: background 0.2s ease, border-color 0.2s ease;\n}\n\n.decathlon-faq-item:hover {\n  background: rgba(255,255,255,0.7);\n  border-color: rgba(99,153,34,0.25);\n}\n\n.decathlon-faq-item.open {\n  background: rgba(255,255,255,0.7);\n  border-color: rgba(99,153,34,0.3);\n}\n\n.decathlon-faq-question {\n  width: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 1rem;\n  background: none;\n  border: none;\n  padding: 1rem 1.2rem;\n  cursor: pointer;\n  font-family: 'DM Sans', sans-serif;\n  font-size: 0.9rem;\n  font-weight: 600;\n  color: #111;\n  text-align: left;\n  line-height: 1.4;\n  transition: background 0.15s ease;\n}\n\n.decathlon-faq-question:hover {\n  background: rgba(234,243,222,0.35);\n}\n\n.decathlon-faq-question-text {\n  flex: 1;\n  min-width: 0;\n}\n\n.decathlon-faq-icon {\n  width: 22px;\n  height: 22px;\n  flex-shrink: 0;\n  transition: transform 0.25s ease;\n  stroke: #27500A;\n}\n\n.decathlon-faq-item.open .decathlon-faq-icon {\n  transform: rotate(45deg);\n}\n\n.decathlon-faq-answer {\n  max-height: 0;\n  overflow: hidden;\n  transition: max-height 0.4s ease, padding 0.4s ease;\n  padding: 0 1.2rem;\n  font-size: 0.85rem;\n  color: #1a1a1a;\n  line-height: 1.65;\n  background: rgba(255,255,255,0.2);\n  border-top: 1px solid transparent;\n}\n\n.decathlon-faq-item.open .decathlon-faq-answer {\n  max-height: 1200px;\n  padding: 0.9rem 1.2rem 1.1rem;\n  border-top-color: rgba(99,153,34,0.1);\n}\n\n.decathlon-faq-answer p {\n  margin: 0;\n}\n\n.decathlon-faq-answer strong {\n  color: #000;\n  font-weight: 600;\n}\n\n\/* FAQ category tags *\/\n.faq-cat-tag {\n  display: inline-block;\n  font-size: 0.6rem;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: 0.6px;\n  padding: 2px 8px;\n  border-radius: 8px;\n  margin-right: 6px;\n  white-space: nowrap;\n  vertical-align: middle;\n}\n\n.cat-stage { background: #EAF3DE; color: #27500A; }\n.cat-climb { background: #ffe0e0; color: #b71c1c; }\n.cat-timing { background: #e0ecff; color: #1a4d8f; }\n.cat-history { background: #fff3e0; color: #b85c00; }\n.cat-tactics { background: #f3e5f5; color: #7b1fa2; }\n.cat-practical { background: #e0f2f1; color: #00695c; }\n\n\/* Internal link styling *\/\n.faq-inline-link {\n  color: #27500A;\n  font-weight: 600;\n  text-decoration: underline;\n  text-underline-offset: 2px;\n  text-decoration-color: rgba(99,153,34,0.3);\n}\n\n.faq-inline-link:hover {\n  text-decoration-color: #27500A;\n}\n\n\/* Quick-nav pills *\/\n.faq-quick-nav {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 0.4rem;\n  margin-bottom: 1rem;\n}\n\n.faq-quick-pill {\n  font-size: 0.7rem;\n  font-weight: 600;\n  padding: 5px 12px;\n  border-radius: 20px;\n  border: 1px solid rgba(99,153,34,0.2);\n  background: #fff;\n  color: #27500A;\n  cursor: pointer;\n  transition: all 0.15s ease;\n  white-space: nowrap;\n}\n\n.faq-quick-pill:hover {\n  background: #EAF3DE;\n  border-color: rgba(99,153,34,0.4);\n}\n\n.faq-quick-pill.active {\n  background: #27500A;\n  color: #fff;\n  border-color: #27500A;\n}\n\n@media (max-width: 600px) {\n  .decathlon-faq-list {\n    padding: 0.6rem 1rem 1.2rem;\n    gap: 0.45rem;\n  }\n  .decathlon-faq-question {\n    padding: 0.85rem 1rem;\n    font-size: 0.85rem;\n  }\n  .decathlon-faq-answer {\n    padding: 0 1rem;\n    font-size: 0.8rem;\n  }\n  .decathlon-faq-item.open .decathlon-faq-answer {\n    padding: 0.75rem 1rem 0.95rem;\n  }\n  .faq-quick-nav {\n    gap: 0.3rem;\n  }\n  .faq-quick-pill {\n    font-size: 0.65rem;\n    padding: 4px 10px;\n  }\n}\n<\/style>\n\n<div class=\"decathlon-faq-wrap\">\n  <div class=\"decathlon-faq-card\">\n    \n    <div class=\"decathlon-faq-header\">\n      <h2 class=\"decathlon-faq-title\">FAQ \u2014 Tour de France 2026 Stage 14<\/h2>\n      <span class=\"decathlon-faq-badge\">Mulhouse \u2192 Le Markstein<\/span>\n    <\/div>\n\n    <div class=\"decathlon-faq-list\" id=\"stage14FaqAccordion\">\n\n      <!-- Quick-nav pills -->\n      <div class=\"faq-quick-nav\" id=\"faqQuickNav\">\n        <span class=\"faq-quick-pill active\" data-filter=\"all\">All<\/span>\n        <span class=\"faq-quick-pill\" data-filter=\"stage\">Stage Info<\/span>\n        <span class=\"faq-quick-pill\" data-filter=\"climb\">Climbs<\/span>\n        <span class=\"faq-quick-pill\" data-filter=\"timing\">Timing<\/span>\n        <span class=\"faq-quick-pill\" data-filter=\"history\">History<\/span>\n        <span class=\"faq-quick-pill\" data-filter=\"tactics\">Tactics<\/span>\n        <span class=\"faq-quick-pill\" data-filter=\"practical\">Practical<\/span>\n      <\/div>\n\n      <!-- Q1 open by default \u2014 Stage Info -->\n      <div class=\"decathlon-faq-item open\" data-category=\"stage\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"true\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-stage\">Stage<\/span> What is Stage 14 of the Tour de France 2026?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>Stage 14 of the Tour de France 2026 is a <strong>155.3 km mountain stage<\/strong> from Mulhouse to Le Markstein Fellering in the Vosges mountains of eastern France, scheduled for <strong>Saturday 18 July 2026<\/strong>. The stage features seven climbs and 3,800 metres of elevation gain. It is the Tour&#8217;s only Vosges mountain stage in the 2026 edition. The race start is 13:10 CEST with an estimated finish around 17:38\u201317:40 CEST.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q2 \u2014 Timing -->\n      <div class=\"decathlon-faq-item\" data-category=\"timing\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-timing\">Timing<\/span> When does Stage 14 start?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>Stage 14 starts at <strong>13:10 CEST<\/strong> (12:10 BST \/ 07:10 EDT \/ 21:10 AEST) on Saturday 18 July 2026. The estimated finish time is 17:38\u201317:40 CEST, though mountain stages can vary by up to fifteen minutes depending on race pace and weather conditions. ITV no longer holds UK broadcast rights; live coverage is on TNT Sports, while SBS in Australia is free. See the full world time zone table in the stage guide above.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q3 \u2014 Stage Info -->\n      <div class=\"decathlon-faq-item\" data-category=\"stage\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-stage\">Stage<\/span> How long is Stage 14?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>Stage 14 is <strong>155.3 kilometres<\/strong>. It is one of the shorter stages in the 2026 Tour, but the distance is deceptive \u2014 the stage packs seven climbs and 3,800 metres of elevation gain into 155 kilometres, producing one of the highest climbing-per-kilometre ratios of any day in the race. The stage is significantly more demanding than the distance suggests.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q4 \u2014 Climbs -->\n      <div class=\"decathlon-faq-item\" data-category=\"climb\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-climb\">Climbs<\/span> How much climbing is in Stage 14?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>Stage 14 includes <strong>3,800 metres of total elevation gain<\/strong> across seven climbs. Four of the seven are categorised by the Tour:<br><br>\n          \u2022 <strong>Grand Ballon<\/strong> (Cat 1) \u2014 21.5 km at 4.8%<br>\n          \u2022 <strong>Col du Page<\/strong> (Cat 2) \u2014 9.8 km at 4.7%<br>\n          \u2022 <strong>Ballon d&#8217;Alsace<\/strong> (Cat 1) \u2014 8.9 km at 6.9%<br>\n          \u2022 <strong>Col du Haag<\/strong> (Cat 1) \u2014 11.2 km at 7.3%<br><br>\n          The remaining three \u2014 <strong>Geishouse<\/strong>, <strong>Col du Schirm<\/strong>, and <strong>Col du Hundsruck<\/strong> \u2014 are uncategorised but contribute significantly to accumulated fatigue.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q5 \u2014 Climbs -->\n      <div class=\"decathlon-faq-item\" data-category=\"climb\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-climb\">Climbs<\/span> What is the Col du Haag?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>The Col du Haag is an <strong>11.2 km Category 1 climb<\/strong> in the Vosges mountains, averaging 7.3% with the final 1.6 kilometres at 10.3% and maximum ramps touching <strong>15%<\/strong>. It is a former forest path converted into a dedicated cycle route and sits at kilometre 149.4 of Stage 14, approximately six kilometres from the Le Markstein finish. It is the decisive climb of Stage 14 and the moment most likely to determine the stage winner.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q6 \u2014 History -->\n      <div class=\"decathlon-faq-item\" data-category=\"history\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-history\">History<\/span> Has the Tour de France ever climbed the Col du Haag before?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p><strong>No.<\/strong> Stage 14 of the 2026 Tour de France is the Col du Haag&#8217;s first ever appearance in the race. As a recently converted forest path, no major professional stage race has ridden this road in competition before. No GC team has power-file reference data from a previous Tour ascent. Tour director Christian Prudhomme described it as <strong>&#8220;one of the discoveries of the year&#8221;<\/strong> when the 2026 route was announced.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q7 \u2014 Tactics -->\n      <div class=\"decathlon-faq-item\" data-category=\"tactics\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-tactics\">Tactics<\/span> Why is Stage 14 a GC stage?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>Stage 14 is a GC stage because the <strong>Col du Haag<\/strong> \u2014 a Category 1 climb making its Tour debut at kilometre 149.4 \u2014 comes six kilometres before the Le Markstein finish line and has unpredictable irregular gradients that no team has professional race data for. The stage also falls between Stage 13 (the Tour&#8217;s longest day at 205 km) and Stage 15 (the steepest summit finish of the race), making the three-day sequence <strong>the defining GC weekend of Week 2<\/strong>. Riders who lose time in the Vosges have to recover those losses on even harder terrain.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q8 \u2014 Practical -->\n      <div class=\"decathlon-faq-item\" data-category=\"practical\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-practical\">Route<\/span> Where does Stage 14 start and finish?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p><strong>Start:<\/strong> Mulhouse, Alsace&#8217;s largest city in eastern France near the German and Swiss borders. Mulhouse is hosting the Tour de France for the 18th time. The stage departs at 13:10 CEST on Saturday 18 July 2026.<br><br>\n          <strong>Finish:<\/strong> Le Markstein Fellering, a ski resort at <strong>1,192 metres<\/strong> in the Vosges mountains, approximately 6 kilometres after the summit of the Col du Haag. Le Markstein previously hosted a Tour de France finish in 2023, when Tadej Poga\u010dar won a sprint from a select group and Jonas Vingegaard confirmed his overall victory. The 2026 approach is from the opposite side to 2023.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q9 \u2014 Climbs -->\n      <div class=\"decathlon-faq-item\" data-category=\"climb\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-climb\">Climbs<\/span> What is the Grand Ballon?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>The Grand Ballon is the <strong>highest point in the Vosges<\/strong> mountain range at 1,424 metres, and the first major climb of Stage 14. It is 21.5 kilometres long at a 4.8% average gradient, making it the second-longest climb in the 2026 Tour. A seven-kilometre plateau mid-climb reduces the average gradient; the final six kilometres steepen to approximately eight percent. The Grand Ballon is a Category 1 climb and appears at kilometre 36.6 of Stage 14.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q10 \u2014 History -->\n      <div class=\"decathlon-faq-item\" data-category=\"history\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-history\">History<\/span> What is the significance of the Ballon d&#8217;Alsace?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>The Ballon d&#8217;Alsace made its Tour de France debut in the <strong>1905 edition<\/strong> \u2014 making it the <strong>first ever categorised mountain climb in Tour de France history<\/strong>. In 2026, it makes its 29th Tour appearance. At 8.9 kilometres and 6.9% average gradient, it remains a genuine Category 1 effort. Stage 14 also features the Ballon d&#8217;Alsace on the day after Stage 13 uses the same climb, meaning riders will ascend it on <strong>consecutive days<\/strong>.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q11 \u2014 Tactics -->\n      <div class=\"decathlon-faq-item\" data-category=\"tactics\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-tactics\">Tactics<\/span> Why is Stage 14 harder than it looks on paper?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>Stage 14 looks manageable at 155 kilometres with no summit above 1,424 metres. In practice, <strong>seven climbs in 155 kilometres<\/strong> means the climbing-per-kilometre ratio is one of the highest in the 2026 Tour. Vosges climbing demands explosive four-to-eight-minute efforts rather than sustained alpine grinding, which suits different rider types than the Alps or Pyrenees. The stage also sits between Stage 13 (the Tour&#8217;s longest day) and Stage 15 (steepest summit finish), meaning <strong>fatigue compounds across the three-day sequence<\/strong>.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q12 \u2014 Practical -->\n      <div class=\"decathlon-faq-item\" data-category=\"practical\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-practical\">Spectating<\/span> What are the best viewing spots for Stage 14?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>The best viewing spots for Stage 14:<br><br>\n          \u2022 <strong>Grand Ballon summit<\/strong> \u2014 earliest action, panoramic views (arrive the evening before)<br>\n          \u2022 <strong>Ballon d&#8217;Alsace summit<\/strong> \u2014 historical setting, manageable crowds<br>\n          \u2022 <strong>Col du Haag forest section<\/strong> \u2014 the decisive climb, fully shaded, atmospheric<br><br>\n          The Le Markstein finish area requires arriving early on foot or by bicycle \u2014 vehicles are not permitted near the summit on race day.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q13 \u2014 Practical -->\n      <div class=\"decathlon-faq-item\" data-category=\"practical\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-practical\">Weather<\/span> What&#8217;s the weather like on the Vosges route in July?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>July temperatures in the Vosges typically range from <strong>20\u201328\u00b0C at valley level<\/strong> in Mulhouse, dropping to <strong>12\u201318\u00b0C at the summits<\/strong> of the Grand Ballon and Le Markstein. Afternoon thunderstorms are possible in the mountains, particularly in mid-July. The Col du Haag&#8217;s forest canopy provides shaded conditions throughout the climb \u2014 one of ASO&#8217;s deliberate design choices for 2026 in response to rising summer temperatures. Spectators at summit viewing spots should bring layers and rain gear regardless of valley conditions.<\/p>\n        <\/div>\n      <\/div>\n\n      <!-- Q14 \u2014 Stage Info -->\n      <div class=\"decathlon-faq-item\" data-category=\"stage\">\n        <button class=\"decathlon-faq-question\" aria-expanded=\"false\">\n          <span class=\"decathlon-faq-question-text\"><span class=\"faq-cat-tag cat-stage\">Coverage<\/span> How does France Le Tour cover Stage 14?<\/span>\n          <svg class=\"decathlon-faq-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/>\n          <\/svg>\n        <\/button>\n        <div class=\"decathlon-faq-answer\">\n          <p>France Le Tour delivers comprehensive, <strong>minute-by-minute coverage<\/strong> of Stage 14 \u2014 from the start in Mulhouse to the last km finish through the legendary climbs. Our live stats dashboard tracks every rider in real time, with split times, attack alerts, KOM and sprint updates, and interactive stage maps. We also provide live timeline commentary, post-stage analysis, and more, so you never miss a moment of the action.<\/p>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  const accordion = document.getElementById('stage14FaqAccordion');\n  if (!accordion) return;\n\n  \/\/ Accordion toggle\n  accordion.addEventListener('click', function(e) {\n    const button = e.target.closest('.decathlon-faq-question');\n    if (!button) return;\n\n    const currentItem = button.closest('.decathlon-faq-item');\n    const isOpen = currentItem.classList.contains('open');\n\n    \/\/ Close all items\n    accordion.querySelectorAll('.decathlon-faq-item').forEach(item => {\n      item.classList.remove('open');\n      item.querySelector('.decathlon-faq-question').setAttribute('aria-expanded', 'false');\n    });\n\n    \/\/ Open clicked item if it wasn't already open\n    if (!isOpen) {\n      currentItem.classList.add('open');\n      button.setAttribute('aria-expanded', 'true');\n    }\n  });\n\n  \/\/ Quick-nav filter pills\n  const pills = document.querySelectorAll('#faqQuickNav .faq-quick-pill');\n  const faqItems = accordion.querySelectorAll('.decathlon-faq-item');\n\n  pills.forEach(pill => {\n    pill.addEventListener('click', function(e) {\n      e.stopPropagation();\n      const filter = this.getAttribute('data-filter');\n\n      \/\/ Update active pill\n      pills.forEach(p => p.classList.remove('active'));\n      this.classList.add('active');\n\n      \/\/ Close all first\n      faqItems.forEach(item => {\n        item.classList.remove('open');\n        item.querySelector('.decathlon-faq-question').setAttribute('aria-expanded', 'false');\n      });\n\n      \/\/ Filter items\n      faqItems.forEach((item, index) => {\n        if (filter === 'all') {\n          item.style.display = '';\n        } else {\n          const cat = item.getAttribute('data-category');\n          item.style.display = (cat === filter) ? '' : 'none';\n        }\n      });\n\n      \/\/ Open first visible item\n      const firstVisible = accordion.querySelector('.decathlon-faq-item[style=\"\"]') || \n                           accordion.querySelector('.decathlon-faq-item:not([style*=\"display: none\"])');\n      if (firstVisible) {\n        firstVisible.classList.add('open');\n        firstVisible.querySelector('.decathlon-faq-question').setAttribute('aria-expanded', 'true');\n      }\n    });\n  });\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Tour de France 2026 Stage 14: Mulhouse to Le Markstein \u2014 The Vosges Trap Nobody Sees Coming Last Updated: 10:09 am CEST &#8211; Saturday,\u00a018 July 2026 Stage 14 of the Tour de France 2026 is a 155.3 km mountain stage from Mulhouse to Le Markstein Fellering in the Vosges mountains, scheduled for Saturday 18 July&#8230;<\/p>","protected":false},"author":1,"featured_media":8450,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[28],"tags":[],"class_list":["post-7595","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tour-de-france"],"taxonomy_info":{"category":[{"value":28,"label":"Tour de France"}]},"featured_image_src_large":["https:\/\/franceletour.com\/wp-content\/uploads\/2026\/07\/tour-de-france-2026-stage-14-1024x603.webp",1024,603,true],"author_info":{"display_name":"Gautier Durfort","author_link":"https:\/\/franceletour.com\/fr\/author\/gautier-durfort\/"},"comment_info":0,"category_info":[{"term_id":28,"name":"Tour de France","slug":"tour-de-france","term_group":0,"term_taxonomy_id":28,"taxonomy":"category","description":"Live the Tour de France cycling race. Get stage results, route maps, team insights, and historical highlights from every edition of Le Grand Boucle.","parent":0,"count":87,"filter":"raw","cat_ID":28,"category_count":87,"category_description":"Live the Tour de France cycling race. Get stage results, route maps, team insights, and historical highlights from every edition of Le Grand Boucle.","cat_name":"Tour de France","category_nicename":"tour-de-france","category_parent":0}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/franceletour.com\/fr\/wp-json\/wp\/v2\/posts\/7595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/franceletour.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/franceletour.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/franceletour.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/franceletour.com\/fr\/wp-json\/wp\/v2\/comments?post=7595"}],"version-history":[{"count":7,"href":"https:\/\/franceletour.com\/fr\/wp-json\/wp\/v2\/posts\/7595\/revisions"}],"predecessor-version":[{"id":8860,"href":"https:\/\/franceletour.com\/fr\/wp-json\/wp\/v2\/posts\/7595\/revisions\/8860"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/franceletour.com\/fr\/wp-json\/wp\/v2\/media\/8450"}],"wp:attachment":[{"href":"https:\/\/franceletour.com\/fr\/wp-json\/wp\/v2\/media?parent=7595"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/franceletour.com\/fr\/wp-json\/wp\/v2\/categories?post=7595"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/franceletour.com\/fr\/wp-json\/wp\/v2\/tags?post=7595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}