/* =====================================================================
   Bien en Dordogne Core — carte d'itinéraire [bdc_itineraire]
   Chargé uniquement sur les contenus qui portent le shortcode.
   Tokens --bdc-* : front.css. Sélecteurs sous #page-container .entry-content
   quand il faut battre Divi (#left-area ul, h2 d'article…).
   ===================================================================== */

.bdc-iti {
  --iti-creme: #F7F2E8;
  --iti-fond: #EFE8DA;
  --iti-trace: #8A6426;
  --iti-eau: #8DB0C0;
  font-family: var(--bdc-font);
  color: var(--bdc-encre);
  margin: 48px 0;
  padding: clamp(18px, 3vw, 32px);
  border-radius: var(--bdc-r-big);
  background: #fff;
  box-shadow: var(--bdc-shadow);
  scroll-margin-top: calc(var(--bdc-header) + 16px);
}
.bdc-iti *, .bdc-iti *::before, .bdc-iti *::after { box-sizing: border-box; }
#page-container .entry-content .bdc-iti :is(ul, ol) { list-style: none; margin: 0; padding: 0; line-height: inherit; }
#page-container .entry-content .bdc-iti li { margin: 0; padding: 0; }
#page-container .entry-content .bdc-iti li::marker { content: none; }
#page-container .entry-content .bdc-iti p { margin: 0; padding: 0; }
#page-container .entry-content .bdc-iti a { text-decoration: none; }
.bdc-iti button { font: inherit; color: inherit; cursor: pointer; }
.bdc-iti :focus-visible { outline: 2px solid var(--bdc-ocre); outline-offset: 3px; }

/* ============ EN-TÊTE ============ */
.bdc-iti__eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: .74rem; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; color: var(--bdc-ocre-fonce); }
#page-container .entry-content .bdc-iti__title { margin: 8px 0 4px; padding: 0; font-family: var(--bdc-font); font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 600; line-height: 1.15; letter-spacing: -.01em; color: var(--bdc-encre); }
#page-container .entry-content .bdc-iti__title::before { content: none; display: none; } /* filet des h2 d'article : doublon avec le sur-titre */
.bdc-iti__title em { font-style: normal; color: var(--bdc-ocre-fonce); }
#page-container .entry-content .bdc-iti__sens { font-size: .95rem; color: var(--bdc-encre-2); }
.bdc-iti__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(124px, 1fr)); gap: 8px; margin-top: 20px !important; }
.bdc-iti__facts li { display: flex; align-items: flex-start; gap: 8px; padding: 12px !important; border-radius: 16px; background: var(--iti-creme); font-size: .92rem; font-weight: 560; line-height: 1.3; }
.bdc-iti__facts .bdc-i { color: var(--bdc-ocre-fonce); margin-top: 2px; }
.bdc-iti__facts small { display: block; font-size: .68rem; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; color: var(--bdc-encre-3); margin-bottom: 2px; }

