.elementor-kit-7{--e-global-color-primary:#00203A;--e-global-color-secondary:#BF2A52;--e-global-color-text:#1A2B3A;--e-global-color-accent:#41BF9B;--e-global-color-safran:#E7BB41;--e-global-color-peche:#F2D6A6;--e-global-color-fondclair:#FAF8F4;--e-global-typography-primary-font-family:"Righteous";--e-global-typography-primary-font-weight:400;--e-global-typography-secondary-font-family:"Poppins";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Poppins";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Poppins";--e-global-typography-accent-font-weight:700;color:#1A2B3A;font-family:"Poppins", Sans-serif;font-size:17px;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 h1{color:#00203A;font-family:"Righteous", Sans-serif;}.elementor-kit-7 h2{color:#00203A;font-family:"Righteous", Sans-serif;}.elementor-kit-7 h3{color:#00203A;font-family:"Righteous", Sans-serif;}.elementor-kit-7 h4{color:#00203A;font-family:"Poppins", Sans-serif;font-weight:700;}.elementor-kit-7 h5{color:#00203A;font-family:"Poppins", Sans-serif;font-weight:700;}.elementor-kit-7 h6{color:#00203A;font-family:"Poppins", Sans-serif;font-weight:700;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --bleu-oxford:#00203A; --font-titres:Righteous; --font-texte:Poppins; --rose-rouge:#BF2A52; --menthe:#41BF9B; --safran:#E7BB41; --peche:#F2D6A6; --fond-clair:#FAF8F4; }
/* Start custom CSS *//* La Vélocisterie — direction « La route » : styles communs à tout le site
   (Elementor > Réglages du site > CSS personnalisé) */
:root {
  --ox: #00203A; --rr: #BF2A52; --mt: #41BF9B; --sf: #E7BB41; --pc: #F2D6A6;
  --fc: #FAF8F4; --tx: #1A2B3A;
  --bar-h: 84px;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
}
@media (max-width: 767px) { :root { --bar-h: 140px; } }

/* surfaces du navigateur */
::selection { background: var(--sf); color: var(--ox); }
:focus-visible { outline: 3px solid var(--sf); outline-offset: 3px; }
html { scrollbar-color: var(--ox) var(--fc); scroll-padding-top: 24px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { padding-bottom: calc(var(--bar-h) + env(safe-area-inset-bottom, 0px)); }
a { text-underline-offset: .18em; text-decoration-thickness: 2px; }

/* en-tête : le menu passe dans la barre du bas, il ne reste que le logo */
.elementor-location-header .elementor-widget-nav-menu,
.elementor-location-header .elementor-widget-button,
.elementor-location-header .e-con:has(> .elementor-widget-button):not(:has(.elementor-widget-image)) { display: none !important; }
body.home .elementor-location-header { display: none; }

/* bandeau cookies au-dessus de la barre */
.cmplz-cookiebanner { bottom: calc(var(--bar-h) + 12px) !important; }

/* ---------- barre d'actions ---------- */
.vc-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990;
  min-height: var(--bar-h); padding: 0 24px env(safe-area-inset-bottom, 0px) 56px;
  display: flex; align-items: center; gap: 12px;
  background: var(--fc); color: var(--ox);
  box-shadow: 0 -8px 28px rgba(0, 32, 58, .14);
  font-family: Poppins, sans-serif;
}
.vc-bar::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px;
  background: linear-gradient(90deg, var(--rr) 0 25%, var(--mt) 25% 50%, var(--sf) 50% 75%, var(--pc) 75%);
}
.vc-status { flex: 1; display: flex; align-items: center; gap: 14px; min-width: 0; }
.vc-status .vc-line { flex: none; width: 40px; height: 0; border-top: 4px solid var(--ox); }
.vc-status[data-state="rdv"] .vc-line { border-top-style: dashed; }
.vc-status[data-state="closed"] .vc-line { height: 10px; border: 2px solid var(--ox); background: none; box-sizing: border-box; }
.vc-status b { font-family: Righteous, sans-serif; font-weight: 400; font-size: 22px; line-height: 1.1; white-space: nowrap; }
.vc-status small { font-size: 14px; color: var(--tx); white-space: nowrap; }
.vc-b {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 56px; padding: 0 26px; border: 3px solid transparent; border-radius: 0;
  font: 700 17px/1.1 Poppins, sans-serif; text-decoration: none; cursor: pointer;
  transition: transform .18s var(--ease-out), background-color .18s, color .18s;
}
@media (hover: hover) and (pointer: fine) { .vc-b:hover { transform: translateY(-2px); } }
.vc-b:active { transform: scale(.97); transition-duration: .16s; }
.vc-b-rdv { background: var(--rr); color: #fff; }
.vc-b-rdv:hover { background: #a82347; color: #fff; }
.vc-b-tel { background: var(--ox); color: #fff; }
.vc-b-tel:hover { background: #0b3356; color: #fff; }
.vc-b-go { background: transparent; color: var(--ox); border-color: var(--ox); }
.vc-b-go:hover { background: var(--ox); color: #fff; }
.vc-b-menu { background: var(--sf); color: var(--ox); }
.vc-b-menu:hover { background: #d9ab2f; }
.vc-b-menu svg { width: 24px; height: 16px; }
.vc-b-menu[aria-expanded="true"] { background: var(--ox); color: #fff; }

/* menu : la liste des étapes de la route */
.vc-menu {
  position: fixed; left: 0; right: 0; bottom: var(--bar-h); z-index: 9989;
  background: var(--ox); color: #fff; padding: 40px 56px 44px;
  box-shadow: 0 -16px 40px rgba(0, 32, 58, .3);
}
.vc-menu[hidden] { display: none; }
.vc-menu ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 40px; }
.vc-menu li { border-top: 3px solid rgba(242, 214, 166, .35); }
.vc-menu a { display: block; padding: 14px 0 10px; color: #fff; text-decoration: none; font: 400 30px/1.05 Righteous, sans-serif; }
.vc-menu a small { display: block; margin-top: 6px; font: 400 14px/1.3 Poppins, sans-serif; color: var(--pc); }
.vc-menu a:hover, .vc-menu a[aria-current="page"] { color: var(--sf); }
.vc-menu a:focus { outline: none; }
.vc-menu a:focus-visible { outline: 3px solid var(--sf); outline-offset: 4px; }
.vc-menu li:has(a:hover), .vc-menu li:has(a[aria-current="page"]) { border-top-color: var(--sf); }
@media (prefers-reduced-motion: no-preference) {
  .vc-menu:not([hidden]) { animation: vc-rise .38s var(--ease-out); }
}
@keyframes vc-rise { from { transform: translateY(16px); opacity: 0; } to { transform: none; opacity: 1; } }

@media (max-width: 1024px) {
  .vc-bar { padding-left: 24px; }
  .vc-key .k-open { display: none; }
  .vc-menu ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .vc-bar { flex-wrap: wrap; align-content: center; gap: 8px; padding: 12px 14px calc(10px + env(safe-area-inset-bottom, 0px)); }
  .vc-status { flex: 1 0 100%; gap: 10px; padding: 0 2px; }
  .vc-status b { font-size: 19px; }
  .vc-status .vc-line { width: 28px; }
  .vc-b { flex: 1 1 0; min-height: 56px; padding: 0 4px; font-size: 14px; text-align: center; }
  .vc-b-rdv { flex-grow: 1.4; }
  .vc-b-menu { flex-direction: column; gap: 4px; font-size: 13px; }
  .vc-menu { padding: 28px 20px 32px; max-height: calc(100svh - var(--bar-h) - 24px); overflow: auto; }
  .vc-menu ol { grid-template-columns: 1fr; gap: 0; }
  .vc-menu a { font-size: 26px; padding: 12px 0 10px; }
}

/* légende de la barre : le code des traits */
.vc-key { display: flex; align-items: center; gap: 16px; font-size: 14px; color: var(--tx); white-space: nowrap; }
.vc-key > span { display: inline-flex; align-items: center; gap: 7px; }
.vc-key i { display: inline-block; width: 26px; border-top: 3px solid var(--ox); }
.vc-key .k-rdv i { border-top-style: dashed; }
@media (max-width: 767px) {
  .vc-status { flex-wrap: wrap; row-gap: 4px; }
  .vc-key { margin-left: auto; font-size: 13px; }
}

@media (max-width: 1280px) { .vc-key .k-open { display: none; } }
@media (min-width: 768px) and (max-width: 1100px) { .vc-key { display: none; } }

/* liens dans les accroches sombres : jamais la couleur seule (contraste) */
body .vc-ilead a, body .vc-venir .elementor-widget-text-editor a { color: #fff !important; font-weight: 600; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .18em; }
body .vc-ilead a:hover, body .vc-venir .elementor-widget-text-editor a:hover { color: var(--sf) !important; }


/* La Vélocisterie — page d'accueil « La route » (CSS personnalisé de la page) */
body .vc-page .elementor-widget { margin: 0 !important; }
body .vc-page .elementor-widget:not(:last-child) { margin-block-end: 0 !important; }
body .vc-page .e-con { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --gap: 0; --row-gap: 0; --column-gap: 0; }

/* ---------- premier écran ---------- */
body .vc-hero.e-con {
  position: relative; display: block; overflow: hidden;
  min-height: max(calc(100svh - var(--bar-h)), 56.67vw);
  padding: 34px 56px 0; background: var(--ox); color: #fff;
}
body .vc-hero .vc-logo { position: relative; z-index: 2; }
body .vc-hero .vc-logo img { display: block; height: 40px; width: auto; }
body .vc-h1 { position: relative; z-index: 2; }
body .vc-h1 .elementor-heading-title {
  margin: clamp(40px, 5.6vw, 84px) 0 0; font-family: Righteous, sans-serif; font-weight: 400;
  font-size: clamp(56px, 8.2vw, 118px); line-height: .92; letter-spacing: -.01em; color: #fff;
}
body .vc-h1 .y { color: var(--sf); }
body .vc-h1 .p { color: var(--pc); }
body .vc-hero .vc-lead { position: relative; z-index: 2; max-width: min(480px, 33vw) !important; padding-top: clamp(28px, 4.4vw, 68px); }
body .vc-hero .vc-lead p { margin: 0; color: var(--pc); font-size: clamp(17px, 1.35vw, 20px); line-height: 1.55; }

body .vc-route { position: absolute !important; left: 0; right: 0; bottom: 0; z-index: 1; }
body .vc-route svg { display: block; width: 100%; height: auto; }
body .vc-route .m, body .vc-steps { display: none; }
body .vc-route .ln { stroke-dasharray: 1; stroke-dashoffset: 0; }
body .vc-route .t { font-family: Righteous, sans-serif; font-size: 26px; fill: #fff; }
body .vc-route .s { font-family: Poppins, sans-serif; font-size: 14px; fill: var(--pc); }
body .vc-route a .dot { fill: #fff; stroke: var(--ox); stroke-width: 5; transition: r .25s var(--ease-out), fill .25s; }
body .vc-route a:hover .dot, body .vc-route a:focus-visible .dot { fill: var(--sf); r: 15; }
body .vc-route a:hover .t, body .vc-route a:focus-visible .t { fill: var(--sf); }
body .vc-route a:focus-visible { outline: none; }
@media (prefers-reduced-motion: no-preference) {
  /* le tracé se dessine vite ; bornes, étiquettes et pointillé sont là d'emblée (ce sont des liens) */
  body .vc-route .ln { stroke-dashoffset: 1; animation: vc-draw .9s var(--ease-out) forwards; }
  body .vc-route .ln:nth-of-type(2) { animation-delay: .06s; }
  body .vc-route .ln:nth-of-type(3) { animation-delay: .12s; }
  body .vc-route .ln:nth-of-type(4) { animation-delay: .18s; }
  body .vc-route .bike { opacity: 0; animation: vc-ride .6s .5s var(--ease-out) forwards; }
}
@keyframes vc-draw { to { stroke-dashoffset: 0; } }
@keyframes vc-in { to { opacity: 1; } }
@keyframes vc-ride { from { opacity: 0; transform: translate(-60px, 40px); } to { opacity: 1; transform: none; } }

/* ---------- la route qui descend : rail + étapes ---------- */
body .vc-road.e-con { position: relative; display: block; }
body .vc-rail-w { position: absolute !important; top: 0; bottom: 0; left: 64px; width: 48px; z-index: 1; pointer-events: none; }
body .vc-rail-w > .elementor-widget-container, body .vc-rail { height: 100%; }
body .vc-rail { position: relative; }
body .vc-rail i { position: absolute; top: 0; bottom: 0; width: 7px; }
body .vc-rail .l0 { left: 0; width: 6px; background: repeating-linear-gradient(180deg, var(--ox) 0 28px, transparent 28px 40px); }
body .vc-rail .l1 { left: 10px; background: var(--rr); }
body .vc-rail .l2 { left: 20px; background: var(--pc); }
body .vc-rail .l3 { left: 30px; background: var(--sf); }
body .vc-rail .l4 { left: 40px; background: var(--mt); }
body .vc-rail .bike { position: sticky; top: calc(50svh - 40px); display: block; box-sizing: border-box; width: 76px !important; height: 76px !important; max-width: none !important; margin-left: -14px; padding: 14px 10px; object-fit: contain; border-radius: 50%; background: var(--ox); border: 3px solid #fff; box-shadow: 0 6px 16px rgba(0, 32, 58, .3); }

body .vc-sec.e-con { position: relative; display: block; padding: clamp(88px, 9vw, 136px) clamp(24px, 5vw, 80px) clamp(88px, 9vw, 136px) 200px; }
body .vc-choisir.e-con, body .vc-partager.e-con { background: var(--fc); color: var(--tx); }
body .vc-regler.e-con { background: var(--rr); color: #fff; }
body .vc-entretenir.e-con { background: var(--mt); color: var(--ox); }
body .vc-venir.e-con { background: var(--ox); color: #fff; }
body .vc-venir .vc-rail .l0 { background: repeating-linear-gradient(180deg, #fff 0 28px, transparent 28px 40px); }

body .vc-h2 .elementor-heading-title {
  position: relative; margin: 0; font-family: Righteous, sans-serif; font-weight: 400;
  font-size: clamp(54px, 7.4vw, 108px); line-height: .9; letter-spacing: -.01em; color: inherit;
}
body .vc-h2 .elementor-heading-title::before {
  content: ""; position: absolute; z-index: 2; left: -126px; top: .3em; width: 28px; height: 28px; border-radius: 50%;
  background: #fff; border: 5px solid var(--ox); box-sizing: border-box;
  transition: transform .4s var(--ease-out), background-color .4s;
}
body .vc-sec.is-here .vc-h2 .elementor-heading-title::before { transform: scale(1.3); background: var(--sf); }
body .vc-regler.is-here .vc-h2 .elementor-heading-title::before { background: #fff; border-color: var(--sf); }
body .vc-choisir .vc-h2 .elementor-heading-title, body .vc-partager .vc-h2 .elementor-heading-title { color: var(--ox); }
body .vc-regler .vc-h2 .elementor-heading-title, body .vc-venir .vc-h2 .elementor-heading-title { color: #fff; }
body .vc-entretenir .vc-h2 .elementor-heading-title { color: var(--ox); }

body .vc-lead2 { max-width: 34em !important; padding-top: 28px; }
body .vc-lead2 p { margin: 0; font-size: clamp(19px, 1.65vw, 24px); line-height: 1.45; }
body .vc-text { max-width: 38em !important; }
body .vc-text p { margin: 0 0 1em; font-size: 17px; line-height: 1.65; }
body .vc-text p:last-child { margin-bottom: 0; }

body .vc-h3 .elementor-heading-title { margin: 0; font-family: Righteous, sans-serif; font-weight: 400; font-size: clamp(32px, 3vw, 44px); line-height: 1; color: inherit; }

/* boutons de section */
body .vc-btn .elementor-button {
  display: inline-flex; align-items: center; min-height: 58px; padding: 0 30px; border-radius: 0;
  background: var(--rr); color: #fff; font: 700 17px/1.1 Poppins, sans-serif; fill: #fff;
  transition: transform .18s var(--ease-out), background-color .18s;
}
body .vc-btn .elementor-button:hover { background: #a82347; color: #fff; }
@media (hover: hover) and (pointer: fine) { body .vc-btn .elementor-button:hover { transform: translateY(-2px); } }
body .vc-btn .elementor-button:active { transform: scale(.97); transition-duration: .16s; }
body .vc-btn-ox .elementor-button { background: var(--ox); }
body .vc-btn-ox .elementor-button:hover { background: #0b3356; }
body .vc-btn-w .elementor-button { background: #fff; color: var(--rr); }
body .vc-btn-w .elementor-button:hover { background: var(--fc); color: #a82347; }
body .vc-link a { font-weight: 700; color: inherit; text-decoration: underline; }
body .vc-link a:hover { color: var(--rr); }
body .vc-regler .vc-link a:hover, body .vc-venir .vc-link a:hover { color: var(--sf); }
body .vc-actions.e-con { display: flex !important; flex-direction: row !important; justify-content: flex-start !important; align-items: center !important; flex-wrap: wrap; align-items: center; gap: 18px 28px; margin-top: 40px; }
body .vc-actions .vc-link p { margin: 0; font-size: 16px; }
body .vc-actions > .elementor-widget { width: auto !important; flex: none; }
body .vc-regler .vc-text { padding-top: 16px; }

/* Choisir : tout prêt / à la carte */
body .vc-split.e-con { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 0; margin-top: 64px; }
body .vc-col.e-con { display: flex; flex-direction: column; gap: 18px; }
body .vc-ready.e-con { padding: 28px 48px 0 0; border-top: 4px solid var(--ox); }
body .vc-carte.e-con { padding: 40px 44px 44px; background: var(--sf); color: var(--ox); }
body .vc-col .vc-text p { font-size: 17px; }
body .vc-col .vc-link p { margin: 6px 0 0; }
body .vc-col .vc-btn { padding-top: 10px; }

body .vc-brands-t { padding-top: 96px; }
body .vc-brands ul { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; }
body .vc-brands li { border-top: 2px solid var(--ox); }
body .vc-brands li:nth-last-child(-n+2) { border-bottom: 2px solid var(--ox); }
body .vc-brands a { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 0 14px; color: var(--ox); text-decoration: none; }
body .vc-brands a b { font: 400 clamp(26px, 2.4vw, 34px)/1 Righteous, sans-serif; }
body .vc-brands a span { font-size: 15px; text-align: right; color: var(--tx); }
body .vc-brands a:hover b { color: var(--rr); }
body .vc-brands a:hover { padding-left: 8px; transition: padding .25s var(--ease-out); }

/* Régler */
body .vc-regler .vc-lead2 p { color: #fff; }
body .vc-regler .vc-text p { color: #fff; }
body .vc-regler .vc-note p { margin: 0; font-size: 15px; color: #fff; opacity: .92; }

/* Entretenir : trois principes */
body .vc-rules ul { list-style: none; margin: 56px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
body .vc-rules li { border-top: 4px solid var(--ox); padding-top: 18px; font: 400 clamp(26px, 2.5vw, 36px)/1.05 Righteous, sans-serif; color: var(--ox); }
body .vc-entretenir .vc-text p, body .vc-entretenir .vc-lead2 p { color: var(--ox); }

/* Partager */
body .vc-partager .vc-quote .elementor-heading-title { margin: 28px 0 0; font: 400 clamp(32px, 3.4vw, 48px)/1.05 Righteous, sans-serif; color: var(--rr); }
body .vc-partager .vc-text { padding-top: 24px; }

/* Nous trouver */
body .vc-find.e-con { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; margin-top: 56px; }
body .vc-addr p { margin: 0 0 10px; font-size: 20px; line-height: 1.5; color: #fff; }
body .vc-addr a { color: #fff; }
body .vc-addr a:hover { color: var(--sf); }
body .vc-venir .vc-actions { margin-top: 28px; }
body .vc-hours dl { margin: 0; display: grid; grid-template-columns: 7.5em 1fr; row-gap: 14px; align-items: center; }
body .vc-hours dt { font: 400 22px/1 Righteous, sans-serif; color: #fff; }
body .vc-hours dd { margin: 0; display: flex; align-items: center; gap: 14px; font-size: 15px; color: var(--pc); }
body .vc-hours dd i { flex: none; height: 0; width: calc(var(--d, 1) * min(180px, 22vw)); border-top: 5px solid var(--sf); }
body .vc-hours dd i.rdv { border-top-style: dashed; border-top-color: #fff; }
body .vc-hours dd i.off { width: 40px; border-top: 0; height: 5px; background: linear-gradient(90deg, rgba(242,214,166,.5) 0 12px, transparent 12px 28px, rgba(242,214,166,.5) 28px); }
body .vc-hours .note p { margin: 18px 0 0; font-size: 14px; color: var(--pc); }
body .vc-loire p { margin: 56px 0 0; max-width: 46em !important; font-size: 15px; line-height: 1.6; color: var(--pc); }
body .vc-loire a { color: #fff; }

/* ---------- tablette ---------- */
@media (max-width: 1024px) {
  body .vc-sec.e-con { padding-left: 160px; }
  body .vc-rail-w { left: 44px; }
  body .vc-h2 .elementor-heading-title::before { left: -106px; }
  body .vc-split.e-con, body .vc-find.e-con { grid-template-columns: 1fr; gap: 40px; }
  body .vc-ready.e-con { padding-right: 0; }
}

/* ---------- téléphone ---------- */
@media (max-width: 767px) {
  body .vc-hero.e-con { padding: 22px 20px 0; min-height: max(calc(100svh - var(--bar-h)), 700px); }
  body .vc-hero .vc-logo img { height: 30px; }
  body .vc-h1 .elementor-heading-title { margin-top: 36px; font-size: clamp(44px, 14.6vw, 62px); }
  body .vc-hero .vc-lead { padding-top: 22px; max-width: none !important; }
  body .vc-hero .vc-lead p { font-size: 15px; }
  body .vc-route .d { display: none; }
  body .vc-route .m { display: block; }
  body .vc-route .t { font-size: 19px; }
  body .vc-steps { display: block; position: relative; z-index: 2; padding-top: 24px; }
  body .vc-steps ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
  body .vc-steps li { display: grid; grid-template-columns: 26px auto; column-gap: 12px; align-items: baseline; }
  body .vc-steps a { display: contents; color: #fff; text-decoration: none; }
  body .vc-steps b { grid-row: span 2; width: 26px; height: 26px; border-radius: 50%; background: #fff; color: var(--ox); font: 400 14px/26px Righteous, sans-serif; text-align: center; align-self: start; }
  body .vc-steps span { font: 400 21px/1 Righteous, sans-serif; color: #fff; }
  body .vc-steps small { font-size: 13px; line-height: 1.35; color: var(--pc); }

  body .vc-rail-w { left: 12px; width: 26px; }
  body .vc-rail i { width: 4px; }
  body .vc-rail .l0 { width: 3px; }
  body .vc-rail .l1 { left: 5px; }
  body .vc-rail .l2 { left: 11px; }
  body .vc-rail .l3 { left: 16px; }
  body .vc-rail .l4 { left: 21px; }
  body .vc-rail .bike { width: 44px !important; height: 44px !important; margin-left: -9px; padding: 8px 6px; border-width: 2px; }
  body .vc-sec.e-con { padding: 76px 20px 80px 56px; }
  body .vc-h2 .elementor-heading-title { font-size: clamp(46px, 14vw, 64px); }
  body .vc-h2 .elementor-heading-title::before { left: -44px; top: .22em; width: 22px; height: 22px; border-width: 4px; }
  body .vc-lead2 p { font-size: 18px; }
  body .vc-split.e-con { margin-top: 40px; gap: 32px; }
  body .vc-carte.e-con { padding: 28px 22px 30px; }
  body .vc-brands-t { padding-top: 64px; }
  body .vc-brands ul { grid-template-columns: 1fr; }
  body .vc-brands li:nth-last-child(2) { border-bottom: 0; }
  body .vc-brands a { flex-direction: column; gap: 4px; }
  body .vc-brands a span { text-align: left; }
  body .vc-rules ul { grid-template-columns: 1fr; gap: 20px; margin-top: 36px; }
  body .vc-addr p { font-size: 17px; }
  body .vc-hours dl { grid-template-columns: 5.6em 1fr; }
  body .vc-hours dt { font-size: 19px; }
  body .vc-actions.e-con { gap: 14px 20px; }
  body .vc-actions > .elementor-widget.vc-btn, body .vc-btn .elementor-button { width: 100% !important; justify-content: center; }
}

/* ---------- route : tronçon actif en couleur, les autres s'estompent ---------- */
body .vc-route .em { fill: var(--sf); font-weight: 700; }
body .vc-steps em { font-style: normal; font-weight: 700; color: var(--sf); }
body .vc-rail-w { z-index: auto !important; }
body .vc-rail i { z-index: 1; opacity: .35; }
body .vc-rail .bike { z-index: 4; }
body .vc-h2 .elementor-heading-title::before { z-index: 3; }
body .vc-sec.e-con::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: 64px; width: 48px; z-index: 2; pointer-events: none;
  background:
    repeating-linear-gradient(180deg, var(--ox) 0 28px, transparent 28px 40px) 0 0 / 6px 100% no-repeat,
    linear-gradient(var(--rr), var(--rr)) 10px 0 / 7px 100% no-repeat,
    linear-gradient(var(--pc), var(--pc)) 20px 0 / 7px 100% no-repeat,
    linear-gradient(var(--sf), var(--sf)) 30px 0 / 7px 100% no-repeat,
    linear-gradient(var(--mt), var(--mt)) 40px 0 / 7px 100% no-repeat;
  opacity: 0; transition: opacity .6s var(--ease-out);
}
body .vc-venir.e-con::after {
  background:
    repeating-linear-gradient(180deg, #fff 0 28px, transparent 28px 40px) 0 0 / 6px 100% no-repeat,
    linear-gradient(var(--rr), var(--rr)) 10px 0 / 7px 100% no-repeat,
    linear-gradient(var(--pc), var(--pc)) 20px 0 / 7px 100% no-repeat,
    linear-gradient(var(--sf), var(--sf)) 30px 0 / 7px 100% no-repeat,
    linear-gradient(var(--mt), var(--mt)) 40px 0 / 7px 100% no-repeat;
}
body .vc-sec.is-here::after { opacity: 1; }
@media (prefers-reduced-motion: reduce) { body .vc-sec.e-con::after { transition: none; } }

/* ---------- emplacements photo (shooting à venir) ---------- */
body .vc-photo { position: absolute !important; top: clamp(88px, 9vw, 136px); right: clamp(24px, 5vw, 80px); width: min(30vw, 440px) !important; z-index: 1; }
body .vc-photo figure {
  position: relative; margin: 0; aspect-ratio: 4 / 5; display: flex; align-items: flex-end;
  background: rgba(0, 32, 58, .09); border: 2px dashed rgba(0, 32, 58, .4);
}
body .vc-regler .vc-photo figure { background: rgba(0, 0, 0, .14); border-color: rgba(255, 255, 255, .55); }
body .vc-photo .ph-mark {
  position: absolute; left: 50%; top: 42%; width: 38%; aspect-ratio: 353 / 237; transform: translate(-50%, -50%); opacity: .35;
  background: currentColor;
  -webkit-mask: url(/wp-content/uploads/2026/07/LA-VELOCISTERIE_2023-logo_mini-noir.png) center / contain no-repeat;
          mask: url(/wp-content/uploads/2026/07/LA-VELOCISTERIE_2023-logo_mini-noir.png) center / contain no-repeat;
}
body .vc-photo figcaption { padding: 18px 20px; font-size: 14px; line-height: 1.4; }
body .vc-photo figcaption b { display: block; font: 400 20px/1.1 Righteous, sans-serif; margin-bottom: 4px; }
body .vc-sec.has-photo.e-con { min-height: calc(min(30vw, 440px) * 1.25 + 2 * clamp(88px, 9vw, 136px)); }
body .has-photo > .elementor-widget:not(.vc-photo), body .has-photo > .e-con { max-width: calc(100% - min(30vw, 440px) - 64px) !important; }

/* ---------- horaires : un seul signe « fermé » (trait creux) ---------- */
body .vc-hours dd i.off { width: 40px; height: 10px; border: 2px solid var(--pc); background: none; box-sizing: border-box; }

@media (max-width: 1180px) {
  body .vc-sec.has-photo.e-con { display: flex; flex-direction: column; }
  body .vc-photo { order: 99; position: relative !important; top: auto; right: auto; width: 100% !important; max-width: 560px !important; margin-top: 48px; }
  body .vc-photo figure { aspect-ratio: 4 / 3; }
  body .vc-sec.has-photo.e-con { min-height: 0; }
  body .has-photo > .elementor-widget:not(.vc-photo), body .has-photo > .e-con { max-width: none !important; }
}
@media (max-width: 1024px) {
  body .vc-sec.e-con::after { left: 44px; }
}
@media (max-width: 767px) {
  body .vc-sec.e-con::after {
    left: 12px; width: 26px;
    background:
      repeating-linear-gradient(180deg, var(--ox) 0 20px, transparent 20px 30px) 0 0 / 3px 100% no-repeat,
      linear-gradient(var(--rr), var(--rr)) 5px 0 / 4px 100% no-repeat,
      linear-gradient(var(--pc), var(--pc)) 11px 0 / 4px 100% no-repeat,
      linear-gradient(var(--sf), var(--sf)) 16px 0 / 4px 100% no-repeat,
      linear-gradient(var(--mt), var(--mt)) 21px 0 / 4px 100% no-repeat;
  }
  body .vc-venir.e-con::after {
    background:
      repeating-linear-gradient(180deg, #fff 0 20px, transparent 20px 30px) 0 0 / 3px 100% no-repeat,
      linear-gradient(var(--rr), var(--rr)) 5px 0 / 4px 100% no-repeat,
      linear-gradient(var(--pc), var(--pc)) 11px 0 / 4px 100% no-repeat,
      linear-gradient(var(--sf), var(--sf)) 16px 0 / 4px 100% no-repeat,
      linear-gradient(var(--mt), var(--mt)) 21px 0 / 4px 100% no-repeat;
  }
  body .vc-photo { margin-top: 36px; }
}

body .vc-photo figure { color: var(--ox); }
body .vc-regler .vc-photo figure { color: #fff; }
body .vc-photo figcaption { font-style: normal; }

/* ---------- revue 2 ---------- */
/* rail toujours en pleine couleur (l'estompage virait au gris sur rouge et bleu) ; la borne active s'allume */
body .vc-rail i { opacity: 1; }
body .vc-sec.e-con::after { display: none; }
body .vc-rules ul { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); column-gap: 40px; }
body .vc-photo figcaption, body .vc-photo figcaption b { color: inherit; }
body .vc-regler .vc-photo figcaption { color: #fff; }
body .vc-regler .vc-photo figure { background: rgba(0, 32, 58, .28); }
@media (max-width: 1180px) {
  body .vc-photo { margin-top: 0; padding-top: 48px; }
  body .vc-photo .ph-mark { width: 28%; top: 36%; }
}
@media (max-width: 767px) {
  body .vc-photo { padding-top: 40px; }
}

/* ---------- encart Valentin (photo temporaire, avant Choisir) ---------- */
body .vc-route .t, body .vc-route .s { paint-order: stroke; stroke: rgba(0, 32, 58, .85); stroke-width: 6px; stroke-linejoin: round; }
body .vc-qui.e-con { background: var(--ox); color: #fff; min-height: min(56vw, 760px); padding-right: calc(42% + 64px); }
body .vc-qui .vc-h2 .elementor-heading-title { color: #fff; }
body .vc-qui .vc-h2 .elementor-heading-title span { color: var(--sf); }
body .vc-qui .vc-lead2 p { color: #fff; }
body .vc-qui .vc-text { padding-top: 18px; }
body .vc-qui .vc-text p { color: var(--pc); }
body .vc-qui .vc-link a { color: #fff; }
body .vc-qui .vc-link a:hover { color: var(--sf); }
body .vc-qui-photo { position: absolute !important; top: 0; right: 0; bottom: 0; width: 42% !important; }
body .vc-qui-photo figure { margin: 0; height: 100%; }
body .vc-qui-photo img { display: block; width: 100%; height: 100% !important; max-width: none; object-fit: cover; object-position: 42% 24%; }
@media (max-width: 1024px) {
  body .vc-qui.e-con { min-height: 0; padding-right: clamp(24px, 5vw, 80px); display: flex; flex-direction: column; }
  body .vc-qui-photo { order: 99; position: relative !important; width: calc(100% + 24px) !important; max-width: none !important; padding-top: 44px; }
  body .vc-qui-photo figure { height: auto; aspect-ratio: 4 / 5; }
}
@media (max-width: 767px) {
  body .vc-qui-photo { width: calc(100% + 20px) !important; }
  body .vc-qui-photo figure { aspect-ratio: 1 / 1; }
}

/* ---------- une seule route : les voies du premier écran tournent et deviennent le rail ----------
   Le rail suit la même échelle que le tracé SVG (en cqw : largeur de la page, barre de défilement exclue, comme le SVG) pour se raccorder au pixel près.
   Ordinateur : voies de 12/1440, pas de 18/1440 ; téléphone : voies de 7/390, pas de 9/390. */
body .vc-page.vc-road { container-type: inline-size; }
@media (min-width: 768px) {
  body .vc-rail-w { left: 0 !important; width: 10cqw !important; }
  body .vc-rail i { width: .833cqw; }
  body .vc-rail .l0 { left: 3.403cqw; width: .833cqw; background: repeating-linear-gradient(180deg, #fff 0 2.78cqw, var(--ox) 2.78cqw 4.03cqw); }
  body .vc-rail .l1 { left: 4.653cqw; }
  body .vc-rail .l2 { left: 5.903cqw; }
  body .vc-rail .l3 { left: 7.153cqw; }
  body .vc-rail .l4 { left: 8.403cqw; }
  body .vc-rail .bike { margin-left: calc(6.32cqw - 38px); }
  body .vc-sec.e-con { padding-left: max(200px, 14cqw); }
  body .vc-h2 .elementor-heading-title::before { left: calc(3.82cqw - 14px - max(200px, 14cqw)); }
}
@media (max-width: 767px) {
  body .vc-rail-w { left: 0 !important; width: 14cqw !important; }
  body .vc-rail i { width: 1.795cqw; }
  body .vc-rail .l0 { left: 2.051cqw; width: 1.795cqw; background: repeating-linear-gradient(180deg, #fff 0 5.64cqw, var(--ox) 5.64cqw 8.2cqw); }
  body .vc-rail .l1 { left: 4.359cqw; }
  body .vc-rail .l2 { left: 6.667cqw; }
  body .vc-rail .l3 { left: 8.974cqw; }
  body .vc-rail .l4 { left: 11.282cqw; }
  body .vc-rail .bike { margin-left: calc(7.56cqw - 22px); }
  body .vc-sec.e-con { padding-left: calc(14cqw + 10px); }
  body .vc-h2 .elementor-heading-title::before { left: calc(2.95cqw - 11px - 14cqw - 10px); }
}

/* le grand titre et l'accroche ne doivent pas masquer les bornes cliquables du tracé */
body .vc-hero .vc-h1, body .vc-hero .vc-lead { pointer-events: none; }
body .vc-route a { pointer-events: auto; cursor: pointer; }

body .vc-hero .vc-logo { width: fit-content !important; }

/* l'enrobé : les voies roulent sur une bande Oxford comme au premier écran,
   pour qu'aucune voie ne disparaisse sur un champ de sa propre couleur */
body .vc-rail::before { content: ""; position: absolute; top: 0; bottom: 0; left: 2.986cqw; width: 6.667cqw; background: var(--ox); z-index: 1; }
@media (max-width: 767px) {
  body .vc-rail::before { left: 1.538cqw; width: 12.05cqw; }
}


/* La Vélocisterie — pages intérieures « La route » (chargé avec le CSS du site) */

/* toutes les pages ont désormais leur propre bandeau : l'en-tête du thème disparaît */
.elementor-location-header { display: none !important; }

/* ---------- bandeau d'en-tête : la route arrive par la droite et tourne dans le rail ---------- */
body .vc-ihero.e-con {
  position: relative; display: block; overflow: hidden;
  padding: 34px 56px calc(13.9vw + 56px); background: var(--ox); color: #fff;
}
body .vc-ihero .vc-logo { position: relative; z-index: 2; width: fit-content !important; }
body .vc-ihero .vc-logo img { display: block; height: 40px; width: auto; }
body .vc-ih1 .elementor-heading-title {
  margin: clamp(48px, 6vw, 88px) 0 0; max-width: 14em; font-family: Righteous, sans-serif; font-weight: 400;
  font-size: clamp(46px, 6.4vw, 96px); line-height: .94; letter-spacing: -.01em; color: #fff;
}
body .vc-ilead { max-width: 36em !important; padding-top: 28px; }
body .vc-ilead p { margin: 0; font-size: clamp(17px, 1.45vw, 21px); line-height: 1.55; color: var(--pc); }
body .vc-ilead strong { font-weight: 400; }
body .vc-iroute { position: absolute !important; left: 0; right: 0; bottom: 0; z-index: 1; pointer-events: none; }
body .vc-iroute svg { display: block; width: 100%; height: auto; }
body .vc-iroute .m { display: none; }
/* pas de tracé animé ici : ces bandeaux sont vus à chaque page, le dessin reste réservé à l'accueil */

/* ---------- sections : un champ de couleur par tronçon ---------- */
body .vc-f-creme.e-con { background: var(--fc); color: var(--tx); }
body .vc-f-mt.e-con { background: var(--mt); color: var(--ox); }
body .vc-f-sf.e-con { background: var(--sf); color: var(--ox); }
body .vc-f-pc.e-con { background: var(--pc); color: var(--ox); }
body .vc-f-rr.e-con { background: var(--rr); color: #fff; }
body .vc-f-ox.e-con { background: var(--ox); color: #fff; }
body .vc-f-creme .vc-h2 .elementor-heading-title, body .vc-f-mt .vc-h2 .elementor-heading-title,
body .vc-f-sf .vc-h2 .elementor-heading-title, body .vc-f-pc .vc-h2 .elementor-heading-title { color: var(--ox); }
body .vc-f-rr .vc-h2 .elementor-heading-title, body .vc-f-ox .vc-h2 .elementor-heading-title { color: #fff; }
body .vc-f-rr.is-here .vc-h2 .elementor-heading-title::before { background: #fff; border-color: var(--sf); }

/* pages intérieures : titres de section plus mesurés que l'accueil */
body .vc-sec.vc-inner.e-con { padding-top: clamp(72px, 7vw, 112px); padding-bottom: clamp(72px, 7vw, 112px); }
body .vc-inner .vc-h2 .elementor-heading-title { font-size: clamp(36px, 4.6vw, 68px); line-height: .95; }
body .vc-inner .vc-h2 .elementor-heading-title::before { top: .18em; }
body .vc-read .vc-h2 .elementor-heading-title { font-size: clamp(28px, 2.8vw, 40px); }
body .vc-read.vc-sec.e-con { padding-top: 56px; padding-bottom: 56px; }

/* texte courant converti depuis les pages existantes */
body .vc-prose { max-width: 40em !important; padding-top: 28px; }
body .vc-prose > *:first-child { margin-top: 0; }
body .vc-prose p, body .vc-prose li { font-size: 17px; line-height: 1.65; color: inherit; }
body .vc-prose p { margin: 0 0 1em; }
body .vc-prose p:last-child { margin-bottom: 0; }
body .vc-prose strong { font-weight: 700; }
body .vc-prose a { color: inherit; font-weight: 700; text-decoration: underline; }
body .vc-f-creme .vc-prose a:hover, body .vc-f-mt .vc-prose a:hover, body .vc-f-sf .vc-prose a:hover, body .vc-f-pc .vc-prose a:hover { color: var(--rr); }
body .vc-f-rr .vc-prose a:hover, body .vc-f-ox .vc-prose a:hover { color: var(--sf); }
body .vc-prose h3 { margin: 1.6em 0 .4em; font: 400 clamp(22px, 1.9vw, 28px)/1.1 Righteous, sans-serif; color: inherit; }
body .vc-prose h3:first-child { margin-top: 0; }
body .vc-prose ul, body .vc-prose ol { margin: 0 0 1em; padding: 0; list-style: none; }
body .vc-prose ul li { position: relative; padding-left: 26px; margin-bottom: .55em; }
body .vc-prose ul li::before { content: ""; position: absolute; left: 0; top: .62em; width: 12px; height: 4px; background: currentColor; }
body .vc-prose ol { counter-reset: vc; }
body .vc-prose ol li { counter-increment: vc; position: relative; padding-left: 44px; margin-bottom: .8em; }
body .vc-prose ol li::before { content: counter(vc); position: absolute; left: 0; top: .05em; width: 28px; height: 28px; border-radius: 50%; background: #fff; color: var(--ox); border: 3px solid var(--ox); box-sizing: border-box; font: 400 14px/22px Righteous, sans-serif; text-align: center; }
body .vc-prose .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; margin: 28px 0 0; }
body .vc-prose .wp-block-button__link, body .vc-prose a.vc-btn-l {
  display: inline-flex; align-items: center; min-height: 56px; padding: 0 28px; border-radius: 0;
  background: var(--rr); color: #fff !important; font: 700 17px/1.1 Poppins, sans-serif; text-decoration: none;
  transition: transform .18s var(--ease-out), background-color .18s;
}
body .vc-prose .wp-block-button__link:hover { background: #a82347; }
body .vc-f-rr .vc-prose .wp-block-button__link { background: #fff; color: var(--rr) !important; }
body .vc-prose .wp-block-button__link:active { transform: scale(.97); transition-duration: .16s; }
@media (hover: hover) and (pointer: fine) { body .vc-prose .wp-block-button__link:hover { transform: translateY(-2px); } }
body .vc-read .vc-prose { max-width: 44em !important; }
body .vc-read .vc-prose p, body .vc-read .vc-prose li { font-size: 16px; }

/* boutons de clôture */
body .vc-close .vc-actions.e-con { margin-top: 36px; }

/* ---------- Montage à la carte : le vélo du logo s'assemble au défilement ---------- */
body .vc-asm-grid.e-con { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; margin-top: 40px; }
body .vc-asm-stage { position: sticky !important; top: calc(50svh - min(19vw, 230px) - var(--bar-h) / 2); }
body .vc-asm-stage svg { display: block; width: 100%; height: auto; overflow: visible; }
body .vc-bike { --p: 1; }
body .vc-bike .pc {
  --q: clamp(0, (var(--p) - var(--a)) / (var(--b) - var(--a)), 1);
  transform-box: fill-box; transform-origin: center;
  transform: translate(calc(var(--dx) * (1 - var(--q)) * 1px), calc(var(--dy) * (1 - var(--q)) * 1px)) rotate(calc(var(--r) * (1 - var(--q)) * 1deg));
  opacity: calc(1 - clamp(0, (var(--p) - .92) / .08, 1));
}
body .vc-bike .logo { opacity: clamp(0, (var(--p) - .92) / .08, 1); }
body .vc-steps2 { display: grid; gap: 0; }
body .vc-step { min-height: 62svh; display: flex; flex-direction: column; justify-content: center; }
body .vc-step:last-child { min-height: 46svh; }
body .vc-step b { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #fff; border: 3px solid var(--ox); box-sizing: border-box; font: 400 16px/1 Righteous, sans-serif; color: var(--ox); transition: background-color .3s var(--ease-out), transform .3s var(--ease-out); }
body .vc-step.on b { background: var(--sf); transform: scale(1.15); }
body .vc-step h3 { margin: 14px 0 10px; font: 400 clamp(30px, 3vw, 44px)/1 Righteous, sans-serif; color: var(--ox); }
body .vc-step p { margin: 0; max-width: 30em; font-size: 18px; line-height: 1.6; color: var(--ox); }
body .vc-step p a { color: var(--ox); font-weight: 700; }

/* ---------- tablette et téléphone ---------- */
@media (max-width: 1024px) {
  body .vc-asm-grid.e-con { grid-template-columns: 1fr; }
  body .vc-asm-stage { top: 0; z-index: 2; background: var(--mt); padding: 16px 24px 16px 0; margin: 0 -24px 0 0; }
  body .vc-asm-stage svg { max-width: 420px; margin: 0 auto; }
  body .vc-step { min-height: 52svh; }
}
@media (max-width: 767px) {
  body .vc-ihero.e-con { padding: 22px 20px calc(28.2vw + 40px); }
  body .vc-ihero .vc-logo img { height: 30px; }
  body .vc-ih1 .elementor-heading-title { margin-top: 40px; font-size: clamp(38px, 11vw, 52px); }
  body .vc-ilead p { font-size: 16px; }
  body .vc-iroute .d { display: none; }
  body .vc-iroute .m { display: block; }
  body .vc-inner .vc-h2 .elementor-heading-title { font-size: clamp(30px, 9vw, 42px); }
  body .vc-read .vc-h2 .elementor-heading-title { font-size: 26px; }
  body .vc-prose p, body .vc-prose li { font-size: 16px; }
  body .vc-prose .wp-block-button, body .vc-prose .wp-block-button__link { width: 100%; justify-content: center; }
  body .vc-asm-stage { margin: 0 -20px 0 0; padding: 12px 20px 12px 0; }
  body .vc-asm-stage svg { max-width: 260px; }
  body .vc-step p { font-size: 16px; }
}

/* le texte courant prend la couleur du champ (Elementor impose sinon sa couleur de texte globale) */
body .vc-sec .vc-prose, body .vc-sec .vc-prose p, body .vc-sec .vc-prose li { color: inherit !important; }
body .vc-f-rr .vc-prose, body .vc-f-ox .vc-prose { color: #fff !important; }
body .vc-f-ox .vc-prose p { color: var(--pc) !important; }

/* ---------- marques : logos en masque, dans la couleur du texte du champ ---------- */
body .vc-mark { display: block; width: auto; aspect-ratio: var(--r, 4); max-width: min(100%, 220px); height: 48px; background: currentColor; -webkit-mask: var(--logo) left center / contain no-repeat; mask: var(--logo) left center / contain no-repeat; }
body .vc-mark.is-empty { background: none; -webkit-mask: none; mask: none; }
body .vc-brandlist { padding-top: 12px; }
body .vc-mlist { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); column-gap: 40px; }
body .vc-mlist li { border-top: 2px solid currentColor; }
body .vc-mlist li > a, body .vc-mlist li > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 22px 0 24px; color: inherit; text-decoration: none; }
body .vc-mlist .vc-mark { margin-bottom: 10px; max-width: min(100%, 220px); }
body .vc-mlist b { font: 400 22px/1.1 Righteous, sans-serif; }
body .vc-mlist span { font-size: 15px; line-height: 1.45; }
body .vc-mlist em { font-style: normal; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
body .vc-f-creme .vc-mlist a:hover, body .vc-f-mt .vc-mlist a:hover, body .vc-f-sf .vc-mlist a:hover, body .vc-f-pc .vc-mlist a:hover { color: var(--rr); }
body .vc-f-rr .vc-mlist a:hover, body .vc-f-ox .vc-mlist a:hover { color: var(--sf); }
body .vc-mlist a:focus-visible { outline: 3px solid var(--rr); outline-offset: 4px; }
body .vc-ibrand { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; padding-top: 36px; }
body .vc-ibrand .vc-mark { max-width: min(60vw, 240px); height: 56px; color: #fff; }
body .vc-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
body .vc-tag { display: inline-flex; align-items: center; min-height: 48px; padding: 0 16px; border: 2px solid var(--pc); color: var(--pc); font: 600 15px/1 Poppins, sans-serif; text-decoration: none; }
body a.vc-tag:hover { background: var(--pc); color: var(--ox); }
body a.vc-tag:focus-visible { outline: 3px solid var(--sf); outline-offset: 3px; }
@media (max-width: 767px) {
  body .vc-mlist { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
  body .vc-mlist li { min-width: 0; }
  body .vc-mark { height: 36px; }
  body .vc-mlist b { font-size: 19px; }
  body .vc-mlist span { font-size: 14px; }
  body .vc-ibrand .vc-mark { height: 44px; }
}

/* bandeau d’une page de service : l’action principale, pas une étiquette */
body a.vc-tag.vc-tag-cta { min-height: 56px; padding: 0 28px; border-color: var(--rr); background: var(--rr); color: #fff; font-weight: 700; font-size: 17px; }
body a.vc-tag.vc-tag-cta:hover { background: #a82347; border-color: #a82347; color: #fff; }

/* === Barre RDV : version compacte smartphone (oct. 2026) === */
@media (max-width: 767px) {
  :root { --bar-h: 92px; }
  .vc-bar { gap: 5px; padding: 8px 10px calc(6px + env(safe-area-inset-bottom, 0px)); }
  .vc-status { gap: 6px; }
  .vc-status b { font-size: 14px; }
  .vc-status .vc-line { width: 18px; }
  .vc-b { min-height: 40px; font-size: 12.5px; }
  .vc-b-menu { flex-direction: row; gap: 6px; font-size: 12.5px; }
}

/* === Photos réelles dans les blocs vc-photo : on retire le style placeholder === */
body .vc-photo figure:has(img) { border: 0; background: none; overflow: hidden; }
body .vc-photo figure img { display: block; }/* End custom CSS */