
  /* Location and brand pages use in-page inventory instead of footer overlays.
     Scope this to their shared body class so other pages keep their footer ads. */
  body.geo-location-page.ff-content-ad-space,
  body.geo-location-page.ff-content-ad-space.ff-sticky-footer-measured {
    padding-bottom: 0 !important;
    --ff-sticky-footer-measured-occupied: 0px !important;
  }

  /* Also covers late-inserted and refreshed Publift/Seedtag footer creatives. */
  body.geo-location-page [id*="Sticky_Footer"],
  body.geo-location-page [class*="publift-widget-Sticky_Footer"],
  body.geo-location-page #inScreen.st-placement,
  body.geo-location-page .st-placement.inScreen,
  body.geo-location-page .st-adunit-inscreen {
    display: none !important;
    pointer-events: none !important;
  }

  .ff-geo-page-shell {
    position: relative;
  }

  .ff-geo-content {
    min-width: 0;
    container-type: inline-size;
  }

  .ff-geo-ad-slot {
    display: flex;
    flex-direction: column;
    width: 100%;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }

  .ff-geo-ad-slot > [data-fuse]:empty {
    min-height: 0;
  }

  .ff-geo-ad-slot--header:has(iframe) {
    margin-bottom: 1.5rem;
    min-height: 50px;
  }

  .ff-geo-ad-slot:has(iframe)::before {
    content: 'Advertisement';
    display: block;
    margin-bottom: 8px;
    font: 400 10px/1.4 'Inter', sans-serif;
    letter-spacing: .08em;
    color: var(--pp-shell-muted);
  }

  /* Give 320px mobile creatives the viewport width without clipping them. */
  @media (max-width: 680px) {
    .ff-geo-content .ff-geo-ad-slot--header, .ff-geo-content .ff-geo-ad-slot--incontent {
      width: calc(100% + 32px);
      margin-left: -16px;
      margin-right: -16px;
    }
  }

  /* Rail layouts reduce the content width even on large screens. */
  @container (max-width: 700px) {
    :is(#geo-location, #brand-prices, #station-prices) .geo-fuel-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    :is(#geo-location, #brand-prices, #station-prices) .geo-station-row { grid-template-columns: minmax(0, 1fr) 110px; gap: 8px 16px; }
    :is(#geo-location, #brand-prices, #station-prices) .geo-station-price { grid-column: 2; grid-row: 1 / span 2; }
    :is(#geo-location, #brand-prices, #station-prices) .geo-station-action { grid-column: 1; justify-self: start; }
    :is(#geo-location, #brand-prices, #station-prices) .geo-results-footer { flex-direction: column; align-items: stretch; }
    :is(#geo-location, #brand-prices, #station-prices) .geo-section-heading { display: block; }
  }

  .ff-geo-ad-slot--incontent:has(iframe) {
    min-height: 90px;
    margin: 1.5rem 0;
  }

  .ff-geo-ad-slot--mrec:has(iframe) {
    min-height: 250px;
  }

  .ff-geo-ad-slot--lhs:has(iframe) {
    min-height: 600px;
  }

  .ff-geo-desktop-rail,
  .ff-geo-desktop-mrec {
    display: none;
  }

  @media (min-width: 1024px) {
    .ff-geo-page-shell--ads {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 300px;
      gap: 2rem;
      max-width: 80rem;
    }

    .ff-geo-desktop-mrec {
      display: block;
    }

    .ff-geo-desktop-mrec .ff-geo-ad-slot {
      position: sticky;
      top: 6rem;
    }
  }

  @media (min-width: 1440px) {
    .ff-geo-page-shell--ads {
      grid-template-columns: 160px minmax(0, 1fr) 300px;
      max-width: 96rem;
    }

    .ff-geo-desktop-rail {
      display: block;
    }

    .ff-geo-desktop-rail .ff-geo-ad-slot {
      position: sticky;
      top: 6rem;
    }
  }

  @media (min-width: 768px) {
    .ff-geo-ad-slot--header {
      display: none;
    }
  }
