
/* Approved travel icon family, shared by frontend and editorial previews. */
img.bfvg-design-icon { display: block; width: 56px; height: 56px; max-width: 100%; object-fit: contain; flex-shrink: 0; }
:is(.bfvg-trust-strip__icon,.bikefvg-service-card__icon,.bikefvg-route-page__title-icon,.bikefvg-experience__title-icon,.bikefvg-ebike__title-icon) { background-color: transparent !important; background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; border: 0 !important; box-shadow: none !important; }
:is(.bfvg-trust-strip__icon,.bikefvg-service-card__icon,.bikefvg-route-page__title-icon,.bikefvg-experience__title-icon,.bikefvg-ebike__title-icon) > img.bfvg-design-icon { width: 100%; height: 100%; position: relative; }
.bikefvg-route-verified > img.bfvg-design-icon { width: 100%; height: 100%; }
.bikefvg-route-verified { position: relative; overflow: visible; background: transparent !important; box-shadow: none !important; }
.bfvg-experience-card__unesco,.bikefvg-favorite-card__unesco { width: 58px !important; height: 58px !important; padding: 0 !important; border: 0 !important; border-radius: 50% !important; background: transparent !important; }
.bfvg-experience-card__image .bfvg-experience-card__unesco > img.bfvg-design-icon,.bikefvg-favorite-card__unesco > img.bfvg-design-icon { width: 100%; height: 100%; object-fit: contain; transform: none !important; }
.bikefvg-route-verified > span,.bfvg-experience-card__unesco > span { position: absolute; left: 0; right: 0; bottom: -12px; text-align: center; color: #07545c; background: #f6f1ea; border-radius: 4px; font-size: 8px; padding: 2px; }
/* Badge fills existing marker bounds without increasing its hit area or affecting counts. */
.bfvg-map-symbol__inner > img.bfvg-design-icon,
.bikefvg-map-service-marker__shell > img.bfvg-design-icon,
.bikefvg-map-route-poi > img.bfvg-design-icon { width: 100% !important; height: 100% !important; max-width: none !important; }
.bfvg-map-symbol:has(img.bfvg-design-icon),
.bikefvg-map-service-marker__shell:has(img.bfvg-design-icon) { background: #f6f1ea; border-radius: 50%; border-color: transparent; }
.bfvg-map-icon > img.bfvg-design-icon { width: 100%; height: 100%; }
.bikefvg-map-admin__service-preview img.bfvg-design-icon { width: 100%; height: 100%; }
/* Saved WordPress pattern instances retain old markup: update their artwork too. */
.bfvg-trust-strip__item .bfvg-trust-strip__icon > svg,
.bikefvg-service-card__icon > svg { visibility: hidden; }
.bfvg-trust-strip__item:nth-child(1) .bfvg-trust-strip__icon { background-image:url('../icons/bikefvg/verified.svg') !important; }
.bfvg-trust-strip__item:nth-child(2) .bfvg-trust-strip__icon { background-image:url('../icons/bikefvg/gpx.svg') !important; }
.bfvg-trust-strip__item:nth-child(3) .bfvg-trust-strip__icon { background-image:url('../icons/bikefvg/difficulty.svg') !important; }
.bfvg-trust-strip__item:nth-child(4) .bfvg-trust-strip__icon { background-image:url('../icons/bikefvg/ebike.svg') !important; }
.bikefvg-service-card:nth-child(1) .bikefvg-service-card__icon { background-image:url('../icons/bikefvg/food.svg') !important; }
.bikefvg-service-card:nth-child(2) .bikefvg-service-card__icon { background-image:url('../icons/bikefvg/bed.svg') !important; }
.bikefvg-service-card:nth-child(3) .bikefvg-service-card__icon { background-image:url('../icons/bikefvg/wrench.svg') !important; }
.bikefvg-service-card:nth-child(4) .bikefvg-service-card__icon { background-image:url('../icons/bikefvg/bike.svg') !important; }
.bikefvg-service-card:nth-child(5) .bikefvg-service-card__icon { background-image:url('../icons/bikefvg/landmark.svg') !important; }
.bikefvg-service-card:nth-child(6) .bikefvg-service-card__icon { background-image:url('../icons/bikefvg/nature.svg') !important; }
.bikefvg-service-card:nth-child(7) .bikefvg-service-card__icon { background-image:url('../icons/bikefvg/info.svg') !important; }
.bikefvg-service-card:nth-child(8) .bikefvg-service-card__icon { background-image:url('../icons/bikefvg/shuttle.svg') !important; }

.bikefvg-map-route-poi__shell > img.bfvg-design-icon { width: 100% !important; height: 100% !important; }
.bikefvg-map-route-poi__shell:has(img.bfvg-design-icon) { background: #f6f1ea; border-radius: 50%; border-color: transparent; }
.bikefvg-service-archive__category-icon { border: 0; border-radius: 50%; background: transparent; }
.bikefvg-service-archive__category-icon > img.bfvg-design-icon { width: 100%; height: 100%; }
.bikefvg-map-admin__service-preview [data-icon-preview] { display: block; width: 100%; height: 100%; }
.bfvg-trust-strip__icon:has(> img.bfvg-design-icon),.bikefvg-service-card__icon:has(> img.bfvg-design-icon) { background-image: none !important; }

/* Newsletter and interactive components: approved second UI family. */
.bikefvg-home-newsletter__icon { background: none !important; border: 0 !important; }
.bikefvg-home-newsletter__icon > img.bfvg-design-icon { width: 100%; height: 100%; }
.bikefvg-fav-toggle .bikefvg-fav-toggle__icon { color: #07545c; width: 24px; height: 24px; overflow: visible; }
.bikefvg-fav-toggle .bikefvg-fav-toggle__icon .bfvg-heart { fill: none; stroke: #07545c; }
.bikefvg-fav-toggle .bfvg-heart-spark { display: none; }
.bikefvg-fav-toggle[aria-pressed="true"] .bikefvg-fav-toggle__icon .bfvg-heart { fill: #07545c; }
.bikefvg-fav-toggle[aria-pressed="true"] .bfvg-heart-spark { display: block; }
.bikefvg-fav-toggle[aria-pressed="true"] .bikefvg-fav-toggle__icon .bfvg-heart-spark path { fill: none; stroke: #e66014; }
.bikefvg-fav-toggle:not(:has(.bikefvg-fav-toggle__label)) { border-radius: 50%; }
.bfvg-exp-marker,.bfvg-exp-marker.is-specialist { display: block; width: 40px; height: 48px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; transform: none; }
.bfvg-exp-marker svg { display: block; width: 40px; height: 48px; overflow: visible; }
.is-selected > .bfvg-exp-marker svg,.bfvg-exp-marker:hover svg { filter: drop-shadow(0 0 3px #a9bfaa) drop-shadow(0 0 2px #a9bfaa); }
.bfvg-territory-map .bfvg-territory-map__number { background: #f6f1ea; border: 2px solid #07545c; color: #07545c; font-weight: 750; font-variant-numeric: tabular-nums; }
.bfvg-territory-map .bfvg-territory-map__number.is-active { background: #07545c; color: #f6f1ea; border-color: #f6f1ea; box-shadow: 0 0 0 2px #e66014; }
.bfvg-territory-map .bfvg-territory-map__marker circle { fill: #f6f1ea; stroke: #07545c; stroke-width: 2; }
.bfvg-territory-map .bfvg-territory-map__marker text { fill: #07545c; font-weight: 750; font-variant-numeric: tabular-nums; }
.bfvg-territory-map .bfvg-territory-map__area.is-active .bfvg-territory-map__marker circle { fill: #07545c; stroke: #e66014; stroke-width: 3; }
.bfvg-territory-map .bfvg-territory-map__area.is-active .bfvg-territory-map__marker text { fill: #f6f1ea; }
.home .bfvg-event-calendar__leaf { min-width: 66px; border: 2px solid #07545c; border-radius: 10px; background: #f6f1ea; color: #07545c; background-image: none; }
.home .bfvg-event-calendar__month { border-radius: 8px 8px 0 0; padding: 9px 10px 6px; border-bottom: 2px solid #e66014; background: #c6d4c2; letter-spacing: .03em; }
.home .bfvg-event-calendar__leaf::before,.home .bfvg-event-calendar__leaf::after { width: 5px; height: 11px; top: -6px; background: #07545c; }
.home .bfvg-event-calendar__day { display: flex; align-items: center; justify-content: center; min-height: 38px; box-sizing: border-box; padding: 5px 9px; font-size: 1.35rem; line-height: 1; font-variant-numeric: tabular-nums; }
.home .bfvg-event-calendar__separator { color: #e66014; font-weight: 750; }
@media (forced-colors: active) { .bikefvg-fav-toggle .bikefvg-fav-toggle__icon .bfvg-heart { stroke: ButtonText; } .bikefvg-fav-toggle[aria-pressed="true"] .bikefvg-fav-toggle__icon .bfvg-heart { fill: ButtonText; } }
.bikefvg-favorites-nav__link { background: #f6f1ea; color: #07545c; border-radius: 50%; }
.bikefvg-favorites-nav__link .bfvg-heart { fill: none; stroke: #07545c; }
.bikefvg-favorites-nav__link .bfvg-heart-spark { display: none; }
.bikefvg-favorites-nav__link.has-favorites .bikefvg-fav-toggle__icon .bfvg-heart { fill: #07545c; stroke: #07545c; }
.bikefvg-favorites-nav__link.has-favorites .bfvg-heart-spark { display: block; }
.bikefvg-favorites-nav__link.has-favorites .bikefvg-fav-toggle__icon .bfvg-heart-spark path { fill: none; stroke: #e66014; }
.bikefvg-fav-toggle:not(:has(.bikefvg-fav-toggle__label)):is(.bikefvg-route-card__fav,.bikefvg-route-archive__fav) { background: #f6f1ea; border: 1px solid #07545c; }

/* Editorial notebook replaces the rotating wheel, including saved home patterns. */
.bfvg-diary-wheel { background: url('../icons/bikefvg/diary.svg') center / contain no-repeat; }
.bfvg-diary-wheel > svg { visibility: hidden; animation: none !important; }
.bfvg-diary-wheel > img.bfvg-design-icon { display: block; width: 100%; height: 100%; }
.bfvg-diary-wheel:has(> img.bfvg-design-icon) { background-image: none; }
.home .bfvg-newspaper__heading .bfvg-diary-wheel { flex: 0 0 1.15em; width: 1.15em; height: 1.15em; }

/* Shared caption treatment: text below the circular artwork. */
.bikefvg-route-verified > span { line-height: 1.1; letter-spacing: .06em; font-weight: 750; }
.bikefvg-route-card__media > .bikefvg-route-verified,.bikefvg-route-archive__media-status { bottom: 24px; }

.bikefvg-route-verified { flex-basis: 42px !important; width: 42px !important; height: 42px !important; padding: 0; }

/* Map-only contrast treatment. Keep filter/legend icons and numbered clusters unchanged. */
:is(.bfvg-map-marker,.bikefvg-route-network-map__service-marker) .bfvg-map-symbol:has(img.bfvg-design-icon),
.bikefvg-map-service-marker__shell:has(img.bfvg-design-icon),
.bikefvg-map-route-poi__shell:has(img.bfvg-design-icon) {
  background: #f6f1ea;
  border: 2px solid #07545c;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #f6f1ea, 0 2px 5px rgb(18 45 42 / 30%);
  transform: scale(1.2);
  transform-origin: center;
}
:is(.bfvg-map-marker,.bikefvg-route-network-map__service-marker) .bfvg-map-symbol__inner > img.bfvg-design-icon,
.bikefvg-map-service-marker__shell > img.bfvg-design-icon,
.bikefvg-map-route-poi__shell > img.bfvg-design-icon {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain;
}

/* Territory photo badges share the map marker geometry and typography. */
.bfvg-territory-map .bfvg-territory-map__number,
:is(.bikefvg-territories-index,.bikefvg-home-territories) .bikefvg-home-territory-card__number,
.bikefvg-territories-index .bikefvg-territories-index__number {
  box-sizing: border-box;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  min-width: 30px;
  min-height: 30px;
  padding: 0;
  border: 2px solid #07545c;
  border-radius: 50%;
  background: #f6f1ea;
  color: #07545c;
  font: 750 12px/1 system-ui, sans-serif;
  letter-spacing: normal;
  font-variant-numeric: tabular-nums;
  box-shadow: none;
}
.bfvg-territory-map .bfvg-territory-map__number.is-active,
:is(.bikefvg-territories-index,.bikefvg-home-territories) .bikefvg-home-territory-card:is(:hover,:focus-visible,.is-map-active) .bikefvg-home-territory-card__number,
.bikefvg-territories-index .bikefvg-territories-index__card:is(:hover,:focus-visible,.is-map-active) .bikefvg-territories-index__number {
  background: #07545c;
  color: #f6f1ea;
  border-color: #f6f1ea;
  box-shadow: 0 0 0 2px #e66014;
}

/* Favorite counter: a fixed circle, including two- and three-digit counts. */
.bikefvg-favorites-nav--desktop .bikefvg-favorites-nav__count,
.bikefvg-mobile-nav__list .bikefvg-favorites-nav__count {
  box-sizing: border-box;
  display: inline-grid;
  place-items: center;
  width: 26px;
  min-width: 26px;
  height: 26px;
  padding: 0;
  flex: 0 0 26px;
  border: 1px solid #9eb5a4;
  border-radius: 50%;
  background: #f6f1ea;
  color: #07545c;
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
