/* Voyatale Index/feed — canonical compact mobile post. */
.vgMobileFeedCollage,
.vgTimeInline { display: none; }
.vgDesktopPhotoLayout { display: contents; }
.vgTripStatIcon,
.vgTripStyleStatIcon { display: none; }
.vgMobileOnlyStats { display: none; }

/* V2-3A Discover shell. Existing feed IDs and listeners remain unchanged. */
body[data-v2-section="discover"] {
  background: var(--vt-v2-canvas, #faf9f7);
}

body[data-v2-section="discover"] .voyHeroBanner,
body[data-v2-section="discover"] .liveTripLaunch { display: none; }

.v2DiscoverControls {
  position: relative;
  z-index: 4;
  margin: 0 0 14px;
  padding: 0 2px;
}

.v2DiscoverControlRow {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid #e8e3ec;
}

.v2DiscoverTabs { display: flex; min-width: 0; align-items: stretch; gap: 24px; }
.v2DiscoverTab {
  position: relative;
  min-height: 48px;
  padding: 0 1px;
  border: 0;
  background: transparent;
  color: #78717f;
  font: 800 14px/1 Inter, sans-serif;
  cursor: pointer;
}
.v2DiscoverTab::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: transparent;
  content: "";
}
.v2DiscoverTab.is-active { color: var(--vt-v2-purple, #7d0088); }
.v2DiscoverTab.is-active::after { background: var(--vt-v2-orange, #ff7900); }

.v2DiscoverFilterButton,
.v2FilterClose,
.v2FilterClear,
.v2FilterApply,
.v2DiscoverChip {
  min-height: 44px;
  border: 0;
  font: 800 13px/1 Inter, sans-serif;
  cursor: pointer;
}
.v2DiscoverFilterButton {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  background: transparent;
  color: #302937;
}
.v2DiscoverFilterButton svg,
.vgCommentCountLabel svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.v2DiscoverChips { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 0 0; }
.v2DiscoverChips[hidden] { display: none; }
.v2DiscoverChip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 0 11px;
  border: 1px solid #ddcee3;
  border-radius: 999px;
  background: #fff;
  color: #651176;
}
.v2DiscoverChip b { font-size: 18px; font-weight: 500; }

.v2FilterBackdrop {
  position: fixed;
  z-index: 1090;
  inset: 0;
  background: rgba(30, 20, 35, .34);
  opacity: 0;
  transition: opacity .18s ease;
}
.v2FilterBackdrop.is-open { opacity: 1; }
.v2FilterPanel {
  position: fixed;
  z-index: 1100;
  top: 92px;
  left: 50%;
  width: min(420px, calc(100vw - 32px));
  padding: 20px;
  border: 1px solid #eadfed;
  border-radius: var(--vt-v2-radius-lg, 16px);
  background: #fff;
  box-shadow: 0 24px 70px rgba(56, 25, 64, .2);
  opacity: 0;
  transform: translate(-50%, -8px);
  transition: opacity .18s ease, transform .18s ease;
}
.v2FilterPanel.is-open { opacity: 1; transform: translate(-50%, 0); }
.v2FilterPanel[hidden], .v2FilterBackdrop[hidden] { display: none; }
.v2FilterHandle { display: none; }
.v2FilterHead { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.v2FilterHead small { color: #8a8290; font-size: 10px; font-weight: 900; letter-spacing: .13em; }
.v2FilterHead h2 { margin: 4px 0 0; color: #281d2e; font-size: 24px; line-height: 1.1; }
.v2FilterClose { width: 44px; padding: 0; border-radius: 50%; background: #f5f1f6; color: #4d4352; font-size: 24px; }
.v2FilterGroup { min-width: 0; margin: 24px 0 0; padding: 0; border: 0; }
.v2FilterGroup legend { margin: 0 0 10px; color: #403647; font-size: 13px; font-weight: 800; }
.v2FilterPanel .vgStyleBar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.v2FilterPanel .vgStyleBtn {
  display: flex;
  min-width: 0;
  min-height: 48px;
  align-items: center;
  justify-content: flex-start;
  gap: 9px;
  padding: 8px 11px;
  border: 1px solid #e5dfe8;
  border-radius: 13px;
  background: #fff;
  color: #504755;
  font-weight: 750;
}
.v2FilterPanel .vgStyleBtn img { width: 25px; height: 25px; object-fit: contain; }
.v2FilterPanel .vgStyleBtn.is-on { border-color: var(--vt-v2-purple, #7d0088); background: #faf4fb; color: var(--vt-v2-purple, #7d0088); box-shadow: inset 0 0 0 1px var(--vt-v2-purple, #7d0088); }
.v2FilterActions { display: grid; grid-template-columns: 1fr 1.6fr; gap: 10px; margin-top: 24px; }
.v2FilterClear, .v2FilterApply { border-radius: var(--vt-v2-radius-sm, 12px); }
.v2FilterClear { border: 1px solid #e2dae5; background: #fff; color: #5e5463; }
.v2FilterApply { background: var(--vt-v2-purple, #7d0088); color: #fff; }

.v2FeedStatus,
.v2FollowingState {
  margin: 0 0 14px;
  padding: 22px;
  border: 1px solid #e9e3eb;
  border-radius: var(--vt-v2-radius-lg, 16px);
  background: #fff;
  color: #5d5561;
  text-align: center;
}
.v2FeedStatus[hidden], .v2FollowingState[hidden] { display: none; }
.v2FeedStatus p, .v2FollowingState p { margin: 7px 0 0; font-size: 13px; line-height: 1.45; }
.v2FeedStatus button { min-height: 44px; margin-top: 12px; padding: 0 18px; border: 0; border-radius: 12px; background: #710080; color: #fff; font-weight: 800; }
.v2FollowingState strong { color: #302637; font-size: 17px; }

.vgpcFollowHost:empty { display: none; }
.vgpcFollowHost { padding: 0 18px 14px; }
.v2FollowButton {
  min-height: 44px;
  width: 100%;
  border: 1px solid #7d168f;
  border-radius: 12px;
  background: #7d168f;
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .12s ease;
}
.v2FollowButton:hover { background: #681178; border-color: #681178; }
.v2FollowButton:active { transform: translateY(1px); }
.v2FollowButton.is-following { background: #fff; color: #6f177d; border-color: rgba(111, 23, 125, .38); }
.v2FollowButton.is-following:hover { background: #faf4fc; border-color: #7d168f; }
.v2FollowButton:focus { outline: none; }
.v2FollowButton:focus-visible { outline: 3px solid rgba(255, 122, 0, .42); outline-offset: 2px; }
.v2FollowButton:disabled { cursor: wait; opacity: .62; transform: none; }
.v2FollowButton--compact {
  width: auto;
  min-height: 44px;
  padding: 4px 11px;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1;
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .v2FollowButton--compact { min-height: 44px; padding-inline: 10px; }
  :is(#feed, #followingFeed, #myFeed) .vgHead { min-width: 0; }
  :is(#feed, #followingFeed, #myFeed) .vgAuthor { min-width: 0; flex: 1 1 auto; }
}
.v2FeedStateIcon { margin-bottom: 9px; color: #f28b35; font-size: 28px; }
.v2FeedSkeleton { display: grid; gap: 11px; }
.v2FeedSkeleton i { display: block; height: 12px; border-radius: 999px; background: linear-gradient(90deg, #f0ebf2 20%, #faf8fb 50%, #f0ebf2 80%); background-size: 220% 100%; animation: v2FeedPulse 1.3s infinite linear; }
.v2FeedSkeleton i:first-child { width: 36%; }
.v2FeedSkeleton i:nth-child(2) { width: 92%; }
.v2FeedSkeleton i:last-child { width: 68%; }
@keyframes v2FeedPulse { to { background-position: -220% 0; } }

body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgFeedStack { gap: 18px; }
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgCard {
  overflow: visible;
  border: 1px solid #ebe5ed;
  border-radius: var(--vt-v2-radius-lg, 16px);
  background: #fff;
  box-shadow: 0 12px 34px rgba(54, 34, 61, .07);
}
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgHead { padding: 17px 18px 9px; }
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgTitle { padding-right: 18px; padding-left: 18px; }
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgSummary { padding-right: 18px; padding-left: 18px; }
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgPhotoRow,
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgMapRow { padding-right: 18px; padding-left: 18px; }
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgCounts,
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgComposer { padding-right: 18px; padding-left: 18px; }
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgSaveBtn,
body[data-v2-section="discover"] :is(#feed, #followingFeed) .postMoreBtn,
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgLike,
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgCommentCountLabel { min-width: 44px; min-height: 44px; }
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgMapWrap { overflow: hidden; border-radius: 16px; }
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgImageFallback {
  background: linear-gradient(135deg, #f0e9f2, #fbf4ec);
}
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgImageFallback::after {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #8a7c8e;
  font-size: 12px;
  font-weight: 750;
  content: "Voyatale";
}
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgTripStatsOverlay { grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); }
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgTripStatsOverlay > div { min-width: 0; }

:is(.v2DiscoverTab, .v2DiscoverFilterButton, .v2DiscoverChip, .v2FilterPanel button, .vgCard button, .vgCard textarea):focus-visible {
  outline: 3px solid rgba(113, 0, 128, .32);
  outline-offset: 2px;
}

/* Public author and Following views keep the canonical Voyatale shell while
   removing landing-page promotion from the content hierarchy. */
body.v2-public-profile-open[data-v2-section="discover"] .voyHeroBanner,
body.v2-public-profile-open[data-v2-section="discover"] .liveTripLaunch,
body.v2-public-profile-open[data-v2-section="discover"] .v2DiscoverControls,
body.v2-public-profile-open[data-v2-section="discover"] .v2FollowingState,
body[data-v2-section="discover"]:has(#feedTabFollowing[aria-selected="true"]) .voyHeroBanner,
body[data-v2-section="discover"]:has(#feedTabFollowing[aria-selected="true"]) .liveTripLaunch {
  display: none !important;
}

@media (min-width: 769px) {
  body.v2-public-profile-open[data-v2-section="discover"] .grid {
    grid-template-columns: minmax(260px, 320px) minmax(0, 760px);
    justify-content: center;
    gap: 32px;
  }
  body.v2-public-profile-open[data-v2-section="discover"] .grid > div:nth-child(3) { display: none !important; }
  body.v2-public-profile-open[data-v2-section="discover"] #vgProfileCard {
    position: sticky;
    top: 88px;
    padding: 6px 0 18px;
  }
  body.v2-public-profile-open[data-v2-section="discover"] #feed { padding-top: 6px; }
}

@media (max-width: 768px) {
  body { background: var(--vt-v2-canvas, #faf9f7) !important; }

  :is(#feed, #followingFeed, #myFeed).feed,
  :is(#feed, #followingFeed, #myFeed) .vgFeedStack {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgCard {
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 1px solid #eceef0 !important;
    border-radius: var(--vt-v2-radius-lg, 16px) !important;
    background: #fff !important;
    box-shadow: 0 8px 24px rgba(26, 31, 39, .055) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgCard::after { display: none !important; }

  /* Author: avatar, name + time, bookmark and menu on one compact row. */
  :is(#feed, #followingFeed, #myFeed) .vgHead {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 14px 14px 8px !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgAuthor {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    align-items: center !important;
    gap: 9px !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgAva {
    width: 38px !important;
    height: 38px !important;
    flex: 0 0 38px !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: none !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgHeadTxt { min-width: 0 !important; }
  :is(#feed, #followingFeed, #myFeed) .vgAuthorLine {
    display: flex !important;
    min-width: 0 !important;
    align-items: baseline !important;
    gap: 5px !important;
    white-space: nowrap !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgName {
    min-width: 0 !important;
    overflow: hidden !important;
    color: #17202d !important;
    font-size: 14px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    letter-spacing: -.015em !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgTimeInline {
    display: inline !important;
    flex: 0 0 auto !important;
    color: #6e7581 !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgTag,
  :is(#feed, #followingFeed, #myFeed) .vgRightMeta > .vgTime { display: none !important; }

  :is(#feed, #followingFeed, #myFeed) .vgRightMeta {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    gap: 5px !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgSaveBtn,
  :is(#feed, #followingFeed, #myFeed) .postMoreBtn {
    width: 31px !important;
    height: 31px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgSaveIco { width: 18px !important; height: 18px !important; }
  :is(#feed, #followingFeed, #myFeed) .postMoreBtn { color: #686d76 !important; font-size: 20px !important; }

  /* Title and three-line story preview. */
  :is(#feed, #followingFeed, #myFeed) .vgTitle,
  :is(#feed, #followingFeed, #myFeed) .vgTitleTranslateRow > .vgTitle {
    display: -webkit-box !important;
    width: auto !important;
    margin: 0 !important;
    padding: 5px 14px 0 !important;
    overflow: hidden !important;
    color: #17202d !important;
    font-size: 19px !important;
    line-height: 1.18 !important;
    font-weight: 800 !important;
    letter-spacing: -.03em !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgTitleTranslateRow { display: block !important; }

  :is(#feed, #followingFeed, #myFeed) .vgSummary {
    position: relative !important;
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 9px 14px 11px !important;
    color: #29313c !important;
    font-size: 12.5px !important;
    line-height: 1.42 !important;
    font-weight: 500 !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgSummaryWithTranslate { padding-right: 50px !important; }
  :is(#feed, #followingFeed, #myFeed) .vgSummaryText { display: block !important; }
  :is(#feed, #followingFeed, #myFeed) .vgClampText.vgClamp3 {
    display: -webkit-box !important;
    overflow: hidden !important;
    white-space: pre-wrap !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgClampText.is-expanded {
    display: block !important;
    -webkit-line-clamp: unset !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgSummary [data-action="togglePostText"],
  :is(#feed, #followingFeed, #myFeed) .vgReadMore {
    position: static !important;
    display: block !important;
    width: max-content !important;
    margin: 3px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--vt-v2-purple, #7d0088) !important;
    font-size: 12.5px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    box-shadow: none !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgReadMore[style*="display: none"] { display: none !important; }

  :is(#feed, #followingFeed, #myFeed) .vgSummary > .vgTranslateBtn {
    position: absolute !important;
    right: 14px !important;
    bottom: 15px !important;
    width: 27px !important;
    height: 27px !important;
    margin: 0 !important;
    padding: 3px !important;
    border: 1px solid #e1e4e7 !important;
    border-radius: 9px !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  /* Dedicated mobile mosaic; desktop keeps the selected Voyatale layout. */
  :is(#feed, #followingFeed, #myFeed) .vgPhotoRow {
    display: block !important;
    margin: 0 !important;
    padding: 0 14px 9px !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgPhotoRow > .vgDesktopPhotoLayout { display: none !important; }
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage {
    display: grid !important;
    width: 100% !important;
    height: 190px !important;
    min-width: 0 !important;
    gap: 4px !important;
    overflow: hidden !important;
    border-radius: var(--vt-v2-radius-sm, 12px) !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgMobilePhoto {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #eef0ef !important;
    cursor: pointer !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgMobilePhoto img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage.is-one { grid-template: 1fr / 1fr !important; }
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage.is-two { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage.is-three {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, .9fr) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    grid-template-areas: "main second" "main third" !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage.is-four {
    grid-template-columns: minmax(0, 1.35fr) repeat(2, minmax(0, .45fr)) !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    grid-template-areas: "main second second" "main third fourth" !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage.is-three .vgMobilePhoto.is-main,
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage.is-four .vgMobilePhoto.is-main { grid-area: main !important; }
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage.is-three .vgMobilePhoto.is-second,
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage.is-four .vgMobilePhoto.is-second { grid-area: second !important; }
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage.is-three .vgMobilePhoto.is-third,
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage.is-four .vgMobilePhoto.is-third { grid-area: third !important; }
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage.is-four .vgMobilePhoto.is-fourth { grid-area: fourth !important; }

  :is(#feed, #followingFeed, #myFeed) .vgMobilePhotoMore {
    position: absolute !important;
    inset: 0 !important;
    display: grid !important;
    place-items: center !important;
    background: rgba(18, 24, 21, .48) !important;
    color: #fff !important;
    font-size: 25px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    -webkit-backdrop-filter: blur(4px) !important;
    backdrop-filter: blur(4px) !important;
    pointer-events: none !important;
  }

  /* Compact map preview with the three requested facts in a white footer. */
  :is(#feed, #followingFeed, #myFeed) .vgMapRow { margin: 0 !important; padding: 0 14px 5px !important; }
  :is(#feed, #followingFeed, #myFeed) .vgMapWrap {
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    border: 1px solid #e1e4e4 !important;
    border-radius: var(--vt-v2-radius-sm, 12px) !important;
    background: #fff !important;
    box-shadow: none !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgMap,
  :is(#feed, #followingFeed, #myFeed) .vgMap.vgMapWithStats {
    width: 100% !important;
    height: 150px !important;
    min-height: 150px !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgMap .leaflet-control-zoom { display: none !important; }

  :is(#feed, #followingFeed, #myFeed) .vgTripStatsOverlay {
    position: static !important;
    z-index: auto !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    width: 100% !important;
    min-height: 47px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    border-top: 1px solid #e5e7e7 !important;
    background: #fff !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgTripStatsOverlay > div { min-width: 0 !important; gap: 5px !important; padding: 0 7px !important; }
  :is(#feed, #followingFeed, #myFeed) .vgTripStatsOverlay > div:nth-child(2) { display: none !important; }
  :is(#feed, #followingFeed, #myFeed) .vgTripStatsOverlay > div + div { border-left: 1px solid #e5e7e7 !important; }
  :is(#feed, #followingFeed, #myFeed) .vgTripStatsOverlay > div:nth-child(3) { border-left: 1px solid #e5e7e7 !important; }
  :is(#feed, #followingFeed, #myFeed) .vgTripStatsOverlay span { display: none !important; }
  :is(#feed, #followingFeed, #myFeed) .vgTripStatIcon,
  :is(#feed, #followingFeed, #myFeed) .vgTripStyleStatIcon {
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    flex: 0 0 17px !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgTripStatIcon {
    fill: none !important;
    stroke: #17202d !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgTripStyleStatIcon { object-fit: contain !important; }
  :is(#feed, #followingFeed, #myFeed) .vgTripStatsOverlay p { display: block !important; }
  :is(#feed, #followingFeed, #myFeed) .vgTripStatsOverlay strong {
    display: block !important;
    color: #17202d !important;
    font-size: 10.5px !important;
    line-height: 1.1 !important;
    font-weight: 750 !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgTripStatsOverlay small { display: none !important; }

  :is(#feed, #followingFeed, #myFeed) .vgStops { display: none !important; }

  /* One compact action line. The composer stays visible; the list opens on demand. */
  :is(#feed, #followingFeed, #myFeed) .vgCounts {
    display: flex !important;
    min-height: 44px !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 5px 14px 9px !important;
    border: 0 !important;
    background: transparent !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgLike { gap: 5px !important; padding: 4px 0 !important; }
  :is(#feed, #followingFeed, #myFeed) .vgHeart { width: 22px !important; height: 22px !important; filter: none !important; }
  :is(#feed, #followingFeed, #myFeed) .vgLikeCount { min-width: 10px !important; color: #17202d !important; font-size: 10.5px !important; }
  :is(#feed, #followingFeed, #myFeed) .vgCommentCountLabel {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 4px 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #17202d !important;
    font-size: 10.5px !important;
    line-height: 1 !important;
    font-weight: 750 !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgComments { display: none !important; }
  :is(#feed, #followingFeed, #myFeed) .vgComposer {
    display: flex !important;
    min-width: 0 !important;
    padding: 7px 14px 12px !important;
    border: 0 !important;
    background: #fff !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgCard[data-comments-expanded="1"] .vgComments {
    display: block !important;
    padding: 6px 14px !important;
    border-top: 1px solid #eef0f1 !important;
    background: #fff !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgComposer img {
    width: 30px !important;
    height: 30px !important;
    flex: 0 0 30px !important;
    border-radius: 50% !important;
  }
  :is(#feed, #followingFeed, #myFeed) .vgComposer textarea {
    flex: 1 1 auto !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    font-size: 16px !important;
  }
}

@media (max-width: 360px) {
  :is(#feed, #followingFeed, #myFeed) .vgMobileFeedCollage { height: 178px !important; }
  :is(#feed, #followingFeed, #myFeed) .vgMap,
  :is(#feed, #followingFeed, #myFeed) .vgMap.vgMapWithStats { height: 140px !important; min-height: 140px !important; }
  :is(#feed, #followingFeed, #myFeed) .vgTitle,
  :is(#feed, #followingFeed, #myFeed) .vgTitleTranslateRow > .vgTitle { font-size: 18px !important; }
}

@media (min-width: 769px) {
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgPhotoRow {
    display: block;
    max-height: 390px;
    overflow: hidden;
  }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgLayoutGrid,
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgPhotos1 .vgBig,
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgPhotos2 {
    min-height: 280px;
    max-height: 390px;
  }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgGalleryImg { object-fit: cover; }
  body[data-v2-section="discover"] .v2FilterBackdrop { background: transparent; pointer-events: none; }
  body[data-v2-section="discover"] .v2FilterPanel {
    position: absolute;
    top: 138px;
    left: 50%;
    width: 400px;
  }
}

@media (max-width: 768px) {
  body[data-v2-section="discover"] { background: #fff !important; }
  body[data-v2-section="discover"] > .container { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; }
  body[data-v2-section="discover"] .topbar.v2AppHeader { margin: 0 !important; }
  body[data-v2-section="discover"] .grid { display: block !important; width: 100% !important; margin: 0 !important; }
  body[data-v2-section="discover"] .grid > div:first-child,
  body[data-v2-section="discover"] .grid > div:nth-child(3) { display: none !important; }
  body[data-v2-section="discover"] .grid > div:nth-child(2) { min-width: 0; }
  body[data-v2-section="discover"] .v2DiscoverControls { margin: 0 18px 14px; padding: 0; }
  body[data-v2-section="discover"] .v2DiscoverControlRow { border-bottom-color: #e6dfe8; }
  body[data-v2-section="discover"] .v2DiscoverTabs { gap: 21px; }
  body[data-v2-section="discover"] .v2DiscoverTab { min-height: 50px; font-size: 13px; }
  body[data-v2-section="discover"] .v2DiscoverFilterButton { margin-right: -8px; }
  body[data-v2-section="discover"] .v2DiscoverChips { padding-top: 10px; }
  body[data-v2-section="discover"] .v2FeedStatus,
  body[data-v2-section="discover"] .v2FollowingState { margin: 0 14px 12px; }

  body.v2-filter-open { overflow: hidden; }
  body[data-v2-section="discover"] .v2FilterPanel {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: min(78vh, 590px);
    padding: 8px 18px calc(18px + env(safe-area-inset-bottom));
    overflow: auto;
    border: 0;
    border-radius: var(--vt-v2-sheet-radius, 24px) var(--vt-v2-sheet-radius, 24px) 0 0;
    opacity: 1;
    transform: translateY(104%);
  }
  body[data-v2-section="discover"] .v2FilterPanel.is-open { transform: translateY(0); }
  body[data-v2-section="discover"] .v2FilterHandle { display: block; width: 42px; height: 4px; margin: 0 auto 16px; border-radius: 99px; background: #d8d1da; }
  body[data-v2-section="discover"] .v2FilterPanel .vgStyleBar { grid-template-columns: 1fr; }

  body[data-v2-section="discover"] :is(#feed, #followingFeed) { min-width: 0; padding: 0 12px 92px; }
  body[data-v2-section="discover"] #feed:not(:empty) + div { display: none !important; }
  body[data-v2-section="discover"] > nav[aria-label="Voyatale main pages"] { display: none !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgFeedStack { gap: 14px !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgCard {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden !important;
    border-radius: var(--vt-v2-radius-lg, 16px) !important;
    box-sizing: border-box;
  }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgHead { padding: 12px 12px 6px !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgAva { width: 36px !important; height: 36px !important; flex-basis: 36px !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgSaveBtn,
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .postMoreBtn { width: 44px !important; height: 44px !important; margin: -4px; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgRightMeta { gap: 6px !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgTitle,
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgTitleTranslateRow > .vgTitle { padding: 4px 12px 0 !important; font-size: clamp(18px, 5.2vw, 21px) !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgSummary { padding: 8px 12px 10px !important; font-size: 13px !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgPhotoRow { padding: 0 12px 8px !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgMobileFeedCollage { height: clamp(236px, 74vw, 300px) !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgMapRow { padding: 0 12px 5px !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgMap,
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgMap.vgMapWithStats { height: 142px !important; min-height: 142px !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgTripStatsOverlay { display: flex !important; min-height: 48px !important; overflow-x: auto; scrollbar-width: none; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgTripStatsOverlay > div { display: flex !important; flex: 1 0 88px; justify-content: center; border-left: 1px solid #e5e7e7; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgTripStatsOverlay > div:first-child { border-left: 0; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgCounts { min-height: 48px !important; padding: 3px 12px 5px !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgLike,
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgCommentCountLabel { min-height: 44px !important; min-width: 44px !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgCommentCountLabel { justify-content: flex-end; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgCommentCountLabel svg { display: block !important; flex: 0 0 19px; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgComposer { padding: 5px 12px 12px !important; gap: 9px; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgComposer img { width: 32px !important; height: 32px !important; flex-basis: 32px !important; }
  body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgComposer textarea { min-height: 44px !important; height: 44px !important; max-height: 92px !important; }
}

@media (max-width: 768px) {
  body.v2-public-profile-open[data-v2-section="discover"] .grid > div:first-child { display: block !important; }
  body.v2-public-profile-open[data-v2-section="discover"] .grid { display: block !important; gap: 0 !important; }
  body.v2-public-profile-open[data-v2-section="discover"] #vgProfileCard { display: block !important; padding: 8px 18px 14px; border-radius: 0; background: #fff; }
  body.v2-public-profile-open[data-v2-section="discover"] .vgpcHero { padding-top: 12px; }
  body.v2-public-profile-open[data-v2-section="discover"] .vgpcAvatar { width: 112px; height: 112px; box-shadow: none; }
  body.v2-public-profile-open[data-v2-section="discover"] .vgpcBio { max-width: 300px; white-space: normal; line-height: 1.45; }
  body.v2-public-profile-open[data-v2-section="discover"] .vgpcQuote { max-width: 300px; line-height: 1.45; }
  body.v2-public-profile-open[data-v2-section="discover"] .vgpcMapCard { display: block; width: 100%; }
  body.v2-public-profile-open[data-v2-section="discover"] #feed { padding-top: 12px; border-top: 1px solid rgba(37,23,42,.09); }
}

@media (max-width: 360px) {
  body[data-v2-section="discover"] .v2DiscoverTabs { gap: 14px; }
  body[data-v2-section="discover"] .v2DiscoverFilterButton { padding: 0 8px; }
  body[data-v2-section="discover"] #feed { padding-right: 8px; padding-left: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .v2FilterPanel, .v2FilterBackdrop { transition: none !important; }
  .v2FeedSkeleton i { animation: none; }
}

/* V2-15C4: feed posts belong to one continuous white surface. The outer post
   container is intentionally frameless; only consecutive posts get a single
   horizontal separator. */
body[data-v2-section="discover"] :is(#feed, #followingFeed) {
  background: #fff;
}
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgFeedStack {
  gap: 0 !important;
}
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgCard {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body[data-v2-section="discover"] :is(#feed, #followingFeed) .vgCard + .vgCard::before {
  display: block;
  width: 100%;
  height: 1px;
  background: #ece9ed;
  content: "";
}
