[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-global-data":3,"\n\nfragment ContentAreaFieldsFragment on ContentAreaFields {\n  __typename\n  content {\n    ... on ContentAreaFieldsContentTableLayout {\n      __typename\n      tableGroup {\n        headerColor\n        tableDescription\n        headers {\n          align\n          text\n        }\n        rows {\n          cells {\n            align\n            contentType\n            text\n            link {\n              target\n              title\n              url\n            }\n          }\n        }\n      }\n    }\n    \n    ...on ContentAreaFieldsContentNoticeLayout {\n      __typename\n      noticeGroup {\n        heading\n        text\n        enableCardIcon\n        button {\n          variant\n          link {\n            target\n            title\n            url\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentProAndConLayout {\n      __typename\n      proAndConGroup {\n        prosSectionTitle\n        consSectionTitle\n        itemsToDisplay\n        pros {\n          text\n        }\n        cons {\n          text\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentStepsLayout {\n      __typename\n      stepsGroup {\n        variant\n        steps {\n          title\n          description\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentQuoteLayout {\n      __typename\n      quoteGroup {\n        client\n        description\n      }\n    }\n\n    ... on ContentAreaFieldsContentDropdownLayout {\n      __typename\n      dropdownGroup {\n        items {\n          title\n          description\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentOfferImageInfoLayout {\n      __typename\n      offerImageInfoGroup {\n        heading\n        description1\n        description2\n        link {\n          target\n          title\n          url\n        }\n        image {\n          node {\n            altText\n            sourceUrl\n            mediaDetails {\n              width\n              height\n            }\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentFaqLayout {\n      __typename\n      faqGroup {\n        iconName\n        content\n        items {\n          title\n          answer\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentNumberedCardsLayout {\n      __typename\n      numberedCardsGroup {\n        variant\n        pillLabel\n        heading\n        items {\n          title\n          description\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentWysiwygLayout {\n      __typename\n      wysiwygGroup {\n        content\n      }\n    }\n\n    ... on ContentAreaFieldsContentTabsContentLayout {\n      __typename\n      tabsContentGroup {\n        tabs {\n          tabName\n          image {\n            node {\n              altText\n              sourceUrl\n              mediaDetails {\n                width\n                height\n              }\n            }\n          }\n          affLink {\n            target\n            title\n            url\n          }\n          pageLink {\n            target\n            title\n            url\n          }\n          content\n        }\n      }\n    }\n    \n    ... on ContentAreaFieldsContentSingleOfferLayout {\n      singleOfferGroup {\n        offer {\n          nodes {\n            ... on Offer {\n              ...ComsOfferCardFragment\n            }\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentTpsCalculatorLayout {\n      __typename\n      tpsCalculatorGroup {\n        content\n        ctaLink {\n          title\n          url\n          target\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentOfferListLayout {\n      __typename\n      offerListGroup {\n        theme\n        displayMode\n        count\n        queryMode\n        cardVariantFilter\n        bonusKindFilter\n        offerTagFilter\n        offerTypeFilter\n        casinoIds\n        titlePatternIds\n        sectionSubtitle\n        sectionTitle\n        asPageH1\n        titleAlign\n        viewAllLabel\n        viewAllUrl\n      }\n      # Resolved server-side (bfd v1.2.138) so the block renders without firing\n      # GetComsOfferListBlock after this query returns — that second request is a serial\n      # waterfall on the critical path, and ~1s of it is fixed per-request overhead.\n      #\n      # No arguments: every filter above is ACF the resolver reads itself, and the block\n      # paginates client-side over rows it already has. Unlike blogListData there is no\n      # route state to hand through.\n      offerListData {\n        items {\n          # patternTitle, not patternTitles(ids:), because the id set is PER BLOCK and a\n          # document variable can only carry one — the homepage renders six of these blocks\n          # with six different sets. PHP sees each block's own ACF, so PHP picks the title.\n          patternTitle\n          # The rank PHP sorted on. Selected so mapComsOffers' re-sort is a verifiable no-op\n          # rather than a silent reordering.\n          tps\n          offer {\n            ...ComsOfferCardFragment\n          }\n        }\n        pageInfo {\n          perPage\n          hasNextPage\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentHeroLayout {\n      __typename\n      heroGroup {\n        heroImage {\n          node {\n            altText\n            sourceUrl\n            mediaDetails {\n              width\n              height\n            }\n          }\n        }\n        headingImage {\n          node {\n            altText\n            sourceUrl\n            mediaDetails {\n              width\n              height\n            }\n          }\n        }\n        ctaLabel\n        ctaLink {\n          url\n          title\n          target\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentContactFormLayout {\n      __typename\n      contactFormGroup {\n        formId\n        submitLabel\n        successMessage\n      }\n    }\n\n    ... on ContentAreaFieldsContentShortcodeLayout {\n      __typename\n      shortcode\n      renderedHtml\n    }\n\n    ... on ContentAreaFieldsContentLegalDocumentLayout {\n      __typename\n      documentSlug\n      documentTitle\n      renderedHtml\n    }\n\n    ... on ContentAreaFieldsContentAnchorLayout {\n      __typename\n      anchorId\n    }\n\n    # TBS Meter — self-contained (offers come from GetTbsMeterOffers at render time; the\n    # layout's legacy anchor_target ACF field still exists WP-side but is no longer consumed).\n    ... on ContentAreaFieldsContentTbsPromoLayout {\n      __typename\n    }\n\n    ... on ContentAreaFieldsContentSlotListLayout {\n      __typename\n      slotListGroup {\n        count\n        displayMode\n        sortBy\n        variant\n        gameProducerSlug\n        gameCategorySlug\n        casinoSlug\n        sectionSubtitle\n        sectionTitle\n        titleAlign\n        viewAllLabel\n        viewAllUrl\n      }\n      slotListData {\n        variant\n        items {\n          title\n          href\n          previewImageUrl\n          logoUrl\n          categoryLabel\n          producerName\n          producerHref\n          metaRows {\n            label\n            value\n          }\n          rtp\n          volatility\n          wagering\n          casinoName\n          tps\n          tpsMaxScore\n          offerTitle\n          spinCount\n          outlineCtaLabel\n          # outlineCtaHref deliberately NOT requested (2026-08-04): slot-list-fields.php on the\n          # live WP instance does not have this field yet, even though it is documented in\n          # docs\u002Fbackend\u002Fschema-reference.md as part of the plugin design. Requesting an unknown\n          # field is a GraphQL VALIDATION error, which nulls the ENTIRE response, not just this\n          # field, and this selection sits inside ContentAreaFields, which ~12 queries compose,\n          # so one missing field broke nearly every page on the site (verified: homepage, and any\n          # nodeByUri page with a slot-list block). The showOutlineCta guard in SlotCard.vue\n          # already requires outlineCtaHref to be truthy, so the CTA button degrades away cleanly\n          # without it. Re-add this line once the plugin ships the field, verified with a direct\n          # field query first (introspection is disabled), per the flexible-content-layout\n          # checklist in CLAUDE.md.\n          defaultTrackingLinks {\n            source\n            trackingCode\n            comsaffUrl\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentIconWysiwygLayout {\n      __typename\n      iconWysiwygGroup {\n        iconName\n        heading\n        content\n      }\n    }\n\n    ... on ContentAreaFieldsContentLatestPicksLayout {\n      __typename\n      latestPicksGroup {\n        sectionTitle\n        count\n        tabs {\n          label\n          queryMode\n          queryPreset\n          orderBy\n          offerTag\n          bonusKind\n        }\n      }\n      # Resolved server-side (bfd v1.2.139). This block saves more than the others: the tab\n      # query is a DYNAMIC document built from the ACF above, so it could not even be composed\n      # until contentAreaFields returned — a strictly serial second leg, on the homepage.\n      #\n      # NOTE: no backticks in these comments -- this whole document is a template literal, and\n      # one stray backtick truncates it silently (caught here by tsc, and by check:schema's\n      # brace-balance guard, which exists because it happened while wiring blogListData).\n      #\n      # The tabs list is positional and includes tabs that resolved to nothing; the component\n      # indexes by position, so a dropped empty tab would shift later tabs onto the wrong label.\n      latestPicksData {\n        tabs {\n          label\n          offers {\n            # The \"acum N zile\" badge reads this; the standalone query selected it too.\n            date\n            ...ComsOfferCardFragment\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentWysiwygCtaLayout {\n      __typename\n      wysiwygCtaGroup {\n        content\n        ctaLink {\n          title\n          url\n          target\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentWysiwygImageLayout {\n      __typename\n      wysiwygImageGroup {\n        heading\n        content\n        reverseColumns\n        image {\n          node {\n            altText\n            sourceUrl\n            mediaDetails {\n              width\n              height\n            }\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentPromoBannerLayout {\n      __typename\n      promoBannerData {\n        title\n        bgImageUrl\n        ctaLabel\n        ctaHref\n      }\n    }\n\n    ... on ContentAreaFieldsContentBlogListLayout {\n      __typename\n      blogListGroup {\n        sectionTitle\n        source\n        count\n        orderby\n        order\n        enableSort\n        enablePagination\n      }\n      # Resolved rows for the block, so it renders from THIS response instead of firing its own\n      # query behind it — a block cannot query until contentAreaFields returns, so its fetch is a\n      # serial waterfall on the critical path (~2.5s page query, then ~1.4s listing).\n      #\n      # NO ARGUMENTS, deliberately. NOTE: no backticks in these comments -- the whole document is\n      # a JS template literal and one stray backtick truncates it silently.\n      #\n      # This selection is spliced into 14 documents, and a selection set cannot declare variables,\n      # so every argument here forced all 14 to declare it too. Eight of nine never did, and an\n      # undeclared variable nulls the ENTIRE response: casino reviews, slots, providers, blog\n      # posts, the producers hub and all three homepage strategies returned nothing against the\n      # live schema. Removing the arguments removes that bug class outright.\n      #\n      # Nothing is lost. The resolver falls back to the block's own ACF (count\u002Forderby\u002Forder), and\n      # pagination + sort are interaction state, fetched by useBlogListBlockData's light query --\n      # the page query must never re-run for a page-param change, since re-paying contentAreaFields\n      # (~1.7s of its ~2.5s) is the cost consolidation exists to remove.\n      #\n      # If a paginated hub ever needs server-side page 1, add it as a FIELD ARGUMENT WITH A\n      # DEFAULT on the PHP side, never as a document variable.\n      blogListData {\n        items {\n          title\n          href\n          # RAW ISO — the card formats ro-RO short month itself. 'dateFormatted' is WP's long\n          # month and would silently change every rendered date.\n          date\n          excerpt\n          categoryLabel\n          heroImageUrl\n          heroImageAlt\n        }\n        pageInfo {\n          total\n          perPage\n          currentPage\n          totalPages\n          hasNextPage\n          hasPreviousPage\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentAuthorListLayout {\n      __typename\n      authorListGroup {\n        sectionTitle\n        queryMode\n        count\n        roles\n      }\n      authorListData {\n        items {\n          \n  displayName\n  roleLabel\n  avatarUrl\n  bio\n  linkedInUrl\n  profileHref\n\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentExcerptCardsLayout {\n      __typename\n      excerptCardsGroup {\n        sectionTitle\n        excerptLength\n        items {\n          title\n          content\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentProducerListLayout {\n      __typename\n      producerListGroup {\n        displayMode\n        orderBy\n        count\n        producerSlug\n      }\n    }\n\n    ... on ContentAreaFieldsContentCasinoPreviewListLayout {\n      __typename\n      casinoPreviewListGroup {\n        displayMode\n        count\n      }\n      casinoPreviewListData {\n        items {\n          casinoLogoUrl\n          casinoName\n          reviewHref\n          offerTitle\n          ctaLabel\n          ctaHref\n        }\n      }\n    }\n\n  }\n}\n\n\nfragment ComsOfferCardFragment on Offer {\n  id\n  slug\n  title\n  tps\n  totalSpins\n  # Analytics data-type-offer label — resolved server-side (bfd's offer-type-map.php): the\n  # offer's bonus-kind term override when set, else its own offer_type mapped through the\n  # coms-sync-rg reference table. Passed straight through by comsOfferToCard() — no client-side\n  # mapping (there used to be one; it duplicated and drifted from bfd's own vocabulary).\n  trackingOfferType\n  linkedSlot {\n    name\n    rtp\n  }\n  # Every slot the spins apply to, RTP-descending, capped at 4 server-side. Named inside the\n  # Slot row's existing accordion dropdown when there's more than one.\n  linkedSlots {\n    name\n    rtp\n  }\n  effectiveValuePerSpin\n  # The shape-agnostic accessor: what TPS actually scored this offer on, whichever shape it stores\n  # its data in (no-deposit rows \u002F deposit-package tiers \u002F RG overlay). Without it a package offer\n  # renders a score with six blank rows, because its spins live in deposit_items.\n  tpsInputs {\n    source\n    spins\n    valuePerSpin\n    rtp\n    wagering\n    daysToExpire\n    maxWithdrawal\n    slotName\n  }\n  # The card's \"Valabilitate\" row. NOT tpsInputs.daysToExpire: that is the winning score\n  # candidate's window, and it falls back to the campaign's own length when a time frame is\n  # missing — which is where \"129 zile\" on a 7-day bonus came from. This is the smallest positive\n  # time frame across every shape the offer can store one in.\n  offerValidityDays\n  # Draft-safe parent-casino display: the offerFields.casino relation below drops draft casinos\n  # (unauthenticated GraphQL excludes them), and most casinos are drafts — so linkedCasino is the\n  # reliable source for the card's logo\u002Fname\u002Frating. The relation stays as a fallback.\n  linkedCasino {\n    databaseId\n    slug\n    title\n    trackingName\n    rating\n    logoUrl\n    logoAlt\n  }\n  # Default-facet tracking links, one per source the offer has a code for. The CTA link is built\n  # client-side from this array (pick by detected LIA source, fall back to \"dt\") — see\n  # app\u002Futils\u002FofferLinks.ts and docs\u002Fexplanation\u002Foffers.md §6a. Cacheable: identical for every\n  # visitor, the per-visitor pick happens after this reaches the browser.\n  defaultTrackingLinks {\n    source\n    trackingCode\n    comsaffUrl\n  }\n  offerTags(first: 8) {\n    nodes {\n      id\n      name\n      slug\n    }\n  }\n  offerFields {\n    offerType\n    offerTypeTags\n    startDate\n    endDate\n    noDepositItems {\n      spinsNo\n      spinValue\n      wagering\n      maxCashout\n      minBet\n      maxBet\n      timeFrame\n      bonusCode\n    }\n    casino {\n      nodes {\n        ... on Casino {\n          id\n          slug\n          uri\n          title\n          trackingName\n          featuredImage { node { sourceUrl altText } }\n          comsThumbnailUrl\n          comsThumbnailAlt\n          casinoFields { rating }\n          rgCasinoExtra { localSlug }\n        }\n      }\n    }\n  }\n  rgOfferExtra {\n    offerTitle\n    shortDescription\n    rgSpinsNo\n    rgSpinValue\n    rgWagering\n    rgMaxCashout\n    rgTimeFrame\n    rgAvailableSlot {\n      nodes {\n        ... on Slot {\n          id\n          title\n          slotFields {\n            rtp\n          }\n        }\n      }\n    }\n    exceptionsValue\n    exceptionsText\n    bulletPoints {\n      text\n    }\n    customRows {\n      label\n      value\n      dropdownText\n      iconName\n    }\n  }\n}\n\n  \n  fragment SeoFields on PostTypeSEO {\n    title\n    metaDesc\n    canonical\n    opengraphTitle\n    opengraphDescription\n    opengraphType\n    opengraphUrl\n    opengraphImage {\n      sourceUrl\n      altText\n      mediaDetails { width height }\n    }\n    metaRobotsNoindex\n    metaRobotsNofollow\n    breadcrumbs { text url }\n  }\n\n  \n  fragment TaxSeoFields on TaxonomySEO {\n    title\n    metaDesc\n    canonical\n  }\n\n  query GetPageData(\n    $uri: String!\n  ) {\n    nodeByUri(uri: $uri) {\n      __typename\n      id\n      uri\n\n      ... on Page {\n        title\n        content\n        seo { ...SeoFields }\n        template {\n          templateName\n        }\n        pageSettings {\n          pageLayout\n          sidebarTitle\n        }\n        \n        casinosHubSettings {\n          heroTitle\n          heroDescription\n          offerButtonText\n          rankBy\n          casinoOrderId\n          offerTypeFilter\n          casinoCategory { nodes { id slug name } }\n          sidebarTitle\n          titlePatternIds\n        }\n        sidebarBannersData {\n          title\n          bgImageUrl\n          ctaLabel\n          ctaHref\n        }\n        heroPromoBannerData {\n          title\n          bgImageUrl\n          ctaLabel\n          ctaHref\n        }\n        blogIndexSettings {\n          heroTitle\n          heroDescription\n          heroKicker\n          sidebarTitle\n          blogShowGrid\n        }\n        blogFeaturedPostIds\n        blogOffersSettings {\n          showSection\n          kicker\n          title\n          mode\n          autoTag\n          autoCount\n          autoOrderby\n        }\n        blogManualOfferIds\n        heroBannerData {\n          title\n          bgImageUrl\n          ctaLabel\n          ctaHref\n        }\n        offersHubSettings {\n          heroTitle\n          heroDescription\n          heroCtaText\n          heroCtaUrl\n          bonusKind {\n            nodes {\n              id\n              databaseId\n              slug\n              name\n            }\n          }\n          primaryOfferTag {\n            nodes {\n              id\n              slug\n              name\n            }\n          }\n          allowedOfferTags {\n            nodes {\n              id\n              slug\n              name\n            }\n          }\n          titlePatternIds\n          offerTypeFilter\n          queryPreset\n          offerLimit\n        }\n        producersHubSettings {\n          heroTitle\n          heroDescription\n        }\n        slotsHubSettings {\n          heroTitle\n          heroDescription\n          topBannerOffer {\n            nodes {\n              ... on Offer {\n                ...ComsOfferCardFragment\n              }\n            }\n          }\n          showSearch\n          postsPerPage\n          offersSectionTitle\n          pageOffers {\n            nodes {\n              ... on Offer {\n                ...ComsOfferCardFragment\n              }\n            }\n          }\n          pageOffersDarkMode\n          pageOffersLimit\n          pageOffersSeeMore\n          pageOffersSeeMoreText\n          pageOffersSeeMoreUrl\n          defaultGameCategory\n          featuredOfferSource\n          sidebarTitle\n        }\n        contentAreaFields { ...ContentAreaFieldsFragment }\n\n        # Add homepage-specific fields here\n        homepageFields {\n          heroGroup {\n            heroLeftStack {\n              ctaText\n              linkDestination {\n                url\n                target\n                title\n              }\n              imageDesktop {\n                node {\n                  sourceUrl(size: LARGE)\n                  altText\n                  mediaDetails {\n                    width\n                    height\n                  }\n                }\n              }\n              imageMobile {\n                node {\n                  sourceUrl(size: LARGE)\n                  altText\n                  mediaDetails {\n                    width\n                    height\n                  }\n                }\n              }\n            }\n            heroFeaturedTall {\n              ctaText\n              linkDestination {\n                url\n                target\n                title\n              }\n              imageDesktop {\n                node {\n                  sourceUrl(size: LARGE)\n                  altText\n                  mediaDetails {\n                    width\n                    height\n                  }\n                }\n              }\n              imageMobile {\n                node {\n                  sourceUrl(size: LARGE)\n                  altText\n                  mediaDetails {\n                    width\n                    height\n                  }\n                }\n              }\n            }\n            heroRightGrid {\n              topLeftCard {\n                linkDestination {\n                  url\n                  target\n                  title\n                }\n                imageDesktop {\n                  node {\n                    sourceUrl(size: LARGE)\n                    altText\n                    mediaDetails {\n                      width\n                      height\n                    }\n                  }\n                }\n              }\n              topRightStack {\n                linkDestination {\n                  url\n                  target\n                  title\n                }\n                imageDesktop {\n                  node {\n                    sourceUrl(size: LARGE)\n                    altText\n                    mediaDetails {\n                      width\n                      height\n                    }\n                  }\n                }\n              }\n              bottomWide {\n                linkDestination {\n                  url\n                  target\n                  title\n                }\n                imageDesktop {\n                  node {\n                    sourceUrl(size: LARGE)\n                    altText\n                    mediaDetails {\n                      width\n                      height\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n        \n      }\n\n      ... on Post {\n        id\n        # REQUIRED by [...uri].vue: a Post reaching the catch-all means a bare\n        # \u002F{slug}\u002F URL was requested, and it 301s to the canonical \u002Fblog\u002F{slug}\u002F route.\n        # That redirect is guarded on slug being non-empty — without this field the\n        # guard silently fails and the bare URL renders a duplicate of the article\n        # instead of redirecting.\n        slug\n        title\n        date\n        excerpt\n        seo { ...SeoFields }\n        userRating {\n          average\n          count\n          id\n        }\n        author {\n          node {\n            id\n            name\n            uri\n          }\n        }\n        featuredImage {\n          node {\n            altText\n            mediaDetails {\n              width\n              height\n            }\n            sourceUrl\n          }\n        }\n        template {\n          templateName\n        }\n        contentAreaFields { ...ContentAreaFieldsFragment }\n      }\n\n      ... on Category {\n        name\n        description\n        seo { ...TaxSeoFields }\n        categoryFields {\n          categorygroup {\n            heroImage {\n              node {\n                sourceUrl\n                altText\n                mediaDetails {\n                  width\n                  height\n                }\n              } \n            } \n            heroImageLink {\n              target\n              title\n              url\n            }\n          }\n        }\n      }\n      \n      ... on OfferTag {\n        id\n        name\n        description\n        seo { ...TaxSeoFields }\n        contentAreaFields { ...ContentAreaFieldsFragment }\n      }\n\n      ... on BonusKind {\n        uri\n        slug\n        name\n        description\n        seo { ...TaxSeoFields }\n      }\n\n      ... on User {\n        databaseId\n        name\n        description\n        url\n        avatar {\n          url\n        }\n        userProfile {\n          jobTitle\n        }\n        contentAreaFields { ...ContentAreaFieldsFragment }\n      }\n\n      ... on Slot {\n        title\n        seo { ...SeoFields }\n        slotThemes(first: 24) {\n          nodes {\n            id\n            name\n            slug\n            uri\n          }\n        }\n        gameProviders(first: 4) {\n          nodes {\n            id\n            name\n            slug\n            uri\n          }\n        }\n        slotFields {\n          coverImage\n          rtp\n          volatility\n        }\n        rgSlotExtra {\n          localSlug\n          metadataSectionTitle\n          metadata {\n            rowType\n            label\n            value\n            tooltipText\n          }\n        }\n        contentAreaFields { ...ContentAreaFieldsFragment }\n      }\n\n      ... on SlotTheme {\n        name\n        description\n        uri\n        seo { ...TaxSeoFields }\n        parent {\n          node {\n            id\n            name\n            slug\n          }\n        }\n        children {\n          nodes {\n            id\n            name\n            slug\n          }\n        }\n        contentAreaFields { ...ContentAreaFieldsFragment }\n      }\n\n      ... on GameProvider {\n        name\n        slug\n        uri\n        description\n        count\n        seo { ...TaxSeoFields }\n        slots(first: 24) {\n          nodes {\n            id\n            title\n            slug\n            featuredImage {\n              node {\n                sourceUrl\n                altText\n              }\n            }\n          }\n        }\n      }\n\n    }\n  }\n:{\"uri\":\"\u002Fblog\u002Fnapoleon-games-bonus-fara-depunere\u002F\"}":900,"\n\nfragment ContentAreaFieldsFragment on ContentAreaFields {\n  __typename\n  content {\n    ... on ContentAreaFieldsContentTableLayout {\n      __typename\n      tableGroup {\n        headerColor\n        tableDescription\n        headers {\n          align\n          text\n        }\n        rows {\n          cells {\n            align\n            contentType\n            text\n            link {\n              target\n              title\n              url\n            }\n          }\n        }\n      }\n    }\n    \n    ...on ContentAreaFieldsContentNoticeLayout {\n      __typename\n      noticeGroup {\n        heading\n        text\n        enableCardIcon\n        button {\n          variant\n          link {\n            target\n            title\n            url\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentProAndConLayout {\n      __typename\n      proAndConGroup {\n        prosSectionTitle\n        consSectionTitle\n        itemsToDisplay\n        pros {\n          text\n        }\n        cons {\n          text\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentStepsLayout {\n      __typename\n      stepsGroup {\n        variant\n        steps {\n          title\n          description\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentQuoteLayout {\n      __typename\n      quoteGroup {\n        client\n        description\n      }\n    }\n\n    ... on ContentAreaFieldsContentDropdownLayout {\n      __typename\n      dropdownGroup {\n        items {\n          title\n          description\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentOfferImageInfoLayout {\n      __typename\n      offerImageInfoGroup {\n        heading\n        description1\n        description2\n        link {\n          target\n          title\n          url\n        }\n        image {\n          node {\n            altText\n            sourceUrl\n            mediaDetails {\n              width\n              height\n            }\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentFaqLayout {\n      __typename\n      faqGroup {\n        iconName\n        content\n        items {\n          title\n          answer\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentNumberedCardsLayout {\n      __typename\n      numberedCardsGroup {\n        variant\n        pillLabel\n        heading\n        items {\n          title\n          description\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentWysiwygLayout {\n      __typename\n      wysiwygGroup {\n        content\n      }\n    }\n\n    ... on ContentAreaFieldsContentTabsContentLayout {\n      __typename\n      tabsContentGroup {\n        tabs {\n          tabName\n          image {\n            node {\n              altText\n              sourceUrl\n              mediaDetails {\n                width\n                height\n              }\n            }\n          }\n          affLink {\n            target\n            title\n            url\n          }\n          pageLink {\n            target\n            title\n            url\n          }\n          content\n        }\n      }\n    }\n    \n    ... on ContentAreaFieldsContentSingleOfferLayout {\n      singleOfferGroup {\n        offer {\n          nodes {\n            ... on Offer {\n              ...ComsOfferCardFragment\n            }\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentTpsCalculatorLayout {\n      __typename\n      tpsCalculatorGroup {\n        content\n        ctaLink {\n          title\n          url\n          target\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentOfferListLayout {\n      __typename\n      offerListGroup {\n        theme\n        displayMode\n        count\n        queryMode\n        cardVariantFilter\n        bonusKindFilter\n        offerTagFilter\n        offerTypeFilter\n        casinoIds\n        titlePatternIds\n        sectionSubtitle\n        sectionTitle\n        asPageH1\n        titleAlign\n        viewAllLabel\n        viewAllUrl\n      }\n      # Resolved server-side (bfd v1.2.138) so the block renders without firing\n      # GetComsOfferListBlock after this query returns — that second request is a serial\n      # waterfall on the critical path, and ~1s of it is fixed per-request overhead.\n      #\n      # No arguments: every filter above is ACF the resolver reads itself, and the block\n      # paginates client-side over rows it already has. Unlike blogListData there is no\n      # route state to hand through.\n      offerListData {\n        items {\n          # patternTitle, not patternTitles(ids:), because the id set is PER BLOCK and a\n          # document variable can only carry one — the homepage renders six of these blocks\n          # with six different sets. PHP sees each block's own ACF, so PHP picks the title.\n          patternTitle\n          # The rank PHP sorted on. Selected so mapComsOffers' re-sort is a verifiable no-op\n          # rather than a silent reordering.\n          tps\n          offer {\n            ...ComsOfferCardFragment\n          }\n        }\n        pageInfo {\n          perPage\n          hasNextPage\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentHeroLayout {\n      __typename\n      heroGroup {\n        heroImage {\n          node {\n            altText\n            sourceUrl\n            mediaDetails {\n              width\n              height\n            }\n          }\n        }\n        headingImage {\n          node {\n            altText\n            sourceUrl\n            mediaDetails {\n              width\n              height\n            }\n          }\n        }\n        ctaLabel\n        ctaLink {\n          url\n          title\n          target\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentContactFormLayout {\n      __typename\n      contactFormGroup {\n        formId\n        submitLabel\n        successMessage\n      }\n    }\n\n    ... on ContentAreaFieldsContentShortcodeLayout {\n      __typename\n      shortcode\n      renderedHtml\n    }\n\n    ... on ContentAreaFieldsContentLegalDocumentLayout {\n      __typename\n      documentSlug\n      documentTitle\n      renderedHtml\n    }\n\n    ... on ContentAreaFieldsContentAnchorLayout {\n      __typename\n      anchorId\n    }\n\n    # TBS Meter — self-contained (offers come from GetTbsMeterOffers at render time; the\n    # layout's legacy anchor_target ACF field still exists WP-side but is no longer consumed).\n    ... on ContentAreaFieldsContentTbsPromoLayout {\n      __typename\n    }\n\n    ... on ContentAreaFieldsContentSlotListLayout {\n      __typename\n      slotListGroup {\n        count\n        displayMode\n        sortBy\n        variant\n        gameProducerSlug\n        gameCategorySlug\n        casinoSlug\n        sectionSubtitle\n        sectionTitle\n        titleAlign\n        viewAllLabel\n        viewAllUrl\n      }\n      slotListData {\n        variant\n        items {\n          title\n          href\n          previewImageUrl\n          logoUrl\n          categoryLabel\n          producerName\n          producerHref\n          metaRows {\n            label\n            value\n          }\n          rtp\n          volatility\n          wagering\n          casinoName\n          tps\n          tpsMaxScore\n          offerTitle\n          spinCount\n          outlineCtaLabel\n          # outlineCtaHref deliberately NOT requested (2026-08-04): slot-list-fields.php on the\n          # live WP instance does not have this field yet, even though it is documented in\n          # docs\u002Fbackend\u002Fschema-reference.md as part of the plugin design. Requesting an unknown\n          # field is a GraphQL VALIDATION error, which nulls the ENTIRE response, not just this\n          # field, and this selection sits inside ContentAreaFields, which ~12 queries compose,\n          # so one missing field broke nearly every page on the site (verified: homepage, and any\n          # nodeByUri page with a slot-list block). The showOutlineCta guard in SlotCard.vue\n          # already requires outlineCtaHref to be truthy, so the CTA button degrades away cleanly\n          # without it. Re-add this line once the plugin ships the field, verified with a direct\n          # field query first (introspection is disabled), per the flexible-content-layout\n          # checklist in CLAUDE.md.\n          defaultTrackingLinks {\n            source\n            trackingCode\n            comsaffUrl\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentIconWysiwygLayout {\n      __typename\n      iconWysiwygGroup {\n        iconName\n        heading\n        content\n      }\n    }\n\n    ... on ContentAreaFieldsContentLatestPicksLayout {\n      __typename\n      latestPicksGroup {\n        sectionTitle\n        count\n        tabs {\n          label\n          queryMode\n          queryPreset\n          orderBy\n          offerTag\n          bonusKind\n        }\n      }\n      # Resolved server-side (bfd v1.2.139). This block saves more than the others: the tab\n      # query is a DYNAMIC document built from the ACF above, so it could not even be composed\n      # until contentAreaFields returned — a strictly serial second leg, on the homepage.\n      #\n      # NOTE: no backticks in these comments -- this whole document is a template literal, and\n      # one stray backtick truncates it silently (caught here by tsc, and by check:schema's\n      # brace-balance guard, which exists because it happened while wiring blogListData).\n      #\n      # The tabs list is positional and includes tabs that resolved to nothing; the component\n      # indexes by position, so a dropped empty tab would shift later tabs onto the wrong label.\n      latestPicksData {\n        tabs {\n          label\n          offers {\n            # The \"acum N zile\" badge reads this; the standalone query selected it too.\n            date\n            ...ComsOfferCardFragment\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentWysiwygCtaLayout {\n      __typename\n      wysiwygCtaGroup {\n        content\n        ctaLink {\n          title\n          url\n          target\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentWysiwygImageLayout {\n      __typename\n      wysiwygImageGroup {\n        heading\n        content\n        reverseColumns\n        image {\n          node {\n            altText\n            sourceUrl\n            mediaDetails {\n              width\n              height\n            }\n          }\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentPromoBannerLayout {\n      __typename\n      promoBannerData {\n        title\n        bgImageUrl\n        ctaLabel\n        ctaHref\n      }\n    }\n\n    ... on ContentAreaFieldsContentBlogListLayout {\n      __typename\n      blogListGroup {\n        sectionTitle\n        source\n        count\n        orderby\n        order\n        enableSort\n        enablePagination\n      }\n      # Resolved rows for the block, so it renders from THIS response instead of firing its own\n      # query behind it — a block cannot query until contentAreaFields returns, so its fetch is a\n      # serial waterfall on the critical path (~2.5s page query, then ~1.4s listing).\n      #\n      # NO ARGUMENTS, deliberately. NOTE: no backticks in these comments -- the whole document is\n      # a JS template literal and one stray backtick truncates it silently.\n      #\n      # This selection is spliced into 14 documents, and a selection set cannot declare variables,\n      # so every argument here forced all 14 to declare it too. Eight of nine never did, and an\n      # undeclared variable nulls the ENTIRE response: casino reviews, slots, providers, blog\n      # posts, the producers hub and all three homepage strategies returned nothing against the\n      # live schema. Removing the arguments removes that bug class outright.\n      #\n      # Nothing is lost. The resolver falls back to the block's own ACF (count\u002Forderby\u002Forder), and\n      # pagination + sort are interaction state, fetched by useBlogListBlockData's light query --\n      # the page query must never re-run for a page-param change, since re-paying contentAreaFields\n      # (~1.7s of its ~2.5s) is the cost consolidation exists to remove.\n      #\n      # If a paginated hub ever needs server-side page 1, add it as a FIELD ARGUMENT WITH A\n      # DEFAULT on the PHP side, never as a document variable.\n      blogListData {\n        items {\n          title\n          href\n          # RAW ISO — the card formats ro-RO short month itself. 'dateFormatted' is WP's long\n          # month and would silently change every rendered date.\n          date\n          excerpt\n          categoryLabel\n          heroImageUrl\n          heroImageAlt\n        }\n        pageInfo {\n          total\n          perPage\n          currentPage\n          totalPages\n          hasNextPage\n          hasPreviousPage\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentAuthorListLayout {\n      __typename\n      authorListGroup {\n        sectionTitle\n        queryMode\n        count\n        roles\n      }\n      authorListData {\n        items {\n          \n  displayName\n  roleLabel\n  avatarUrl\n  bio\n  linkedInUrl\n  profileHref\n\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentExcerptCardsLayout {\n      __typename\n      excerptCardsGroup {\n        sectionTitle\n        excerptLength\n        items {\n          title\n          content\n        }\n      }\n    }\n\n    ... on ContentAreaFieldsContentProducerListLayout {\n      __typename\n      producerListGroup {\n        displayMode\n        orderBy\n        count\n        producerSlug\n      }\n    }\n\n    ... on ContentAreaFieldsContentCasinoPreviewListLayout {\n      __typename\n      casinoPreviewListGroup {\n        displayMode\n        count\n      }\n      casinoPreviewListData {\n        items {\n          casinoLogoUrl\n          casinoName\n          reviewHref\n          offerTitle\n          ctaLabel\n          ctaHref\n        }\n      }\n    }\n\n  }\n}\n\n\nfragment ComsOfferCardFragment on Offer {\n  id\n  slug\n  title\n  tps\n  totalSpins\n  # Analytics data-type-offer label — resolved server-side (bfd's offer-type-map.php): the\n  # offer's bonus-kind term override when set, else its own offer_type mapped through the\n  # coms-sync-rg reference table. Passed straight through by comsOfferToCard() — no client-side\n  # mapping (there used to be one; it duplicated and drifted from bfd's own vocabulary).\n  trackingOfferType\n  linkedSlot {\n    name\n    rtp\n  }\n  # Every slot the spins apply to, RTP-descending, capped at 4 server-side. Named inside the\n  # Slot row's existing accordion dropdown when there's more than one.\n  linkedSlots {\n    name\n    rtp\n  }\n  effectiveValuePerSpin\n  # The shape-agnostic accessor: what TPS actually scored this offer on, whichever shape it stores\n  # its data in (no-deposit rows \u002F deposit-package tiers \u002F RG overlay). Without it a package offer\n  # renders a score with six blank rows, because its spins live in deposit_items.\n  tpsInputs {\n    source\n    spins\n    valuePerSpin\n    rtp\n    wagering\n    daysToExpire\n    maxWithdrawal\n    slotName\n  }\n  # The card's \"Valabilitate\" row. NOT tpsInputs.daysToExpire: that is the winning score\n  # candidate's window, and it falls back to the campaign's own length when a time frame is\n  # missing — which is where \"129 zile\" on a 7-day bonus came from. This is the smallest positive\n  # time frame across every shape the offer can store one in.\n  offerValidityDays\n  # Draft-safe parent-casino display: the offerFields.casino relation below drops draft casinos\n  # (unauthenticated GraphQL excludes them), and most casinos are drafts — so linkedCasino is the\n  # reliable source for the card's logo\u002Fname\u002Frating. The relation stays as a fallback.\n  linkedCasino {\n    databaseId\n    slug\n    title\n    trackingName\n    rating\n    logoUrl\n    logoAlt\n  }\n  # Default-facet tracking links, one per source the offer has a code for. The CTA link is built\n  # client-side from this array (pick by detected LIA source, fall back to \"dt\") — see\n  # app\u002Futils\u002FofferLinks.ts and docs\u002Fexplanation\u002Foffers.md §6a. Cacheable: identical for every\n  # visitor, the per-visitor pick happens after this reaches the browser.\n  defaultTrackingLinks {\n    source\n    trackingCode\n    comsaffUrl\n  }\n  offerTags(first: 8) {\n    nodes {\n      id\n      name\n      slug\n    }\n  }\n  offerFields {\n    offerType\n    offerTypeTags\n    startDate\n    endDate\n    noDepositItems {\n      spinsNo\n      spinValue\n      wagering\n      maxCashout\n      minBet\n      maxBet\n      timeFrame\n      bonusCode\n    }\n    casino {\n      nodes {\n        ... on Casino {\n          id\n          slug\n          uri\n          title\n          trackingName\n          featuredImage { node { sourceUrl altText } }\n          comsThumbnailUrl\n          comsThumbnailAlt\n          casinoFields { rating }\n          rgCasinoExtra { localSlug }\n        }\n      }\n    }\n  }\n  rgOfferExtra {\n    offerTitle\n    shortDescription\n    rgSpinsNo\n    rgSpinValue\n    rgWagering\n    rgMaxCashout\n    rgTimeFrame\n    rgAvailableSlot {\n      nodes {\n        ... on Slot {\n          id\n          title\n          slotFields {\n            rtp\n          }\n        }\n      }\n    }\n    exceptionsValue\n    exceptionsText\n    bulletPoints {\n      text\n    }\n    customRows {\n      label\n      value\n      dropdownText\n      iconName\n    }\n  }\n}\n\n  \n  fragment SeoFields on PostTypeSEO {\n    title\n    metaDesc\n    canonical\n    opengraphTitle\n    opengraphDescription\n    opengraphType\n    opengraphUrl\n    opengraphImage {\n      sourceUrl\n      altText\n      mediaDetails { width height }\n    }\n    metaRobotsNoindex\n    metaRobotsNofollow\n    breadcrumbs { text url }\n  }\n\nquery GetPostBySlug($slug: ID!\n) {\n  post(id: $slug, idType: SLUG) {\n    __typename\n    id\n    uri\n    title\n    date\n    modified\n    excerpt\n    seo { ...SeoFields }\n    userRating {\n      average\n      count\n      id\n    }\n    author {\n      node {\n        id\n        name\n        uri\n      }\n    }\n    featuredImage {\n      node {\n        altText\n        mediaDetails {\n          width\n          height\n        }\n        sourceUrl\n      }\n    }\n    template {\n      templateName\n    }\n    contentAreaFields { ...ContentAreaFieldsFragment }\n    sidebarBannersData {\n      title\n      bgImageUrl\n      ctaLabel\n      ctaHref\n    }\n    postSingleSettings {\n      heroDescription\n      sidebarTitle\n    }\n  }\n}\n:{\"slug\":\"napoleon-games-bonus-fara-depunere\"}":901},{"menus":4,"menusError":11,"settings":675,"settingsError":11},{"headerMenu":5,"footerMenu":671,"footerLegal":673},{"nodes":6},[7,29,35,41,109,115,121,127,133,139,145,151,157,163,169,427,434,441,448,455,462,469,476,483,490,497,504,511,518,525,532,539,546,553,560,567,574,581,588,595,602,609,616,623,630,637,644,653,662],{"id":8,"label":9,"url":10,"parentId":11,"cssClasses":12,"connectedNode":13,"childItems":16},"cG9zdDoyMzMw","Cazinouri Online","https:\u002F\u002Frotirigratuite.ro\u002Fcasino-online\u002F",null,[],{"node":14},{"__typename":15},"Page",{"nodes":17},[18,23],{"id":19,"label":20,"url":10,"connectedNode":21},"cG9zdDoyMzUy","Top Cazinouri",{"node":22},{"__typename":15},{"id":24,"label":25,"url":26,"connectedNode":27},"cG9zdDoyMzI5","Cazinouri Noi","https:\u002F\u002Frotirigratuite.ro\u002Fcazinouri-noi-fara-depunere\u002F",{"node":28},{"__typename":15},{"id":19,"label":20,"url":10,"parentId":8,"cssClasses":30,"connectedNode":31,"childItems":33},[],{"node":32},{"__typename":15},{"nodes":34},[],{"id":24,"label":25,"url":26,"parentId":8,"cssClasses":36,"connectedNode":37,"childItems":39},[],{"node":38},{"__typename":15},{"nodes":40},[],{"id":42,"label":43,"url":44,"parentId":11,"cssClasses":45,"connectedNode":46,"childItems":48},"cG9zdDoyMzMz","Bonusuri","https:\u002F\u002Frotirigratuite.ro\u002Fbonus-de-bun-venit\u002F",[],{"node":47},{"__typename":15},{"nodes":49},[50,55,61,67,73,79,85,91,97,103],{"id":51,"label":52,"url":44,"connectedNode":53},"cG9zdDoyMzYz","Bonus de bun venit",{"node":54},{"__typename":15},{"id":56,"label":57,"url":58,"connectedNode":59},"cG9zdDoyMzY0","Rotiri Gratuite Fără Depunere","https:\u002F\u002Frotirigratuite.ro\u002Fbonus-fara-depunere\u002F",{"node":60},{"__typename":15},{"id":62,"label":63,"url":64,"connectedNode":65},"cG9zdDo2NTE0","50 de Rotiri Gratuite","https:\u002F\u002Frotirigratuite.ro\u002Fbonus-fara-depunere\u002F50-rotiri-gratuite\u002F",{"node":66},{"__typename":15},{"id":68,"label":69,"url":70,"connectedNode":71},"cG9zdDo2NTEx","100 Rotiri Gratuite","https:\u002F\u002Frotirigratuite.ro\u002Fbonus-fara-depunere\u002F100-rotiri-gratuite\u002F",{"node":72},{"__typename":15},{"id":74,"label":75,"url":76,"connectedNode":77},"cG9zdDo2NTEy","200 Rotiri Gratuite","https:\u002F\u002Frotirigratuite.ro\u002Fbonus-fara-depunere\u002F200-rotiri-gratuite\u002F",{"node":78},{"__typename":15},{"id":80,"label":81,"url":82,"connectedNode":83},"cG9zdDo2NTE2","300 Rotiri Gratuite","https:\u002F\u002Frotirigratuite.ro\u002Fbonus-fara-depunere\u002F300-rotiri-gratuite\u002F",{"node":84},{"__typename":15},{"id":86,"label":87,"url":88,"connectedNode":89},"cG9zdDo2NTEz","400 Rotiri Gratuite","https:\u002F\u002Frotirigratuite.ro\u002Fbonus-fara-depunere\u002F400-rotiri-gratuite\u002F",{"node":90},{"__typename":15},{"id":92,"label":93,"url":94,"connectedNode":95},"cG9zdDo2NTE1","500 Rotiri Gratuite","https:\u002F\u002Frotirigratuite.ro\u002Fbonus-fara-depunere\u002F500-rotiri-gratuite\u002F",{"node":96},{"__typename":15},{"id":98,"label":99,"url":100,"connectedNode":101},"cG9zdDoyMzQy","Păcănele Fără Depunere","https:\u002F\u002Frotirigratuite.ro\u002Fpacanele-fara-depunere\u002F",{"node":102},{"__typename":15},{"id":104,"label":105,"url":106,"connectedNode":107},"cG9zdDoyMzM0","Cod Bonus","https:\u002F\u002Frotirigratuite.ro\u002Fcod-bonus-casino\u002F",{"node":108},{"__typename":15},{"id":51,"label":52,"url":44,"parentId":42,"cssClasses":110,"connectedNode":111,"childItems":113},[],{"node":112},{"__typename":15},{"nodes":114},[],{"id":56,"label":57,"url":58,"parentId":42,"cssClasses":116,"connectedNode":117,"childItems":119},[],{"node":118},{"__typename":15},{"nodes":120},[],{"id":62,"label":63,"url":64,"parentId":42,"cssClasses":122,"connectedNode":123,"childItems":125},[],{"node":124},{"__typename":15},{"nodes":126},[],{"id":68,"label":69,"url":70,"parentId":42,"cssClasses":128,"connectedNode":129,"childItems":131},[],{"node":130},{"__typename":15},{"nodes":132},[],{"id":74,"label":75,"url":76,"parentId":42,"cssClasses":134,"connectedNode":135,"childItems":137},[],{"node":136},{"__typename":15},{"nodes":138},[],{"id":80,"label":81,"url":82,"parentId":42,"cssClasses":140,"connectedNode":141,"childItems":143},[],{"node":142},{"__typename":15},{"nodes":144},[],{"id":86,"label":87,"url":88,"parentId":42,"cssClasses":146,"connectedNode":147,"childItems":149},[],{"node":148},{"__typename":15},{"nodes":150},[],{"id":92,"label":93,"url":94,"parentId":42,"cssClasses":152,"connectedNode":153,"childItems":155},[],{"node":154},{"__typename":15},{"nodes":156},[],{"id":98,"label":99,"url":100,"parentId":42,"cssClasses":158,"connectedNode":159,"childItems":161},[],{"node":160},{"__typename":15},{"nodes":162},[],{"id":104,"label":105,"url":106,"parentId":42,"cssClasses":164,"connectedNode":165,"childItems":167},[],{"node":166},{"__typename":15},{"nodes":168},[],{"id":170,"label":171,"url":172,"parentId":11,"cssClasses":173,"connectedNode":174,"childItems":176},"cG9zdDoyMzQ0","Recenzii","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002F",[],{"node":175},{"__typename":15},{"nodes":177},[178,187,195,203,211,219,227,235,243,251,259,267,275,283,291,299,307,315,323,331,339,347,355,363,371,379,387,395,403,411,419],{"id":179,"label":180,"url":181,"connectedNode":182},"cG9zdDo2Mzc3","Bilion","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fbil\u002F",{"node":183},{"__typename":184,"rgCasinoExtra":185},"Casino",{"localSlug":186},"bilion-casino",{"id":188,"label":189,"url":190,"connectedNode":191},"cG9zdDo2Mzgw","Superbet","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fsup\u002F",{"node":192},{"__typename":184,"rgCasinoExtra":193},{"localSlug":194},"superbet-casino",{"id":196,"label":197,"url":198,"connectedNode":199},"cG9zdDo2Mzgx","Unibet","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Funi\u002F",{"node":200},{"__typename":184,"rgCasinoExtra":201},{"localSlug":202},"unibet-casino",{"id":204,"label":205,"url":206,"connectedNode":207},"cG9zdDo2MzY0","Zinx","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fznx\u002F",{"node":208},{"__typename":184,"rgCasinoExtra":209},{"localSlug":210},"zinx-casino",{"id":212,"label":213,"url":214,"connectedNode":215},"cG9zdDo2MzY4","Winboss","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fwbs\u002F",{"node":216},{"__typename":184,"rgCasinoExtra":217},{"localSlug":218},"winboss-casino",{"id":220,"label":221,"url":222,"connectedNode":223},"cG9zdDo2Mzc4","Casa Pariurilor","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fcpr\u002F",{"node":224},{"__typename":184,"rgCasinoExtra":225},{"localSlug":226},"casa-pariurilor-casino",{"id":228,"label":229,"url":230,"connectedNode":231},"cG9zdDo2Mzgy","Fortuna","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Ffor\u002F",{"node":232},{"__typename":184,"rgCasinoExtra":233},{"localSlug":234},"fortuna-casino",{"id":236,"label":237,"url":238,"connectedNode":239},"cG9zdDo2Mzcx","Toto Gaming","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Ftot\u002F",{"node":240},{"__typename":184,"rgCasinoExtra":241},{"localSlug":242},"toto-gaming-casino",{"id":244,"label":245,"url":246,"connectedNode":247},"cG9zdDo2Mzc5","Conti","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fcnt\u002F",{"node":248},{"__typename":184,"rgCasinoExtra":249},{"localSlug":250},"conti-cazino",{"id":252,"label":253,"url":254,"connectedNode":255},"cG9zdDo2Mzgz","VladCazino","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fvld\u002F",{"node":256},{"__typename":184,"rgCasinoExtra":257},{"localSlug":258},"vlad-cazino",{"id":260,"label":261,"url":262,"connectedNode":263},"cG9zdDo2Mzg0","Prima","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fprm\u002F",{"node":264},{"__typename":184,"rgCasinoExtra":265},{"localSlug":266},"prima-casino",{"id":268,"label":269,"url":270,"connectedNode":271},"cG9zdDo2Mzg1","Betano","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fbtn\u002F",{"node":272},{"__typename":184,"rgCasinoExtra":273},{"localSlug":274},"betano-casino",{"id":276,"label":277,"url":278,"connectedNode":279},"cG9zdDo2Mzg2","GetsBet","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fget\u002F",{"node":280},{"__typename":184,"rgCasinoExtra":281},{"localSlug":282},"getsbet-casino",{"id":284,"label":285,"url":286,"connectedNode":287},"cG9zdDo2Mzg3","MrBit","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fmrb\u002F",{"node":288},{"__typename":184,"rgCasinoExtra":289},{"localSlug":290},"mr-bit-casino",{"id":292,"label":293,"url":294,"connectedNode":295},"cG9zdDo2Mzg4","Netbet","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fnet\u002F",{"node":296},{"__typename":184,"rgCasinoExtra":297},{"localSlug":298},"netbet-casino",{"id":300,"label":301,"url":302,"connectedNode":303},"cG9zdDo2Mzg5","Pacanele.ro","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fpac\u002F",{"node":304},{"__typename":184,"rgCasinoExtra":305},{"localSlug":306},"pacanele-ro-casino",{"id":308,"label":309,"url":310,"connectedNode":311},"cG9zdDo2Mzkw","Pokerstars","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fpks\u002F",{"node":312},{"__typename":184,"rgCasinoExtra":313},{"localSlug":314},"pokerstars-casino",{"id":316,"label":317,"url":318,"connectedNode":319},"cG9zdDo2Mzkx","12xBet","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002F12x\u002F",{"node":320},{"__typename":184,"rgCasinoExtra":321},{"localSlug":322},"12xbet-casino",{"id":324,"label":325,"url":326,"connectedNode":327},"cG9zdDo2Mzky","32Rosu","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002F32r\u002F",{"node":328},{"__typename":184,"rgCasinoExtra":329},{"localSlug":330},"32rosu-casino",{"id":332,"label":333,"url":334,"connectedNode":335},"cG9zdDo2Mzkz","888","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002F888\u002F",{"node":336},{"__typename":184,"rgCasinoExtra":337},{"localSlug":338},"888-casino",{"id":340,"label":341,"url":342,"connectedNode":343},"cG9zdDo2Mzk0","Don.Ro","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fdon\u002F",{"node":344},{"__typename":184,"rgCasinoExtra":345},{"localSlug":346},"don-casino",{"id":348,"label":349,"url":350,"connectedNode":351},"cG9zdDo2Mzk1","Hot Spins","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fhot\u002F",{"node":352},{"__typename":184,"rgCasinoExtra":353},{"localSlug":354},"hot-spins-casino",{"id":356,"label":357,"url":358,"connectedNode":359},"cG9zdDo2Mzk2","King Casino","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fkng\u002F",{"node":360},{"__typename":184,"rgCasinoExtra":361},{"localSlug":362},"king-casino",{"id":364,"label":365,"url":366,"connectedNode":367},"cG9zdDo2Mzk3","Manhattan","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fman\u002F",{"node":368},{"__typename":184,"rgCasinoExtra":369},{"localSlug":370},"manhattan-casino",{"id":372,"label":373,"url":374,"connectedNode":375},"cG9zdDo2Mzk4","MaxBet","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fmax\u002F",{"node":376},{"__typename":184,"rgCasinoExtra":377},{"localSlug":378},"maxbet-casino",{"id":380,"label":381,"url":382,"connectedNode":383},"cG9zdDo2Mzk5","Million","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fmil\u002F",{"node":384},{"__typename":184,"rgCasinoExtra":385},{"localSlug":386},"million-casino",{"id":388,"label":389,"url":390,"connectedNode":391},"cG9zdDo2NDAw","Napoleon","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fnap\u002F",{"node":392},{"__typename":184,"rgCasinoExtra":393},{"localSlug":394},"napoleon-casino",{"id":396,"label":397,"url":398,"connectedNode":399},"cG9zdDo2NDAx","PariuriPlus","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fppl\u002F",{"node":400},{"__typename":184,"rgCasinoExtra":401},{"localSlug":402},"pariuri-plus-casino",{"id":404,"label":405,"url":406,"connectedNode":407},"cG9zdDo2NDAy","Player","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fply\u002F",{"node":408},{"__typename":184,"rgCasinoExtra":409},{"localSlug":410},"player-casino",{"id":412,"label":413,"url":414,"connectedNode":415},"cG9zdDo2NDAz","Princess","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fpnc\u002F",{"node":416},{"__typename":184,"rgCasinoExtra":417},{"localSlug":418},"princess-casino",{"id":420,"label":421,"url":422,"connectedNode":423},"cG9zdDo2NDA0","TopBet","https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Ftop\u002F",{"node":424},{"__typename":184,"rgCasinoExtra":425},{"localSlug":426},"topbet-casino",{"id":179,"label":180,"url":181,"parentId":170,"cssClasses":428,"connectedNode":429,"childItems":432},[],{"node":430},{"__typename":184,"rgCasinoExtra":431},{"localSlug":186},{"nodes":433},[],{"id":188,"label":189,"url":190,"parentId":170,"cssClasses":435,"connectedNode":436,"childItems":439},[],{"node":437},{"__typename":184,"rgCasinoExtra":438},{"localSlug":194},{"nodes":440},[],{"id":196,"label":197,"url":198,"parentId":170,"cssClasses":442,"connectedNode":443,"childItems":446},[],{"node":444},{"__typename":184,"rgCasinoExtra":445},{"localSlug":202},{"nodes":447},[],{"id":204,"label":205,"url":206,"parentId":170,"cssClasses":449,"connectedNode":450,"childItems":453},[],{"node":451},{"__typename":184,"rgCasinoExtra":452},{"localSlug":210},{"nodes":454},[],{"id":212,"label":213,"url":214,"parentId":170,"cssClasses":456,"connectedNode":457,"childItems":460},[],{"node":458},{"__typename":184,"rgCasinoExtra":459},{"localSlug":218},{"nodes":461},[],{"id":220,"label":221,"url":222,"parentId":170,"cssClasses":463,"connectedNode":464,"childItems":467},[],{"node":465},{"__typename":184,"rgCasinoExtra":466},{"localSlug":226},{"nodes":468},[],{"id":228,"label":229,"url":230,"parentId":170,"cssClasses":470,"connectedNode":471,"childItems":474},[],{"node":472},{"__typename":184,"rgCasinoExtra":473},{"localSlug":234},{"nodes":475},[],{"id":236,"label":237,"url":238,"parentId":170,"cssClasses":477,"connectedNode":478,"childItems":481},[],{"node":479},{"__typename":184,"rgCasinoExtra":480},{"localSlug":242},{"nodes":482},[],{"id":244,"label":245,"url":246,"parentId":170,"cssClasses":484,"connectedNode":485,"childItems":488},[],{"node":486},{"__typename":184,"rgCasinoExtra":487},{"localSlug":250},{"nodes":489},[],{"id":252,"label":253,"url":254,"parentId":170,"cssClasses":491,"connectedNode":492,"childItems":495},[],{"node":493},{"__typename":184,"rgCasinoExtra":494},{"localSlug":258},{"nodes":496},[],{"id":260,"label":261,"url":262,"parentId":170,"cssClasses":498,"connectedNode":499,"childItems":502},[],{"node":500},{"__typename":184,"rgCasinoExtra":501},{"localSlug":266},{"nodes":503},[],{"id":268,"label":269,"url":270,"parentId":170,"cssClasses":505,"connectedNode":506,"childItems":509},[],{"node":507},{"__typename":184,"rgCasinoExtra":508},{"localSlug":274},{"nodes":510},[],{"id":276,"label":277,"url":278,"parentId":170,"cssClasses":512,"connectedNode":513,"childItems":516},[],{"node":514},{"__typename":184,"rgCasinoExtra":515},{"localSlug":282},{"nodes":517},[],{"id":284,"label":285,"url":286,"parentId":170,"cssClasses":519,"connectedNode":520,"childItems":523},[],{"node":521},{"__typename":184,"rgCasinoExtra":522},{"localSlug":290},{"nodes":524},[],{"id":292,"label":293,"url":294,"parentId":170,"cssClasses":526,"connectedNode":527,"childItems":530},[],{"node":528},{"__typename":184,"rgCasinoExtra":529},{"localSlug":298},{"nodes":531},[],{"id":300,"label":301,"url":302,"parentId":170,"cssClasses":533,"connectedNode":534,"childItems":537},[],{"node":535},{"__typename":184,"rgCasinoExtra":536},{"localSlug":306},{"nodes":538},[],{"id":308,"label":309,"url":310,"parentId":170,"cssClasses":540,"connectedNode":541,"childItems":544},[],{"node":542},{"__typename":184,"rgCasinoExtra":543},{"localSlug":314},{"nodes":545},[],{"id":316,"label":317,"url":318,"parentId":170,"cssClasses":547,"connectedNode":548,"childItems":551},[],{"node":549},{"__typename":184,"rgCasinoExtra":550},{"localSlug":322},{"nodes":552},[],{"id":324,"label":325,"url":326,"parentId":170,"cssClasses":554,"connectedNode":555,"childItems":558},[],{"node":556},{"__typename":184,"rgCasinoExtra":557},{"localSlug":330},{"nodes":559},[],{"id":332,"label":333,"url":334,"parentId":170,"cssClasses":561,"connectedNode":562,"childItems":565},[],{"node":563},{"__typename":184,"rgCasinoExtra":564},{"localSlug":338},{"nodes":566},[],{"id":340,"label":341,"url":342,"parentId":170,"cssClasses":568,"connectedNode":569,"childItems":572},[],{"node":570},{"__typename":184,"rgCasinoExtra":571},{"localSlug":346},{"nodes":573},[],{"id":348,"label":349,"url":350,"parentId":170,"cssClasses":575,"connectedNode":576,"childItems":579},[],{"node":577},{"__typename":184,"rgCasinoExtra":578},{"localSlug":354},{"nodes":580},[],{"id":356,"label":357,"url":358,"parentId":170,"cssClasses":582,"connectedNode":583,"childItems":586},[],{"node":584},{"__typename":184,"rgCasinoExtra":585},{"localSlug":362},{"nodes":587},[],{"id":364,"label":365,"url":366,"parentId":170,"cssClasses":589,"connectedNode":590,"childItems":593},[],{"node":591},{"__typename":184,"rgCasinoExtra":592},{"localSlug":370},{"nodes":594},[],{"id":372,"label":373,"url":374,"parentId":170,"cssClasses":596,"connectedNode":597,"childItems":600},[],{"node":598},{"__typename":184,"rgCasinoExtra":599},{"localSlug":378},{"nodes":601},[],{"id":380,"label":381,"url":382,"parentId":170,"cssClasses":603,"connectedNode":604,"childItems":607},[],{"node":605},{"__typename":184,"rgCasinoExtra":606},{"localSlug":386},{"nodes":608},[],{"id":388,"label":389,"url":390,"parentId":170,"cssClasses":610,"connectedNode":611,"childItems":614},[],{"node":612},{"__typename":184,"rgCasinoExtra":613},{"localSlug":394},{"nodes":615},[],{"id":396,"label":397,"url":398,"parentId":170,"cssClasses":617,"connectedNode":618,"childItems":621},[],{"node":619},{"__typename":184,"rgCasinoExtra":620},{"localSlug":402},{"nodes":622},[],{"id":404,"label":405,"url":406,"parentId":170,"cssClasses":624,"connectedNode":625,"childItems":628},[],{"node":626},{"__typename":184,"rgCasinoExtra":627},{"localSlug":410},{"nodes":629},[],{"id":412,"label":413,"url":414,"parentId":170,"cssClasses":631,"connectedNode":632,"childItems":635},[],{"node":633},{"__typename":184,"rgCasinoExtra":634},{"localSlug":418},{"nodes":636},[],{"id":420,"label":421,"url":422,"parentId":170,"cssClasses":638,"connectedNode":639,"childItems":642},[],{"node":640},{"__typename":184,"rgCasinoExtra":641},{"localSlug":426},{"nodes":643},[],{"id":645,"label":646,"url":647,"parentId":11,"cssClasses":648,"connectedNode":649,"childItems":651},"cG9zdDoyMzUx","Sloturi Gratis","https:\u002F\u002Frotirigratuite.ro\u002Fsloturi\u002F",[],{"node":650},{"__typename":15},{"nodes":652},[],{"id":654,"label":655,"url":656,"parentId":11,"cssClasses":657,"connectedNode":658,"childItems":660},"cG9zdDoyMzY1","Producători","https:\u002F\u002Frotirigratuite.ro\u002Fsloturi\u002Fproducatori\u002F",[],{"node":659},{"__typename":15},{"nodes":661},[],{"id":663,"label":664,"url":665,"parentId":11,"cssClasses":666,"connectedNode":667,"childItems":669},"cG9zdDoyMzQx","Ghiduri","https:\u002F\u002Frotirigratuite.ro\u002Fblog\u002F",[],{"node":668},{"__typename":15},{"nodes":670},[],{"nodes":672},[],{"nodes":674},[],{"themeSettings":676,"bfdSiteChrome":821,"slotThemes":859},{"stickyOfferSettings":677,"themeFields":683,"footerColumns":696,"placeholderImages":761,"ageGate":767,"casinoDictionary":769,"casinoReviewPopups":811,"slotPageMetadataDefaults":814},{"enabled":678,"title":679,"buttonText":680,"buttonUrl":681,"delaySeconds":682,"image":11},false,"🎁 Ofertă Exclusivă","Revendică","https:\u002F\u002Frotirigratuite.wpenginepowered.com\u002Fgo\u002Fbetano-cazino",5,{"topBarLink1":684,"topBarLink2":688,"headerPromo":691,"footerDescription1":692,"footerDescription2":693,"footerDisclaimer":694,"socialLinks":695},{"url":685,"title":686,"target":687},"\u002Flicenta-onjn\u002F","Licenta","",{"url":689,"title":690,"target":687},"\u002Fjoc-responsabil\u002F","Joc responsabil",{"image":11,"link":11},"\u003Cdiv class=\"qMYqUG_convSearchResultHighlightRoot\">\n\u003Cdiv class=\"\" data-turn-id-container=\"request-WEB:711b7619-47bf-4e40-abf1-0404383dcca8-11\" data-is-intersecting=\"true\">\n\u003Csection class=\"text-token-text-primary w-full focus:outline-none has-data-writing-block:pointer-events-none [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-WEB:711b7619-47bf-4e40-abf1-0404383dcca8-11\" data-turn-id-container=\"request-WEB:711b7619-47bf-4e40-abf1-0404383dcca8-11\" data-testid=\"conversation-turn-24\" data-scroll-anchor=\"false\" data-turn=\"assistant\">\n\u003Cdiv class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm\u002Fmain:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg\u002Fmain:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)\">\n\u003Cdiv class=\"[--thread-content-max-width:40rem] @w-lg\u002Fmain:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\u002Fturn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\" data-conversation-screenshot-content=\"\">\n\u003Cdiv class=\"flex max-w-full flex-col gap-4 grow\">\n\u003Cdiv class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&amp;]:mt-1\" dir=\"auto\" tabindex=\"0\" data-message-author-role=\"assistant\" data-message-id=\"519f7276-1154-4d50-be45-eaddd6524607\" data-message-model-slug=\"gpt-5-5-thinking\" data-turn-start-message=\"true\">\n\u003Cdiv class=\"flex w-full flex-col gap-1 empty:hidden\">\n\u003Cdiv class=\"markdown prose dark:prose-invert wrap-break-word w-full light markdown-new-styling\">\n\u003Cdiv class=\"qMYqUG_convSearchResultHighlightRoot\">\n\u003Cdiv class=\"\" data-turn-id-container=\"request-WEB:711b7619-47bf-4e40-abf1-0404383dcca8-12\" data-is-intersecting=\"true\">\n\u003Csection class=\"text-token-text-primary w-full focus:outline-none has-data-writing-block:pointer-events-none [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-WEB:711b7619-47bf-4e40-abf1-0404383dcca8-12\" data-turn-id-container=\"request-WEB:711b7619-47bf-4e40-abf1-0404383dcca8-12\" data-testid=\"conversation-turn-26\" data-scroll-anchor=\"false\" data-turn=\"assistant\">\n\u003Cdiv class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm\u002Fmain:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg\u002Fmain:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)\">\n\u003Cdiv class=\"[--thread-content-max-width:40rem] @w-lg\u002Fmain:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\u002Fturn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\" data-conversation-screenshot-content=\"\">\n\u003Cdiv class=\"flex max-w-full flex-col gap-4 grow\">\n\u003Cdiv class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&amp;]:mt-1\" dir=\"auto\" tabindex=\"0\" data-message-author-role=\"assistant\" data-message-id=\"df1316cf-2461-495e-a142-0f35713e4d25\" data-message-model-slug=\"gpt-5-5-thinking\" data-turn-start-message=\"true\">\n\u003Cdiv class=\"flex w-full flex-col gap-1 empty:hidden\">\n\u003Cdiv class=\"markdown prose dark:prose-invert wrap-break-word w-full light markdown-new-styling\">\n\u003Cp data-start=\"0\" data-end=\"266\" data-is-last-node=\"\" data-is-only-node=\"\">Pe \u003Cstrong data-start=\"3\" data-end=\"24\">RotiriGratuite.ro\u003C\u002Fstrong> găsești oferte de la cazinouri online licențiate în România. Listăm rotiri fără depunere, bonusuri la înregistrare și promoții pentru sloturi, alături de detalii importante despre rulaj, jocuri eligibile și limite de retragere.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"z-0 flex min-h-[46px] justify-start\">\u003C\u002Fdiv>\n\u003Cdiv class=\"mt-3 w-full empty:hidden\">\n\u003Cdiv class=\"text-center\">\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"pointer-events-none -mt-px h-px translate-y-[calc(var(--scroll-root-safe-area-inset-bottom)-14*var(--spacing))]\" aria-hidden=\"true\">\u003C\u002Fdiv>\n\u003Cp>&nbsp;\u003C\u002Fp>\n","\u003Cp>\u003Ca href=\"https:\u002F\u002Frotirigratuite.ro\u002F\">Rotirigratuite.ro\u003C\u002Fa> este deținut și operat de OGOOGA SERVICES SRL, persoană juridică română, cu sediul social în București, Sector 1, Bulevardul ION MIHALACHE nr. 15-17, etaj 8, număr de înregistrare J2016011888403, cod unic de înregistrare 36506980 și are dreptul de a desfășura activitatea în calitate de afiliat în domeniul jocurilor de noroc, acordat prin licența valabilă până la data de 31.10.2026, conform Deciziei Oficiului Național al Jocurilor de Noroc, nr.1879\u002F20.10.2016.\u003C\u002Fp>\n\u003Cp>Accesul pe \u003Ca href=\"https:\u002F\u002Frotirigratuite.ro\u002F\">Rotirigratuite.ro\u003C\u002Fa> este strict interzis minorilor! Pe acest site nu se desfășoară activități de jocuri de noroc, însă pe site-urile partenerilor promovați se joacă cu bani reali, vă încurajăm să jucați responsabil și să pariați doar atât cât vă permiteți. De asemenea, vă rugăm să aveți în vedere faptul că activitatea de jocuri de noroc poate fi interzisă în jurisdicția în care sunteți localizat, fiind responsabilitatea dumneavoastră să respectați legislația în vigoare.\u003C\u002Fp>\n\u003Cp>Activitatea de jocuri de noroc poate cauza dependență și, totodată, poate avea un impact asupra situației dumneavoastră financiare. Vă rugăm să jucați responsabil! În cazul dependenței de jocuri de noroc sau pariuri, vă rugăm să contactați Jocresponsabil, la numărul gratuit +0800 800 099, sau să accesați \u003Ca href=\"https:\u002F\u002Fjocresponsabil.ro\u002F\" target=\"_blank\" rel=\"nofollow noopener\">jocresponsabil.ro\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>&nbsp;\u003C\u002Fp>\n","\u003Cp>Pe acest site depunem toate eforturile astfel încât să prezentăm exclusiv oferte, bonusuri și rotiri gratuite, respectiv fără depunere, si totodată ca informațiile publicate să fie corecte și actualizate. Dacă identificați o ofertă sau un bonus care nu este gratuit\u002Ffără depunere ori observați orice altă neconcordanță, vă rugăm să ne semnalați acest lucru pentru a putea remedia situația. Totodată, vă recomandăm să consultați cu atenție Termenii și Condițiile fiecărui cazinou pentru a verifica condițiile aplicabile fiecărei oferte.\u003C\u002Fp>\n",{"facebook":11,"youtube":11,"twitch":11,"tiktok":11,"instagram":11},[697,735,753],{"title":698,"links":699},"Informații Utile",[700,703,706,709,711,714,717,720,723,726,729,732],{"label":701,"url":702,"target":11},"Despre noi","https:\u002F\u002Frotirigratuite.ro\u002Fdespre-noi\u002F",{"label":704,"url":705,"target":11},"Echipa Rotiri Gratuite","https:\u002F\u002Frotirigratuite.ro\u002Fautori\u002F",{"label":707,"url":708,"target":11},"Cum evaluăm sloturile","https:\u002F\u002Frotirigratuite.ro\u002Fmetodologie-sloturi\u002F",{"label":710,"url":172,"target":11},"Cum evaluăm cazinourile",{"label":712,"url":713,"target":11},"True Bonus Index","https:\u002F\u002Frotirigratuite.ro\u002Ftrue-bonus-score\u002F",{"label":715,"url":716,"target":11},"Joc Responsabil","https:\u002F\u002Frotirigratuite.ro\u002Fjoc-responsabil\u002F",{"label":718,"url":719,"target":11},"Termeni și Condiții","https:\u002F\u002Frotirigratuite.ro\u002Ftermeni-si-conditii\u002F",{"label":721,"url":722,"target":11},"Politica de confidențialitate","https:\u002F\u002Frotirigratuite.ro\u002Fpolitica-de-confidentialitate\u002F",{"label":724,"url":725,"target":11},"Politica privind Cookie-urile (UE)","https:\u002F\u002Frotirigratuite.ro\u002Fcookie-policy-eu\u002F",{"label":727,"url":728,"target":11},"Licenta ONJN","https:\u002F\u002Frotirigratuite.ro\u002Flicenta-onjn\u002F",{"label":730,"url":731,"target":11},"Cookie de retea","https:\u002F\u002Frotirigratuite.ro\u002Fcookie-de-retea\u002F",{"label":733,"url":734,"target":11},"Contact","https:\u002F\u002Frotirigratuite.ro\u002Fcontact\u002F",{"title":43,"links":736},[737,738,739,741,743,745,747,749,751],{"label":52,"url":44,"target":11},{"label":57,"url":58,"target":11},{"label":740,"url":64,"target":11},"50 rotiri gratuite",{"label":742,"url":70,"target":11},"100 rotiri gratuite",{"label":744,"url":76,"target":11},"200 rotiri gratuite",{"label":746,"url":82,"target":11},"300 rotiri gratuite",{"label":748,"url":88,"target":11},"400 rotiri gratuite",{"label":750,"url":94,"target":11},"500 rotiri gratuite",{"label":752,"url":106,"target":11},"Coduri bonus pentru rotiri",{"title":754,"links":755},"Cazinouri",[756,758,760],{"label":757,"url":10,"target":11},"Top Cazinouri Online",{"label":759,"url":26,"target":11},"Cele Mai Noi Cazinouri",{"label":99,"url":100,"target":11},{"gameLogoUrl":762,"gameBannerUrl":763,"casinoLogoUrl":764,"producerLogoUrl":765,"blogHeroUrl":766},"https:\u002F\u002Frotirigratuite.wpenginepowered.com\u002Fwp-content\u002Fuploads\u002F2026\u002F05\u002Flogo-pacanele-sweet-bonanza-demo.jpg","https:\u002F\u002Frotirigratuite.wpenginepowered.com\u002Fwp-content\u002Fuploads\u002F2026\u002F05\u002Fecran-sweet-bonanza-gratis.jpg","https:\u002F\u002Frotirigratuite.wpenginepowered.com\u002Fwp-content\u002Fuploads\u002F2026\u002F04\u002Fd108fe5cd0ecc2b167a672a42fae861997b253c6-5000x3000-1-scaled.jpg","https:\u002F\u002Frotirigratuite.wpenginepowered.com\u002Fwp-content\u002Fuploads\u002F2026\u002F05\u002FNetent_62.jpg","https:\u002F\u002Frotirigratuite.wpenginepowered.com\u002Fwp-content\u002Fuploads\u002F2026\u002F05\u002Fmr-bit-casino-bonus-fara-depunere-1024x382.jpg",{"enabled":678,"redirectUrl":768},"https:\u002F\u002Fwww.google.com",{"tpsTooltipText":11,"tpsMaxScore":770,"rows":771},1250,[772,777,782,787,791,796,801,806],{"key":773,"label":774,"fieldSlug":775,"iconName":11,"dropdownText":776},"valoare_spin","Valoare\u002Fspin","valuePerSpin","Miza fixă pentru fiecare rotire gratuită primită. Cu cât valoarea este mai mare, cu atât câștigurile potențiale pot fi mai consistente.",{"key":778,"label":779,"fieldSlug":780,"iconName":11,"dropdownText":781},"rulaj","Rulaj","wagering","De câte ori trebuie să pariezi câștigurile din rotiri înainte de a le putea retrage. Un rulaj mai mic (ex: 1x, 5x) este mult mai avantajos.",{"key":783,"label":784,"fieldSlug":785,"iconName":11,"dropdownText":786},"slot","Slot","slotName","Jocul specific la care sunt disponibile rotirile. Verifică miza și funcțiile speciale ale acestui slot înainte de a începe.",{"key":788,"label":789,"fieldSlug":788,"iconName":11,"dropdownText":790},"rtp","RTP","Procentajul teoretic de returnare la jucător al slotului. Valorile de peste 96% înseamnă șanse statistice mai bune de câștig pe termen lung.",{"key":792,"label":793,"fieldSlug":794,"iconName":11,"dropdownText":795},"miza_minima","Miză minimă","minBet","Suma minimă pe care o poți paria pe rotire cât timp rulezi bonusul.",{"key":797,"label":798,"fieldSlug":799,"iconName":11,"dropdownText":800},"miza_maxima","Miză maximă","maxBet","Suma maximă pe care o poți paria pe rotire cât timp rulezi bonusul.",{"key":802,"label":803,"fieldSlug":802,"iconName":804,"dropdownText":805},"maxWithdrawal","Retragere Maximă","coins","Suma maximă de bani pe care o poți retrage în cont din acest bonus.",{"key":807,"label":808,"fieldSlug":809,"iconName":11,"dropdownText":810},"valabilitate","Valabilitate","expiry","Timpul disponibil pentru a activa rotirile și a îndeplini condițiile de rulaj. Ai grijă să le folosești înainte să expire!",{"aboutUsContent":812,"adDisclosureContent":813},"\u003Cp>RotiriGratuite.ro este o platformă de afiliere dedicată ofertelor cu rotiri disponibile la cazinourile licențiate din România. Analizăm și comparăm promoțiile active pentru a prezenta informații clare, actualizate și ușor de verificat. Fiecare ofertă este verificată în funcție de condițiile de acordare, cerințele de rulaj și termenii promoției, iar recomandările noastre se bazează pe evaluări obiective și pe testarea operatorilor de jocuri.\u003C\u002Fp>","\u003Cdiv class=\"author-meta d-md-flex mb-4 mt-4\">\n\u003Cdiv class=\"row w-100 justify-content-between\">\n\u003Cdiv class=\"col-12 col-lg-3\">\n\u003Cdiv class=\"justify-content-lg-end d-flex hover-elements\">\n\u003Cdiv class=\"d-flex align-items-center tooltip-hover tooltip-ad\">\n\u003Cdiv class=\"tooltip-content\">\n\u003Cdiv class=\"title\">\u003Cstrong>Politica de Publicitate și Afiliere\u003C\u002Fstrong>\u003C\u002Fdiv>\n\u003Cp>Platforma noastră este finanțată prin comisioanele primite de la partenerii afiliați atunci când utilizatorii se înregistrează sau efectuează depuneri prin linkurile disponibile pe site. Acest lucru nu implică niciun cost suplimentar pentru tine și nu influențează modul în care evaluăm sau recomandăm operatorii. Selectăm doar cazinouri licențiate și verificăm constant informațiile publicate, pentru a ne asigura că recomandările rămân corecte, actualizate și de încredere.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cp>&nbsp;\u003C\u002Fp>",{"category":815,"producer":818,"rtp":820},{"enabled":816,"label":817,"tooltipContent":11},true,"Categorie",{"enabled":816,"label":819,"tooltipContent":11},"Producător",{"enabled":816,"label":789,"tooltipContent":11},{"stickyOfferSettings":822,"themeFields":823,"footerColumns":828},{"enabled":678,"title":679,"buttonText":680,"buttonUrl":681,"delaySeconds":682,"image":11},{"topBarLink1":824,"topBarLink2":825,"headerPromo":826,"footerDescription1":692,"footerDescription2":693,"footerDisclaimer":694,"socialLinks":827},{"url":685,"title":686,"target":687},{"url":689,"title":690,"target":687},{"image":11,"link":11},{"facebook":11,"youtube":11,"twitch":11,"tiktok":11,"instagram":11},[829,843,854],{"title":698,"links":830},[831,832,833,834,835,836,837,838,839,840,841,842],{"label":701,"url":702,"target":11},{"label":704,"url":705,"target":11},{"label":707,"url":708,"target":11},{"label":710,"url":172,"target":11},{"label":712,"url":713,"target":11},{"label":715,"url":716,"target":11},{"label":718,"url":719,"target":11},{"label":721,"url":722,"target":11},{"label":724,"url":725,"target":11},{"label":727,"url":728,"target":11},{"label":730,"url":731,"target":11},{"label":733,"url":734,"target":11},{"title":43,"links":844},[845,846,847,848,849,850,851,852,853],{"label":52,"url":44,"target":11},{"label":57,"url":58,"target":11},{"label":740,"url":64,"target":11},{"label":742,"url":70,"target":11},{"label":744,"url":76,"target":11},{"label":746,"url":82,"target":11},{"label":748,"url":88,"target":11},{"label":750,"url":94,"target":11},{"label":752,"url":106,"target":11},{"title":754,"links":855},[856,857,858],{"label":757,"url":10,"target":11},{"label":759,"url":26,"target":11},{"label":99,"url":100,"target":11},{"nodes":860},[861,866,871,875,880,884,888,892,896],{"id":862,"name":863,"slug":864,"count":865},"dGVybToyNzk=","Animale","animals",1,{"id":867,"name":868,"slug":869,"count":870},"dGVybToyNzg=","Aventură","adventure",2,{"id":872,"name":873,"slug":874,"count":870},"dGVybToyODQ=","Clasice","classic",{"id":876,"name":877,"slug":878,"count":879},"dGVybToyNzM=","Fantasy","fantasy",3,{"id":881,"name":882,"slug":883,"count":865},"dGVybToyODM=","Fructe","fruit",{"id":885,"name":886,"slug":887,"count":870},"dGVybToyODA=","Istorie","history",{"id":889,"name":890,"slug":891,"count":870},"dGVybToyODI=","Mitologie","mythology",{"id":893,"name":894,"slug":895,"count":865},"dGVybToyODE=","Movies","movies",{"id":897,"name":898,"slug":899,"count":11},"dGVybToyNzc=","TV Shows","tv-shows",{"nodeByUri":11},{"post":902},{"__typename":903,"id":904,"uri":905,"title":906,"date":907,"modified":907,"excerpt":687,"seo":908,"userRating":928,"author":931,"featuredImage":936,"template":939,"contentAreaFields":941,"sidebarBannersData":1239,"postSingleSettings":1240},"Post","cG9zdDo3MjU2","\u002Fnapoleon-games-bonus-fara-depunere\u002F","Bonusul fără depunere Napoleon Games 2026 – Cum activezi cele 110 Rotiri Gratuite?","2026-08-26T17:30:00",{"title":909,"metaDesc":910,"canonical":911,"opengraphTitle":912,"opengraphDescription":910,"opengraphType":913,"opengraphUrl":911,"opengraphImage":914,"metaRobotsNoindex":920,"metaRobotsNofollow":921,"breadcrumbs":922},"Bonus Fără Depunere Napoleon Games – 110 Rotiri cu Rulaj 0x","Vezi cum activezi oferta Napoleon Games bonus fără depunere! Primești 110 rotiri gratuite la Shining Crown cu rulaj 0x!","https:\u002F\u002Frotirigratuite.ro\u002Fnapoleon-games-bonus-fara-depunere\u002F","Bonusul fără depunere Napoleon Games 2026 - Cum activezi cele 110 Rotiri Gratuite?","article",{"sourceUrl":915,"altText":916,"mediaDetails":917},"https:\u002F\u002Frotirigratuite.wpenginepowered.com\u002Fwp-content\u002Fuploads\u002F2026\u002F08\u002Fnapoleon-games-bonus-fara-depunere.png","Napoleon Games bonus fără depunere",{"width":918,"height":919},1610,601,"index","follow",[923,926],{"text":924,"url":925},"Home","https:\u002F\u002Frotirigratuite.ro\u002F",{"text":927,"url":911},"Bonusul fără depunere Napoleon Games 2026 &#8211; Cum activezi cele 110 Rotiri Gratuite?",{"average":929,"count":929,"id":930},0,7256,{"node":932},{"id":933,"name":934,"uri":935},"dXNlcjo1","Denis Cicic","\u002Fautori\u002Fdenis-cicic\u002F",{"node":937},{"altText":916,"mediaDetails":938,"sourceUrl":915},{"width":918,"height":919},{"templateName":940},"Default",{"__typename":942,"content":943},"ContentAreaFields",[944,948,951,1086,1089,1092,1116,1119,1122,1146,1149,1215,1218],{"__typename":945,"wysiwygGroup":946},"ContentAreaFieldsContentWysiwygLayout",{"content":947},"\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Cp>Creează un cont nou în perioada 09.07.2026 (10:00) – 31.12.2026 (23:59) și parcurge verificarea identității (KYC) pentru a primi automat un Napoleon Games bonus fără depunere. Promoția este disponibil de pe desktop sau mobil, nu necesită depozit, iar toate câștigurile obținute intră direct în balanța reală (rulaj ×0).\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Beneficiu:\u003C\u002Fstrong> 110 rotiri gratuite la Shining Crown (Amusnet) după procesul KYC.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fără depunere:\u003C\u002Fstrong> Deblocare complet gratuită la finalizarea verificării contului.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Condiții de rulaj:\u003C\u002Fstrong> ×0 pe câștiguri (net superior mediei de ×30–×40 din piață).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Timp de alocare:\u003C\u002Fstrong> De regulă instant, cu un termen maxim de 72 de ore.\u003C\u002Fli>\n\u003C\u002Ful>",{"__typename":945,"wysiwygGroup":949},{"content":950},"\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Ch2>Ce Trebuie Să Știi Despre Bonusul Fără Depunere Napoleon\u003C\u002Fh2>\n\u003Cp>Am testat procesul de activare de pe mobil pentru a vedea cât de simplu se revendică oferta de la \u003Ca href=\"https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fnap\u002F\" target=\"_blank\" rel=\"noopener\">Napoleon Casino\u003C\u002Fa>. Rotirile au intrat automat după verificarea identității (KYC), iar pentru a le folosi a fost nevoie doar să deschidem jocul Shining Crown. Un detaliu important din regulament: verificarea contului trebuie finalizată în termen de maximum 30 de zile de la prima depunere.\u003C\u002Fp>",{"__typename":952,"tableGroup":953},"ContentAreaFieldsContentTableLayout",{"headerColor":954,"tableDescription":11,"headers":956,"rows":964},[955],"green",[957,961],{"align":958,"text":960},[959],"left","Element",{"align":962,"text":963},[959],"Detalii",[965,976,986,996,1006,1016,1026,1036,1046,1056,1066,1076],{"cells":966},[967,972],{"align":968,"contentType":969,"text":971,"link":11},[959],[970],"text","Tip Bonus",{"align":973,"contentType":974,"text":975,"link":11},[959],[970],"Rotiri Gratuite",{"cells":977},[978,982],{"align":979,"contentType":980,"text":981,"link":11},[959],[970],"Valoare Exactă",{"align":983,"contentType":984,"text":985,"link":11},[959],[970],"110 rotiri gratuite la 0,2 RON fiecare",{"cells":987},[988,992],{"align":989,"contentType":990,"text":991,"link":11},[959],[970],"Cod Promoțional",{"align":993,"contentType":994,"text":995,"link":11},[959],[970],"Activare automată după verificarea contului; revendicare prin accesarea jocului Shining Crown",{"cells":997},[998,1002],{"align":999,"contentType":1000,"text":1001,"link":11},[959],[970],"Condiție de Rulaj",{"align":1003,"contentType":1004,"text":1005,"link":11},[959],[970],"0× pe câștigurile din rotiri",{"cells":1007},[1008,1012],{"align":1009,"contentType":1010,"text":1011,"link":11},[959],[970],"Jocuri Eligibile",{"align":1013,"contentType":1014,"text":1015,"link":11},[959],[970],"Shining Crown (Amusnet)",{"cells":1017},[1018,1022],{"align":1019,"contentType":1020,"text":1021,"link":11},[959],[970],"Perioadă de Valabilitate",{"align":1023,"contentType":1024,"text":1025,"link":11},[959],[970],"7 zile de la acordare",{"cells":1027},[1028,1032],{"align":1029,"contentType":1030,"text":1031,"link":11},[959],[970],"Creditare",{"align":1033,"contentType":1034,"text":1035,"link":11},[959],[970],"De regulă instant după verificarea identității; în unele cazuri, până la 72 de ore",{"cells":1037},[1038,1042],{"align":1039,"contentType":1040,"text":1041,"link":11},[959],[970],"Eligibilitate",{"align":1043,"contentType":1044,"text":1045,"link":11},[959],[970],"Doar pentru jucători înregistrați prin linkurile promoționale care nu și-au verificat contul",{"cells":1047},[1048,1052],{"align":1049,"contentType":1050,"text":1051,"link":11},[959],[970],"Limită de revendicare",{"align":1053,"contentType":1054,"text":1055,"link":11},[959],[970],"O singură dată per jucător",{"cells":1057},[1058,1062],{"align":1059,"contentType":1060,"text":1061,"link":11},[959],[970],"Condiție suplimentară",{"align":1063,"contentType":1064,"text":1065,"link":11},[959],[970],"Verificarea contului trebuie finalizată în termen de 30 de zile de la prima depunere",{"cells":1067},[1068,1072],{"align":1069,"contentType":1070,"text":1071,"link":11},[959],[970],"Perioada campaniei",{"align":1073,"contentType":1074,"text":1075,"link":11},[959],[970],"09.07.2026, 10:00 – 31.12.2026, 23:59",{"cells":1077},[1078,1082],{"align":1079,"contentType":1080,"text":1081,"link":11},[959],[970],"Câștiguri",{"align":1083,"contentType":1084,"text":1085,"link":11},[959],[970],"Se transferă în balanța reală după îndeplinirea criteriilor",{"__typename":945,"wysiwygGroup":1087},{"content":1088},"\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Ch2>Cum funcționează Napoleon Games bonus fără depunere?\u003C\u002Fh2>\n\u003Cp>Înregistrează-te prin linkul promoțional din artiocl și finalizează verificarea identității (KYC) în secțiunea „Verificare Identitate”. Rotirilele gratuite Napoleon Games nu se acordă la simpla creare a contului, ci doar după validarea documentelor. După aprobare, deschizi jocul eligibil pentru a activa oferta.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Tip de bonus:\u003C\u002Fstrong> 110 rotiri gratuite acordate automat după verificarea KYC.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Joc eligibil:\u003C\u002Fstrong> Shining Crown (Amusnet), la o valoare fixă de 0,2 RON per rotire (22 RON total).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Condiții de rulaj:\u003C\u002Fstrong> 0x — toate câștigurile merg direct în balanța reală (fără cerințe de rulaj de 30x–40x specifice pieței).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Termene și timpi:\u003C\u002Fstrong> Creditarea durează de la câteva minute până la 72 de ore, iar rotirile sunt valabile 7 zile de la alocare.\u003C\u002Fli>\n\u003C\u002Ful>",{"__typename":945,"wysiwygGroup":1090},{"content":1091},"\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Ch2>Cum Să Primesti Rotirile Gratuite Napoleon Games în 6 Pași\u003C\u002Fh2>\n\u003Cp>Procesul de revendicare este simplu și durează doar câteva minute. Urmează indicațiile de mai jos pentru a-ți valida contul și a primi rotirile gratuite fără depunere:\u003C\u002Fp>",{"__typename":1093,"stepsGroup":1094},"ContentAreaFieldsContentStepsLayout",{"variant":1095,"steps":1097},[1096],"v2",[1098,1101,1104,1107,1110,1113],{"title":1099,"description":1100},"Accesează bonusul fără depunere Napoleon:","Apasă pe butonul de revendicare din această pagină pentru a fi redirecționat direct pe platforma oficială.",{"title":1102,"description":1103},"Completează formularul de înregistrare:","Introdu datele personale cerute legal (email, parolă, CNP) și selectează moneda RON.",{"title":1105,"description":1106},"Confirmă adresa de email:","Deschide mesajul primit în inbox (sau folderul Spam) și dă click pe linkul de activare a contului.",{"title":1108,"description":1109},"Trimite documentele pentru verificare (KYC):","Intră în „Contul Meu” -> „Verificare Identitate”, încarcă o copie a actului de identitate și validează numărul de telefon prin codul SMS primit.",{"title":1111,"description":1112},"Așteaptă aprobarea KYC:","Validarea durează în medie 24 de ore (trebuie finalizată în cel mult 30 de zile). Oferta se alocă automat în cont după aprobare, fără a fi nevoie de un cod promoțional.",{"title":1114,"description":1115},"Lansează jocul și joacă rotirile:","Caută slotul Shining Crown în cazino, deschide jocul și acceptă cele 110 rotiri gratuite alocate.",{"__typename":945,"wysiwygGroup":1117},{"content":1118},"\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Ch2>Napoleon Games Bonus Fără Depunere: Termeni și Condiții Esențiale\u003C\u002Fh2>\n\u003Cp>Analiza regulamentului arată clar că toate câștigurile din ofertă ajung în bani reali sau se anulează dacă rotirile expiră. Promoția iese în evidență prin condiții foarte avantajoase, fiind adresată jucătorilor noi care își validează contul. Mai jos sunt detaliate regulile care contează efectiv pentru această ofertă.\u003C\u002Fp>\n\u003Ch3>Ce condiții de rulaj trebuie să îndeplinești?\u003C\u002Fh3>\n\u003Cp>La acest bonus gratuit Napoleon nu există condiții de rulaj (0x). Câștigurile obținute din rotiri intră direct în soldul real, fără cerințe suplimentare de pariere, un avantaj considerabil față de media pieței din România, unde rulajul este în general între 30x și 40x. Rotirile sunt valabile timp de 7 zile de la creditare, iar după expirare se anulează atât rotirile neutilizate, cât și câștigurile aferente.\u003C\u002Fp>\n\u003Ch3>Restricții de retragere și limite de câștig\u003C\u002Fh3>\n\u003Cp>Regulamentul nu impune un plafon maxim de retragere pentru câștiguri și nici nu specifică o sumă minimă. Cu toate acestea, acordarea rotirilor depinde strict de verificarea identității (KYC), iar refuzul trimiterii documentelor solicitate atrage anularea bonusului și a câștigurilor. Creditarea nu este întotdeauna instantanee și poate dura până la 72 de ore.\u003C\u002Fp>\n\u003Ch3>Pe ce sloturi poți folosi bonusul fără depunere\u003C\u002Fh3>\n\u003Cp>Rotirilele gratuite din promoția Napoleon Games bonus fără depunere pot fi utilizate pe un singur joc, fără posibilitatea de a le transfera:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Joc eligibil:\u003C\u002Fstrong> Shining Crown\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Furnizor:\u003C\u002Fstrong> Amusnet\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Restricții:\u003C\u002Fstrong> Valabile exclusiv pe acest slot, iar la expirare sau anulare se pierd și câștigurile obținute\u003C\u002Fli>\n\u003C\u002Ful>",{"__typename":945,"wysiwygGroup":1120},{"content":1121},"\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Ch2>Avantaje și Dezavantaje: Bonus Fără Depunere Napoleon Games\u003C\u002Fh2>",{"__typename":1123,"proAndConGroup":1124},"ContentAreaFieldsContentProAndConLayout",{"prosSectionTitle":1125,"consSectionTitle":1126,"itemsToDisplay":1127,"pros":1128,"cons":1139},"PRO","CON",7,[1129,1131,1133,1135,1137],{"text":1130},"Primești 110 rotiri gratuite doar prin verificarea identității (KYC)",{"text":1132},"Câștigurile obținute se creditează direct în balanța reală (rulaj 0x)",{"text":1134},"Pachetul însumează 22 RON (110 rotiri la 0,2 RON fiecare)",{"text":1136},"Slotul inclus Shining Crown are o rată de plată ridicată",{"text":1138},"Se activează automat la deschiderea jocului, fără cod promoțional",[1140,1142,1144],{"text":1141},"Rotirile pot fi folosite exclusiv la Shining Crown (Amusnet)",{"text":1143},"Rotirile expiră în 7 zile de la alocare",{"text":1145},"Creditarea poate dura până la cel mult 72 de ore",{"__typename":945,"wysiwygGroup":1147},{"content":1148},"\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Ch2>Cum Se Compară Napoleon Games bonus fără depunere cu Alte Cazinouri\u003C\u002Fh2>\n\u003Cp>Când pui cap la cap ofertele fără depunere de la Napoleon Games,\u003Ca href=\"https:\u002F\u002Frotirigratuite.ro\u002Frecenzii\u002Fcpr\u002F\" target=\"_blank\" rel=\"noopener\"> Casa Pariurilor\u003C\u002Fa> și \u003Ca href=\"https:\u002F\u002Frotirigratuite.ro\u002Fgets-bet-bonus-fara-depunere\u002F\" target=\"_blank\" rel=\"noopener\">bonus fără depunere Getsbet\u003C\u002Fa>, diferența dintre volumul afișat și banii pe care îi poți retrage devine evidentă. În timp ce alte \u003Ca href=\"https:\u002F\u002Frotirigratuite.ro\u002Fcasino-online\u002F\" target=\"_blank\" rel=\"noopener\">cazinouri online\u003C\u002Fa> atrag prin sute de rotiri sau mize mari per spin, Napoleon Games rămâne cea mai avantajoasă opțiune datorită cerinței de rulaj 0x, care trimite toate câștigurile direct în balanța reală.\u003C\u002Fp>",{"__typename":952,"tableGroup":1150},{"headerColor":1151,"tableDescription":11,"headers":1152,"rows":1164},[955],[1153,1156,1159,1161],{"align":1154,"text":1155},[959],"Cazino",{"align":1157,"text":1158},[959],"Bonus fără Depunere",{"align":1160,"text":1001},[959],{"align":1162,"text":1163},[959],"Avantaj Diferențiator",[1165,1182,1199],{"cells":1166},[1167,1170,1174,1178],{"align":1168,"contentType":1169,"text":389,"link":11},[959],[970],{"align":1171,"contentType":1172,"text":1173,"link":11},[959],[970],"110 FS Shining Crown (22 RON)",{"align":1175,"contentType":1176,"text":1177,"link":11},[959],[970],"0x",{"align":1179,"contentType":1180,"text":1181,"link":11},[959],[970],"Câștiguri directe în bani reali, fără cerințe de pariere.",{"cells":1183},[1184,1187,1191,1195],{"align":1185,"contentType":1186,"text":221,"link":11},[959],[970],{"align":1188,"contentType":1189,"text":1190,"link":11},[959],[970],"500 FS Shining Crown (100 RON)",{"align":1192,"contentType":1193,"text":1194,"link":11},[959],[970],"10x",{"align":1196,"contentType":1197,"text":1198,"link":11},[959],[970],"Volum mare de rotiri, oferit treptat (100 FS\u002Fzi, 5 zile).",{"cells":1200},[1201,1204,1208,1211],{"align":1202,"contentType":1203,"text":277,"link":11},[959],[970],{"align":1205,"contentType":1206,"text":1207,"link":11},[959],[970],"40 FS Shining Crown Clover Chance (40 RON)",{"align":1209,"contentType":1210,"text":11,"link":11},[959],[970],{"align":1212,"contentType":1213,"text":1214,"link":11},[959],[970],"Miză mare de 1 RON\u002Fspin (Cod: SC40), cu profit limitat la 100 RON.",{"__typename":945,"wysiwygGroup":1216},{"content":1217},"\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Ch2>Joc Responsabil &amp; Siguranță Legală\u003C\u002Fh2>\n\u003Cp>Promovăm activ \u003Ca href=\"https:\u002F\u002Frotirigratuite.ro\u002Fjoc-responsabil\u002F\" target=\"_blank\" rel=\"noopener\">jocul responsabil\u003C\u002Fa> și recomandăm exclusiv operatori licențiați ONJN. Napoleon Games operează legal sub licența nr. L1203785W001253 (Superbet Entertainment Ltd), garantând atât auditarea corectitudinii jocurilor (RNG), cât și protecția datelor personale conform standardelor GDPR. Accesul pe platformă este permis strict persoanelor de peste 18 ani.\u003C\u002Fp>\n\u003Cp>Pentru a revendica promoția Napoleon Games bonus fără depunere, parcurgerea etapei de verificare a identității (KYC) este o cerință legală obligatorie. Refuzul trimiterii actului de identitate sau furnizarea unor date incorecte atrage anularea automată a rotirilor și blocarea contului de joc.\u003C\u002Fp>\n\u003Cp>Reține că jocurile de noroc reprezintă o formă de divertisment, nu o sursă de venit. Dacă ai nevoie de mai mult control asupra bugetului sau timpului petrecut online, poți folosi instrumentele puse la dispoziție în cont: de la limite zilnice pe depuneri și pariere, până la pauze temporare sau autoexcludere. Pentru sprijin și consiliere gratuită, ai la dispoziție linia telefonică 0800 800 208, alături de platformele jocresponsabil.ro și rein.ro.\u003C\u002Fp>",{"__typename":1219,"faqGroup":1220},"ContentAreaFieldsContentFaqLayout",{"iconName":1221,"content":1222,"items":1223},"question","\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Ch2>Întrebări frecvente\u003C\u002Fh2>",[1224,1227,1230,1233,1236],{"title":1225,"answer":1226},"Rotirile gratuite sunt disponibile la orice slot de pe platformă?","\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Cp>Nu. Cele 110 rotiri gratuite pot fi utilizate exclusiv la slotul Shining Crown (Amusnet), singurul joc eligibil din cadrul acestei promoții. Fiecare rotire are o valoare fixă de 0,2 RON.\u003C\u002Fp>",{"title":1228,"answer":1229},"Este obligatorie trimiterea actului de identitate înainte de alocarea rotirilor?","\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Cp>Da. La Napoleon, primești bonusul automat doar după ce termini verificarea în secțiunea „Verificare Identitate”, iar la un operator licențiat ONJN verificarea este oricum necesară înainte să retragi câștigurile. În termeni apare și un detaliu care merită verificat atent: validarea contului este legată de 30 de zile de la prima depunere.\u003C\u002Fp>",{"title":1231,"answer":1232},"Care este motivul pentru care rotirile gratuite Napoleon nu s-au creditat instant?","\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Cp>Deși alocarea este de obicei instantă, procesarea KYC și creditarea pot dura excepțional până la 72 de ore. Dacă rotirile nu apar în joc după acest termen, contactează suportul.\u003C\u002Fp>",{"title":1234,"answer":1235},"Ce consecințe există dacă rotirile nu sunt utilizate la timp?","\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Cp>Rotirile gratuite sunt valabile timp de 7 zile de la alocare. Dacă nu le utilizezi în acest interval, promoția expiră, iar rotirile rămase și toate câștigurile obținute din ele vor fi anulate automat.\u003C\u002Fp>",{"title":1237,"answer":1238},"Există condiții de rulaj aplicabile câștigurilor generate?","\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>\n\u003Cp>Nu. Aceast bonus gratuit Napoleon Games are cerință de rulaj 0x. Câștigurile obținute din rotiri ajung direct în balanța reală a contului tău, făcând din promoția Napoleon Games bonus fără depunere una dintre cele mai avantajoase opțiuni din piață.\u003C\u002Fp>",[],{"heroDescription":1241,"sidebarTitle":11},"\u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \n\n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n            \n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n                \n\n\n    \u003C\u002Fdiv>"]