/* ============ CARTE ============ */
.bdc-iti__stage { position: relative; margin-top: 24px; }
.bdc-iti__map { position: relative; height: clamp(380px, 62vh, 560px); border-radius: 22px; overflow: hidden; background: var(--iti-fond); isolation: isolate; }
.bdc-iti__map.leaflet-container { font-family: var(--bdc-font); background: var(--iti-fond); }
.bdc-iti__stage[data-fond="ortho"] .bdc-iti__map { background: #3a4136; }
.bdc-iti__loading { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; text-align: center; color: var(--bdc-encre-2); font-size: .95rem; }
/* Grain de papier léger sur le fond maison */
.bdc-iti__stage:not([data-fond="plan"]):not([data-fond="ortho"]) .bdc-iti__map::after {
  content: ""; position: absolute; inset: 0; z-index: 390; pointer-events: none; opacity: .5;
  background: radial-gradient(120% 90% at 30% 20%, rgba(255,255,255,.55), transparent 60%), radial-gradient(90% 80% at 85% 90%, rgba(201,150,75,.10), transparent 60%);
}

.bdc-iti__tools { position: absolute; z-index: 800; top: 12px; left: 12px; right: 12px; display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; pointer-events: none; }
.bdc-iti__tools > * { pointer-events: auto; }
.bdc-iti__fonds { display: inline-flex; padding: 4px; border-radius: 999px; background: rgba(255,255,255,.94); box-shadow: 0 6px 20px -8px rgba(28,27,23,.35); backdrop-filter: blur(6px); }
.bdc-iti__fonds button { border: 0; background: none; padding: 8px 14px; border-radius: 999px; font-size: .82rem; font-weight: 600; color: var(--bdc-encre-2); transition: background .2s, color .2s; white-space: nowrap; }
.bdc-iti__fonds button[aria-pressed="true"] { background: var(--bdc-nuit); color: #fff; }
.bdc-iti__acts { display: flex; gap: 6px; }
.bdc-iti__btn { display: inline-flex; align-items: center; gap: 6px; border: 0; padding: 9px 13px; border-radius: 999px; background: rgba(255,255,255,.94); box-shadow: 0 6px 20px -8px rgba(28,27,23,.35); font-size: .82rem; font-weight: 600; backdrop-filter: blur(6px); }
.bdc-iti__btn:hover { background: #fff; }
.bdc-iti__btn.is-busy .bdc-i { animation: bdc-iti-spin 1s linear infinite; }
@keyframes bdc-iti-spin { to { transform: rotate(360deg); } }
#page-container .entry-content .bdc-iti__rgpd { position: absolute; z-index: 800; left: 12px; bottom: 12px; max-width: calc(100% - 24px); padding: 6px 10px; border-radius: 10px; background: rgba(255,255,255,.92); font-size: .72rem; line-height: 1.35; color: var(--bdc-encre-2); }

/* Leaflet : zoom au style maison, en bas à droite (les outils occupent le haut). */
.bdc-iti .leaflet-top.leaflet-left { top: auto; bottom: 12px; left: auto; right: 12px; }
.bdc-iti .leaflet-control-zoom { border: 0 !important; border-radius: 14px !important; overflow: hidden; box-shadow: 0 6px 20px -8px rgba(28,27,23,.35) !important; margin: 0 !important; }
.bdc-iti .leaflet-control-zoom a { width: 38px; height: 38px; line-height: 36px; font-size: 20px; color: var(--bdc-encre); border-color: var(--bdc-filet); }
.bdc-iti .leaflet-control-zoom a:hover { background: var(--iti-creme); }
.bdc-iti .bdc-iti-hit { cursor: crosshair; }

/* Libellés du fond maison : point centré sur le lieu, texte décalé selon l'ancre (n, s, e, w). */
.bdc-iti-lieu { width: 0 !important; height: 0 !important; }
.bdc-iti-lieu i { position: absolute; left: -3px; top: -3px; width: 6px; height: 6px; border-radius: 50%; background: #9a9283; }
.bdc-iti-lieu span { position: absolute; white-space: nowrap; font: 600 11px/1 var(--bdc-font); color: #6b6559; letter-spacing: .02em; text-shadow: 0 0 3px var(--iti-fond), 0 0 3px var(--iti-fond), 0 0 6px var(--iti-fond); }
.bdc-iti-lieu.a-s span { top: 8px; left: 0; transform: translateX(-50%); }
.bdc-iti-lieu.a-n span { bottom: 8px; left: 0; transform: translateX(-50%); }
.bdc-iti-lieu.a-e span { left: 9px; top: 0; transform: translateY(-50%); }
.bdc-iti-lieu.a-w span { right: 9px; top: 0; transform: translateY(-50%); }
.bdc-iti-lieu.r1 i { left: -4.5px; top: -4.5px; width: 9px; height: 9px; background: var(--bdc-nuit); box-shadow: 0 0 0 2px #fff; }
.bdc-iti-lieu.r1 span { font-size: 13.5px; font-weight: 700; color: var(--bdc-encre); letter-spacing: .01em; }
.bdc-iti-lieu.r1.a-s span { top: 22px; }
.bdc-iti-lieu.r1.a-n span { bottom: 22px; }
.bdc-iti-lieu.r1.a-e span { left: 20px; }
.bdc-iti-lieu.r1.a-w span { right: 20px; }
.bdc-iti__map.is-dense .bdc-iti-lieu.r2 { display: none; }
.bdc-iti-rivlab span { display: block; transform: translate(-50%, -140%); white-space: nowrap; font: italic 500 12px/1 var(--bdc-font); color: #4f7d92; text-shadow: 0 0 3px var(--iti-fond), 0 0 5px var(--iti-fond); }

/* Marqueurs d'étapes */
.bdc-iti-mk span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--bdc-ocre); color: var(--bdc-nuit); border: 3px solid #fff; font: 700 13px/1 var(--bdc-font); box-shadow: 0 4px 12px -2px rgba(28,27,23,.45); transition: transform .2s var(--bdc-ease); }
.bdc-iti-mk:hover span, .bdc-iti-mk:focus span { transform: scale(1.15); }
.bdc-iti-mk.is-depart span, .bdc-iti-mk.is-arrivee span { background: var(--bdc-nuit); color: var(--bdc-ocre-clair); }
.bdc-iti-mk.is-off span { width: 24px; height: 24px; margin: 3px; background: #fff; border: 2px solid var(--bdc-nuit); }
.bdc-iti-mk.is-off span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--bdc-nuit); }

/* Info-bulle des variantes */
.bdc-iti-tip { font: 600 .8rem/1.3 var(--bdc-font); color: var(--bdc-encre); border: 0; border-radius: 10px; box-shadow: 0 8px 22px -10px rgba(28,27,23,.45); }

/* Bulle */
.bdc-iti-popup .leaflet-popup-content-wrapper { border-radius: 18px; box-shadow: 0 18px 40px -16px rgba(28,27,23,.45); }
.bdc-iti-popup .leaflet-popup-content { margin: 16px 18px; font-family: var(--bdc-font); }
.bdc-iti-pop p { margin: 0 !important; padding: 0 !important; }
.bdc-iti-pop .k { font-size: .68rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; color: var(--bdc-ocre-fonce); }
.bdc-iti-pop .t { font-size: 1rem; font-weight: 650; line-height: 1.25; margin: 4px 0 6px !important; color: var(--bdc-encre); }
.bdc-iti-pop .x { font-size: .86rem; line-height: 1.5; color: var(--bdc-encre-2); }
.bdc-iti-pop .u { display: inline-block; margin-top: 8px; font-size: .84rem; font-weight: 650; color: var(--bdc-ocre-fonce) !important; }

/* Plein écran (classe, compatible iOS) */
.bdc-iti__stage.is-full { position: fixed; inset: 0; z-index: 100000; margin: 0; background: var(--iti-fond); }
.bdc-iti__stage.is-full .bdc-iti__map { height: 100%; border-radius: 0; }
.bdc-iti__stage.is-full .bdc-iti__tools { top: max(12px, env(safe-area-inset-top)); }
html.bdc-iti-lock, html.bdc-iti-lock body { overflow: hidden; }

/* ============ PROFIL ============ */
.bdc-iti__profil { margin: 24px 0 0; padding: 18px 18px 10px; border-radius: 22px; background: var(--iti-creme); }
.bdc-iti__profil figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; margin-bottom: 12px; font-size: .74rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; color: var(--bdc-encre-2); }
.bdc-iti__read { font-weight: 520; letter-spacing: 0; text-transform: none; font-size: .84rem; color: var(--bdc-encre-3); }
.bdc-iti__prof { display: grid; grid-template-columns: 46px 1fr; grid-template-rows: auto auto; }
.bdc-iti__ylab { position: relative; }
.bdc-iti__ylab span { position: absolute; right: 8px; white-space: nowrap; transform: translateY(-50%); font-size: .7rem; color: var(--bdc-encre-3); font-variant-numeric: tabular-nums; }
.bdc-iti__plot { position: relative; height: 170px; touch-action: pan-y; cursor: crosshair; }
.bdc-iti__svg { display: block; width: 100%; height: 100%; overflow: visible; }
.bdc-iti__svg .g line { stroke: rgba(28,27,23,.09); stroke-width: 1; vector-effect: non-scaling-stroke; }
.bdc-iti__svg .st line { stroke: rgba(138,100,38,.35); stroke-width: 1; stroke-dasharray: 3 4; vector-effect: non-scaling-stroke; }
.bdc-iti__svg .a { fill: url(#bdc-iti-grad); }
.bdc-iti__svg .l { fill: none; stroke: var(--iti-trace); stroke-width: 2.5; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.bdc-iti__pins span { position: absolute; top: -8px; transform: translateX(-50%); display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--bdc-ocre); color: var(--bdc-nuit); border: 2px solid var(--iti-creme); font: 700 10px/1 var(--bdc-font); }
.bdc-iti__xlab { grid-column: 2; position: relative; height: 22px; }
.bdc-iti__xlab span { position: absolute; top: 6px; transform: translateX(-50%); font-size: .7rem; color: var(--bdc-encre-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.bdc-iti__xlab span:first-child { transform: none; }
.bdc-iti__cur { position: absolute; top: 0; bottom: 0; width: 0; pointer-events: none; border-left: 1.5px solid var(--bdc-nuit); }
.bdc-iti__cur[hidden] { display: none; }
.bdc-iti__cur i { position: absolute; left: -6.75px; width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; background: var(--bdc-nuit); border: 2px solid #fff; }
.bdc-iti__cur b { position: absolute; top: 14px; left: 8px; padding: 4px 8px; border-radius: 8px; background: var(--bdc-nuit); color: #fff; font-size: .74rem; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bdc-iti__cur.is-end b { left: auto; right: 8px; }

/* ============ ÉTAPES ============ */
.bdc-iti__etapes { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; margin-top: 24px !important; counter-reset: none; }
.bdc-iti__et { position: relative; padding: 14px 16px 16px !important; border-radius: 18px; border: 1px solid var(--bdc-filet); background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s var(--bdc-ease); }
.bdc-iti__et.is-on { border-color: var(--bdc-ocre); box-shadow: 0 10px 26px -14px rgba(138,100,38,.55); }
.bdc-iti__et.is-off { background: var(--iti-creme); border-style: dashed; }
.bdc-iti__go { display: grid; grid-template-columns: 30px 1fr; column-gap: 12px; align-items: center; width: 100%; padding: 0; border: 0; background: none; text-align: left; }
.bdc-iti__num { grid-row: span 2; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--bdc-ocre); color: var(--bdc-nuit); font-weight: 700; font-size: .85rem; }
.bdc-iti__et.is-depart .bdc-iti__num, .bdc-iti__et.is-arrivee .bdc-iti__num { background: var(--bdc-nuit); color: var(--bdc-ocre-clair); }
.bdc-iti__et.is-off .bdc-iti__num { background: #fff; color: var(--bdc-nuit); border: 2px solid var(--bdc-nuit); }
.bdc-iti__km { font-size: .68rem; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; color: var(--bdc-ocre-fonce); }
.bdc-iti__et-t { font-size: 1rem; font-weight: 650; line-height: 1.25; }
.bdc-iti__go:hover .bdc-iti__et-t { color: var(--bdc-ocre-fonce); }
#page-container .entry-content .bdc-iti__et p { margin-top: 8px; font-size: .9rem; line-height: 1.55; color: var(--bdc-encre-2); }
#page-container .entry-content .bdc-iti__more { display: inline-flex; align-items: center; gap: 4px; font-weight: 650; color: var(--bdc-ocre-fonce); white-space: nowrap; }

/* ============ PIED ============ */
.bdc-iti__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--bdc-filet); }
#page-container .entry-content .bdc-iti__gpx { display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; border-radius: 999px; background: var(--bdc-nuit); color: #fff; font-weight: 600; font-size: .92rem; transition: background .2s, transform .2s var(--bdc-ease); }
#page-container .entry-content .bdc-iti__gpx:hover { background: #26302b; transform: translateY(-1px); }
#page-container .entry-content .bdc-iti__attr { font-size: .74rem; color: var(--bdc-encre-3); }
#page-container .entry-content .bdc-iti__attr a { color: inherit; text-decoration: underline; }

/* ============ MOBILE ============ */
@media (max-width: 767px) {
  .bdc-iti { margin: 36px -6px; padding: 16px; border-radius: 24px; }
  .bdc-iti__facts { grid-template-columns: 1fr 1fr; }
  .bdc-iti__facts li { padding: 10px 12px !important; font-size: .86rem; }
  .bdc-iti__map { height: 440px; border-radius: 18px; }
  .bdc-iti__tools { flex-direction: column; }
  .bdc-iti__fonds button { padding: 7px 11px; font-size: .78rem; }
  .bdc-iti__acts { position: absolute; top: 0; right: 0; flex-direction: column; align-items: flex-end; }
  .bdc-iti__btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .bdc-iti__btn { padding: 10px; }
  .bdc-iti__profil { padding: 14px 12px 8px; }
  .bdc-iti__prof { grid-template-columns: 44px 1fr; }
  .bdc-iti__ylab span { right: 6px; font-size: .66rem; }
  .bdc-iti__plot { height: 140px; }
  .bdc-iti__etapes { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .bdc-iti *, .bdc-iti-mk span { transition: none !important; animation: none !important; }
}
